Skip to content

release: 2.0.0-beta.76 — protected Codex 0.165.0 - #286

Merged
docwilde merged 1 commit into
mainfrom
release/2.0.0-beta.76
Nov 13, 2026
Merged

docwilde merged 1 commit into
mainfrom
release/2.0.0-beta.76

Conversation

@docwilde

Copy link
Copy Markdown
Owner

Ports DOXA's protected Codex provider from 0.164.0 to official rust-v0.165.0. The automatic updater had refused this release: 174 guard-sensitive upstream paths needed semantic review, and the carried patch no longer applied. Fixes #284.

Identity

  • Source 360319d8dee62d87e2d59fc0c21805d79519cfed (tag rust-v0.165.0), patch 128293eb2e10aebdff916ab1d8fbce30fa10eba2dfac01cc501f9c1591034484, provider codex-0.165.0-precompact-v1, contract unchanged.
  • Upstream diff c6321a9b… covers 685 changed paths, 174 of them guard-sensitive. Build inputs are unchanged: Rust 1.99.1 and the V8 152.2.0 manifests are byte-identical to 0.164.0.

Port

  • The protection hunks are unchanged apart from release stamps (167 workspace Cargo.lock versions and the initialize user-agent). The diff of +/- lines against the reviewed 0.164.0 patch shows only a 3-line comment.
  • The one real conflict is run_pre_compact_hooks. 0.165 builds PreCompact hooks together with executor environment requirements hooks, discovered as HookSource::System at <environment:ID>/requirements.toml. They can stop compaction but can never satisfy the required SessionFlags /<session-flags>/config.toml identity, and allow_compaction lets extra hooks only deny.
  • Pins, the installer migration registry, pin.json and retained.json were generated by the updater's own replacement_files. 0.164.0 stays a retained contract for saved Docker sessions and rollback.
  • The installer test fixture for the previous provider's toolchain now follows LEGACY_BUILD_TOOLCHAINS. It hard-coded Rust 1.95.0, which only held while 0.163.0 was the previous provider.

Semantic review (scripts/codex-protected/reviews/0.165.0.json)

  • Compaction: every history-replacement and compaction-inference caller is still dominated by the gate, with no new callers. Async compaction and token-budget reset remain refused or gated.
  • Live-auto approvals: checks remain on the command, write_stdin, apply_patch, network, MCP, PermissionRequest-hook, Guardian and request_permissions paths. Grants are still finalized under the active_turn lock.
  • New entrypoints: environment-hook execution is unreachable (EnvironmentConfig has no Deserialize, and there is no production environment_ready caller). No new model tools. Native agents stay disabled.
  • Two pre-existing gaps that DOXA cannot reach are recorded for later hardening: a stale execpolicy amendment (DOXA's host never sends amendments) and features.context_management re-enabling token budget (resets stay gated).

Compiled verification (local, installer code paths, 8 build jobs instead of CI's 1-job/8 GiB scope)

  • The installer built from a fresh official clone. Patch application and git diff HEAD --binary matched the reviewed patch byte-for-byte.
  • App-server 20b63863…, code-mode host 47453bd4…, toolchain 1.99.1, 0 paid requests.
  • Guard inventory: 8 codex-core tests (doxa_auto_ ×6, async refusal, infrastructure failures) and 1 codex-hooks test, all passing.
  • verify_automatic.py, lowered and default windows: missing, carrier-missing, timeout, invalid, empty, plain, stopped, async and duplicate all give 0 history replacements and an interrupted turn. Explicit allow gives 1 replacement and a completed turn.
  • verify_code_mode.py: the helper proof passed, and the missing-helper negative control refused.

Tests on this branch (rebased on beta.75 / LORE 0.62.26)

  • doxa-engines, codex_legacy_protection, codex_review_source, router_compaction, the daemon process and bin suites: 343 passed, 0 failed.
  • Updater and installer Python suites, workflow pin check and whitespace check all pass.

🤖 Generated with Claude Code

The protected updater stopped at rust-v0.165.0: 174 guard-sensitive
upstream paths needed semantic review, and the carried patch conflicted
in Cargo.lock and core/src/hook_runtime.rs.

Port the reviewed protection patch to 0.165.0 (source 360319d8, patch
128293eb). Protection hunks are unchanged apart from release stamps.
0.165 builds PreCompact hooks together with executor environment
requirements hooks. Those are discovered as System hooks at
<environment:ID>/requirements.toml: they may stop compaction but can
never satisfy the required session-flags identity. Pins, the migration
registry and retained Docker contracts were rotated with the updater's
own replacement_files. The 0.164.0 contract stays available for saved
sessions and rollback.

Review: compaction callers, live-auto approval paths, execution and new
entrypoints, recorded in scripts/codex-protected/reviews/0.165.0.json.
Two pre-existing gaps that DOXA cannot reach are noted there for later
hardening.

Validation: installer build from the official tag with the exact patch,
8 core and 1 hook guard tests, automatic-compaction refusal proofs in
the lowered and default windows (9 denial modes and an allow control),
code-mode helper proof and its missing-helper control, doxa-engines,
codex_legacy_protection, codex_review_source, router_compaction, the
daemon process suite, and the updater/installer Python suites. The stale
fixture toolchain in
test_verified_patch_upgrade_keeps_the_previous_provider_immutable now
follows the installer's legacy toolchain map. Compiled gates ran locally
with 8 build jobs instead of the CI runner's 1-job, 8 GiB scope.

Fixes #284.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@docwilde
docwilde merged commit 46c0129 into main Nov 13, 2026
3 checks passed
@docwilde
docwilde deleted the release/2.0.0-beta.76 branch November 13, 2026 04:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Protected Codex update blocked

1 participant