Skip to content

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 #2819

Description

@localai-org-maint-bot

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:29 cites
    vllm/model_executor/layers/fused_moe/cpu_fused_moe.py::select_experts. The
    file exists at the pin (git cat-file -e RC=0) and is gone at the target
    (RC=128); select_experts now lives in fused_moe/experts/cpu_moe.py and
    fused_moe/router/fused_moe_router.py. A move.
  • .agents/specs/gdn-state-kv-budget.md:101 cites
    vllm/v1/core/kv_cache_utils.py::get_num_blocks. The free function is gone
    from that file: 5559679229:...:993 defines it, the target's copy of the same
    file has no match (RC=1) while the file itself is present (control RC=0).
    Three def get_num_blocks exist 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

  1. The two shipped models first, because they are mirror work, not cleanup.
    Re-anchor KimiLinearForCausalLM onto vllm.models.kimi_k3 and read what
    moved with it. Decide what Olmo3ForCausalLM routing to
    TransformersForCausalLM means for our Olmo2-alias implementation — that is a
    behaviour question, and it needs its own row.
  2. Retire or re-anchor the eleven remaining model-matrix.md rows, 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.
  3. Read moe-semantics.md:29 and gdn-state-kv-budget.md:101 individually and
    re-anchor them by symbol at the new pin.
  4. Re-derive the registry coverage at e126687a9a and 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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions