Skip to content

Termux rust-v0.141.0#241

Open
unemployabot[bot] wants to merge 322 commits into
release/0.141.0from
upstream/rust-v0.141.0
Open

Termux rust-v0.141.0#241
unemployabot[bot] wants to merge 322 commits into
release/0.141.0from
upstream/rust-v0.141.0

Conversation

@unemployabot

@unemployabot unemployabot Bot commented Jun 18, 2026

Copy link
Copy Markdown

Termux release train

This PR is intentionally created from wallentx/termux-target with the Termux release automation files copied from dev, 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-termux and opens the checkpoint PR.

Upstream notes

New Features

Bug Fixes

Chores

Changelog

Full Changelog: openai/codex@rust-v0.140.0...rust-v0.141.0

wallentx and others added 30 commits June 1, 2026 16:10
…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
…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
…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
…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
…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
adrian-openai and others added 25 commits June 17, 2026 11:23
## 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.
…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
…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
@unemployabot unemployabot Bot requested a review from wallentx June 18, 2026 04:59
@unemployabot unemployabot Bot added termux-release Termux release automation release-train Release train PR labels Jun 18, 2026
@github-actions

Copy link
Copy Markdown

Termux Android artifact ready for testing:

You must be signed in to GitHub with repository access to download Actions artifacts.

@github-actions github-actions Bot added the binary-ready Android binary is ready for testing label Jun 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

binary-ready Android binary is ready for testing release-train Release train PR termux-release Termux release automation

Projects

None yet

Development

Successfully merging this pull request may close these issues.