records(model-matrix): 15 citations go stale at the new pin, and TWO of them are models we ship -- not the deprecation sweep this was first filed as
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 423
- Forks
- 53
- Avg merge
- 20h 26m
- Merged PRs (30d)
- 310
Description
Row: -
Owed by the model matrix. .agents/specs/upstream-pin-advance-e126687.md lists it
under ## Owed.
Found by wave PINADVANCE (#2817) while measuring what the advance to
e126687a9a falsifies, and corrected on 2026-09-03 after a fresh review of
#2827 falsified this issue's own first characterisation. Nothing was executed:
this is scripts/check-symbol-anchors.py --upstream-root <pinned vllm> run before
and after the ```parity-pin block edit, plus git log --diff-filter=D and
git show over the two revisions.
CORRECTION: this issue originally said "none of the removed architectures is registered by vllm.cpp"
That was wrong, and it mattered. It filed two live mirror obligations on
models this project SHIPS as matrix cleanup. The original sentence is quoted here
rather than deleted, because it is the reason this issue was scoped too small.
The measurement
check-symbol-anchors.py --upstream-root is not a CI gate and is red on this
tree at both pins. The RESULT is the delta:
before (pin 5559679229): upstream checked 389 (fresh 372, stale 6, file absent 11) -> 15 stale
after (pin e126687a9a): upstream checked 389 (fresh 359, stale 4, file absent 26) -> 28 stale
Fifteen citations went stale and two were REPAIRED by the advance
(.agents/model-matrix.md::GlmMoeDsaForCausalLM and
.agents/specs/dflash2-spec-as-decode.md::_make_xqa_draft_block_mask, both of
which now exist upstream). One apparent move,
.agents/specs/fp8-kv-cache.md:128 to :133, is the same citation relocated by
PINADVANCE's own edit and is not a change of state.
The thirteen model-matrix rows are THREE different things
Attributed per file with git log --diff-filter=D over 5559679229..e126687a9a:
| Deleting commit | What it actually is | Files |
|---|---|---|
7ca336929c vllm#53608, "Remove ten deprecated model architectures" |
genuine deprecation | 8: arctic, fairseq2_llama, gritlm, hyperclovax_vision, mpt, chameleon, cheers, fireredlid |
48d7132962, "Migrate FlexOlmo, Olmo3 and Hunyuan V1/VL to the Transformers modeling ..." |
MIGRATION to the Transformers fallback, not removal | 4: flex_olmo, hunyuan_v1, hunyuan_vision, olmo3 |
aeeb36b1f1 vllm#50000, "[New model] Kimi K3" |
RELOCATION, still registered | 1: kimi_linear |
Only 8 of 13 are deprecation. 7ca336929c was classified IGNORE by two sync
waves (.agents/sync/2026-09-01-cdefd9d.md:1151,
.agents/sync/2026-09-01-adebc41.md:579) on the ground that we register none of
them. That is correct about the PORT for those 8. It does not cover the matrix
rows that cite the deleted files, and it says nothing at all about the other
five.
TWO of them reach models this project SHIPS
KimiLinearForCausalLM was relocated, not removed.
$ git show 5559679229:vllm/model_executor/models/registry.py | grep -n KimiLinear
140: "KimiLinearForCausalLM": ("kimi_linear", "KimiLinearForCausalLM"),
$ git show e126687a9a:vllm/model_executor/models/registry.py | grep -n KimiLinear
144: "KimiLinearForCausalLM": (
146: "KimiLinearForCausalLM", # module is "vllm.models.kimi_k3"
It is still registered upstream. We ship it:
src/vllm/model_executor/models/kimi_linear_registry.cpp:166 carries
REGISTER_VLLM_MODEL(kimi_linear, "KimiLinearForCausalLM", ...),
docs/FEATURES.md:159 publishes it with a speed row, and
.agents/model-matrix.md:121 is a 🚧 row, not INVENTORIED. The mirror source
of a shipped model moved.
Olmo3ForCausalLM now routes to the generic Transformers fallback.
$ git show 5559679229:vllm/model_executor/models/registry.py | grep -n Olmo3
181: "Olmo3ForCausalLM": ("olmo3", "Olmo3ForCausalLM"),
$ git show e126687a9a:vllm/model_executor/models/registry.py | grep -n Olmo3
691: "Olmo3ForCausalLM": ("transformers", "TransformersForCausalLM"),
We ship it as an Olmo2 factory alias
(src/vllm/model_executor/models/olmo2_registry.cpp:127,
.agents/model-matrix.md:136 is ✅, docs/FEATURES.md:151). That is a live
mirror divergence, not deprecated debris. The anchor checker cannot see it —
our row cites olmo2.py, which still exists — so it is not among the fifteen and
would have gone unnoticed by the instrument that found the rest. It is here only
because a reviewer went looking.
The other two stale citations are not model rows
.agents/specs/moe-semantics.md:29cites
vllm/model_executor/layers/fused_moe/cpu_fused_moe.py::select_experts. The
file exists at the pin (git cat-file -eRC=0) and is gone at the target
(RC=128);select_expertsnow lives infused_moe/experts/cpu_moe.pyand
fused_moe/router/fused_moe_router.py. A move..agents/specs/gdn-state-kv-budget.md:101cites
vllm/v1/core/kv_cache_utils.py::get_num_blocks. The free function is gone
from that file:5559679229:...:993defines it, the target's copy of the same
file has no match (RC=1) while the file itself is present (control RC=0).
Threedef get_num_blocksexist elsewhere at the target
(kv_cache_coordinator.py,single_type_kv_cache_manager.py,
kv_offload/tiering/example/manager.py) and they are methods, not the free
function. Whoever re-anchors it decides which, if any, is the successor.
Why this is more than a stale line
.agents/NOW.md states the invariant "every arch in the pinned registry has a
row". The advance moves the registry in BOTH directions and neither has been
reconciled: rows now name architectures the pinned registry does not have, and
the target's own additions (the vllm/models/<name>/ tree grew from 5 model
directories to 10) have no rows. A row whose upstream anchor points at a deleted
file cannot be ported from, and a reader cannot tell that from the row.
What is owed
- The two shipped models first, because they are mirror work, not cleanup.
Re-anchorKimiLinearForCausalLMontovllm.models.kimi_k3and read what
moved with it. Decide whatOlmo3ForCausalLMrouting to
TransformersForCausalLMmeans for our Olmo2-alias implementation — that is a
behaviour question, and it needs its own row. - Retire or re-anchor the eleven remaining
model-matrix.mdrows, saying which
architecture vLLM dropped or migrated and when, rather than deleting a row
silently. The 4 Transformers-fallback migrations are not deprecations and
should not be recorded as such. - Read
moe-semantics.md:29andgdn-state-kv-budget.md:101individually and
re-anchor them by symbol at the new pin. - Re-derive the registry coverage at
e126687a9aand add rows for the
architectures the advance introduces.
PINADVANCE did not do any of this: it is a per-row records job across a keyed
matrix with many writers, and a sync cycle may not carry it
(.agents/upstream-sync.md §Rules).
FOLLOWING_AGENTS_PROTOCOL
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 .agents/model-matrix.md, .agents/NOW.md, and .agents/specs/upstream-pin-advance-e126687.md, then run scripts/check-symbol-anchors.py --upstream-root at pin e126687a9a. Compare the cited model registry entries and the two non-model anchors with git show and git log --diff-filter=D. Done means shipped-model rows are re-anchored or clarified, stale rows are retired or updated with migration history, non-model symbols have successors, and registry coverage is reconciled.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, python
- Domain
- backend, machine-learning
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100