Three stems on scripts/attention-rung-allowlist.txt outlived the rows that put them there, and while they sat the checker could not see a deleted marker in the files they named.
47a918d8f (#1579, issue #1545) routed muse_glimmer_vision's perception encoder to vt::AttentionDenseFlash, and 90e8c3c85 (#1557, issue #1549) swapped the LTX-2.5 DiT device forward to the same op. After both, muse_glimmer_vision has no vt::Attention call at all, and ltx2 / ltx2_device still name it but each surviving call carries its own VT-ATTN-NAIVE: marker: ltx2.cpp:958-965 records that the host arm is CPU-only by construction, where kAttention and kAttentionDenseFlash resolve to the same registered function; ltx2_device.cpp:469-475 records the VLLM_LTX2_DIT_FLASH_ATTN=0 arm of a same-binary A/B. scripts/check-attention-rung-consistency.py printed all three as STALE (not a failure): ... Delete its entry. and exited 0, which is exactly what the allowlist's header designs for -- the removing row is not forced to edit this file, and the deletion falls to whoever runs preflight next.
This is not only tidying, and it was measured rather than assumed. An allowlisted stem is a blanket excuse for its whole translation unit, so while ltx2 sat on the list the marker on ltx2.cpp:958 was decorative. Mutation, on the worktree, restored byte-for-byte against a pre-taken sha256:
| tree |
mutation |
checker |
db648fb88, 3 stems listed |
delete // VT-ATTN-NAIVE: from ltx2.cpp:958 |
rc=0, 7 carry a recorded reason, 1 unmarked and excused |
| same, stems removed |
same mutation |
rc=1, ltx2.cpp:966 reported by name |
So the stale entries were a live hole in the guard #1544 exists to be, not a cosmetic leftover. The window was open from 90e8c3c85 to this fix.
FIXED IN FLOW. The three stems are deleted and the expected set in tests/scripts/test_check_attention_rung_consistency.py::ShippedTreeTests::test_allowlist_holds_only_the_in_flight_stems moves to the empty set in the same change, which the allowlist header requires: the checker does not fail on a stale stem, and that test does fail on an unaccompanied edit either way.
The empty set is not a weaker assertion. drift_sites now excuses nothing, so test_shipped_tree_is_green measures the tree on its markers alone, and a new case test_the_formerly_allowlisted_stems_pass_on_their_own_merit asserts the three positively and asymmetrically -- ltx2 and ltx2_device present in the scan and MARKED, muse_glimmer_vision ABSENT from it -- because asserting the same thing about all three is false of one of them in either direction. The header keeps the reason each stem left, so a reader who finds the parking lot empty is not left to reconstruct why.
Owning row: KERNEL-ATTN-DENSE-FLASH (.agents/kernel-matrix.md), through .agents/specs/attention-rung-visibility.md. Not to be confused with #1629, which is a different defect in the same checker (the population floor) and is unaffected here.
Three stems on
scripts/attention-rung-allowlist.txtoutlived the rows that put them there, and while they sat the checker could not see a deleted marker in the files they named.47a918d8f(#1579, issue #1545) routedmuse_glimmer_vision's perception encoder tovt::AttentionDenseFlash, and90e8c3c85(#1557, issue #1549) swapped the LTX-2.5 DiT device forward to the same op. After both,muse_glimmer_visionhas novt::Attentioncall at all, andltx2/ltx2_devicestill name it but each surviving call carries its ownVT-ATTN-NAIVE:marker:ltx2.cpp:958-965records that the host arm is CPU-only by construction, wherekAttentionandkAttentionDenseFlashresolve to the same registered function;ltx2_device.cpp:469-475records theVLLM_LTX2_DIT_FLASH_ATTN=0arm of a same-binary A/B.scripts/check-attention-rung-consistency.pyprinted all three asSTALE (not a failure): ... Delete its entry.and exited 0, which is exactly what the allowlist's header designs for -- the removing row is not forced to edit this file, and the deletion falls to whoever runs preflight next.This is not only tidying, and it was measured rather than assumed. An allowlisted stem is a blanket excuse for its whole translation unit, so while
ltx2sat on the list the marker onltx2.cpp:958was decorative. Mutation, on the worktree, restored byte-for-byte against a pre-taken sha256:db648fb88, 3 stems listed// VT-ATTN-NAIVE:fromltx2.cpp:9587 carry a recorded reason, 1 unmarked and excusedltx2.cpp:966reported by nameSo the stale entries were a live hole in the guard #1544 exists to be, not a cosmetic leftover. The window was open from
90e8c3c85to this fix.FIXED IN FLOW. The three stems are deleted and the expected set in
tests/scripts/test_check_attention_rung_consistency.py::ShippedTreeTests::test_allowlist_holds_only_the_in_flight_stemsmoves to the empty set in the same change, which the allowlist header requires: the checker does not fail on a stale stem, and that test does fail on an unaccompanied edit either way.The empty set is not a weaker assertion.
drift_sitesnow excuses nothing, sotest_shipped_tree_is_greenmeasures the tree on its markers alone, and a new casetest_the_formerly_allowlisted_stems_pass_on_their_own_meritasserts the three positively and asymmetrically --ltx2andltx2_devicepresent in the scan and MARKED,muse_glimmer_visionABSENT from it -- because asserting the same thing about all three is false of one of them in either direction. The header keeps the reason each stem left, so a reader who finds the parking lot empty is not left to reconstruct why.Owning row: KERNEL-ATTN-DENSE-FLASH (
.agents/kernel-matrix.md), through.agents/specs/attention-rung-visibility.md. Not to be confused with #1629, which is a different defect in the same checker (the population floor) and is unaffected here.