Skip to content

check-attention-rung-consistency's population floor is pinned at today's exact count, so every allowlisted row reds it by removing its naive call #1629

Description

@localai-bot

test_check_attention_rung_consistency.py pins the naive-call population at exactly today's count, so every row on its own allowlist reds it by doing the thing the allowlist exists for.

Found while landing #1578 and #1579 together. #1578 is green in isolation and #1579 is green in isolation; main goes red once both land, on the required agent-record job.

The coupling

scripts/attention-rung-allowlist.txt parks three model stems whose vt::Attention call another in-flight row is deleting: muse_glimmer_vision (#1545, PR #1579), ltx2 and ltx2_device (the LTX-2.5 routing row). The checker itself handles their removal correctly — it reports STALE (not a failure).

Two cases in tests/scripts/test_check_attention_rung_consistency.py do not:

  • ShippedTreeTests::test_the_population_is_not_empty asserts sum(len(v) for v in scanned.values()) >= 9. The shipped tree has exactly 9 sites, so the floor has zero headroom and any removal reds it.
  • ShippedTreeTests::test_allowlist_holds_only_the_in_flight_stems pins the allowlist set exactly, so deleting the stem reds that case.

A removing row therefore has no green path. Measured on #1578's head 89925ad6f with #1579's muse_glimmer_vision.cpp copied in:

# leave the stem (what the allowlist header tells the row to do):
FAIL: test_the_population_is_not_empty        AssertionError: 8 not greater than or equal to 9
Ran 31 tests   FAILED (failures=1)

# delete the stem (the other option):
FAIL: test_allowlist_holds_only_the_in_flight_stems
FAIL: test_the_population_is_not_empty
Ran 31 tests   FAILED (failures=2)

Tree restored byte-for-byte after each; 31 tests ... OK again, and git status --short empty.

Why the header does not warn about it

scripts/attention-rung-allowlist.txt:21-28 documents the first coupling carefully and concludes "the removing row is free to leave the deletion to whoever runs preflight next". That guidance is what reds the population floor, and the floor is not mentioned anywhere in the header, the checker docstring, or spec D7. So the one path the allowlist explicitly recommends is the path that breaks.

This is the shape AGENTS.md names under ## Records: never store a measurement of one file inside another file — "a number that changes after each edit couples every pull request to lines that it does not own". It is not every pull request here, but it is precisely the three rows the allowlist was created to unblock.

Not fixed in flow, and why

Changing the floor changes what the gate accepts, which AGENTS.md ## Changing the rules or a checker routes to a row, a spec, and a red-before/green-after mutation rather than an operator edit. Lowering the number is also the known mute-switch failure, so the repair is a design decision and not a constant edit.

Direction, not a design. test_the_six_deliberate_sites_carry_a_marker already pins six sites by name and asserts each carries a marker, which is a stronger guard against "the regex stopped matching after a rename" than a raw total is — a derived floor, or dropping the total in favour of the named set, both look plausible. Neither is chosen here.

Blast radius

Found while landing #1578; #1578 itself is green and is not blocked by this.

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