Termux rust-v0.141.0#241
Open
unemployabot[bot] wants to merge 322 commits into
Open
Conversation
Termux rust-v0.136.0
…nt/wallentx_termux-target_from_release_0.136.0_ef2492451848
…et_from_release_0.136.0_ef2492451848 checkpoint: into wallentx/termux-target from release/0.136.0 @ ef24924
…-181 # Conflicts: # .github/workflows/python-sdk-release.yml
Termux rust-v0.137.0-alpha.4
…nt/wallentx_termux-target_from_release_0.137.0_48435f30bb83
…et_from_release_0.137.0_48435f30bb83 checkpoint: into wallentx/termux-target from release/0.137.0 @ 48435f3
Termux rust-v0.137.0-alpha.5
…nt/wallentx_termux-target_from_release_0.137.0_14fa2b3596ab
…et_from_release_0.137.0_14fa2b3596ab checkpoint: into wallentx/termux-target from release/0.137.0 @ 14fa2b3
- TUI controls now support F13-F24 keybindings, paste in searchable menus, and a compact reasoning-only status/title item (openai#25329, openai#25400, openai#25504). - Enterprise/admin flows now show monthly credit limits and can apply cloud-managed config bundles, including EDU workspaces (openai#24812, openai#24617, openai#24619, openai#24620, openai#24622, openai#25963). - Remote-control clients can start pairing and list or revoke controller grants through app-server v2 RPCs (openai#25675, openai#25785). - Plugin workflows gained machine-readable `codex plugin list --json` output and cached remote catalog suggestions (openai#25330, openai#25457). - Hosted web and image tools are available in more code-mode flows, with standalone web searches able to run in parallel (openai#25176, openai#25702, openai#25890, openai#25923). - Multi-agent v2 keeps runtime choice with each thread and exposes cleaner follow-up and metadata defaults for spawned agents (openai#25266, openai#25636, openai#25720, openai#25721, openai#25722, openai#25841, openai#26114). ## Bug Fixes - Cancelling a submitted prompt before visible output now restores the draft, attachments, and collaboration mode for editing (openai#25316). - Slash-command filtering and footer shortcut hints now reset or render according to the current UI state (openai#25492, openai#25625). - Platform reliability improved for macOS app launches and Windows SQLite startup, thread resume, and sandbox setup refreshes (openai#25485, openai#25490, openai#25509, openai#25949). - Plugin loading preserves app manifest order, deduplicates local/remote curated installs, and treats malformed `skills` fields as warnings (openai#25491, openai#25681, openai#25717, openai#25782). - Permission requests and approvals now carry environment identity, and managed MITM proxying exports readable CA bundles to child commands (openai#25850, openai#25858, openai#25862, openai#22668). - Local session history is safer for compressed rollouts, renamed titles, pathless side-chat reloads, and stack-heavy startup/config rebuilds (openai#25087, openai#25624, openai#25661, openai#25814, openai#25844, openai#25847). ## Documentation - Added app-server docs and generated schema updates for monthly credit limits, remote-control RPCs, and environment-scoped permission approvals (openai#24812, openai#25675, openai#25785, openai#25862). - Moved repo review rules and contributor conventions into `AGENTS.md`, including Rust test-module layout and Python 3 compatibility guidance (openai#25682, openai#25690, openai#25738). ## Chores - Root formatting and Justfile workflows are more complete and Windows-aware (openai#24983, openai#25165, openai#25683). - Rust CI and release workflows use the git CLI for Cargo fetches to avoid intermittent libgit2/submodule failures (openai#25644, openai#25775). - Python SDK releases now publish runtime wheels from the SDK workflow and pin to a glibc-compatible runtime package (openai#25906, openai#25907). - Bazel CI’s BuildBuddy wrapper was reintroduced with Windows-safe process handling and validation (openai#25915). - Shared prompts, context fragments, and skills plumbing moved into dedicated crates/extension paths to reduce `codex-core` coupling (openai#25151, openai#25953, openai#25959, openai#26106, openai#26122, openai#26167). ## Changelog Full Changelog: openai/codex@rust-v0.136.0...rust-v0.137.0 - openai#25329 feat(tui): allow function keys through f24 in keymaps @fcoury-oai - openai#24617 Add config bundle transport types @joeflorencio-openai - openai#25435 Add build_unsigned_archive release mode @shijie-oai - openai#24619 Compose requirements layers @joeflorencio-openai - openai#24620 Add cloud-managed config layer support @joeflorencio-openai - openai#25462 Revert "Add build_unsigned_archive release mode" @shijie-oai - openai#25113 store and expose parent_thread_id on Threads @owenlin0 - openai#25266 Set multi-agent v2 dogfood defaults @jif-oai - openai#25060 Add goal extension idle continuation @jif-oai - openai#25576 Use templates for goal steering prompts @jif-oai - openai#25577 Remove Plan-mode gate from idle turn injection @jif-oai - openai#25096 Add goal extension GoalApi @jif-oai - openai#25087 Read compressed rollouts and materialize before append @jif-oai - openai#25628 [codex] fix compressed rollout fixture SessionMeta initialization @fcoury-oai - openai#25316 feat(tui): restore output-free cancelled prompts @fcoury-oai - openai#23763 Preserve auto-review approval policy in codex exec @won-openai - openai#25400 Allow paste in searchable selection menus @charliemarsh-oai - openai#25485 Use deep links for macOS codex app paths @etraut-openai - openai#25492 Reset slash popup selection when filter changes @etraut-openai - openai#25504 Add reasoning-only status surface item @etraut-openai - openai#25624 Preserve renamed thread titles during reconciliation @jif-oai - openai#25089 Compress cold local rollouts @jif-oai - openai#25490 Disable SQLite intrinsics for Windows x64 releases @etraut-openai - openai#25603 [codex] Inherit raw events for spawned child listeners @vivi - openai#25644 [codex] Use git CLI for release Cargo fetches @shijie-oai - openai#25655 nit: drop todo @jif-oai - openai#25654 Parallelize cold rollout compression @jif-oai - openai#25121 exec-server: add environment path refs @starr-openai - openai#25636 [codex] Rename multi-agent v2 assign_task to followup_task @jif-oai - openai#25491 Preserve plugin app manifest order @charlesgong-openai - openai#24983 [codex] Make justfile recipes Windows-aware @iceweasel-oai - openai#25151 [codex] Consolidate shared prompts in codex-prompts @anp-oai - openai#25659 Throttle repeated rollout compression runs @jif-oai - openai#25165 Check root Python script formatting in CI @anp-oai - openai#23767 [codex-rs] auto-review model override @won-openai - openai#25149 exec-server: canonicalize bound filesystem paths @starr-openai - openai#25669 fix: deflake zsh-fork approval test @jif-oai - openai#24979 feat: gate unified exec zsh fork composition @bolinfest - openai#24980 refactor: hide shell override for zsh fork unified exec @bolinfest - openai#25679 Add rollout compression counters @jif-oai - openai#25682 [codex] document out-of-line test module convention @anp-oai - openai#25680 Add rollout compression histograms @jif-oai - openai#25689 [codex] Generalize deferred nested tool guidance @sayan-oai - openai#25690 Add Python version compatibility guidance @anp-oai - openai#25681 fix: Deduplicate installed local and remote curated plugins @xl-openai - openai#25701 fix: rename McpServer to TestAppServer @bolinfest - openai#25702 [codex] enable parallel standalone web search calls @sayan-oai - openai#25705 Fix stale TestAppServer rename in plugin_list test @bolinfest - openai#25684 Move tool search metadata onto ToolExecutor @jif-oai - openai#25625 fix(tui): clarify footer shortcut overlay hints @fcoury-oai - openai#25649 [codex] Publish release symbol artifacts @nornagon-openai - openai#25661 Reject directory rollout paths for pathless side chats @bolinfest - openai#22668 Wire managed MITM CA trust into child env @winston-openai - openai#25712 app-server: remove experimental persist_extended_history bool flag @owenlin0 - openai#24621 Move cloud requirements crate to cloud config @joeflorencio-openai - openai#25717 Handle invalid plugin skills manifest field @xli-oai - openai#25675 feat(remote-control): add pairing start @apanasenko-oai - openai#25683 [codex] Add comprehensive root formatting check @anp-oai - openai#25738 Move code review rules into AGENTS @pakrym-oai - openai#24812 feat: show enterprise monthly credit limits in status @efrazer-oai - openai#25330 [codex] Add plugin list JSON output @xl-openai - openai#25457 [codex] Cache remote plugin catalog for suggestions @xl-openai - openai#25783 [codex] Move plugin discoverable logic into core-plugins @xl-openai - openai#25782 [codex] Validate plugin skill base names @xl-openai - openai#25814 feat: reuse compressed rollout search snippets @jif-oai - openai#25720 Add multi-agent runtime metadata types @jif-oai - openai#25721 Persist multi-agent runtime metadata @jif-oai - openai#25722 Resolve per-thread multi-agent runtime @jif-oai - openai#25841 session: keep startup prewarm aligned with resolved multi-agent runtime @jif-oai - openai#25840 fix: main oops @jif-oai - openai#25723 Test remote multi-agent runtime selector override @jif-oai - openai#25724 Test runtime selector before first turn @jif-oai - openai#25844 Reduce stack pressure in session startup and config rebuilds @jif-oai - openai#25857 flake: Keep plugin test homes alive @jif-oai - openai#25847 Run Codex async main on a sized stack @jif-oai - openai#25775 [codex] Use git CLI for Cargo fetches across Rust workflows @anp-oai - openai#25167 [app-server][core] Add connector-level Guardian reviewer overrides @zamoshchin-openai - openai#25868 Skip startup prewarm when websockets are disabled @jif-oai - openai#25156 Route Bazel CI through shared BuildBuddy remote config wrapper @anp-oai - openai#25739 core: derive built-in permission profiles from raw policies @bolinfest - openai#25909 [codex] Revert shared BuildBuddy Bazel wrapper @anp-oai - openai#25850 Key request-permission grants by environment @jif-oai - openai#25707 [codex-analytics] Track CodexErr details in turn analytics @rhan-oai - openai#25858 Add environmentId to request_permissions @jif-oai - openai#25176 Route standalone image generation through host finalization md @won-openai - openai#25916 Fix Windows release PDB staging @shijie-oai - openai#25862 Propagate permission approval environment id @jif-oai - openai#25907 [codex] Pin Python SDK to glibc-compatible runtime @aibrahim-oai - openai#24859 Use environment secrets for Azure signing @shijie-oai - openai#25509 Fix Windows running thread resume path normalization @etraut-openai - openai#25135 Populate workspace kind on Codex turn events @knittel-openai - openai#24622 Switch runtime to cloud config bundle @joeflorencio-openai - openai#25938 fix: update image generation test helper rename @joeflorencio-openai - openai#25911 core: stop passing legacy SandboxPolicy to guardian reviews @bolinfest - openai#25668 Split cloud config bundle service modules @joeflorencio-openai - openai#25890 [codex] Keep hosted tools visible in code-only mode @aibrahim-oai - openai#25867 Add remote request permissions integration coverage @jif-oai - openai#25943 config: remove dead profile sandbox fallback @bolinfest - openai#25948 Revert "Use environment secrets for Azure signing" @shijie-oai - openai#25923 Expose standalone image generation in code mode @won-openai - openai#25906 [codex] Publish Python runtime wheels with Python SDK releases @aibrahim-oai - openai#25953 feat: add skills extension scaffold @jif-oai - openai#25915 [codex] Fix Windows BuildBuddy Bazel wrapper execution @anp-oai - openai#25926 config: express implicit sandbox defaults as permission profiles @bolinfest - openai#25959 feat: add extension turn-input contributors @jif-oai - openai#25963 Allow EDU accounts to fetch cloud config bundles @joeflorencio-openai - openai#25785 feat(app-server): add remote control client management RPCs @apanasenko-oai - openai#25988 revert: publish release symbol artifacts @shijie-oai - openai#26114 feat: default hide_spawn_agent_metadata to true @jif-oai - openai#26122 chore: extract context fragments into dedicated crate @jif-oai - openai#26144 Reject MAv2 close_agent self-targets @jif-oai - openai#26106 skills: resolve per-turn catalogs from turn input context @jif-oai - openai#26155 fix: serialize goal progress accounting @jif-oai - openai#26156 chore: mechanical rename @jif-oai - openai#26167 Implement v1 skills extension prompt injection @jif-oai - openai#26176 fix: main @jif-oai - openai#25949 [codex] Restore setup helper UAC manifest @iceweasel-oai
Termux rust-v0.137.0
…nt/wallentx_termux-target_from_release_0.137.0_dc5fa5274029
…et_from_release_0.137.0_dc5fa5274029 checkpoint: into wallentx/termux-target from release/0.137.0 @ dc5fa52
…-187 # Conflicts: # .github/workflows/python-sdk-release.yml
Termux rust-v0.138.0-alpha.1
…nt/wallentx_termux-target_from_release_0.138.0_6361794b1ec7
…et_from_release_0.138.0_6361794b1ec7 checkpoint: into wallentx/termux-target from release/0.138.0 @ 6361794
## Stack This is PR 1 of the simplified HAI single-run-task stack: - [openai#19047](openai#19047) Agent Identity assertion and task-registration primitives, including the shared run-task helper used by existing Agent Identity JWT auth. - [openai#19049](openai#19049) Disabled-by-default ChatGPT auth opt-in that provisions/reuses persisted Agent Identity runtime auth and its single run task. - [openai#19051](openai#19051) Run-scoped provider auth that uses one backend-owned task id for first-party inference and compaction requests. [openai#19054](openai#19054) collapsed out of the active stack because the simplified design no longer needs a separate background/control-plane task helper. ## Summary The simplified POC shape is one backend-owned task per Agent Identity run. This PR makes the first layer match that final shape directly instead of introducing task targets, caller-owned external task refs, or intermediate wrappers that later PRs would need to undo. What changed: - keeps the `AgentAssertion` wire payload as `agent_runtime_id`, `task_id`, `timestamp`, and `signature` - exposes `register_agent_task` as the single task-registration helper for both existing Agent Identity JWT auth and the ChatGPT-registration path added later in the stack - makes task registration send only the signed registration timestamp; the backend owns the returned opaque task id - removes the unused target/task-kind/external-task-ref surfaces from `codex-agent-identity` - keeps Agent Identity JWT JWKS lookup separate from agent/task registration URL derivation - updates Agent Identity JWT auth to register one run task during auth construction and share that task across cloned auth handles This PR intentionally does not enable ChatGPT-derived Agent Identity. That opt-in and config gate are added in the next PR. ## Testing - `just test -p codex-agent-identity`
…nai#28671) ## Summary - Revert openai#28655, restoring the thread `recencyAt` behavior introduced by openai#27910. - Move `threads_recency_at` to migration 0039 so it no longer collides with `external_agent_config_imports` at version 0038. - Repair databases that already applied the recency migration as version 38 by moving the matching migration-history row to version 39 before SQLx validation. The current version-38 migration can then apply normally. ## Validation - `just test -p codex-state migrations::tests::repairs_recency_migration_that_was_applied_as_version_38` - `just test -p codex-state -p codex-rollout -p codex-thread-store -p codex-app-server-protocol -p codex-tui`: 3,439 passed; six TUI tests could not open the machine's existing read-only incident database at `~/.codex/sqlite/state_5.sqlite`. - `just fix -p codex-state` - `just fmt` - Verified that state migration versions are unique.
This mechanically extracts the existing TUI plugin catalog and detail popup rendering from `chatwidget/plugins.rs` into a new `chatwidget/plugin_catalog.rs` module. `plugins.rs` now keeps the stateful plugin workflow and orchestration, while `plugin_catalog.rs` owns the presentation-heavy catalog/detail popup construction and its pure helpers. The goal is to keep `plugins.rs` focused before later plugin sharing work adds more catalog behavior. - Moves existing catalog/detail popup builders and related pure helpers into `plugin_catalog.rs` - Leaves plugin fetch/state/key handling in `plugins.rs` - Adds only minimal sibling-module visibility/import wiring - Intentionally makes no product behavior or UI changes beyond the code move
## Summary Updates the bundled OpenAI Docs skill to use compact, title-like search queries. This performs better in Codex. ## Validation - OpenAI Docs skill validation passed - `git diff --check`
## Why It should be possible for app-server to handle "foreign" OS paths in unified_exec working directories, allowing e.g. a Linux app-server to run processes on e.g. a Windows exec-server. ## What Convert the core unified_exec cwd values to use `PathUri`. Adds fallible path conversion in several places to try to minimize the scope of this change. The only time this change suppresses errors from converting `PathUri` to an `AbsolutePathBuf` is when the turn is configured with no sandboxing at all to allow us to make progress testing without sandboxing. Future changes to apply_patch and sandboxing will clean up these error paths. A tool's cwd is resolved from joining a model-provided workdir to the environment's cwd. When using `AbsolutePathBuf::join()`, an absolute-path workdir would overwrite the environment's cwd and we would resolve permissions/sandboxing against the model-provided path. This change extends `PathUri::join()` to also treat an absolute rhs as an override of the base/lhs. This also removes some coverage from the remove_env_windows tests until a follow-up converts foreign paths in command exec events correctly. ## Breaking Changes When using `AbsolutePathBuf::join()` for workdir resolution, we ended up resolving tilde-prefixed paths against the app-server's `$HOME`, e.g. `~/foo/bar` becomes `/home/anp/foo/bar`. It's difficult to do this with `PathUri` joining, so after offline discussion this PR no longer implements it. A quick check of some power users' rollouts suggests that models don't actually generate home-prefixed absolute working directories for their spawns, so this shouldn't have any real blast radius.
) ## Summary - Track plugin install failures through the unified `codex_plugin_install_failed` event for local installs, remote install preflight failures, bundle failures, and remote catalog/backend failures. - Send classified `error_type` values in plugin install failure analytics instead of raw error strings. - Stop sending raw external-agent import errors in analytics while preserving raw failure details in app-facing import notifications/history. - Keep raw plugin/migration diagnostics in `tracing::warn!` logs. - Keep remote failure plugin names as the existing local placeholder (`unknown`) and remove the extra telemetry plugin-name override. - Change `ExternalAgentConfigImportParams.source` from a generated enum to `string | null`, with legacy `claudeCode` / `claudeCowork` inputs normalized to existing analytics values. ## Testing
## Why Services that proxy the exec-server environment registry endpoints need to deserialize and forward the same Noise registration and harness-key validation payloads. Those wire models currently live as private, serialize-only structs in `exec-server`, which forces consumers to duplicate the contract. ## What changed - Add owned serde models for registration and harness-key validation requests and responses. - Use those models in the existing exec-server registry client. - Re-export the models from `codex-exec-server` and `codex-core-api`. - Keep the harness authorization request free of a derived `Debug` implementation so it is not accidentally logged. ## Testing - Focused exec-server registration and harness-key validation tests: 2 passed. - `cargo check -p codex-core-api` The full `codex-exec-server` suite compiled and ran 254 tests: 222 passed, while 32 existing filesystem sandbox tests could not run under the nested macOS sandbox (`sandbox_apply: Operation not permitted`). Co-authored-by: Codex <noreply@openai.com>
## Summary - allow local marketplace `source.path: "."` and `source.path: "./"` to resolve to the marketplace root - keep `""` invalid and preserve rejection of non-root paths without `./` plus non-normal/traversal paths - add focused regression coverage for repo-root plugin layouts and rejected local paths ## Tests - `RUSTUP_TOOLCHAIN=stable just fmt` - `RUSTUP_TOOLCHAIN=stable just test -p codex-core-plugins` - `RUSTUP_TOOLCHAIN=stable just fix -p codex-core-plugins` Note: plain pinned-toolchain `just fmt` was blocked locally by a rustup `clippy` component conflict, so validation used the working stable 1.95 toolchain fallback.
## Why macOS Bazel jobs fail before target analysis because the pinned Apple CDN object now returns HTTP 403. ## What Uprev the pin to Apple's currently live macOS 26.5 Command Line Tools package, including its checksum and SDK extraction path. ## Validation - Built `@macos_sdk//sysroot` from a fresh Bazel output root. - Regenerated and checked `MODULE.bazel.lock`; it remains unchanged.
Add more tracing spans around tool building.
## Why `PathUri::join` should not depend on the app-server compatibility wrapper `LegacyAppPathString` to parse native paths. Native path parsing belongs to the URI abstraction that it constructs. ## What Move platform-independent native path parsing into the root `PathUri` module. `PathUri::join` and `LegacyAppPathString` now share the crate-private `PathUri::from_absolute_native_path` constructor.
Termux rust-v0.141.0-alpha.6
…nt/wallentx_termux-target_from_release_0.141.0_96f6efe5debd
## Why
Codex can run a remote exec server through the Noise relay, but the
normal
environment-manager path could not establish an
environment-registry-backed
harness connection. Signed rendezvous URLs and harness authorizations
are
short-lived, so reconnects must fetch a fresh bundle instead of
retaining
stale connection credentials. A stalled registry request must also fail
within
the regular remote connection deadline, without exposing these
credentials in
debug logs.
Issue: N/A (internal environment-service integration).
## What Changed
- Add environment-manager configuration for a registry-backed Noise
rendezvous
environment.
- Request a fresh bundle from
`/cloud/environment/{environment_id}/connect` for every physical harness
connection, using the existing 10-second remote connection timeout.
- Share the Environment Registry register, connect, and validate wire
payloads
through `codex-exec-server` and `codex-core-api`.
- Redact the signed rendezvous URL and harness authorization from the
public
connect response's `Debug` output.
- Add focused coverage for registry bundle retrieval, stalled requests,
and
credential redaction.
…et_from_release_0.141.0_96f6efe5debd checkpoint: into wallentx/termux-target from release/0.141.0 @ 96f6efe
Termux rust-v0.141.0-alpha.7
…nt/wallentx_termux-target_from_release_0.141.0_8c573573be47
…et_from_release_0.141.0_8c573573be47 checkpoint: into wallentx/termux-target from release/0.141.0 @ 8c57357
|
Termux Android artifact ready for testing:
You must be signed in to GitHub with repository access to download Actions artifacts. |
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.
Termux release train
rust-v0.141.0rust-v0.141.0-termuxrelease/0.141.0wallentx/termux-targetThis PR is intentionally created from
wallentx/termux-targetwith the Termux release automation files copied fromdev, then targeted at the upstream release branch. If GitHub reports conflicts, resolve them manually by keeping the upstream release code while preserving the Termux compatibility fixes.Merging this PR is the manual approval gate. The release build workflow uploads the Android artifact to test; after merge, the deployment workflow attaches that exact artifact to
rust-v0.141.0-termuxand opens the checkpoint PR.Upstream notes
New Features
Bug Fixes
codex execthread start and resume, while blockingPostToolUsehooks correctly reject code-mode tool calls. (Preserve hook trust bypass in codex exec threads openai/codex#26434, Respect blocking PostToolUse hooks in code mode openai/codex#28365)wait_agent. (chore: restore exec-server relay keepalives openai/codex#28286, core: let steer interrupt wait_agent openai/codex#28341)Chores
Changelog
Full Changelog: openai/codex@rust-v0.140.0...rust-v0.141.0