Repository navigation
release: 2.0.0-beta.77 — protected Codex hardening - #287
Merged
Merged
Conversation
With features.context_management=true, a model that supports experimental context and a Plus/Pro ChatGPT plan, Codex enables TokenBudget at session start. The CLI override features.token_budget=false does not stop that, so token-budget resets were gated by PreCompact but no longer disabled as documented. Pass features.context_management=false with the other protected overrides and refuse startup unless config/read reports it false. The key exists, defaulting to false, in 0.163.0, 0.164.0 and 0.165.0, so retained Docker providers accept it. The compiled proof configs and verify_code_mode's config/read assertion cover the real provider. A new context-management refusal mode (and a missing-key mode) joins authoritative_version_and_hook_hash_refuse_before_thread_creation. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Close the two weak spots recorded in the 0.165.0 review. A stale command approval answered with an execpolicy amendment after live auto tightened the turn to never was denied, but its prefix allow rule had already been written to the in-memory policy and the rules file. Later matching commands could then skip the sandbox. persist_execpolicy_amendment, the only writer, now holds the active_turn lock that publishes doxaAuto and refuses once the turn has switched. New regression doxa_auto_refuses_an_execpolicy_amendment_answered_after_the_switch; it fails with the guard removed. Provider patch 376dc699 replaces 128293eb on the same 0.165.0 source. 128293eb stays in the installer migration registry and PREVIOUS_PATCHES. Retained contracts remain version-keyed, so Docker sessions saved with the beta.76 provider resume with beta.76; 0.163.0 and 0.164.0 sessions are unaffected. Review record: reviews/0.165.0-r2.json. Validation: installer build from the official tag with the exact patch; 9 core and 1 hook guard tests; automatic-compaction proofs in both windows (9 denial modes, 0 replacements; allow control 1); code-mode proof, which now asserts context_management=false from the real provider, and its missing-helper control; doxa-engines, daemon Codex and process suites; updater/installer Python suites. Compiled gates ran locally with 8 build jobs instead of CI's 1-job, 8 GiB scope. 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.
Closes the two weak spots recorded in the 0.165.0 review (
reviews/0.165.0.json). Neither was reachable through DOXA's host, but both broke the documented contract inside the provider or its configuration.1. Stale execpolicy amendment (provider patch)
doxaAutotightened the turn tonever, a lateAcceptWithExecpolicyAmendmentanswer was denied correctly. Butexec_approvalhad already written its prefix allow rule to the in-memory exec policy and the rules file undercodex_home. Later matching commands could then skip the sandbox, in this turn and in later sessions.persist_execpolicy_amendment, the only writer, holds the sameactive_turnlock thatapply_turn_settingsuses to publish the switch, and refuses once the active turn has switched. The exec-policy update semaphore is a leaf lock, so holdingactive_turnacross it can't deadlock.doxa_auto_refuses_an_execpolicy_amendment_answered_after_the_switch, with a positive control. With the guard removed it fails at its unchanged-rules-file assertion (approval denied, rule written).2.
context_managementre-enabling the token budget (host)features.context_management=true, a supporting model and a Plus/Pro plan, Codex enabledTokenBudgetat session start despite DOXA'sfeatures.token_budget=false. Resets stayed gated by PreCompact but were no longer disabled as documented.features.context_management=falseand refuses startup unlessconfig/readreports it false. The key exists, defaulting to false, in 0.163.0, 0.164.0 and 0.165.0, so retained Docker providers accept it.context-managementandmissing-context-managementrefusal modes. With the check removed, the refusal test fails because DOXA proceeds tohooks/list.Identity and compatibility
376dc69901a97e62d19c6bf32377c4d464e93192340aa582d6992f2613f8ca46replaces128293eb…on the same source360319d8(rust-v0.165.0). The only patch delta is the guard and its test.128293ebstays in the installer migration registry andPREVIOUS_PATCHESfor rollback.retained.jsonwould have blocked the next automatic update.Compiled verification (local, installer code paths, 8 build jobs instead of CI's 1-job/8 GiB scope)
da6755ad…, code-mode host47453bd4…, Rust 1.99.1, 0 paid requests.doxa_auto_×7 including the new one, async refusal, infrastructure failures) and 1 hook test, all passing.verify_automatic.py, lowered and default windows: 9 denial modes give 0 history replacements and an interrupted turn. Allow gives 1 replacement and a completed turn.verify_code_mode.pypassed, including the new assertion that the real provider'sconfig/readreportscontext_management: false. The missing-helper control refused.Tests
doxa-enginesand the daemoncodex_legacy_protection,process,router_cli_workers,codex_review_sourceand bin suites: 338 passed, 0 failed.🤖 Generated with Claude Code