mcp_suite mcp_handler_test::dependency_hint_test::search_explicit_lazy_admission_advances_generation_then_retry_finds_dependency_chunk_once failed once in a full mcp_suite run (1 of 3 full runs on the #2356 fix branch, on top of 4ada4eb89c):
panicked at crates/tracedecay/tests/mcp_suite/mcp_handler_test/dependency_hint_test.rs:429:5:
generation-advancing admission must preserve the successful lexical result:
{"problem":{"code":"application.symbol-graph.ignored-dependency-scheduler-unavailable",
"diagnostic":{"message":"ignored-dependency admission found no exact-scope serving generation"}, ...}}
left: Null
right: Array []
It did not reproduce in isolation: 0/40 warm and 0/40 cold-start runs, 8 in parallel, on both the master binary and the fix branch.
The test waits for search to serve (wait_for_search_payload), not for status readiness. A first publication's search is served by the text owner before the worker's graph tail seats the decoded generation (see #2356). #2361 made ignored-dependency admission demand the decoded generation while a ready generation serves without its seat. The refusal text fits the admission running in that pre-seat window. Likely next step: have the admission wait for the owner's seat (or report a typed retry) instead of scheduler-unavailable, or have the test wait for wait_for ready, which after #2356 implies the seat.
Found while landing #2356; not changed there.
mcp_suite mcp_handler_test::dependency_hint_test::search_explicit_lazy_admission_advances_generation_then_retry_finds_dependency_chunk_oncefailed once in a fullmcp_suiterun (1 of 3 full runs on the #2356 fix branch, on top of4ada4eb89c):It did not reproduce in isolation: 0/40 warm and 0/40 cold-start runs, 8 in parallel, on both the master binary and the fix branch.
The test waits for search to serve (
wait_for_search_payload), not for status readiness. A first publication's search is served by the text owner before the worker's graph tail seats the decoded generation (see #2356). #2361 made ignored-dependency admission demand the decoded generation while a ready generation serves without its seat. The refusal text fits the admission running in that pre-seat window. Likely next step: have the admission wait for the owner's seat (or report a typed retry) instead ofscheduler-unavailable, or have the test wait forwait_for ready, which after #2356 implies the seat.Found while landing #2356; not changed there.