fix(control): provision native helper before launch - #89
Conversation
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CepCzSGN8rDhJGx69N81NU
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Team Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f12c0ae096
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if (existsSync(exePath) && existsSync(provenancePath)) { | ||
| // Already provisioned: do not recompile on every launch. The runtime still | ||
| // hashes the binary against the generated provenance before executing it. | ||
| note('owner helper and provenance already present; skipping build.'); | ||
| process.exit(0); |
There was a problem hiding this comment.
Validate artifacts before skipping the build
When both files exist but do not form a valid pair, this gate treats provisioning as complete. For example, if build.mjs is interrupted after replacing the executable but before rewriting its provenance, the next supported Windows launch skips rebuilding; runtime verification then reports HELPER_HASH_MISMATCH, leaving the control channel unavailable until someone manually deletes or rebuilds the artifacts. Validate the provenance and executable hash before taking the idempotent path, or rebuild when validation fails.
Useful? React with 👍 / 👎.
|
Superseded (circuit-breaker quarantine), not merged and not repaired in place. Adjudication PR89_CURRENT_P2_CIRCUIT_BREAKER_SUPERSEDE: the lifecycle repair itself carries a CURRENT P2 in the same helper/provenance family (ensure-helper.mjs:57 skips on artifact existence without validating pair integrity; an interrupted build.mjs leaves exe-B + provenance-A, which the gate skips and the runtime rejects with HELPER_HASH_MISMATCH, leaving the control channel unavailable until manual recovery). Decision: SUPERSEDE_PR89_RECONSTRUCT_FROM_PARENT. A coherent replacement covering the full helper/provenance artifact-state matrix will be reconstructed directly from parent aaa7ddc under a separately authorized gate. Branch and Codex thread preserved as supersession evidence; not deleted, not resolved. |
Final bounded D062 lifecycle repair for PR #85.
Finding:
guaranteed by the supported clean source-checkout launch lifecycle.
controlandcockpit:livecould build TypeScript and launch without thehelper/provenance, causing the control channel to fail closed with
HELPER_PROVENANCE_MISSING.
impact.
Repair:
→ runtime launch;
tools/control-owner/ensure-helper.mjs;launch.
Circuit-breaker evidence:
design limitation under the adopted binary↔provenance invariant, not a
CURRENT finding;
Exact identity:
aaa7ddc
f12c0ae
3C14132539AEB18DD5E86FA6A73C375436D9AF911185D550EF1EB8E6EB278280
12950
Validation:
Quarantine:
This Draft PR grants no merge authority.
🤖 Generated with Claude Code
https://claude.ai/code/session_01CepCzSGN8rDhJGx69N81NU