Repository navigation
fix(claude): keep the NO_PROXY receipt across a failed removal, and doc follow-ups (#6936) - #6952
Conversation
Review follow-ups on #6938: - A removal whose settings write fails has not ended the ownership episode, so it now puts the receipt back before rethrowing; a later removal can still restore the user's NO_PROXY. - The proxy's 405 body labels 0.0.0.0 as an unspecified host rather than loopback. - structure/runtime.md states that restoration needs the receipt, and what happens when it could not be written. - The seven translated Claude Code guides now carry the loopback NO_PROXY guidance from the English guide. Refs #6936
…mmit (#6936) Review follow-ups on b796729: - Split the settings write into persist and catalog invalidation. Removal now puts the receipt back only when the persist step itself fails; once settings.json has changed, the episode is over and the receipt stays gone. A test seam replaces just the persist step. - Oracles: an uncommitted removal keeps settings and receipt intact and a retry restores the user's value; when the receipt cannot be put back either, the original settings error still surfaces. - The English guide, the seven translations and structure/runtime.md now say the original value comes back only when OpenCodex could record it and it was not changed since. Refs #6936
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. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to No merge-blocking issue is identified for the receipt rollback and NO_PROXY guidance changes; merge after normal checks. Pre-merge checks |
|
|
✅ Deterministic PR hygiene checks passed. |
|
Maintainer integration into
|
Summary
Follow-up to #6938 (refs #6936), which was merged at head
3588bb4a5while these review fixes were in progress. This lands CodeRabbit's four findings on that head, plus the follow-up review of the first fix.removeClaudeInterceptSettingsinvalidates theNO_PROXYreceipt before writingsettings.json. If that write fails, the removal did not happen, so the receipt is put back and a later removal can still restore the user's value. The settings write is now split into a persist step and catalog invalidation, and only the persist step is covered: oncesettings.jsonhas changed, the episode is over and the receipt stays gone.0.0.0.0under "loopback and unspecified hosts" rather than as loopback.structure/runtime.mdnow say the originalNO_PROXYcomes back only when OpenCodex could record it and it was not changed since; otherwise the current value, including the added entries, is kept.NO_PROXYguidance from the English guide, with the same conditions.Verification
bun teston the 14 directly affected files (including the newclaude-intercept-no-proxyoracles O13 and O14): 355 pass, 0 fail.bun run typecheck,bun run structure:check,bun run privacy:scan: pass.docs-sitebun run build: complete.dev; the changed lines match the original follow-up diff exactly.bun run testwas not run locally (shared machine, load-sensitive timing tests seen earlier); CI covers it on this head.Checklist
NO_PROXYvalues; every receipt mutation passes the real-home guard; the 405 body is static.Summary by CodeRabbit
NO_PROXY, allowing local MCP servers—including*.localhosthosts—to bypass the proxy. Existing entries are preserved, and only missing addresses are added.NO_PROXYvalue is restored only if it was recorded and hasn’t changed; otherwise, the current value is kept.NO_PROXYsettings.