defer(PORTQ-7): four inert PORT-NOW entries with their gates, two unreached surfaces no row owns, and one flagged coordinator divergence
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 423
- Forks
- 53
- Avg merge
- 20h 26m
- Merged PRs (30d)
- 310
Description
Row: ENG-WEIGHT-OFFLOAD (.agents/model-matrix.md:514 records it inert), KV-OFFLOAD (.agents/engine-matrix.md:107), KV-HYBRID-COORD (.agents/engine-matrix.md:100) and TOOLS-STREAMING-PARSER (.agents/engine-matrix.md:165) own one gate each below. The two un-owned findings at the end say so plainly rather than naming a row that would pass check-agent-record.py without resolving.
Filed by wave PORTQ-7 (#2717), the last tranche of the 290-entry PORT-NOW queue. Nothing was executed. Every reading below is static.
This is the PORTQ-4 #2700 shape: entries whose surface is in this tree but whose new arm no configuration can reach, plus two reachability findings that fell out of the reading and that no row owns. Each becomes real work the day its gate opens, so the gate is named.
The four inert entries
[250] 61d4f56635 vllm#53120 — gate: no ModelRegistration sets supports_weight_offload.
RefuseUnsupportedWeightOffload (src/vllm/model_executor/weight_offloader.cpp:72-85) throws for any enabled offload against an architecture whose factory does not set the flag, and it runs on both production load paths (src/vllm/entrypoints/model_loader.cpp:3206, :3210). tests/vllm/model_executor/test_weight_offloader.cpp:374-386 pins that zero registrations set it, so that test is the tripwire and it names itself. .agents/model-matrix.md:514 says the same in prose. Upstream's fix ("offload submodules make_layers never reaches") also has no failure mode here: this tree's decision seam is per-weight at load (ConsiderWeight, include/vllm/model_executor/weight_offloader.h:68), not a module wrap, and the deviation is recorded at weight_offloader.h:19-29.
[267] e6bfe03ad7 vllm#52227 — gate: store_threshold >= 2, which nothing configures.
The surface is here and is the exact pre-commit shape: CPUOffloadingManager::lookup bumps the reuse tracker (src/vllm/v1/kv_offload/cpu_manager.cpp:137-139) and prepare_store filters without recording (:205-217) — precisely what the commit inverts. But impl_->counts is only allocated when store_threshold >= 2 (:122-124), and the single production construction site passes the two-argument form (src/vllm/v1/kv_offload/kv_connector.cpp:224-225), leaving the default of 1. BuildOffloadingConnector reads seven keys out of extra_config (kv_connector.cpp:206-231) and store_threshold is not among them; the positive control eviction_policy does reach :213-214 through the identical probe form and scope. So counts is always null and moving the bump changes nothing reachable. The day KV-OFFLOAD exposes store_threshold through KVTransferConfig, this becomes a REAL_GAP, and the header prose at include/vllm/v1/kv_offload/cpu_manager.h:16-20 ("a block is only stored once it has been LOOKED UP that many times") becomes wrong and must change with it.
[274] 7fd9cc036e vllm#53324 — gate: two distinct full-attention SpecGroups, which no registered model produces.
HybridKVCacheCoordinator::find_longest_cache_hit truncates only attention_groups[0] (src/vllm/v1/core/kv_cache_coordinator.cpp:548-560), the pre-commit shape. The generalised arm fires only on a second kFullAttention group. Every registry emitting more than one group was enumerated — qwen3_5_common.cpp (its fa_draft group is constructed with byte-identical arguments at :100-104, so it merges into group 0 and is already truncated), nemotron_h_registry.cpp, qwen4_exp_registry.cpp, deepseek_v4_registry.cpp, kimi_linear_registry.cpp, glm5_next_registry.cpp — and none yields two distinct ones. The upstream trigger is additionally unreachable because is_eagle_group is set by no production site and use_eagle is hard-coded false at src/vllm/v1/core/sched/scheduler.cpp:279.
[263] 3a9bfc209f vllm#54089 — gate: ReasoningParser::is_reasoning_end has no production call site.
The backward reasoning-end scan is here in text form, in both places the commit edits (src/vllm/parser/engine/parser_engine.cpp:385-395, src/vllm/parser/qwen3.cpp:40-64), and ParserEngineConfig has no turn_boundary_tokens field. But upstream's new arm answers a question about the multi-turn prompt — its added tests pass conversation-history token ids — and this tree's ReasoningParser ABC is text-only over the accumulated output (include/vllm/entrypoints/openai/reasoning_parsers/abstract.h:81-85, with :13-18 recording that the token-ID methods were deliberately dropped). <|im_start|> / <|im_end|> never appear in generated output, so the boundary set could not match. Porting the arm today lands dead code inside dead code. This one is genuinely close to the REAL_GAP line and is recorded as such; see the second un-owned finding below, which is why it fell on this side.
Two reachability findings that no row owns
ReasoningParser::is_reasoning_end is a public virtual with no production caller. All 20 hits in src/ are definitions, in-seam delegations (qwen3.cpp:41, deepseek_v3.cpp:35, parser_engine_adapter.cpp:72) or a comment (parser_manager.cpp:66). Nothing in src/vllm/entrypoints/ outside reasoning_parsers/, nor src/vllm/v1/structured_output/, src/capi/, examples/ or include/vllm.h, calls it; it is exercised only by tests. Positive control through the identical form and scope: the same needle returns 20 hits across 12 files in src/, and reasoning returns 5 in include/vllm.h, so the ABI header is being searched and does carry reasoning surface.
This is the AGENTS.md §"Nothing lands dead" shape. It is deliberately not asserted as a defect here, for one reason stated plainly: a reachability claim of that weight is settled by deleting the call site and rerunning the focused gate, and this wave holds no build (disk at 97%, and the wave executed nothing). One counter-indication exists and is recorded rather than dismissed — src/vllm/entrypoints/openai/reasoning_parsers/muse_glimmer.cpp:108-117 solves the same problem by hand and its comment asserts "is_reasoning_end is evaluated on the PROMPT text too", which no caller was found to back. The nearest recorded analogue, the unreached-latch finding at .agents/engine-matrix.md:167, is a different symbol (DrainForcedTokens) and does not cover this. No row owns it.
resolve_kv_cache_block_sizes has no production caller either (only tests/vllm/v1/test_prefix_match_unit.cpp), which .agents/sync/2026-09-01-cdefd9d.md:1895 already records. It is repeated here because #2736 proposes work inside that function: any wave that edits it lands nothing reachable unless a call site comes with the change.
One divergence flagged, not asserted
HybridKVCacheCoordinator tests spec->kind() == KVCacheSpecKind::kFullAttention where upstream tests isinstance(group.spec, FullAttentionSpec). Here MLAAttentionSpec derives from FullAttentionSpec (include/vllm/v1/kv_cache_interface.h:282) but overrides kind() to kMlaAttention, so upstream matches MLA groups and this tree does not. That spans four sites in one function — the sort key (src/vllm/v1/core/kv_cache_coordinator.cpp:426-435), is_simple_hybrid (:482-483), the downward-closed fast path (:498-500) and the truncation (:549) — and would mean DeepSeek-V4, GLM5-Next and Kimi-Linear all skip paths upstream takes.
No resulting wrong answer was verified. This is flagged for a reader with a build, not asserted, and it is materially larger than [274] itself.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the listed gates in weight_offloader.cpp, cpu_manager.cpp, kv_cache_coordinator.cpp, and the reasoning parser files, then inspect their focused tests and production construction or call sites. A build is required to validate the reachability claims and the flagged coordinator divergence. Done means converting a verified reachable finding into scoped work, while leaving deferred or unverified findings recorded.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- backend, testing-qa
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100