fix(server): block updates under legacy service launchers - #11940
Conversation
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a small, targeted compatibility fix that blocks unsafe updates from legacy launchers while preserving the current protocol path. Its runtime impact is confined to the existing service preflight boundary and is directly covered by tests. You can add or adjust custom eligibility rules. Learn more. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (2)
Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📝 WalkthroughWalkthroughThe service launcher protocol advances from version 2 to version 3. Preflight tests now verify that launcher protocols 1 and 2 return the complete blocked response. ChangesService launcher compatibility
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~10 minutes Change: Bug fix · Severity of issue fixed: Medium Suggested reviewers: Merge Risk: ⚪ Minimal · up to The protocol update rejects legacy launchers and adds coverage for protocols 1 and 2. No concrete merge-blocking risk remains. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Older background-service launchers still expect
node_modules/t3/dist/bin.mjs, so they reject complete standalone runtimes with a misleading “missing or incomplete” error.Bump the launcher protocol to 3 so the existing staged preflight blocks activation with the instruction to update the launcher on the server machine. Document the runtime-layout compatibility boundary and cover legacy protocols 1 and 2. A local
t3 updateis still required to upgrade the launcher.Closes #11934.
Verification
Reproduced the exact rejection using the pre-feat(server): manage runtimes as release archives only, never from npm #11510 launcher and disposable runtime fixtures; the same fixture now stops at preflight with the actionable message.
Protocol-2 regression test failed before the fix. All 65 focused preflight, self-update, launcher, launcher-client, and boot-service tests pass.
Server typecheck, focused lint, and formatting pass.
Isolated Chrome and disposable dev server: a controlled update RPC failure displays the actionable message and keeps Retry available. No installed service was updated.
Claude Opus 5 reviewed the change before PR creation: no actionable findings.
Model: GPT-6, using the Codex harness.
Summary by CodeRabbit