test: repair unowned transport and search-eval reds - #2642
Conversation
- mount conformance: fixture children search only /usr/bin:/bin, where an npm-installed ast-grep never lives, so the daemon hid ast_grep_rewrite. Hand the child the test's ast-grep through TRACEDECAY_AST_GREP_BIN. - search-eval train ranking receipt: 73ed289 (row-block preface scoring) and 507d91c (Rust call binding) reordered tail candidates of train-027 and train-034. Every quality metric and per-query status is identical to the pin, so re-pin the receipt. Fixes #2635 Fixes #2474
|
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b929a5bc7f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| /// ast-grep never lives there, so the child is handed the test process's own | ||
| /// executable through the product's explicit override instead. | ||
| fn ast_grep_executable() -> PathBuf { | ||
| let name = format!("ast-grep{}", std::env::consts::EXE_SUFFIX); |
There was a problem hiding this comment.
Resolve the Windows npm launcher before passing it to children
On the Windows root-transport partition, .github/actions/install-ast-grep/action.yml installs @ast-grep/cli globally, which exposes npm's ast-grep.cmd launcher; the production resolver explicitly handles this launcher in tracedecay-runtime-core/src/ast_grep.rs. This lookup instead probes only ast-grep.exe directly in each PATH directory, so the standard Windows CI installation is not found and the conformance test panics before starting. Use a PATHEXT-aware lookup and translate the npm launcher to its packaged native executable, as the product resolver does.
AGENTS.md reference: AGENTS.md:L209-L209
Useful? React with 👍 / 👎.
Fixes #2635
Fixes #2474
Repairs the unowned master reds in
runtime_acceptance_suiteandtransport_acceptance_suite. Each suite was run the way CI's partitions build it:root-journeysfor runtime,root-transportfor transport. The third unowned red,workflow_json_preserves_a_typed_application_problem_envelope(#2634), was fixed on master by #2637 while this was in flight, so it was dropped here in the rebase.1.
v2_surface_mount_conformance::every_catalog_binding_is_mounted_on_its_declared_surface(#2635): fixture environmentSince #2447, fixture children search only the fake-host dir plus
/usr/bin:/bin. The daemon resolves ast-grep fromTRACEDECAY_AST_GREP_BIN, then PATH, then/usr/local/bin,/opt/homebrew/bin,/usr/bin,/bin. An npm-installed ast-grep (CI'sinstall-ast-grepaction runsnpm install --global; locally it's~/.local/bin) is in none of those, so the daemon correctly hidesast_grep_rewriteand the sweep fails. The product behavior is right. The fixture now hands its daemon and CLI children the test process's own ast-grep through the product's explicitTRACEDECAY_AST_GREP_BINoverride, which is one exact executable rather than a widened PATH. If no ast-grep is on the test PATH, it fails with a clear prerequisite message.Before (test file from master, same build):
After:
transport_acceptance_suite15 passed, 0 failed.2.
search_eval_cli_test::compare_reports_the_lexical_baselines_conceptual_misses(#2474): intended ranking change, re-pinned with quality evidenceexpected_query_fallback_digests.trainno longer matched. I bisected with the evaluator built at each commit (sameroot-journeysselection, separate checkout and target dir) and found two movers, both intended product changes:73ed289eab^sha256:3a9ac57b…(pin, matches)73ed289eabperf(search)!: score lexical candidates from a row-block prefacesha256:94905f6e…(the value #2474 reported)507d91cb74^sha256:94905f6e…507d91cb74fix(code-index): bind Rust calls in macros and in-file paths (#2588)sha256:b25e8f6c…(master)The validation receipt (
49a204a7…) never moved.Quality held.
tracedecay-search-eval compare --profiles query-fallbackat the pin commit1fe441558fand on master give identical results:Every per-query field (status, first_useful_rank, returned_candidates, quality) is identical.
generate-candidatesshows exactly two train queries differ, and only in non-relevant tail positions:train-027positions 1–2:RepositoryEvidenceV1::remote_identitygives way totests::project_and_worktree_aliases_do_not_define_repository_identityandRepositoryRemoteIdentityV1train-034position 1:RemoteShardCoverageV1::has_fresh_cache_atbecomesRemoteShardCoverageV1::validateThe pin is updated to
sha256:b25e8f6c5fa1b1da422a35b1fb1510b430797dbce898277cbf7995796c437d22. The workload digest excludes receipts, so nothing else moves.After:
runtime_acceptance_suite135 passed, 0 failed.tracedecay-search-eval --lib36 passed, which includesreport_tests::baseline_report_retains_raw_fallback_current_and_exact_ten_x_samplesfrom #2474.Owned failures seen in the same runs (not touched here)
every_cursor_carrying_code_operation_mints_and_spends_a_continuation,production_lsp_negotiates_and_projects_canonical_context(runtime_acceptance_suite: 3 tests red on master (wall_micros parity, LSP analyzer, code_facets) #2487),native_host_event_fixtures_execute_provider_admission_paths(test: two lib/runtime_acceptance tests red on master (RMCP disconnect write, Codex host-event privacy) #2569 host-event half): fixed by fix(daemon): serve cold-daemon reads once their owner is ready #2612, pass on master.reset_required_profile_session_store_is_served_typed_until_its_named_reset: fixed by fix(sessions)!: scope stale session-store refusals and reset #2613, passes on master.partial_effect_survives_*restart tests: pass once the CLI is built withtest-transportas CI'sroot-transportpartition builds it. test(tracedecay): assert typed refusals and exact outcomes #2545's 8 failures were the suites run without the partition's executables.Checks (rebased on efa7d7c)
runtime_acceptance_suite: 135/135.transport_acceptance_suite: 15/15.tracedecay-search-eval --lib: 36 passed.tracedecay-query --lib search_quality: 15 passed.cargo clippy -p tracedecay --all-targets --features test-helpers,test-transport -- -D warnings: clean.cargo fmt --all -- --check: clean.ast_grep_executableresolvesast-grep.exe. An npm.cmdlauncher isn't matched, so a Windows host without a nativeast-grep.exeon PATH gets the prerequisite message. Not chased (fix(private-fs): NTFS ChangeTime does not witness mtime-restored rewrite #2081/fix(daemon): branch worktree paths exceed Windows Git PATH_MAX #2082/fix(code-index): field_sites refuses CRLF sources on Windows #2083/fix(code-index): SQLite opens fail past MAX_PATH on Windows #2105).