Skip to content

Latest commit

 

History

History
41 lines (38 loc) · 36.4 KB

File metadata and controls

41 lines (38 loc) · 36.4 KB

Codex++ Fork Ledger

This file is the maintenance map for behavior carried by Codex++ but not upstream Codex. It is not a changelog. Keep one row per maintained capability and update that row as the capability evolves.

Use merged PR numbers as durable history anchors. Use a short commit SHA only when a direct-to-main change has no PR. Required upstream seams lists upstream-owned files or surfaces that must change for the capability to work; use when the capability is fully isolated. History also records known overlapping upstream work as Upstream: openai/codex#NNNNN; keep Purpose precise when the fork covers only part of the upstream report.

Capability Kind Purpose Fork entrypoint Required upstream seams History
Imported account store and CLI Accounts Persist imported ChatGPT profiles, per-account auth homes, usage/reset metadata, and process leases; expose account management commands. codex-rs/login/src/account.rs
codex-rs/login/src/account_lease.rs
codex-rs/cli/src/account_cmd.rs
codex-rs/login/src/lib.rs
codex-rs/cli/src/main.rs
f7c4e7bf01
Imported account activation and failover Runtime Start from, switch to, refresh, and visibly fail over between eligible imported accounts, including when the backend reports invalid_refresh_token, local compaction, and streamed Remote Compaction v2 retries; warn when the TUI's displayed account identity may be stale, without crossing account or workspace authority. codex-rs/login/src/auth/manager/codex_plus_plus/imported_account_startup.rs
codex-rs/login/src/auth/manager/codex_plus_plus/imported_account_selection.rs
codex-rs/login/src/auth/manager/codex_plus_plus/imported_account_refresh.rs
codex-rs/core/src/codex_plus_plus/account_failover.rs
codex-rs/tui/src/codex_plus_plus/account_identity_freshness.rs
codex-rs/login/src/auth/manager.rs
codex-rs/core/src/config/auth_keyring.rs
codex-rs/core/src/client.rs
codex-rs/core/src/session/turn.rs
codex-rs/core/src/compact.rs
codex-rs/core/src/compact_remote_v2.rs
codex-rs/ext/guardian-v2/src/async_scorer/sampler.rs
codex-rs/ext/guardian-v2/src/async_scorer/metrics.rs
codex-rs/codex-api/src/error.rs
codex-rs/codex-api/src/sse/responses.rs
codex-rs/tui/src/chatwidget.rs
codex-rs/tui/src/chatwidget/constructor.rs
codex-rs/tui/src/chatwidget/protocol.rs
codex-rs/tui/src/chatwidget/status_controls.rs
codex-rs/tui/src/status/card.rs
f7c4e7bf01, #6, #9, #13, #17, #19, #26, #73, #78, #132, #138, #162, #167, #169
Startup account picker and usage probe TUI Refresh persisted cooldowns when usage confirms recovered capacity; retain them for exhausted or missing usage. Show reset times in the local timezone and available reset credits in the account picker. List candidate accounts alphabetically by label. Load account usage, recommend or time-select an eligible ChatGPT account, hand it to root auth, and reload cloud config for that selection. Automatic selection requires successfully loaded usage; accounts with unknown usage remain manually selectable. --auto-account selects the recommended eligible account immediately without showing the picker and fails when none is available. Without that flag, protect startup so the picker appears before the composer when it may run. Never replace API, identity, or Bedrock root auth, including mode-less Bedrock access-key records. codex-rs/tui/src/codex_plus_plus/startup_accounts.rs
codex-rs/tui/src/account_picker.rs
codex-rs/tui/src/account_usage.rs
codex-rs/tui/src/codex_plus_plus/account_usage_cooldown.rs
codex-rs/cloud-config/src/codex_plus_plus/selected_account.rs
codex-rs/cloud-config/src/codex_plus_plus/startup_account_picker.rs
codex-rs/login/src/auth/manager/codex_plus_plus/auth_storage_refresh.rs
codex-rs/cli/src/main.rs
codex-rs/tui/src/cli.rs
codex-rs/tui/src/worktree_startup.rs
codex-rs/tui/src/startup_orchestration.rs
codex-rs/tui/src/lib.rs
codex-rs/cloud-config/src/bundle_loader.rs
codex-rs/app-server-client/src/lib.rs
codex-rs/app-server/src/in_process.rs
codex-rs/tui/src/bottom_pane/list_selection_view.rs
codex-rs/tui/src/bottom_pane/selection_popup_common.rs
codex-rs/tui/src/bottom_pane/selection_row_layout.rs
f7c4e7bf01, 7699b0a7a1, 3cb5de3cec, #9, #12, #14, #19, #38, #39, #55, #76, #102, #125, #130, #137, #138, #162, #163
Per-account automation policy and UI Accounts Let users choose which stored accounts automatic startup and failover may select, with live scheduler status. This selection policy does not exclude otherwise enabled accounts from weekly-window or reset-credit automation. codex-rs/login/src/codex_plus_plus/account_policy.rs
codex-rs/tui/src/chatwidget/slash_dispatch/codex_plus_plus/accounts.rs
codex-rs/tui/src/chatwidget/slash_dispatch.rs
codex-rs/tui/src/app/event_dispatch.rs
#10, #19, #21, #29, #102
Cross-channel root auth handoff Auth Reconcile the selected account between root auth and account-file storage without overwriting newer credentials, and leave a safe marker for future sessions. codex-rs/login/src/codex_plus_plus/account_bridge.rs codex-rs/login/src/auth/storage.rs
codex-rs/login/src/auth/mod.rs
codex-rs/login/src/lib.rs
#46
Crash-safe file auth and authority Auth Serialize auth mutations, atomically recover file writes, and keep file storage authoritative after keyring fallback. codex-rs/login/src/auth/storage/codex_plus_plus/atomic_file.rs
codex-rs/login/src/auth/storage/codex_plus_plus/auto_auth.rs
codex-rs/login/src/auth/storage/codex_plus_plus/file_authority.rs
codex-rs/login/src/auth/storage.rs
codex-rs/login/src/auth/manager.rs
#23, #26, #27, #46
Weekly-window and reset-credit automation Automation Detect and start unused weekly allowances for every enabled signed-in imported account, or redeem one exact earned reset near expiry or after exact distant weekly exhaustion, independently of automatic account selection. Every activation holds the shared account reset lease, reloads the profile and routed auth, validates account identity, selects the target account's default model through a bounded uncached models read, sends a minimal response without an explicit output cap, and retains only bounded failure class/status evidence. Irreversible redemption additionally durably replays ambiguous UUID attempts and publishes one bounded same-CODEX_HOME TUI completion notice. A live TUI turn stopped by a usage limit automatically continues once after a later reset when a fresh usage read identifies the redeemed account and confirms usable quota; new input, cancellation, account changes, and thread replacement invalidate continuation. Independent machine-wide opt-ins control redemption before exact backend expiry and after backend-confirmed weekly exhaustion. The settings popup shows each configured threshold; omitted thresholds disable their trigger, and saving refreshes the running scheduler. Coordination is bounded to one CODEX_HOME; separate machines or homes can still race. It does not implement task-scoped one-reset queue/cancel semantics or change the upstream app's date-only expiry display/timezone handling. codex-rs/config/src/codex_plus_plus/weekly_usage_window.rs
codex-rs/config/src/codex_plus_plus/auto_redeem_resets.rs
codex-rs/login/src/codex_plus_plus/weekly_window_state.rs
codex-rs/login/src/codex_plus_plus/reset_state.rs
codex-rs/login/src/codex_plus_plus/account_policy.rs
codex-rs/login/src/auth/manager/codex_plus_plus/file_auth.rs
codex-rs/login/src/auth/manager/codex_plus_plus/imported_account_refresh.rs
codex-rs/model-provider/src/codex_plus_plus/weekly_window_ping.rs
codex-rs/app-server/src/codex_plus_plus/rate_limit_reset_credit.rs
codex-rs/tui/src/codex_plus_plus/auto_redeem_resets.rs
codex-rs/tui/src/codex_plus_plus/weekly_window_scheduler.rs
codex-rs/tui/src/chatwidget/codex_plus_plus/usage_reset_resume.rs
codex-rs/tui/src/app/codex_plus_plus/usage_reset_resume.rs
codex-rs/config/src/config_toml.rs
codex-rs/core/config.schema.json
codex-rs/login/src/account.rs
codex-rs/login/src/lib.rs
codex-rs/model-provider/src/lib.rs
codex-rs/model-provider/Cargo.toml
codex-rs/app-server/src/request_processors/account_processor/rate_limit_resets.rs
codex-rs/tui/src/app.rs
codex-rs/tui/src/app/event_dispatch.rs
codex-rs/tui/src/app_event.rs
codex-rs/tui/src/chatwidget.rs
codex-rs/tui/src/chatwidget/protocol.rs
codex-rs/tui/src/chatwidget/input_submission.rs
codex-rs/tui/src/chatwidget/interaction.rs
codex-rs/tui/src/chatwidget/settings.rs
codex-rs/tui/src/chatwidget/tests/helpers.rs
#24, #25, #28, #29, #33, #55, #81, #82, #84, #157; Upstream: openai/codex#28161, openai/codex#29618, openai/codex#32311, openai/codex#32586, openai/codex#32218, openai/codex#32540, #138, #162
Model-capacity retry Runtime Retry capacity-only sampling and Remote Compaction v2 failures on a bounded backoff, optionally continue indefinitely, and surface retry progress. codex-rs/config/src/codex_plus_plus/model_capacity_retry.rs
codex-rs/core/src/codex_plus_plus/model_capacity_retry.rs
codex-rs/tui/src/codex_plus_plus/model_capacity_retry.rs
codex-rs/config/src/config_toml.rs
codex-rs/core/config.schema.json
codex-rs/core/src/session/turn.rs
codex-rs/core/src/responses_retry.rs
codex-rs/core/src/compact_remote_v2.rs
codex-rs/tui/src/chatwidget/turn_runtime.rs
#18, #37, #40, #71, #138
Effective configuration locks Reproducibility Export and strictly replay effective session configuration, preserving base-instruction provenance and version/model-catalog checks after upstream removed the experimental lockfile surface. codex-rs/core/src/config_lock.rs
codex-rs/core/src/session/config_lock.rs
codex-rs/config/src/config_toml.rs
codex-rs/core/src/config/mod.rs
codex-rs/core/src/session/session.rs
codex-rs/features/src/feature_configs.rs
codex-rs/features/src/lib.rs
#115, #132, #134; Upstream: openai/codex#20405, openai/codex#38011, #138, #162
Codex++ settings menu and compact tool activity TUI Persist and verify fork controls from one focused settings surface. Compact mode moves transient routine command, MCP, web, hook, collaborator-wait, and background-terminal-wait activity into the existing status row; omits successful routine command, MCP, completed web-search, and successful completed-hook detail from the compact main conversation while retaining full Ctrl+T and raw output; and reduces patch history to one summary line. Failures, interactions, approvals, artifacts, and meaningful collaborator events remain visible. Resumed compact history follows the same insertion policy without rewriting committed native scrollback. Codex++ owns selection and persistence, the status override, active-cell suppression and detection, commit-time compact presentation, direct compact no-op wait suppression, one-row wait details, and the narrow resize-reflow rule that keeps a contracted bottom-aligned viewport anchored and returns visible history into the released rows so repeated popup cycles do not accumulate blank space. Global history render modes, pagination top-up, runtime transcript replay, and terminal clearing are explicit non-goals; upstream owns rich row accounting, pagination, and command grouping policy. codex-rs/config/src/codex_plus_plus/tool_activity.rs
codex-rs/tui/src/chatwidget/slash_dispatch/codex_plus_plus/mod.rs
codex-rs/tui/src/chatwidget/codex_plus_plus/mod.rs
codex-rs/tui/src/chatwidget/codex_plus_plus/compact_activity.rs
codex-rs/tui/src/codex_plus_plus/account_policy.rs
codex-rs/tui/src/tui/codex_plus_plus/viewport.rs
codex-rs/config/src/config_toml.rs
codex-rs/core/src/config/mod.rs
codex-rs/core/config.schema.json
codex-rs/tui/src/app_event.rs
codex-rs/tui/src/app/event_dispatch.rs
codex-rs/tui/src/bottom_pane/mod.rs
codex-rs/tui/src/chatwidget.rs
codex-rs/tui/src/chatwidget/command_lifecycle.rs
codex-rs/tui/src/chatwidget/hook_lifecycle.rs
codex-rs/tui/src/chatwidget/rendering.rs
codex-rs/tui/src/chatwidget/status_controls.rs
codex-rs/tui/src/chatwidget/tool_lifecycle.rs
codex-rs/tui/src/chatwidget/turn_runtime.rs
codex-rs/tui/src/history_cell/hook_cell.rs
codex-rs/tui/src/history_cell/mcp.rs
codex-rs/tui/src/history_cell/mcp_result.rs
codex-rs/tui/src/history_cell/search.rs
codex-rs/tui/src/multi_agents.rs
codex-rs/tui/src/status_indicator_widget.rs
codex-rs/tui/src/tui.rs
#15, #28, #37, #66, #112, #113, #126, #127, #128; Upstream: openai/codex#38921 (1f41cc5d92), openai/codex#39023 (f0904922f6), openai/codex#39619 (da6e68951b), #138, #162, #169
PreToolUse ask Guardian review Hooks Treat hook ask as a capability-gated automatic Guardian review for every tool and block unless a complete exact review approves. Fail closed before Guardian starts when the exact action cannot be prepared or would be truncated, with actionable guidance for shortening oversized commands. Carry an exact approval once into the initial unified exec so yolo mode may bypass only the existing destructive-command heuristic; resolved local exec shells expose their real dialect and bind the executable type/path into that receipt. Initial unified exec normalizes omitted login to profileless before shell review and launch; explicit login remains ineligible for the receipt. Upstream 0.155 owns exact review formatting and request budgeting; the isolated fork preflight retains the existing PreToolUse truncation rejection. A fork-owned adapter binds the issuing step to upstream's synchronous reviewer, keeps hook-requested review mandatory under full access, and type-erases the review future so POSIX release builds do not inline recursive session and auth futures. Explicit policy, sandbox, denial, review-failure, explicit-shell, and hard-deny behavior remains unchanged. Remote commands use the executor OS for danger parsing. Upstream #38032 owns approved-assessment history; PR #104 still owns bounded PreToolUse command receipts. codex-rs/core/src/guardian/codex_plus_plus/pre_tool_use.rs
codex-rs/core/src/tools/codex_plus_plus/pre_tool_use_review.rs
codex-rs/core/src/tools/codex_plus_plus/pre_tool_use_approval_store.rs
codex-rs/core/src/codex_plus_plus/guardian_exec_approval.rs
codex-rs/core/src/guardian/mod.rs
codex-rs/core/src/guardian/approval_request.rs
codex-rs/core/src/guardian/coverage.rs
codex-rs/core/src/tools/hook_names.rs
codex-rs/core/src/tools/registry.rs
codex-rs/core/src/tools/handlers/mcp.rs
codex-rs/core/src/tools/handlers/unified_exec/exec_command.rs
codex-rs/core/src/unified_exec/mod.rs
codex-rs/core/src/unified_exec/process_manager.rs
codex-rs/core/src/exec_policy.rs
codex-rs/core/src/hook_runtime.rs
codex-rs/hooks/src/events/pre_tool_use.rs
codex-rs/protocol/src/approvals.rs
codex-rs/app-server-protocol/src/protocol/v2/item.rs
#30, #36, #42, #88, #89, #91, #93, #104, #105, #117, #118, #130, #135; Upstream: openai/codex#32232, openai/codex#38032, openai/codex#39757, openai/codex#39772, #138, #162, #169
Managed Destructive Command Guard Hooks Detect, install, verify, enable, disable, update, and repair the latest approved JJLiebig DCG fork release through native APIs while migrating the legacy repository source and retaining its stable marketplace and plugin identity with one snapshotted release target and binary rollback; surface explicit upgrades in Codex++ settings and the existing fork tip slot, and introduce Guardian once per global profile. codex-rs/tui/src/codex_plus_plus/destructive_command_guard/mod.rs
codex-rs/tui/src/codex_plus_plus/destructive_command_guard/latest_release.rs
codex-rs/tui/src/chatwidget/slash_dispatch/codex_plus_plus/dcg.rs
codex-rs/config/src/codex_plus_plus/dcg_nux.rs
codex-rs/tui/src/codex_plus_plus/welcome.rs
codex-rs/config/src/config_toml.rs
codex-rs/core/config.schema.json
codex-rs/Cargo.lock
codex-rs/tui/Cargo.toml
codex-rs/tui/src/app.rs
codex-rs/tui/src/app_event.rs
codex-rs/tui/src/app/event_dispatch.rs
codex-rs/tui/src/app/startup_prompts.rs
codex-rs/tui/src/history_cell/session.rs
codex-rs/tui/src/tooltips.rs
codex-rs/tui/src/chatwidget/slash_dispatch.rs
#72, #80, #138
Native Windows TUI input ownership Platform Keep Windows console input in native mode, repair runtime drift without a blocking drain, rebuild the event stream safely, restore the original mode on exit, prevent non-TTY pipe children from inheriting the parent console, and route unrestricted Windows non-TTY commands through a hidden runner with windowless children, split descendant output, and job-bounded cleanup. Create unrestricted runner children suspended without a job-list attribute, then assign them before resume so MSIX aliases remain launchable; restricted-token children retain atomic job assignment at creation and reuse upstream's per-user shared private desktop. Upstream #34625 covers the initial mode toggle but not the fork's event-stream rebuild. codex-rs/tui/src/tui/codex_plus_plus/native_windows_input.rs
codex-rs/windows-sandbox-rs/src/codex_plus_plus/current_user_process.rs
codex-rs/windows-sandbox-rs/src/unified_exec/backends/codex_plus_plus/non_pty_runner.rs
codex-rs/tui/src/tui.rs
codex-rs/tui/src/tui/event_stream.rs
codex-rs/sandboxing/src/spawn.rs
codex-rs/utils/pty/src/pipe.rs
codex-rs/utils/pty/src/process.rs
codex-rs/windows-sandbox-rs/src/bin/command_runner/win.rs
codex-rs/windows-sandbox-rs/src/elevated/runner_client.rs
codex-rs/windows-sandbox-rs/src/process.rs
#8, #11, #20, #85, #86, #94, #95, #96, #97, #98, #100, #101, #108, #132; Upstream: openai/codex#23485, openai/codex#34625, openai/codex#40672, #162
TUI event-loop liveness TUI Keep fallback ThreadStarted session inference storage-independent so app-server notifications do not await SQLite or rollout reads on the TUI event loop after upstream's configured-session fast path. codex-rs/tui/src/app/thread_routing.rs #79, #130; Upstream: openai/codex#29368, openai/codex#39731
Cross-platform migration checksums Compatibility Keep embedded SQLite migration checksums stable across LF and CRLF packaging, while accepting databases created by either line-ending variant. codex-rs/state/src/migrations.rs .gitattributes
codex-rs/state/src/sqlite.rs
4662e307be
Bounded persistent diagnostic logging Runtime Persist only INFO-and-higher diagnostics by default while retaining existing target overrides, preventing TRACE/DEBUG transport noise from repeatedly churning logs_2.sqlite. codex-rs/state/src/log_db.rs #103; Upstream: openai/codex#28224, openai/codex#29432, openai/codex#35092, openai/codex#35308
Paginated resume ordinal safety Retired workaround Replaced the #121/#160 raw-envelope whitelist with the canonical decoder from upstream #42378 (69cebb5d15939bf9b6c1b4647b53879beab91ba2). Schema-valid decimal token counts, token usage records, and realtime records resume with continuous ordinals. Readers now use the canonical parser; RolloutLine no longer implements Deserialize. Unknown or schema-invalid payloads follow upstream skip behavior rather than the retired opaque-payload contract. No custom ordinal validator remains; reconcile the backport during normal upstream integration. Upstream canonical decoder and reader migration, with fork conflict resolutions only #121, #160, #161; Upstream: openai/codex#42378 (backported), openai/codex#35746 (open projection issue)
Codex++ welcome guidance TUI Replace upstream file-backed and platform-specific app promotion with a concise Codex++ tip and preserve the same help in session history. codex-rs/tui/src/codex_plus_plus/welcome.rs codex-rs/tui/src/tooltips.rs
codex-rs/tui/src/history_cell/session.rs
#43, #138
Install-aware update planning Updates Choose fork or upstream package, installer (including Vite+), registry, and version source under the JJLiebig owner from the detected install method for TUI and doctor updates. codex-rs/install-context/src/codex_plus_plus/update_plan.rs
codex-rs/tui/src/codex_plus_plus/update_action.rs
codex-rs/install-context/src/lib.rs
codex-rs/cli/src/doctor.rs
codex-rs/cli/src/doctor/updates.rs
codex-rs/tui/src/update_action.rs
codex-rs/tui/src/updates.rs
#48, #138, #162
Shared fork release status and lag guard Updates Cache one fork/upstream release view for update prompts and doctor, and warn when Codex++ trails stable upstream materially. codex-rs/install-context/src/codex_plus_plus/release_status.rs
codex-rs/tui/src/codex_plus_plus/release_status.rs
codex-rs/tui/src/codex_plus_plus/lag_warning.rs
codex-rs/cli/src/doctor/updates.rs
codex-rs/tui/src/updates.rs
codex-rs/tui/src/updates_cache.rs
codex-rs/tui/src/app.rs
#49, #52, #138
Explicit upstream switch CLI Transactionally replace a package-managed (including Vite+) or standalone Codex++ install with matching stable upstream Codex while preserving account data and rollback safety. codex-rs/cli/src/codex_plus_plus/upstream_switch.rs
codex-rs/cli/src/codex_plus_plus/standalone_switch.rs
codex-cli/bin/codex_plus_plus/windows_upstream_launcher.js
codex-rs/cli/src/main.rs
codex-cli/bin/codex.js
codex-cli/scripts/build_npm_package.py
codex-cli/package.json
#50, #51, #53, #138
Bounded local Rust validation Tooling Serialize heavyweight Rust jobs, keep Cargo and local test concurrency at four, and require focused targets plus approval for materially expensive validation. AGENTS.md codex-rs/.config/nextest.toml
justfile
43e1530c77
Fork build versioning Build Build native packages with the upstream version for shared crates and a temporary public -fork.N entrypoint version without leaving workspace changes; resolve TUI display, client metadata, and update comparisons from the installed package manifest at runtime, falling back to the crate version for unpackaged builds; use release-fast for local iteration while public release jobs explicitly use release. scripts/build_codex_plus_plus.py
codex-rs/tui/src/codex_plus_plus/runtime_version.rs
codex-rs/tui/src/version.rs and its TUI callers
codex-rs/Cargo.toml
codex-rs/Cargo.lock
codex-rs/cli/Cargo.toml
codex-rs/app-server/Cargo.toml
scripts/build_codex_package.py
scripts/codex_package/cli.py
f7c4e7bf01, #7, ebb84f6dde, #141, #142, #152, #162, #169
Managed verified installers Install Verify release assets, atomically switch managed generations, preserve shim provenance, serialize installs, and retain live generations on Windows and Unix. scripts/install/install-codex-plus-plus.ps1
scripts/install/install-codex-plus-plus.sh
scripts/install/install-codex-plus-plus-latest.ps1
scripts/install/install-codex-plus-plus-latest.sh
f7c4e7bf01, #31, #41, #44, #47
Codex++ npm packages Packaging Build package-aware root and platform npm artifacts with Codex++ names, aliases, repository metadata, and an exact native payload. codex-cli/scripts/codex_plus_plus/npm.py
codex-cli/bin/launcher.js
codex-cli/scripts/build_npm_package.py
codex-cli/bin/codex.js
codex-cli/package.json
scripts/stage_npm_packages.py
#45, #56
Recoverable Codex++ release pipeline Release Warm rolling full-release Cargo caches on the default branch with tree, runner, toolchain, and native-build identity; restore source mtimes only for content-identical files; export the checked-out repository root for upstream package helpers; select canonical Ubuntu archive mirrors with bounded apt retries and network timeouts; use LLVM linking for Windows; reuse checksum-verified Codex-built rusty_v8 artifacts; then use one intentional tag to validate, build three full-release native targets with forced V8 regeneration and bundled-bwrap integrity, verify exact npm payloads, handle npm's scalar and singleton-array metadata responses, publish idempotently through npm OIDC with provenance, submit all platform versions before a shared registry-confirmation wait of up to 20 minutes, publish the root under latest only after every platform is confirmed, recover a failed tag from its validated retained artifacts, and finally publish checksummed GitHub assets. New releases use GitHub-generated notes; existing releases retain their authored notes and receive the assets idempotently. Release applications and helpers share the compiled source commit; Windows x64, macOS ARM64, and Linux x64 archives and npm payloads include the same-build voice helper, pinned upstream native runtime, and license notices (plus app-local Visual C++ runtime resolved from the selected Windows toolchain before building); Linux voice uses the upstream GNU helper and requires glibc alongside the musl app; moved-package startup resolves aliased temporary roots and verifies plugin initialization without opening audio devices. .github/workflows/codex-plus-plus-release.yml
scripts/codex_package/codex_plus_plus/source_mtime_cache.py
scripts/codex_package/codex_plus_plus/release.py
scripts/codex_package/codex_plus_plus/voice.py
.github/scripts/build-windows-voice.ps1
third_party/voice/assemble_package.py (fork release version)
.github/actions/setup-msvc-env/setup-msvc-env.ps1 (redistributable path export)
.github/actions/setup-msvc-env/action.yml
.github/actions/setup-rusty-v8/action.yml
#32, #35, #54, #57, #65, #69, #70, #109, #119, #120, #124, #140, #142, #146, #147, #148, #173, #174, #175
Completion-driven background waiting Runtime Opt-in exec_command.on_exit="wake" keeps the live turn working until process exit, resumes after each 55 minutes of background waiting without killing the process or consuming its eventual completion notification, runs turn-start context injection once, preserves completion delivery and same-turn diff tracking across task replacement, batches ready exits, and disarms on observation, interruption or terminal cleanup. Uses captured model settings when recording completion inputs and retains the live turn across upstream 0.155 Guardian budget retries. Owned clock.sleep and v2 wait_agent yield immediately to ready completions, which are recorded once at the next sampling boundary. Background results explicitly prohibit sleeping/polling; completion batches include exit codes and bounded, escaped untrusted output tails with session references for further reads. The existing TUI Working indicator remains visible during the actual registered completion wait, with live thread-status snapshots preserving it across thread switches and reconnects. Persistent-session, process-only notifications; one-turn codex exec and subagents keep long tool waits. No restart recovery or output-pattern monitoring. codex-rs/core/src/unified_exec/codex_plus_plus/completion_wake.rs
codex-rs/core/src/context/codex_plus_plus/background_completion.rs
codex-rs/app-server/src/codex_plus_plus/completion_wait.rs
codex-rs/tui/src/codex_plus_plus/completion_wait.rs
codex-rs/tui/src/chatwidget/codex_plus_plus/completion_wait.rs
Core unified-exec handler/manager and process-state accessor, active-turn input queue/loop and abort paths; context and shared test-fixture registration; transient core event and app-server active flag, TUI session snapshot and status restore #166, #168; Upstream: openai#32188, #169, #170
Event-driven progress updates Prompts Default-on disable_unnecessary_updates in /codexplusplus removes timed-update/wait-limit instructions from the request copy and prefers meaningful progress and completion waits. codex-rs/core/src/codex_plus_plus/quiet_updates.rs
codex-rs/config/src/codex_plus_plus/quiet_updates.rs
codex-rs/tui/src/chatwidget/slash_dispatch/codex_plus_plus/mod.rs
Config field/schema and exports, request instruction rendering, settings event dispatch #166; Upstream: openai#31935