Skip to content

Fix Android SDK license step under pipefail#3

Merged
DioNanos merged 1 commit into
mainfrom
fix/gha-ndk-pipefail
Apr 16, 2026
Merged

Fix Android SDK license step under pipefail#3
DioNanos merged 1 commit into
mainfrom
fix/gha-ndk-pipefail

Conversation

@DioNanos

Copy link
Copy Markdown
Owner

Prevents the Android NDK setup step from failing when sdkmanager --licenses closes the yes pipe under set -o pipefail.

@DioNanos DioNanos merged commit ed9e899 into main Apr 16, 2026
5 of 7 checks passed
@DioNanos DioNanos deleted the fix/gha-ndk-pipefail branch April 16, 2026 19:29
DioNanos added a commit that referenced this pull request May 27, 2026
…t (Termux/Android arm64-musl)

bug #1 (cross-fork P0): codex remote-control fails on Termux with "lock()
not supported". Five-callsite Iter 1 fix because the codex-termux release
line is aarch64-unknown-linux-musl (so cfg!(target_os = "android") gates
are inactive on the affected binary):

- app-server-transport/src/transport/unix_socket.rs:
  acquire_app_server_startup_lock tolerates ErrorKind::Unsupported on
  file.lock(); production retry serialization preserved on Linux/Mac.
- core/src/installation_id.rs: replaced installation_id_lock_is_optional
  (gated cfg!(target_os = "android"), inactive on musl-linux release)
  with is_unsupported_file_lock_error (kind-based, runtime detection).
- message-history/src/lib.rs: try_lock() and try_lock_shared() callsites
  proceed without advisory locking on Unsupported; O_APPEND + sub-PIPE_BUF
  atomic writes keep lines intact.
- arg0/src/lib.rs: replace cfg!(target_os = "android") gate on two
  try_lock callsites (path-entry guard + try_lock_dir).
- execpolicy/src/amend.rs: append_locked_line tolerates Unsupported lock;
  dedup check at file scan reduces (but does not eliminate) the chance of
  duplicate appends on lockless filesystems.
- is_unsupported_file_lock_error helper + 2 unit tests added per crate.

bug #3 (cross-fork P1, GitHub issue #10 J3y0r): MCP servers spawned via
npx fail on Termux with "handshaking with MCP server failed: connection
closed: initialize response". rmcp-client/src/utils.rs:
create_env_for_mcp_server chains TERMUX_ENV_VARS (PREFIX, LD_PRELOAD,
NPM_CONFIG_PREFIX, ANDROID_*, XDG_*) when running_on_termux() detects
TERMUX_VERSION env var. Runtime detection because the Termux release line
is musl-linux. Empty allowlist on non-Unix targets to keep the
cross-target name resolution consistent. 2 new unit tests (propagate +
no-leak).

flaky test (cross-fork): transport::remote_control::tests::
remote_control_waits_for_account_id_before_enrolling timeout raised from
100ms to 950ms (below the 1s REMOTE_CONTROL_ACCOUNT_ID_RETRY_INTERVAL) to
remove the residual flake rate observed under CPU pressure on the Termux
release line. 25/25 PASS isolated post-fix.

Cargo.lock workspace version bump 0.133.1 -> 0.134.1 is auto-managed by
cargo during the develop checkout; included to keep the lock consistent.

Tests: 78 lib tests PASS across the affected crates. Test coverage added
(10+ new unit tests across the modified crates).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants