Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates the Termux/Android release train for rust-v0.122.0-alpha.10, adding Android compatibility adjustments (notably around advisory file locks and platform-specific behavior) and introducing tooling to audit file-lock usage.
Changes:
- Add a new
codex-utils-file-lockcrate and refactor several call sites to treatErrorKind::Unsupportedfile locking as a non-fatal outcome for Termux/Android. - Adjust Android-specific behavior across TUI clipboard handling, shell discovery, filesystem watching, login callback deduplication, and keyring dependency selection.
- Update workspace metadata and dependencies for the release (including
v8version bump) and add Termux release metadata + a lock-audit script/just target.
Reviewed changes
Copilot reviewed 24 out of 25 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| scripts/termux-lock-audit.sh | New ripgrep-based audit script to locate candidate advisory file-lock calls needing Termux handling. |
| justfile | Adds a termux-lock-audit just target to run the new audit script. |
| codex-rs/utils/file-lock/src/lib.rs | New helper API to treat unsupported file locking as an explicit outcome. |
| codex-rs/utils/file-lock/Cargo.toml | Defines the new codex-utils-file-lock crate in Cargo. |
| codex-rs/utils/file-lock/BUILD.bazel | Adds Bazel build definition for the new crate. |
| codex-rs/tui/src/clipboard_paste.rs | Gates clipboard image paste APIs/variants for non-Android; keeps Android returning a clear unsupported error for temp-file paste. |
| codex-rs/tui/src/clipboard_copy.rs | Refines stderr suppression + clipboard behavior for Android vs macOS/others. |
| codex-rs/rollout/src/recorder.rs | Falls back to UTC timestamp when local time is unavailable (helps Android/Termux). |
| codex-rs/rmcp-client/Cargo.toml | Adds Android-specific keyring dependency configuration. |
| codex-rs/login/src/server.rs | Adds callback state to dedupe/retry OAuth callback handling and improve redirect behavior. |
| codex-rs/keyring-store/Cargo.toml | Adds Android-specific keyring dependency configuration. |
| codex-rs/execpolicy/src/amend.rs | Switches exec policy file locking to the optional lock helper. |
| codex-rs/execpolicy/Cargo.toml | Adds dependency on codex-utils-file-lock. |
| codex-rs/core/src/shell.rs | Adds Termux PREFIX-based binary path probing and improves sh fallback paths for Android. |
| codex-rs/core/src/message_history.rs | Switches history file locking to optional try-lock helpers. |
| codex-rs/core/src/installation_id.rs | Switches installation-id file locking to optional lock helper. |
| codex-rs/core/src/file_watcher.rs | Provides a no-op watcher implementation on Android while preserving test support. |
| codex-rs/core/Cargo.toml | Adds codex-utils-file-lock and enables vendored OpenSSL for aarch64-linux-android. |
| codex-rs/arg0/src/lib.rs | Updates PATH helper lock handling to tolerate unsupported file locking and adjusts tests accordingly. |
| codex-rs/arg0/Cargo.toml | Adds dependency on codex-utils-file-lock. |
| codex-rs/app-server/src/message_processor.rs | Normalizes originator for codex-tui to the default originator. |
| codex-rs/app-server/src/codex_message_processor.rs | Limits the login issuer override env var to debug builds. |
| codex-rs/Cargo.toml | Adds the new crate to the workspace and bumps the pinned v8 version. |
| codex-rs/Cargo.lock | Records the new crate and updates v8 lock data. |
| .github/termux-release.json | Adds Termux release metadata for this upstream tag/train. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
wallentx
added a commit
that referenced
this pull request
Apr 23, 2026
* feat: Add Android build target to release workflow * fix: Handle unsupported file locking on some filesystems * fix: Disable PTY support on Android * Remove job step skips for android * Restore pty Signed-off-by: wallentx <william.allentx@gmail.com> * chore: Update Android API level to 24 for Termux compatibility Signed-off-by: wallentx <william.allentx@gmail.com> * fix: Handle unsupported file locking on some filesystems Signed-off-by: wallentx <william.allentx@gmail.com> * feat: Add execve wrapper and improve arg0 dispatch Signed-off-by: wallentx <william.allentx@gmail.com> * ci: link c++_shared on android target * fix(ci): Link against c++abi instead of c++_shared on Android Signed-off-by: wallentx <william.allentx@gmail.com> * chore: Update v8 version to 146.9.0 Signed-off-by: wallentx <william.allentx@gmail.com> * chore: Update v8 version to 146.9.0 and add android target Signed-off-by: wallentx <william.allentx@gmail.com> * chore: Update v8 dependency version to 146.9.0 Signed-off-by: wallentx <william.allentx@gmail.com> * fix(core): Handle unsupported file locking in message history Signed-off-by: wallentx <william.allentx@gmail.com> * fix(core): Retry file locking and handle unsupported error kind Signed-off-by: wallentx <william.allentx@gmail.com> * fix: Use UTC time as fallback when local time is unavailable Signed-off-by: wallentx <william.allentx@gmail.com> * feat: Add Termux support, disable file watcher on Android Signed-off-by: wallentx <william.allentx@gmail.com> * fix(pty): Always enable ConPTY support on non-Windows platforms Signed-off-by: wallentx <william.allentx@gmail.com> * fix(core): Handle file locking errors other than unsupported Signed-off-by: wallentx <william.allentx@gmail.com> * feat: Update rusty_v8 to 146.4.0 and add file-lock util Signed-off-by: wallentx <william.allentx@gmail.com> * feat: Improve Android compatibility and add lock audit script Signed-off-by: wallentx <william.allentx@gmail.com> * fix(login): Use 127.0.0.1 redirect host on Android Signed-off-by: wallentx <william.allentx@gmail.com> * feat(login): Add login debug and originator for tui client Signed-off-by: wallentx <william.allentx@gmail.com> * feat(login): Improve debug logging for OAuth flow Signed-off-by: wallentx <william.allentx@gmail.com> * feat(login): Prevent concurrent login attempts with same code Signed-off-by: wallentx <william.allentx@gmail.com> * refactor(login): Remove debug logging and related functions Signed-off-by: wallentx <william.allentx@gmail.com> * fix(login): Remove unused error description in token exchange failure Signed-off-by: wallentx <william.allentx@gmail.com> * Release 0.122.0-alpha.10 * Seed Termux release automation * Prepare Termux rust-v0.122.0-alpha.10 (#18) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * feat: Implement file locking fallback using sibling directories Signed-off-by: wallentx <william.allentx@gmail.com> * Release 0.123.0-alpha.8 * cleanup duplicate after merge conflict * Seed Termux release automation * Fix release Cargo.toml merge base (#24) * Fix locked v8 version for Termux release * Add missing file-lock crate to release branch * Vendor OpenSSL for Android release builds * Apply remaining Termux compatibility fixes * Add missing core file-lock dependency * Prepare Termux rust-v0.123.0-alpha.8 (#25) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: William Allen <wallentx@users.noreply.github.com> * checkpoint: prepare release/0.123.0 for wallentx/termux-target * Prepare Termux rust-v0.124.0-alpha.1 --------- Signed-off-by: wallentx <william.allentx@gmail.com> Co-authored-by: wallentx <william.allentx@gmail.com> Co-authored-by: William Allen <wallentx@users.noreply.github.com> Co-authored-by: alexsong-oai <alexsong@openai.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: jif-oai <jif@openai.com>
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.122.0-alpha.10rust-v0.122.0-alpha.10-termuxrelease/0.122.0wallentx/termux-targetMerging this PR is the manual approval gate. The release build workflow uploads the Android artifact to test; after merge, the promotion workflow attaches that exact artifact to
rust-v0.122.0-alpha.10-termux.Upstream notes
Release 0.122.0-alpha.10