Repository navigation
refactor!: use c7, c8 and none as the only platform value and drop the unused in-memory store - #110
Merged
Merged
Conversation
BREAKING CHANGE: Doc.platform() returns 'c7' | 'c8' | 'none' instead of 'camunda7' | 'camunda8' | undefined. TARGETS is now exported from the platform detection module; the --target spelling is unchanged.
The in-memory API only passes loaded documents and never writes, so the services take their load and save ports as optional instead of a store that was never read or written.
emaarco
enabled auto-merge (squash)
October 27, 2026 15:22
emaarco
disabled auto-merge
October 27, 2026 15:22
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR makes two small cleanups that came out of an architecture review.
One internal platform value. The platform used to have three spellings inside the code:
c7 | c8 | nonein validation,camunda7 | camunda8 | undefinedfromDoc.platform()andEditContext.platform(), andzeebeinDecisionLinkWriter. Two hand-written ternaries translated between them. Now'c7' | 'c8' | 'none'is the only internal value. The--target camunda7|camunda8|nonespelling users type is translated in one place,platformOfTarget()inPlatformDetection.ts. That file now also holdsTARGETSand theTargettype.PlatformDetection.target()is removed, and the editing code compares againstc7/c8directly.No in-memory document store.
InMemoryDocumentStorewas never read or written: the in-memory API always passes a loaded document anddryRun: true. The services now take their load and save ports as optional, after the project settings. Reading a file without a load port fails withE_FILE_NOT_FOUND, the error the store gave. Writing without a save port fails withE_NO_FILE.NoProjectSettingsstays.docs/architecture.mdandGLOSSARY.mdare updated.Breaking change for library callers:
Doc.platform()now returns'c7' | 'c8' | 'none'instead of'camunda7' | 'camunda8' | undefined.TARGETSis still exported from the package entry. CLI options and output are unchanged.Checklist
npm run typecheckpassesnpm run gatepassessrc/report/guide.tsand the matching page indocs/are updated (only if a command, option or output changed)npm run gatepassed on the branch head: 2398 tests, iso and bench within their budgets with no budget raised, fuzz with 0 errors. The first commit was also typechecked and tested on its own. The guide item does not apply because no command, option or output changed.Linked issue
No linked issue.