Split out of #1106 finding 2 so the debt stays open after that repair closes.
#1091 finding 3 added a Qwen35ExpertStreamStep guard to four MoE entry points that reach ExpertMlpKq -> KqExpertSlice and marked no step. The guards are correct. Exactly one of the four is reachable from a production entry point:
| Entry point |
Production caller |
Qwen3_5MTPModel::ForwardPaged |
YES — src/vllm/v1/worker/gpu/runner.cpp:2183 -> src/vllm/v1/worker/gpu/spec_decode/mtp/speculator.cpp:107,262 |
Qwen3_5MTPModel::Forward |
no — only tests/vllm/v1/spec_decode/test_mtp_speculator.cpp, and only through ForwardLogitsHost, which qwen3_5_mtp.h:135 documents as "standalone parity convenience" and which is itself called from nothing outside tests/ |
Qwen3_5Model::ForwardDense |
no — qwen3_5.h:234 calls it the parity reference; callers are tests/parity/test_op_parity.cpp:1107, tests/vllm/v1/worker/test_runner.cpp:1278, tests/vllm/models/test_qwen35_paged_forward.cpp:293,320,385,403 |
Qwen3_5ReplayLayer |
no — qwen3_5.h:322 calls it per-layer parity replay; only caller is tests/parity/test_op_parity.cpp:1050 |
Per .agents/reachability.md a call site inside a test is not reach, so "every added path is reached from a production entry point at this commit" was true of one guard in four.
Nothing needs deleting. The three guards are right where they are and cost nothing, and they become live the moment any of those entry points gains a production caller — the alternative, adding the guard later along with the caller, is how this row acquired the missing boundary in the first place. What is owed is the record: this is a staged slice that lands unreached, and it is now named as one rather than claimed as reached.
Two ways it closes. Either one of these three entry points gains a production caller, at which point its guard is exercised by whatever drives it; or the entry points are retired as parity references and the guards go with them. Neither is scheduled, and neither should be forced by this issue.
Row ENG-EXPERT-STREAM, listed under ## Owed in expert-streaming.md.
Split out of #1106 finding 2 so the debt stays open after that repair closes.
#1091 finding 3 added a
Qwen35ExpertStreamStepguard to four MoE entry points that reachExpertMlpKq -> KqExpertSliceand marked no step. The guards are correct. Exactly one of the four is reachable from a production entry point:Qwen3_5MTPModel::ForwardPagedsrc/vllm/v1/worker/gpu/runner.cpp:2183->src/vllm/v1/worker/gpu/spec_decode/mtp/speculator.cpp:107,262Qwen3_5MTPModel::Forwardtests/vllm/v1/spec_decode/test_mtp_speculator.cpp, and only throughForwardLogitsHost, whichqwen3_5_mtp.h:135documents as "standalone parity convenience" and which is itself called from nothing outsidetests/Qwen3_5Model::ForwardDenseqwen3_5.h:234calls it the parity reference; callers aretests/parity/test_op_parity.cpp:1107,tests/vllm/v1/worker/test_runner.cpp:1278,tests/vllm/models/test_qwen35_paged_forward.cpp:293,320,385,403Qwen3_5ReplayLayerqwen3_5.h:322calls it per-layer parity replay; only caller istests/parity/test_op_parity.cpp:1050Per
.agents/reachability.mda call site inside a test is not reach, so "every added path is reached from a production entry point at this commit" was true of one guard in four.Nothing needs deleting. The three guards are right where they are and cost nothing, and they become live the moment any of those entry points gains a production caller — the alternative, adding the guard later along with the caller, is how this row acquired the missing boundary in the first place. What is owed is the record: this is a staged slice that lands unreached, and it is now named as one rather than claimed as reached.
Two ways it closes. Either one of these three entry points gains a production caller, at which point its guard is exercised by whatever drives it; or the entry points are retired as parity references and the guards go with them. Neither is scheduled, and neither should be forced by this issue.
Row
ENG-EXPERT-STREAM, listed under## Owedinexpert-streaming.md.