From f73ffed78a295f7c64d026d2d30b6222363a041a Mon Sep 17 00:00:00 2001 From: thedancingdeveloper <306930456+thedancingdeveloper@users.noreply.github.com> Date: Sat, 10 Oct 2026 02:16:01 +0000 Subject: [PATCH 1/3] Run every test in a crate, not only those before its first failure nextest is fail-fast by default, so fork-ci cancelled a crate's remaining tests at its first failure. Each PR run therefore surfaced a single unrelated failure per crate, and fixing it only exposed the next one. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/fork-ci.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/fork-ci.yml b/.github/workflows/fork-ci.yml index ab2ac399a40b..e86207f412ae 100644 --- a/.github/workflows/fork-ci.yml +++ b/.github/workflows/fork-ci.yml @@ -211,9 +211,12 @@ jobs: fi # A failing crate must not hide the rest: the baseline needs every # crate's result, and a PR should see all of its failures at once. + # nextest is fail-fast by default and cancels a crate's remaining + # tests at its first failure, so --no-fail-fast does the same within + # a crate. status=0 while IFS= read -r crate; do [[ -z "$crate" ]] && continue - cargo nextest run -p "$crate" "${filter[@]}" || status=1 + cargo nextest run -p "$crate" --no-fail-fast "${filter[@]}" || status=1 done <<< "${{ steps.crates.outputs.list }}" exit "$status" From a42cae87fc778e1d0cc3f0eeed56caf7f01aec03 Mon Sep 17 00:00:00 2001 From: thedancingdeveloper <306930456+thedancingdeveloper@users.noreply.github.com> Date: Sat, 10 Oct 2026 02:42:25 +0000 Subject: [PATCH 2/3] Test at upstream's 0.0.0 development version fork/main sits on upstream tag rust-v0.162.0, whose release commit (c1382380d) bumps the workspace version from 0.0.0 to 0.162.0 and leaves Cargo.lock at 0.0.0. Upstream runs its tests at 0.0.0 and never on that commit, so on fork/main 37 codex-tui snapshots rendered v0.162.0 instead of v0.0.0, and packaged_daemon_bootstrap_seeds_local_package saw the seeded package as a stable release and enabled auto-update. Reset the workspace version to 0.0.0 for the job, the way upstream tests. fork-release stamps the real version separately. All 5710 codex-tui tests pass at 0.0.0 locally; 37 fail at 0.162.0. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/fork-ci.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/workflows/fork-ci.yml b/.github/workflows/fork-ci.yml index e86207f412ae..099963b88a55 100644 --- a/.github/workflows/fork-ci.yml +++ b/.github/workflows/fork-ci.yml @@ -32,6 +32,18 @@ jobs: persist-credentials: false fetch-depth: 0 + # fork/main sits on an upstream release tag, whose release commit bumps + # the workspace version from 0.0.0 to the tag (Cargo.lock keeps 0.0.0). + # Upstream runs its tests at 0.0.0 and never on the tag commit, so its + # snapshots render "v0.0.0" and its daemon tests rely on 0.0.0 counting + # as a dev build. Test at 0.0.0 the same way. fork-release stamps the + # real version separately, so releases are unaffected. + - name: Test at upstream's development version + run: | + sed -i '/^\[workspace.package\]$/,/^\[/ s/^version = ".*"$/version = "0.0.0"/' Cargo.toml + grep -A1 '^\[workspace.package\]$' Cargo.toml | grep -qx 'version = "0.0.0"' \ + || { echo "workspace version reset did not land" >&2; exit 1; } + - name: Set up Rust toolchain uses: dtolnay/rust-toolchain@e081816240890017053eacbb1bdf337761dc5582 # 1.95.0 with: From 92886e16ebfdefa7778bf3f51075d262eab22507 Mon Sep 17 00:00:00 2001 From: thedancingdeveloper <306930456+thedancingdeveloper@users.noreply.github.com> Date: Sat, 10 Oct 2026 02:42:25 +0000 Subject: [PATCH 3/3] Expect the resolved workdir in the merged PreToolUse hook input 3e2cb8584 added the resolved workdir to exec_command's PreToolUse tool_input, but pre_tool_use_merges_hooks_json_and_config_toml compares the whole tool_input and still expected only command. The call sets no workdir, so it resolves to the session cwd. Co-Authored-By: Claude Opus 5.5 --- codex-rs/core/tests/suite/hooks.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/codex-rs/core/tests/suite/hooks.rs b/codex-rs/core/tests/suite/hooks.rs index 274874c1af9b..e9705d2a7105 100644 --- a/codex-rs/core/tests/suite/hooks.rs +++ b/codex-rs/core/tests/suite/hooks.rs @@ -4974,6 +4974,7 @@ async fn pre_tool_use_merges_hooks_json_and_config_toml() -> Result<()> { "tool_use_id": call_id, "tool_input": { "command": command, + "workdir": test.cwd_path().to_string_lossy(), }, })]; assert_eq!(expected_hook_inputs, json_hook_inputs);