Published to npm as @bitkyc08/opencodex@2.34.0-preview.20260827 with dist-tag preview.
New Features
- Catalog gemini-3.6/3.7-flash and expose the minimal effort rung (#2584)
- Expose the explicit-thinking model families (#2585)
- Add per-account quota to ocx account list (#2587)
- Generic multi-account 429 failover for HTTP-status paths (#2568a) (#2590)
- One selection resolver that reports what it matched (#2491 partial) (#2594)
- Make a silent empty completion observable by default (#2597)
- Shipped model presets with write-path divergence (#2465) (#2603)
- Preset / All selector on the provider header (#2465) (#2604)
- Newly discovered provider models arrive disabled (#2464) (#2609)
- Provider and model aliases across router, API, CLI and GUI (#2463) (#2610)
- Bound concurrent tool-recall sessions by logical lane (#820) (#2611)
- Explicit rebase provenance for deletion vs unseen keys (#1478) (#2613)
- Disposable-host service acceptance and the uninstall bug it found (#1048) (#2618)
- Activate multi-account 429 failover on account presence (#2568d) (#2640)
- Hide the Codex Spark quota by default behind a Codex Auth switch (#2649)
- Add OpenCodex-scoped noProxy (#2661)
- Serve the prompt-layer state over /api/codex-prompt (#2678)
- Codex Auth becomes Codex Set, with a prompt-layer panel (#2679)
- Custom prompt layers, presets, and drift repair (#2680)
- Show the prompt text Codex really sends, as an ordered stack (#2681)
- Seed glm-5.3-flash across the GLM-5.2 catalogs (#2687)
- Show the commit-attribution prompt layer (#2692)
- Swap the base prompt for a variant you write, with an immutable default (#2707)
- UX polish for the prompt-layer panel (#2719)
Bug Fixes
- Keep pre-output streams alive (#2528)
- Allow pinning an active unpinned account (#2555)
- Validate buffered response and ndjson frame shapes (#2531) (#2532)
- Preview Pool account per fallback candidate (#2515)
- Run ocx-run commands in the requested workdir (#2474)
- Gate gpt-5.6 native models by entitlement (#2550)
- Bind ref-less checkpoints to conversation owners (#2563)
- Preserve Codex and Anthropic quota windows (rebase of #2490) (#2572)
- Recognize antigravity quota exhaustion, including the unspaced retry-after spelling (rebase of #2510) (#2573)
- Clamp max output tokens per model, without inventing a ceiling for unknown ids (rebase of #2512) (#2576)
- Stabilize thought-signature replay and evict rejected signatures on every mode (rebase of #2513) (#2577)
- Stop advertising text.verbosity, including on combo and live-discovered rows (rebase of #2503) (#2578)
- Disable Bun's fetch socket idle timeout for upstream provider requests (rebase of #2567) (#2579)
- Serve the last catalog reading while the Windows probe refreshes (rebase of #2542) (#2580)
- Normalize SSE terminal tails and policy failures (rebase of #2488) (#2581)
- Resolve the verbosity default from config, not the registry (#2582)
- Render quota bars in ocx provider quota (#2586)
- Do not read a non-authoritative tier echo as a Fast downgrade (#2589)
- Distinguish a failed desktop probe from an absent app (#2593)
- Route models remove through the shared slug relation (#2596)
- Re-derive native context width from config at catalog read (#2601)
- Align the sidebar foot's four rows (#2430)
- Map Daybreak cost overlays and preserve model identity in logs (#2575)
- Bound preflight retained chunk count (#2595)
- Pass --parallel so the full suite finishes instead of reading as hung (#2427)
- Preserve keyword-named composed properties (#2583)
- Rotate generic OAuth accounts on 429 (#2568) (#2607)
- Rotate OAuth accounts on adapter-event 429 before first output (#2568) (#2608)
- Adopt pre-substrate homes into the write coordinator (#1049) (#2612)
- Repair three regressions from the #2463/#1478 landings (#2614)
- Show the five-hour quota on account cards (#2616) (#2620)
- Strip search_content_types on web_search for Muse Spark (#2617) (#2621)
- Avoid creating agents directory when disabled (#2619)
- Write the provenance ledger, bounded (#2622) (#2626)
- Gate subagent fallback by account entitlement (#2623)
- Bound the cold Codex log inspection and surface when it is skipped (#2605) (#2627)
- Carry entitlement into the encrypted-recovery preview (#2509) (#2629)
- Catalog effort ladders, v2 pin precedence, and combo owned_by (#2410 #2409 #2401) (#2630)
- Gate root skip-permissions bypass and ship the auto-review model override (#1688 #1225) (#2631)
- Refuse requests after the package tree is replaced under a live proxy (#2459) (#2632)
- Forward video input instead of silently dropping it (#2458) (#2634)
- Preserve the account-failover opt-out across a provider overwrite (#2568d) (#2642)
- Classify a sub-day quota header window as the 5h burst (Plus/Team) (#2646)
- Show CommandCode billing period end (#2660)
- Retain verified CommandCode image capabilities (#2659)
- Single-line call_id codec + response.in_progress parity (#2650)
- Gap program stack (gap-2..gap-9) — catalog suppression, checkpoints, quarantine, ultra mode, diagnostics, silent redirects, repetition breaker (#2651)
- Detect echoed tool-result envelope and retry once with corrective action (#2669)
- Reject invented native-tool failure commentary (#2670)
- Bound Exa response bodies (#2676)
- Restart the npm wrapper that supervises the app-server (#2685)
- Admit same-session reconnect turns (#2683)
- Normalize $ref-with-siblings for Moonshot tool schemas (#2677)
- Survive a desktop executor that never reads stdin (#2695)
- Four high regressions on dev, starting with a chmod that returned 503 (#2689)
- Stop deleting reused branches, and finish the glm-5.3-flash correction (#2691)
- Land the L1 lane of the 260827 bug-PR merge round (#2672 #2674 #2671 #2684) (#2720)
- Advertise Muse Spark image input on OpenCode Go (#2671)
- Normalize canonical forward prompt envelope (#2672)
- Normalize Azure Model Router function schemas (#2684)
- Normalize Posit tool continuations (#2674)
- L3 cherry-pick lane of the 260827 bug-PR merge round (#2639 #2647) (#2721)
- Bridge bare code-mode helper calls through exec (#2663) (#2724)
- Normalize Responses root tool schemas, and close out the merge round (#2690) (#2727)
- Send Kiro's service profile for AWS Builder ID accounts (#2722)
- Reject only genuine structured output, not every Responses text control (#2725)
- Restart proxy without setsid on macOS (#2735)
- Keep source checkout live during edits (#2737)
- Stop dev from carrying a version behind its own releases (#2739)
- Make doctor:gui agree with CI instead of being bypassed (#2749)
- Let Kiro models discover and keep the code-mode delegation surface (#2750)
Documentation
- Document oauthAccountFailover (#2591)
- State the reasoning sanitizer's real rule and pin it by equality (#2502)
- Document promptCacheKey for custom openai-chat providers (#2541) (#2625)
- Record semantic-progress ownership for continuation loops (#2600) (#2628)
- Document the prompt-layer panel in eight locales (#2682)
- Base prompt variants and commit attribution, in five locales (#2708)
- Close out the 260827 bug-PR merge round (#2728)
- Close macOS restart repair (#2736)
- Dev hardening inventory and remediation roadmap (#2738)
- Stop shipping locale pages that contradict the code (#2746)
- Close the dev hardening unit with a promotion-readiness statement (#2752)
- Record that dev advanced past the readiness sha (#2754)
- Plan the dev to preview to main release train (#2755)
Chores
- Repair dev by granting the gated 5.6 roster to candidate-scope preview cases (#2570)
- Pin the empty-turn producer path end to end (#2598)
- Pin the 5.6 context width against a stale on-disk row (#2599)
- Pin the two model-preset convergence calls (#2465) (#2606)
- Pin the bundled Bun version (#1419) (#2633)
- Give the Daybreak compact case the server budget (#2635)
- Delete branches left behind by closed pull requests (#2664)
- Give the launcher-recovery case a budget that contains its own work (#2666)
- Pin fetch-tags on the jobs that run the suite (#2743)
- Lock the two invariants AGENTS.md claims are enforced (#2751)
Other Changes
- Devlog: owner backlog and bug-PR closeout unit (260825) (#2588)
- Devlog: record the #2497 credential-boundary security review (#2602)
- Devlog: record the owner-backlog and bug-PR closeout (#2624)
- Devlog: record the community bug sweep (#2636)
- Devlog: terminal record for the backlog closeout loop (#2637)
- Devlog: quota-window and backlog roadmap (260826) (#2644)
- Devlog: record the third Spark projection found during wp2 (#2657)
- Devlog: backlog triage - 18 stale PRs and 21 open issues (260826) (#2658)
- [WRONG BRANCH] release: promote dev to preview for v2.34.0-preview.20260827 (#2757)
Changelog
Full Changelog: v2.33.0...v2.34.0-preview.20260827
- #2427 fix(test): pass --parallel so the full suite finishes instead of reading as hung @olddonkey
- #2430 fix(gui): align the sidebar foot's four rows @olddonkey
- #2474 fix(scripts): run ocx-run commands in the requested workdir @luvs01
- #2502 docs(responses): state the reasoning sanitizer's real rule and pin it by equality @olddonkey
- #2515 fix(codex): preview Pool account per fallback candidate @luvs01
- #2528 fix(claude): keep pre-output streams alive @luvs01
- #2532 fix(adapters): validate buffered response and ndjson frame shapes (#2531) @snowyukitty
- #2550 fix(codex): gate gpt-5.6 native models by entitlement @mushikingh
- #2555 fix(gui): allow pinning an active unpinned account @luvs01
- #2563 fix(cursor): bind ref-less checkpoints to conversation owners @luvs01
- #2570 test(codex): repair dev by granting the gated 5.6 roster to candidate-scope preview cases @lidge-jun
- #2572 fix(quota): preserve Codex and Anthropic quota windows (rebase of #2490) @lidge-jun
- #2573 fix(google): recognize antigravity quota exhaustion, including the unspaced retry-after spelling (rebase of #2510) @lidge-jun
- #2575 fix(pricing): map Daybreak cost overlays and preserve model identity in logs @riique
- #2576 fix(google): clamp max output tokens per model, without inventing a ceiling for unknown ids (rebase of #2512) @lidge-jun
- #2577 fix(google): stabilize thought-signature replay and evict rejected signatures on every mode (rebase of #2513) @lidge-jun
- #2578 fix(xai): stop advertising text.verbosity, including on combo and live-discovered rows (rebase of #2503) @lidge-jun
- #2579 fix: disable Bun's fetch socket idle timeout for upstream provider requests (rebase of #2567) @lidge-jun
- #2580 fix(codex): serve the last catalog reading while the Windows probe refreshes (rebase of #2542) @lidge-jun
- #2581 fix(responses): normalize SSE terminal tails and policy failures (rebase of #2488) @lidge-jun
- #2582 fix(catalog): resolve the verbosity default from config, not the registry @lidge-jun
- #2583 fix(kiro): preserve keyword-named composed properties @luvs01
- #2584 feat(cursor): catalog gemini-3.6/3.7-flash and expose the minimal effort rung @lidge-jun
- #2585 feat(cursor): expose the explicit-thinking model families @lidge-jun
- #2586 fix(cli): render quota bars in ocx provider quota @lidge-jun
- #2587 feat(cli): add per-account quota to ocx account list @lidge-jun
- #2588 devlog: owner backlog and bug-PR closeout unit (260825) @lidge-jun
- #2589 fix(fastwire): do not read a non-authoritative tier echo as a Fast downgrade @lidge-jun
- #2590 feat(oauth): generic multi-account 429 failover for HTTP-status paths (#2568a) @lidge-jun
- #2591 docs(config): document oauthAccountFailover @lidge-jun
- #2593 fix(codex): distinguish a failed desktop probe from an absent app @lidge-jun
- #2594 feat(slug): one selection resolver that reports what it matched (#2491 partial) @lidge-jun
- #2595 fix(combos): bound preflight retained chunk count @luvs01
- #2596 fix(cli): route models remove through the shared slug relation @lidge-jun
- #2597 feat(responses): make a silent empty completion observable by default @lidge-jun
- #2598 test(cursor): pin the empty-turn producer path end to end @lidge-jun
- #2599 test(catalog): pin the 5.6 context width against a stale on-disk row @lidge-jun
- #2601 fix(subagents): re-derive native context width from config at catalog read @lidge-jun
- #2602 devlog: record the #2497 credential-boundary security review @lidge-jun
- #2603 feat(catalog): shipped model presets with write-path divergence (#2465) @lidge-jun
- #2604 feat(gui): Preset / All selector on the provider header (#2465) @lidge-jun
- #2606 test(catalog): pin the two model-preset convergence calls (#2465) @lidge-jun
- #2607 fix(sidecars): rotate generic OAuth accounts on 429 (#2568) @lidge-jun
- #2608 fix(cursor): rotate OAuth accounts on adapter-event 429 before first output (#2568) @lidge-jun
- #2609 feat(models): newly discovered provider models arrive disabled (#2464) @lidge-jun
- #2610 feat(aliases): provider and model aliases across router, API, CLI and GUI (#2463) @lidge-jun
- #2611 feat(lifecycle): bound concurrent tool-recall sessions by logical lane (#820) @lidge-jun
- #2612 fix(codex): adopt pre-substrate homes into the write coordinator (#1049) @lidge-jun
- #2613 feat(config): explicit rebase provenance for deletion vs unseen keys (#1478) @lidge-jun
- #2614 fix: repair three regressions from the #2463/#1478 landings @lidge-jun
- #2618 feat(acceptance): disposable-host service acceptance and the uninstall bug it found (#1048) @lidge-jun
- #2619 fix(claude): avoid creating agents directory when disabled @fflake33
- #2620 fix(codex): show the five-hour quota on account cards (#2616) @lidge-jun
- #2621 fix(responses): strip search_content_types on web_search for Muse Spark (#2617) @lidge-jun
- #2623 fix(codex): gate subagent fallback by account entitlement @luvs01
- #2624 devlog: record the owner-backlog and bug-PR closeout @lidge-jun
- #2625 docs: document promptCacheKey for custom openai-chat providers (#2541) @lidge-jun
- #2626 fix(codex): write the provenance ledger, bounded (#2622) @lidge-jun
- #2627 fix(storage): bound the cold Codex log inspection and surface when it is skipped (#2605) @lidge-jun
- #2628 docs(structure): record semantic-progress ownership for continuation loops (#2600) @lidge-jun
- #2629 fix(subagents): carry entitlement into the encrypted-recovery preview (#2509) @lidge-jun
- #2630 fix: catalog effort ladders, v2 pin precedence, and combo owned_by (#2410 #2409 #2401) @lidge-jun
- #2631 fix: gate root skip-permissions bypass and ship the auto-review model override (#1688 #1225) @lidge-jun
- #2632 fix(server): refuse requests after the package tree is replaced under a live proxy (#2459) @lidge-jun
- #2633 test(runtime): pin the bundled Bun version (#1419) @lidge-jun
- #2634 fix(google): forward video input instead of silently dropping it (#2458) @lidge-jun
- #2635 test(server): give the Daybreak compact case the server budget @lidge-jun
- #2636 devlog: record the community bug sweep @lidge-jun
- #2637 devlog: terminal record for the backlog closeout loop @lidge-jun
- #2640 feat(oauth): activate multi-account 429 failover on account presence (#2568d) @lidge-jun
- #2642 fix(management): preserve the account-failover opt-out across a provider overwrite (#2568d) @lidge-jun
- #2644 devlog: quota-window and backlog roadmap (260826) @lidge-jun
- #2646 fix(codex): classify a sub-day quota header window as the 5h burst (Plus/Team) @lidge-jun
- #2649 feat(gui): hide the Codex Spark quota by default behind a Codex Auth switch @lidge-jun
- #2650 fix(cursor): single-line call_id codec + response.in_progress parity @lidge-jun
- #2651 fix(cursor): gap program stack (gap-2..gap-9) — catalog suppression, checkpoints, quarantine, ultra mode, diagnostics, silent redirects, repetition breaker @lidge-jun
- #2657 devlog: record the third Spark projection found during wp2 @lidge-jun
- #2658 devlog: backlog triage - 18 stale PRs and 21 open issues (260826) @lidge-jun
- #2659 fix(registry): retain verified CommandCode image capabilities @lidge-jun
- #2660 fix(gui): show CommandCode billing period end @lidge-jun
- #2661 feat(config): add OpenCodex-scoped noProxy @lidge-jun
- #2664 ci: delete branches left behind by closed pull requests @lidge-jun
- #2666 test(update): give the launcher-recovery case a budget that contains its own work @lidge-jun
- #2669 fix(cursor): detect echoed tool-result envelope and retry once with corrective action @lidge-jun
- #2670 fix(cursor): reject invented native-tool failure commentary @lidge-jun
- #2671 fix(catalog): advertise Muse Spark image input on OpenCode Go @DevonGithub
- #2672 fix(responses): normalize canonical forward prompt envelope @Ingwannu
- #2674 fix(responses): normalize Posit tool continuations @Ingwannu
- #2676 fix(web-search): bound Exa response bodies @luvs01
- #2677 fix(openai-chat): normalize $ref-with-siblings for Moonshot tool schemas @lidge-jun
- #2678 feat(codex): serve the prompt-layer state over /api/codex-prompt @lidge-jun
- #2679 feat(gui): Codex Auth becomes Codex Set, with a prompt-layer panel @lidge-jun
- #2680 feat(gui): custom prompt layers, presets, and drift repair @lidge-jun
- #2681 feat(gui): show the prompt text Codex really sends, as an ordered stack @lidge-jun
- #2682 docs(codex): document the prompt-layer panel in eight locales @lidge-jun
- #2683 fix(lifecycle): admit same-session reconnect turns @lidge-jun
- #2684 fix: normalize Azure Model Router function schemas @Michael-Z-Freeman
- #2685 fix(codex): restart the npm wrapper that supervises the app-server @lidge-jun
- #2687 feat(providers): seed glm-5.3-flash across the GLM-5.2 catalogs @lidge-jun
- #2689 fix: four high regressions on dev, starting with a chmod that returned 503 @lidge-jun
- #2691 fix: stop deleting reused branches, and finish the glm-5.3-flash correction @lidge-jun
- #2692 feat(codex): show the commit-attribution prompt layer @lidge-jun
- #2695 fix(cursor): survive a desktop executor that never reads stdin @lidge-jun
- #2707 feat(codex): swap the base prompt for a variant you write, with an immutable default @lidge-jun
- #2708 docs: base prompt variants and commit attribution, in five locales @lidge-jun
- #2719 feat(gui): UX polish for the prompt-layer panel @lidge-jun
- #2720 fix: land the L1 lane of the 260827 bug-PR merge round (#2672 #2674 #2671 #2684) @lidge-jun
- #2721 fix: L3 cherry-pick lane of the 260827 bug-PR merge round (#2639 #2647) @lidge-jun
- #2722 fix(kiro): send Kiro's service profile for AWS Builder ID accounts @lidge-jun
- #2724 fix(responses): bridge bare code-mode helper calls through exec (#2663) @lidge-jun
- #2725 fix(kiro): reject only genuine structured output, not every Responses text control @lidge-jun
- #2727 fix(xai): normalize Responses root tool schemas, and close out the merge round (#2690) @lidge-jun
- #2728 docs(devlog): close out the 260827 bug-PR merge round @lidge-jun
- #2735 fix(scripts): restart proxy without setsid on macOS @lidge-jun
- #2736 docs(devlog): close macOS restart repair @lidge-jun
- #2737 fix(server): keep source checkout live during edits @lidge-jun
- #2738 docs(devlog): dev hardening inventory and remediation roadmap @lidge-jun
- #2739 fix(release): stop dev from carrying a version behind its own releases @lidge-jun
- #2743 test(ci): pin fetch-tags on the jobs that run the suite @lidge-jun
- #2746 docs: stop shipping locale pages that contradict the code @lidge-jun
- #2749 fix(gui): make doctor:gui agree with CI instead of being bypassed @lidge-jun
- #2750 fix(kiro): let Kiro models discover and keep the code-mode delegation surface @lidge-jun
- #2751 test(core): lock the two invariants AGENTS.md claims are enforced @lidge-jun
- #2752 docs(devlog): close the dev hardening unit with a promotion-readiness statement @lidge-jun
- #2754 docs(devlog): record that dev advanced past the readiness sha @lidge-jun
- #2755 docs(devlog): plan the dev to preview to main release train @lidge-jun
- #2757 [WRONG BRANCH] release: promote dev to preview for v2.34.0-preview.20260827 @lidge-jun