Repository navigation
fix(workstreams): recover interrupted member key initialization - #941
Merged
Mjones13 merged 1 commit intoNov 12, 2026
Merged
Conversation
Mjones13
added a commit
that referenced
this pull request
Nov 12, 2026
Brings in #933 (Claude provider HOME binding and lifecycle proof), #938/#939 (workstreams reader ownership and mixed-version coverage) and #941 (member key recovery). Resolutions: - ClaudeDriver keeps the sync's Claude process environment and binds main's provider home from it. - ClaudeAdapterV2 keeps the sync's transcript state (conversation, empty, missing, unreadable) and reads it under main's provider home path; the resume test takes main's HOME/config parameterization on the sync's SecureRandom adapter input. - Member-key initialization takes main's interrupted-key recovery on the sync's SecureRandom, whose randomBytes cannot fail. - Effect 4.1.2 adaptations: NodeCrypto for main's new tests and the lifecycle dev entrypoint, NodeWS for its WebSocket. - Boundary inventory merged structurally. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
A committed
registry keys member-inittransaction could be reported as failed and have its key file deleted; an interruption before commit could leave an orphan file that blocked retry. Reconcile the exact key row outside a reported transaction failure, retain uncertain files withoutcome_unknown, and remove only this attempt's unchanged file after proved row absence.Add an explicit
--resumethat reuses valid 32-byte orphan keys or accepts an exact active row and file without changing bytes. Malformed files remain untouched, conflicts refuse, and a row without its file reportskey_file_missingwithout regenerating that ID. Home key initialization is unchanged. The peer-setup integration fixture now provisions its member key throughNativeMemberKeyAdminand the real secret store before exercising peer setup and member startup.Closes #937.
Validation:
native/runtime/cli.test.tsandnative/conformance/peerSetupIntegration.test.ts. After converting the fault cases to the required table-driven test syntax, the CLI file passed all 17 tests again.WorkstreamsKeyProviderresolution.pnpm --filter t3 typecheckpassed with the verified official Effect compiler.node scripts/jones/check-boundary.ts --strictpassed with zero violations.This is source-only work; no installed runtime update or live-state repair. Scope is the CLI service and its two focused test files. There are no schema, rotation, wire, or persisted-history changes.
Implemented by the scoped implementation child in Jones Code using gpt-6.1-sol (high reasoning), Codex harness.
Open in [code]smith · Need help on this PR? Tag
@codesmith-botwith what you need.