From 4dce40d109d50782f54d03f0742a51f74a8d1ef0 Mon Sep 17 00:00:00 2001 From: Yoav Date: Thu, 1 Oct 2026 01:55:48 -0400 Subject: [PATCH] record(ENG-RECORD-CONFLICT-SURFACES): retire eleven dangling checker-line citations, five to symbol anchors and six to retirement prose The citation gate resolves every checker-line citation a tracked file carries against the tracked checker, and at fce36733b that checker is 1270 lines: eighteen citations dangle. Seven of them are not this change's to move - three are the 1973 references already in flight on the first bucket, and four (1712, 1960, 2000 and 2018) are re-pinned by the pending checker restore, whose expected-line assertions also account for the six line_no subfailures the gate reports. The other eleven are repaired here. The #1033 family is one claim written in four places and it converts to the symbol convention. The frozen archive row, ISSUE-GH-1033's Title and its Frozen archive evidence quote all said check_table_shapes sat at line 1292, and .agents/specs/gate-issue-index-table-shape.md said the same. The claim was true when written and is false against every checker the tree has since carried: the symbol sits at line 1105 on main and at line 2028 in the reviewed restructure that a merge resolved away, so no single number is correct in both trees and a re-point would land a number the next restore moves again. The repo's own answer to exactly that is the symbol convention (citation-anchor-freshness.md, option 4), so all four now cite scripts/check-agent-record.py::check_table_shapes, which the symbol gate checks and resolves in both trees. The archive row and the record's Title and quote move in ONE commit because the frozen-evidence contract compares them byte-for-byte and a matching pair has no valid intermediate state. The claim file converts the same way: the CLAIM-* owner requirement is check_row_contracts, which exists in both checkers, so .agents/claims/CLAIM-MODEL-DSV4-EXL3.md now cites scripts/check-agent-record.py::check_row_contracts instead of line 1785. The remaining six sites cite instruments the tree has retired, and they are re-anchored as retirement prose rather than re-pointed, because the honest targets do not exist. The duplicate-row refusal at lines 1437-1441 and 1437-1442 was removed by W6 (7dc2ef1ea) together with the live issue index it protected - the message "duplicate is what two branches appending the same issue look like" is gone from the checker - so the two specs name the refusal and its retirement instead of a line. The checker's backlog reader owed_issues(), cited at lines 2002-2017 and 2012-2014 from .agents/specs/ltx25-completion-scope.md, was removed by the local-issue-authority cutover (a9f6186c2); its successor reads stable issue identities rather than the bare numbers those measurements counted, so naming the successor would have changed the subject of a measured claim, and the sites record the retirement instead. One site needed a status correction rather than an anchor. This row's own ISSUE-LOCAL-01M2TR7N06G9EF8J2QVWVM49W7 cited lines 2216-2222 for the behaviour where a bare # reference is silently accepted: that canonical-reference pass exists only in the restructured checker, and the pre-restructure scripts/check-agent-record.py that main carries has no canonical-reference pass at all. The record now says both, in prose, because a symbol citation would name something the landed tree does not contain. Measured red-first on the same tree pair, pristine fce36733b against this branch: tests/scripts/test_agent_record.py drops from 74 failures to 63 - exactly the eleven repaired instances - with the citation test itself going from 24 subfailures to 13 (18 dangling citations to 7, the remainder being the in-flight and pending-restore families). No new failure appears anywhere: tests/scripts/test_issue_records.py stays at 123 passed, tests/scripts/test_agent_issue.py and tests/scripts/test_record_merge_shape.py hold their pre-existing counts, scripts/check-agent-record.py reports rc=0 with ENGINE=179 MODEL=384 QUANT=87 KERNEL=60 BACKEND=90, and scripts/check-agent-record.py::check_table_shapes and check_row_contracts move the symbol gate's in-repo checked count from 508 to 510 (fresh 503 to 505) while the five pre-existing stale anchors in .agents/engine-matrix.md are untouched. The index refresh keeps its identical seven pre-existing record findings, all of which the checker restore reconciles. ISSUE-LOCAL-01M3TZZWZBKWSJKGSV6NYQEQW5 ISSUE-LOCAL-01M3TZZXRSG958K18BZKC6J44B FOLLOWING_AGENTS_PROTOCOL Following-Agents-Protocol: true AI-Assisted: true Assisted-by: AGENT:codebuff/buffy [freebuff] --- .agents/claims/CLAIM-MODEL-DSV4-EXL3.md | 2 +- .agents/completed/issue-index.md | 2 +- .../ISSUE-LOCAL-01M2TR7N06G9EF8J2QVWVM49W7.md | 5 +++- .../ISSUE-LOCAL-01M3TZZWZBKWSJKGSV6NYQEQW5.md | 23 ++++++++++++++++ .../ISSUE-LOCAL-01M3TZZXRSG958K18BZKC6J44B.md | 27 +++++++++++++++++++ .../ISSUE-GH-1033.md | 4 +-- .agents/specs/bench-qwen38-27b-four-way.md | 3 ++- .agents/specs/gate-issue-index-table-shape.md | 2 +- .agents/specs/ltx25-completion-scope.md | 8 +++--- .agents/specs/ltx25-decode-dtype.md | 3 ++- 10 files changed, 67 insertions(+), 12 deletions(-) create mode 100644 .agents/issues/ENG-RECORD-CONFLICT-SURFACES/ISSUE-LOCAL-01M3TZZWZBKWSJKGSV6NYQEQW5.md create mode 100644 .agents/issues/ENG-RECORD-CONFLICT-SURFACES/ISSUE-LOCAL-01M3TZZXRSG958K18BZKC6J44B.md diff --git a/.agents/claims/CLAIM-MODEL-DSV4-EXL3.md b/.agents/claims/CLAIM-MODEL-DSV4-EXL3.md index 65c4866128..efbf630b15 100644 --- a/.agents/claims/CLAIM-MODEL-DSV4-EXL3.md +++ b/.agents/claims/CLAIM-MODEL-DSV4-EXL3.md @@ -2,4 +2,4 @@ | Claim | Row IDs | Agent | Worktree / remote dir | Branch | Owned scope | State | Last update | |---|---|---|---|---|---|---|---| -| `CLAIM-MODEL-DSV4-EXL3` | `MODEL-DSV4-EXL3` (`ACTIVE`) | Claude Code (fable-5), helper role for W2a + W2b (the CUDA kernels). **This cell records what `scripts/agent-role.py show` reports for the row (`role=helper row=MODEL-DSV4-EXL3 branch=row/MODEL-DSV4-EXL3`), not an operator identity — no operator claim for this row was recorded anywhere this file could read.** A coordinator holding the row from another checkout owns correcting the Agent and Worktree cells; nothing else in this row depends on them | worktree `/home/mudler/.cache/sdd/mudler-vllm.cpp/dsv4-w2` (CPU-only build, `-DVLLM_CPP_CUDA=OFF -DVLLM_CPP_SERVER=OFF`); the shared checkout is untouched | `row/MODEL-DSV4-EXL3-W2`, issue [#1875](https://github.com/mudler/vllm.cpp/issues/1875) | Owns: `.agents/specs/model-dsv4-exl3.md`; the `MODEL-DSV4-EXL3` row in `.agents/kernel-matrix.md`; `src/vt/cpu/cpu_exl3_dequant.cpp` + `tests/vt/test_exl3_dequant.cpp` (W1a); the EXL3 arm of `src/vllm/model_executor/models/deepseek_v4_weights.cpp` + `include/vllm/model_executor/models/deepseek_v4.h` + `tests/vllm/models/test_deepseek_v4_exl3_loader.cpp` (W1b). W2 EXTENDS that scope to `include/vt/ops.h` (the two new OpIds and their contracts), `src/vt/ops.cpp` (their dispatch), `src/vt/exl3_policy.cpp`, `src/vt/cpu/cpu_exl3_kernels.cpp`, `src/vt/cuda/cuda_exl3.cu`, the `OpName` entries in `src/vt/op_provider.cpp`, the EXL3 arm of `MoeBlock` + `Exl3Linear` + the `Forward` dispatch in `src/vllm/model_executor/models/deepseek_v4.cpp`, `tests/vt/test_exl3_gemm.cpp`, `tests/vllm/models/test_deepseek_v4_exl3_forward.cpp`, the EXL3 row of `docs/FEATURES.md` and the two `tests/CMakeLists.txt` registration lines those suites need. EXCLUDES: `.agents/oracles/exllamav3.md` and any oracle-table edit (W3a), and `tests/CMakeLists.txt` (the surface [#1883](https://github.com/mudler/vllm.cpp/issues/1883) names, which no row owns) | `ACTIVE` | 2026-08-25 — W2a + W2b landed (the two vt ops, the CPU arm, the CUDA port, the host shape policy, and the wiring that makes the tower reachable from `DeepseekV4Model::Forward`). The CUDA translation unit has been compiled by NOBODY: no `nvcc` on this host and `dgx.casa` down since 03:24Z, so every device measurement is `PENDING` with its command in the spec's `## W2 design` §5. Previously 2026-08-24 — W1a and W1b landed; the fresh review returned `PASS` with six MINOR findings and two NITs and the repair for all eight landed. This file exists because moving the matrix row from `READY` to `ACTIVE` (the review's F2) makes a `CLAIM-*` owner mechanically required by `scripts/check-agent-record.py:1785`, and the row had none. Next: W1c (dequant-to-bf16 fallback so the tower EXECUTES), then W2. | +| `CLAIM-MODEL-DSV4-EXL3` | `MODEL-DSV4-EXL3` (`ACTIVE`) | Claude Code (fable-5), helper role for W2a + W2b (the CUDA kernels). **This cell records what `scripts/agent-role.py show` reports for the row (`role=helper row=MODEL-DSV4-EXL3 branch=row/MODEL-DSV4-EXL3`), not an operator identity — no operator claim for this row was recorded anywhere this file could read.** A coordinator holding the row from another checkout owns correcting the Agent and Worktree cells; nothing else in this row depends on them | worktree `/home/mudler/.cache/sdd/mudler-vllm.cpp/dsv4-w2` (CPU-only build, `-DVLLM_CPP_CUDA=OFF -DVLLM_CPP_SERVER=OFF`); the shared checkout is untouched | `row/MODEL-DSV4-EXL3-W2`, issue [#1875](https://github.com/mudler/vllm.cpp/issues/1875) | Owns: `.agents/specs/model-dsv4-exl3.md`; the `MODEL-DSV4-EXL3` row in `.agents/kernel-matrix.md`; `src/vt/cpu/cpu_exl3_dequant.cpp` + `tests/vt/test_exl3_dequant.cpp` (W1a); the EXL3 arm of `src/vllm/model_executor/models/deepseek_v4_weights.cpp` + `include/vllm/model_executor/models/deepseek_v4.h` + `tests/vllm/models/test_deepseek_v4_exl3_loader.cpp` (W1b). W2 EXTENDS that scope to `include/vt/ops.h` (the two new OpIds and their contracts), `src/vt/ops.cpp` (their dispatch), `src/vt/exl3_policy.cpp`, `src/vt/cpu/cpu_exl3_kernels.cpp`, `src/vt/cuda/cuda_exl3.cu`, the `OpName` entries in `src/vt/op_provider.cpp`, the EXL3 arm of `MoeBlock` + `Exl3Linear` + the `Forward` dispatch in `src/vllm/model_executor/models/deepseek_v4.cpp`, `tests/vt/test_exl3_gemm.cpp`, `tests/vllm/models/test_deepseek_v4_exl3_forward.cpp`, the EXL3 row of `docs/FEATURES.md` and the two `tests/CMakeLists.txt` registration lines those suites need. EXCLUDES: `.agents/oracles/exllamav3.md` and any oracle-table edit (W3a), and `tests/CMakeLists.txt` (the surface [#1883](https://github.com/mudler/vllm.cpp/issues/1883) names, which no row owns) | `ACTIVE` | 2026-08-25 — W2a + W2b landed (the two vt ops, the CPU arm, the CUDA port, the host shape policy, and the wiring that makes the tower reachable from `DeepseekV4Model::Forward`). The CUDA translation unit has been compiled by NOBODY: no `nvcc` on this host and `dgx.casa` down since 03:24Z, so every device measurement is `PENDING` with its command in the spec's `## W2 design` §5. Previously 2026-08-24 — W1a and W1b landed; the fresh review returned `PASS` with six MINOR findings and two NITs and the repair for all eight landed. This file exists because moving the matrix row from `READY` to `ACTIVE` (the review's F2) makes a `CLAIM-*` owner mechanically required by `scripts/check-agent-record.py::check_row_contracts`, and the row had none. Next: W1c (dequant-to-bf16 fallback so the tower EXECUTES), then W2. | diff --git a/.agents/completed/issue-index.md b/.agents/completed/issue-index.md index 511a9d5c32..ee05b027ea 100644 --- a/.agents/completed/issue-index.md +++ b/.agents/completed/issue-index.md @@ -347,7 +347,7 @@ rather than merged. `scripts/check-agent-record.py` gates both. | [#1139](https://github.com/mudler/vllm.cpp/issues/1139) | `KV-WARMUP-PROFILE` | All three upstream anchors on that row (`.agents/engine-matrix.md:112`) point at unrelated code at the current parity pin `555967922`, verified by reading the pinned tree: `vllm/v1/worker/gpu/model_runner.py:504` is inside a `DraftModelSpeculator.set_attn(...)` call, `:647` is a `torch.zeros(...)` argument in a `dummy_run=True` construction, and `vllm/v1/worker/gpu_worker.py:430` is a comment about `max_split_size_mb` inside `load_model`. The startup memory profile the row describes is `GPUWorker.determine_available_memory` (`gpu_worker.py:451-495`, `memory_profiling` at `:491-494` around `profile_run()` at `:495`) and `GPUModelRunner.profile_run` (`gpu/model_runner.py:682`); `model_memory_usage` is recorded AFTER the load at `gpu/model_runner.py:315`, which is why upstream never asks whether the weights will fit and why [#1123](https://github.com/mudler/vllm.cpp/issues/1123) has no upstream counterpart to mirror. Found while repairing [#1136](https://github.com/mudler/vllm.cpp/issues/1136): `gguf_device_fit.h` and `expert-streaming.md` had both COPIED the `:504,647` pair from this row, and both are corrected there, so this row is the surviving source. Filed and not fixed in flow because the fix is one cell in `.agents/engine-matrix.md`, which PR #1119 ([#1110](https://github.com/mudler/vllm.cpp/issues/1110)) is concurrently bumping alongside the hardcoded `ENGINE` count in `scripts/check-agent-record.py` — the record-lock hazard AGENTS.md names, and the reason the repairing session was told to leave both files alone. Most likely cause: correct at the previous `e24d1b24` pin and not reconciled when the pin advanced; whether other `INVENTORIED` rows citing `vllm/v1/worker/gpu/**` share the defect is a wider sweep than one cell | bug | | [#1143](https://github.com/mudler/vllm.cpp/issues/1143) | `ENG-EXPERT-STREAM` | `src/vllm/entrypoints/model_loader.cpp` is cited by ABSOLUTE LINE NUMBER from **109 distinct sites across 45 files** — specs, matrices, docs and comments in other translation units — and the file is ~1640 lines that almost every engine and model row edits. Any edit near its top invalidates every citation below it, in files the editing change never opens. Measured on [#1136](https://github.com/mudler/vllm.cpp/issues/1136)'s repair, which inserts ~45 lines near line 100 (`AutoDeviceResolution` / `ResolveAutoDevice`, so the device resolver and the queue selector share one description): comparing the TEXT at every cited line between `e7d0a1f7c` and the repaired head gives **203 moved line references over 109 citing sites in 45 files, 10 unmoved**. What that number is NOT: a claim that 109 correct citations broke. Several were already stale — `.agents/model-matrix.md:197` cites `model_loader.cpp:184-223` as the "live loader" while line 184 at `e7d0a1f7c` is `static const bool once = [] {` inside the `VT_LOAD_STATS` helper. The finding is that the surface cannot survive an ordinary edit and that nobody can currently tell the two cases apart. NOT swept there, for two reasons: it is 109 sites in specs owned by other rows, and rewriting them all from the current tree would launder pre-existing debt into a clean-looking record. What #1136 DID fix is the two anchors it authored itself, plus adding them to its own anchor verifier so they could not go stale inside their own pull request — the defect the round before hit with `platforms/cuda.cpp:67`. Fix candidates, none chosen: cite SYMBOLS not lines across file boundaries (the only one that removes the class); an anchor gate holding each `file:line` against an expected substring (a checker change, and its expectation table is itself a shared-file lock); or split the 1640-line file, whose size is what makes the blast radius large. Listed under `## Owed` in [`expert-streaming.md`](../specs/expert-streaming.md) until a row claims it | bug | | [#1146](https://github.com/mudler/vllm.cpp/issues/1146) | `ENV-LEASE-RUNTIME-STAGING` | #1129 is closed and its recorded cause is FALSIFIED by the worker image: it says a leased worker "cannot start Python" and lists `python3`, `pip`, `gcc`, `curl` and `git` as ABSENT, measured in one `dgx:gpu0` probe (job `ff28ada1-0cd3-4867-bf9b-f67050d0608b`). Measured 2026-08-17 on `thor:gpu0` through five `rc run` jobs (`6f4bdb03`, `9c0ebeac`, `8beba132`, `f60d945f`, `63c60a90`), that worker runs as `uid=0(root)` with `/usr/bin/gcc`, `/usr/bin/python3` and a working `apt-get`, and a relocated CUDA runtime staged on `/workspace` imports torch 2.13.0+cu130, reports `cuda available = True` on `NVIDIA Thor` capability (11,0), runs a bf16 matmul, and compiles and executes a Triton kernel (`TRITON_JIT_OK = 4096.0 PASS`, `PROBE5_RC=0`). So the image is provisionable per job, which is none of the three fleet-side fixes #1129 names as the only ways forward. Four walls stand between a staged runtime and a running one: the `pip --target` must run FROM the worker because the submitting host is `x86_64` and the workers are `aarch64`. `Python.h` is absent until `apt-get install python3-dev`. The NAS mount presents `file_mode=0664` so Triton cannot execute its own `ptxas-blackwell`, and `TRITON_PTXAS_PATH` does NOT fix it because it redirects only the plain `ptxas`. So `PYTHONPATH` is ORDERED, `/tmp/tp` before the NAS tree. SCOPE, and it is the point of the row: this is `thor:gpu0` at capability (11,0) ONLY, the GB10 is `sm_121a` and UNMEASURED, only `torch`, `triton` and `numpy` are staged so the pinned vLLM oracle is still NOT shown to run and #1129's consequence for the oracle-dependent rows is NARROWED rather than closed, the `+cu130` versus `release 12.8, V12.8.93` skew is recorded as observed and not adjudicated, and a prebuilt wheel does NOT shorten the route because an aarch64 vLLM wheel exists in general while our pin is neither among the wheels published for the one nightly commit nor on PyPI (the per-commit 404s prove nothing, because that URL scheme was never confirmed against a known-good case). Recipe, job IDs and staged-script sha256 values in [`lease-runtime-staging.md`](../specs/lease-runtime-staging.md) | verification | -| [#1033](https://github.com/mudler/vllm.cpp/issues/1033) | `GATE-ISSUE-INDEX-TABLE-SHAPE` | `check_table_shapes` (`scripts/check-agent-record.py:1292`) never ran on `.agents/issue-index.md`, so a malformed row there was invisible to every gate. The function already counted unescaped pipes per table line with exactly the right regex; its call site (`:1527-1530`) passed `roadmap_v1.md`, `coordination.md`, `*MATRIX_PATHS` and `*spec_paths`, and simply did not pass this path. Nothing else in the tree counts this file's cells, which made the index the ONLY markdown table in the record set with no shape gate. It is also the one record surface every change must write, with rows long enough to hide a stray pipe in a code span. Arming it reds exactly one row on `origin/main` at `100026481`: a pipe histogram over the index's 289 table lines reads `{5: 288, 9: 1}`, and the outlier is line 279, the [#1003](https://github.com/mudler/vllm.cpp/issues/1003) `ORACLE-LLAMACPP-REPIN-STOCK` row that arrived with `283c7e492` ([#1051](https://github.com/mudler/vllm.cpp/pull/1051)), carrying four unescaped pipes inside code spans at columns 2705, 3106, 3115 and 3338. FIXED IN FLOW: the path is added, the four pipes are escaped, and three cases in `tests/scripts/test_agent_record.py` hold it — one capturing the paths `main()` really hands the gate, one running it on the shipped file, one mutating a copy so the instrument is proven to fire. Repairing the row EDITS an append-only file, so `check-issue-index-append-only.py` is red on the branch and the exception is argued in the commit body, as `ff264cb82` ([#1025](https://github.com/mudler/vllm.cpp/pull/1025)) argued the same one: appending a corrected copy would leave the broken row in place and add a duplicate key, so the file only becomes well-formed by editing it where it sits. TWO PREMISES OF THE REPORT MEASURED FALSE and are recorded in the spec rather than quietly dropped: the checker does NOT stop at the first finding (one `errors` list, three findings in one run, exit 1 once), and the four pipes are NOT in a `git diff` piped into `grep` — that span does not exist in the row. Spec [`gate-issue-index-table-shape.md`](../specs/gate-issue-index-table-shape.md) | bug | +| [#1033](https://github.com/mudler/vllm.cpp/issues/1033) | `GATE-ISSUE-INDEX-TABLE-SHAPE` | `scripts/check-agent-record.py::check_table_shapes` never ran on `.agents/issue-index.md`, so a malformed row there was invisible to every gate. The function already counted unescaped pipes per table line with exactly the right regex; its call site (`:1527-1530`) passed `roadmap_v1.md`, `coordination.md`, `*MATRIX_PATHS` and `*spec_paths`, and simply did not pass this path. Nothing else in the tree counts this file's cells, which made the index the ONLY markdown table in the record set with no shape gate. It is also the one record surface every change must write, with rows long enough to hide a stray pipe in a code span. Arming it reds exactly one row on `origin/main` at `100026481`: a pipe histogram over the index's 289 table lines reads `{5: 288, 9: 1}`, and the outlier is line 279, the [#1003](https://github.com/mudler/vllm.cpp/issues/1003) `ORACLE-LLAMACPP-REPIN-STOCK` row that arrived with `283c7e492` ([#1051](https://github.com/mudler/vllm.cpp/pull/1051)), carrying four unescaped pipes inside code spans at columns 2705, 3106, 3115 and 3338. FIXED IN FLOW: the path is added, the four pipes are escaped, and three cases in `tests/scripts/test_agent_record.py` hold it — one capturing the paths `main()` really hands the gate, one running it on the shipped file, one mutating a copy so the instrument is proven to fire. Repairing the row EDITS an append-only file, so `check-issue-index-append-only.py` is red on the branch and the exception is argued in the commit body, as `ff264cb82` ([#1025](https://github.com/mudler/vllm.cpp/pull/1025)) argued the same one: appending a corrected copy would leave the broken row in place and add a duplicate key, so the file only becomes well-formed by editing it where it sits. TWO PREMISES OF THE REPORT MEASURED FALSE and are recorded in the spec rather than quietly dropped: the checker does NOT stop at the first finding (one `errors` list, three findings in one run, exit 1 once), and the four pipes are NOT in a `git diff` piped into `grep` — that span does not exist in the row. Spec [`gate-issue-index-table-shape.md`](../specs/gate-issue-index-table-shape.md) | bug | | [#1144](https://github.com/mudler/vllm.cpp/issues/1144) | — | `Res2sTwoStageRecipe` is this tree's port of `TI2VidTwoStagesHQPipeline` (`ti2vid_two_stages_hq.py:59` @ `fd4ded7f`), the one in-scope pipeline that runs the SAME adapter on BOTH stages at DIFFERENT strengths: it builds `distilled_lora_stage_1` and `distilled_lora_stage_2` from one path (`:92-101`) and hands one to each `DiffusionStage.from_checkpoint` (`:154`, `:165`), CLI-defaulted 0.25 and 0.5 (`utils/args.py:1174-1184`). Here neither phase sets `Ltx2PhaseRecipe::loras`, so both take the `kAllAdapters` default, and the engine carries ONE strength for the whole load (`lora_strength` absent is 1.0, `include/vllm/multimodal/ltx2_video.h:214-218`) — so both stages run at 1.0. Nothing refuses and nothing changes shape; only a render against upstream on the same checkpoint, take and seed sees it. A NEW FIELD ON `Ltx2PhaseRecipe` DOES NOT CLOSE IT: `Ltx2RebindDitLoras` early-returns on `currently_fused == fuse` where `currently_fused` is `checkpoint.lora_fused_tensors > 0`, a BOOLEAN, so it detects "already fused" and never "already fused AT THIS STRENGTH" — and HQ has both stages fused, so the no-op its own header advertises would swallow the transition and stage 2 would render at stage 1's strength. Closing it needs `bool fuse` to become a type carrying a strength AND `Ltx2DitCheckpoint` to record WHICH adapter state is applied, plus a `--distilled-lora-strength-stage-1`/`-stage-2` request pair, since one `lora_strength` extra cannot spell two values. The re-materialize-and-write-back mechanism #1118 landed is untouched by that change. Filed because [#921](https://github.com/mudler/vllm.cpp/issues/921), which owned the per-phase strength in [`ltx25-phase-lora.md`](../specs/ltx25-phase-lora.md), was CLOSED as completed on 2026-08-17 by `LTX25-RES2S-LOOP` (`4d7748646`, PR [#1125](https://github.com/mudler/vllm.cpp/pull/1125)); that row named the distilled LoRA per stage as out of scope and correct to leave, but did not list it under its own `## Owed`, so the debt outlived its issue with no open owner. Found during the review repair of PR [#1140](https://github.com/mudler/vllm.cpp/pull/1140). Listed under `## Owed` in [`ltx25-phase-lora.md`](../specs/ltx25-phase-lora.md) | bug | | [#584](https://github.com/mudler/vllm.cpp/issues/584) | `ENG-RELEASE-WINDOWS` | `test_openai_api_server.exe` fast-fails with `-1073740791` / `0xC0000409` on BOTH Windows lanes, and the whole doctest output is the version banner — no `Status:` line, no `assertions:` line. NARROWED here while landing [#503](https://github.com/mudler/vllm.cpp/issues/503), not fixed. `0xC0000409` is NOT evidence of a stack buffer overrun: it is the status `__fastfail` raises for every fail-fast code, so `abort()` — and therefore `std::terminate()` — and the CRT invalid-parameter handler both surface as it, and `__fastfail` bypasses SEH, which is why doctest's Windows handler cannot report it. LOCALISED by the log: `LogHttpIngress` (`src/vllm/entrypoints/openai/api_server.cpp:223`) fires for `/v1/chat/completions` and no other route, over `std::cerr` (`request_logger.cpp:26`, unit-buffered, so absence is evidence and not buffering); `tests/vllm/entrypoints/openai/test_api_server.cpp` reaches that route at exactly eight sites in file order (`:596 :647 :662 :703 :748 :781 :902 :1292`), and the eighth and last logged request (`body_bytes=92 stream=0 max_tokens=4 prompt_chars=5`) is byte-for-byte the 92-byte body posted at `:1291-1294` inside `TEST_CASE("api_server: socket smoke — real HTTP requests over an ephemeral port")`. The server ANSWERED it (`Finished request chatcmpl-0 completion_tokens=4`), then produced nothing for 0.78 s and fast-failed — which places the fault between `:1294` and the `REQUIRE` at `:1325`, and excludes the 1.0 s poll loop at `:1323-1324`. WHY IT IS UNDIAGNOSABLE, and this half is provable by inspection rather than inferred: fifteen cases hold a joinable `std::thread` across throwing assertions (`:1243/1303` … `:3159/3222`, plus two threads in the `_WIN32`-only teardown case at `:2616`), so ANY throw in between destroys a joinable thread → `std::terminate()` → `abort()` → `__fastfail`, turning a named assertion failure into an opaque `0xC0000409` with no reporter output. NOT fixed in flow: it is a C++ edit at fifteen sites in a file that session could not build (host at 94 % disk; a mutation that fails to compile reads as a passing test), and landing it unbuilt would risk the green Linux lanes to repair a Windows instrument. Deterministic across four unrelated trees (`76f2a6d84`, `c83b96934`, `04b58bf6a`, the #1069 merge `6314602bb`) and identical on `windows-msvc-vulkan`, so both lanes are blocked by ONE defect. Evidence: jobs `95490912332`, `95479509343`, `95327871315`, `95479509369`. Diagnosis and next step under `## Owed` in [`windows-baseline-coverage.md`](../specs/windows-baseline-coverage.md) | bug | | [#1148](https://github.com/mudler/vllm.cpp/issues/1148) | `LTX25-BF16-DIT` | `PlanDit` refused every DiT checkpoint carrying neither `U8` nor `F8_E4M3` (`src/vllm/model_executor/models/ltx2_loader.cpp:414-418` @ `c83b96934`), so `ltx-2.5-22b-dev-transformer-bf16.safetensors` — the FULL model, 42,018,190,584 bytes, 4349 tensors, 4059 BF16 / 290 F32, ZERO `_scale` names, measured from its own header on 2026-08-17 — could not be read at all. Upstream's pipeline table (`packages/ltx-pipelines/CLAUDE.md:17-30` @ `fd4ded7f`) names that model for `TI2VidOneStagePipeline`, `T2AOneStagePipeline`, `TI2VidTwoStagesPipeline`, `TI2VidTwoStagesHQPipeline`, `A2VidPipelineTwoStage` and `KeyframeInterpolationPipeline`, so `one_stage`, `t2a_one_stage`, `res2s_two_stage` and `a2vid_two_stage` were all landed and all runnable only against a DISTILLED checkpoint, which is a different sampling regime that renders plausibly. The refusal's own advice was unreachable: it said "use the L2 path" and `Ltx2LoadDitFromSafetensors` IS the L2 path, calling `PlanDit` on its first line, as do `Ltx2ParseDitParamsFromCheckpoint`, `Ltx2StreamDitToDevice` and `Ltx2RebindDitLoras`. Upstream has no third quant state — `_DTYPE_CASTABLE` (`single_gpu_model_builder.py:51-57`) lists float32/float64/float16/bfloat16 and calls uint8-NVFP4 and float8 "quantized payloads", so unquantized is the BASELINE the two arms are exceptions to — and `MaterializeDitTensor` already carried a `BF16` branch, so the wall was the one `if` and nothing behind it. Fixed by `Ltx2DitQuant::kNone`, with the refusal that survives naming the dtypes the file holds. Spec [`ltx25-bf16-dit.md`](../specs/ltx25-bf16-dit.md) | bug | diff --git a/.agents/issues/ENG-RECORD-CONFLICT-SURFACES/ISSUE-LOCAL-01M2TR7N06G9EF8J2QVWVM49W7.md b/.agents/issues/ENG-RECORD-CONFLICT-SURFACES/ISSUE-LOCAL-01M2TR7N06G9EF8J2QVWVM49W7.md index 0e4955f3c8..0fae880833 100644 --- a/.agents/issues/ENG-RECORD-CONFLICT-SURFACES/ISSUE-LOCAL-01M2TR7N06G9EF8J2QVWVM49W7.md +++ b/.agents/issues/ENG-RECORD-CONFLICT-SURFACES/ISSUE-LOCAL-01M2TR7N06G9EF8J2QVWVM49W7.md @@ -98,7 +98,10 @@ A second, smaller breach of the same rule: #2350, #2354, #2356 and #2357, all cr ## Why nothing noticed -`scripts/check-agent-record.py:2216-2222`: when a branch reference fails to resolve to a canonical record, the checker appends an error only if the reference is a stable-ID form. A bare `#` hits `continue` and is silently accepted. The 169 in-tree `#` citations into the hole therefore cost nothing today. The hazard is latent rather than live: every `ISSUE-GH-` form citation into #2449-#3216 currently in the tree (#2987, #3094, #3103, #3116, #3153, #3155) does resolve, so no gate is red, but the first spec that writes `ISSUE-GH-` for a hole number reds the record gate on its own diff. +The restructured checker's canonical-reference pass: when a branch reference fails to resolve to a canonical record, the pass appends an error only if the reference is a stable-ID form. A bare `#` hits `continue` and is silently accepted. (The pass is +`check_canonical_issue_references` in that restructured file; the pre-restructure +`scripts/check-agent-record.py` that `main` carries has no canonical-reference pass at +all.) The 169 in-tree `#` citations into the hole therefore cost nothing today. The hazard is latent rather than live: every `ISSUE-GH-` form citation into #2449-#3216 currently in the tree (#2987, #3094, #3103, #3116, #3153, #3155) does resolve, so no gate is red, but the first spec that writes `ISSUE-GH-` for a hole number reds the record gate on its own diff. ## No other gap of this size diff --git a/.agents/issues/ENG-RECORD-CONFLICT-SURFACES/ISSUE-LOCAL-01M3TZZWZBKWSJKGSV6NYQEQW5.md b/.agents/issues/ENG-RECORD-CONFLICT-SURFACES/ISSUE-LOCAL-01M3TZZWZBKWSJKGSV6NYQEQW5.md new file mode 100644 index 0000000000..b8cbbf0ebc --- /dev/null +++ b/.agents/issues/ENG-RECORD-CONFLICT-SURFACES/ISSUE-LOCAL-01M3TZZWZBKWSJKGSV6NYQEQW5.md @@ -0,0 +1,23 @@ +ID: ISSUE-LOCAL-01M3TZZWZBKWSJKGSV6NYQEQW5 +Title: The #1033 row, its record and its spec cite check_table_shapes at a checker line the restructure moved - four instances convert to the symbol convention +Row: ENG-RECORD-CONFLICT-SURFACES +State: OPEN +Kind: bug +GitHub: - +Mirror: PENDING +Availability: FULL +Created: 2026-10-01 +Updated: 2026-10-01 +Closed: - + +## Problem + +The citation gate resolves every `check-agent-record.py` line citation in the tree against the tracked checker, and at `fce36733b` the checker is 1270 lines while the gate lists eighteen dangling instances. Four of them are ONE claim: `check_table_shapes` is cited at line 1292 from the frozen archive row for #1033, twice more from ISSUE-GH-1033 (its Title and the Frozen archive evidence quote), and once from `.agents/specs/gate-issue-index-table-shape.md`. + +The claim was true when written and is false against every checker the tree has since carried. The symbol sits at line 1105 on main, and the reviewed restructure that a merge resolved away defines it at line 2028, so no single number is correct in both trees and a re-point would land a number the next restore moves again. The repair adopts the repository's own symbol convention (`citation-anchor-freshness.md`, option 4) and cites `scripts/check-agent-record.py::check_table_shapes`, which resolves in both trees. + +The archive row and the record's Title and its quote move together and stay byte-equal, because the frozen-evidence contract compares them; the spec carries the same conversion. Red-first: the gate lists the four instances before the repair and none of them after, with the pre-existing remainder (the #3354 family and the pending-restore family) untouched. + +## Resolution + +- diff --git a/.agents/issues/ENG-RECORD-CONFLICT-SURFACES/ISSUE-LOCAL-01M3TZZXRSG958K18BZKC6J44B.md b/.agents/issues/ENG-RECORD-CONFLICT-SURFACES/ISSUE-LOCAL-01M3TZZXRSG958K18BZKC6J44B.md new file mode 100644 index 0000000000..73922c8db6 --- /dev/null +++ b/.agents/issues/ENG-RECORD-CONFLICT-SURFACES/ISSUE-LOCAL-01M3TZZXRSG958K18BZKC6J44B.md @@ -0,0 +1,27 @@ +ID: ISSUE-LOCAL-01M3TZZXRSG958K18BZKC6J44B +Title: Seven checker-line citations the restructure and two retirements left dangling - owed_issues(), the duplicate-issue refusal, check_row_contracts and the canonical-reference pass +Row: ENG-RECORD-CONFLICT-SURFACES +State: OPEN +Kind: bug +GitHub: - +Mirror: PENDING +Availability: FULL +Created: 2026-10-01 +Updated: 2026-10-01 +Closed: - + +## Problem + +Seven of the citation gate's dangling instances sit outside both the #3354 family and the checker-restore family. They need three different repairs, and two of them name instruments the tree has retired. + +Symbol conversions (the target exists in both the current and the reviewed-restructure checker): `scripts/check-agent-record.py::check_row_contracts` is where the `CLAIM-*` owner requirement lives, cited at line 1785 from `.agents/claims/CLAIM-MODEL-DSV4-EXL3.md`. + +Retired instruments, repaired as retirement prose rather than instrument swaps: the record checker's backlog reader `owed_issues()`, cited at lines 2002-2017 and 2012-2014 from `.agents/specs/ltx25-completion-scope.md`, was removed by the local-issue-authority cutover (`a9f6186c2`), and its successor in `scripts/issue_records.py` reads stable issue identities rather than the bare numbers those measurements counted, so naming the successor would change the subject; and the duplicate-issue refusal, cited at lines 1437-1441 and 1437-1442 from two specs, was removed by W6 (`7dc2ef1ea`) together with the live issue index it protected. + +One status correction: the canonical-reference pass cited at lines 2216-2222 from this row's own ISSUE-LOCAL-01M2TR7N06G9EF8J2QVWVM49W7 exists only in the restructured checker; the pre-restructure file on main resolves no canonical references at all. + +Red-first: seven instances before, none after. + +## Resolution + +- diff --git a/.agents/issues/GATE-ISSUE-INDEX-TABLE-SHAPE/ISSUE-GH-1033.md b/.agents/issues/GATE-ISSUE-INDEX-TABLE-SHAPE/ISSUE-GH-1033.md index 3a7c947dd4..be7ee98e3c 100644 --- a/.agents/issues/GATE-ISSUE-INDEX-TABLE-SHAPE/ISSUE-GH-1033.md +++ b/.agents/issues/GATE-ISSUE-INDEX-TABLE-SHAPE/ISSUE-GH-1033.md @@ -1,5 +1,5 @@ ID: ISSUE-GH-1033 -Title: `check_table_shapes` (`scripts/check-agent-record.py:1292`) never ran on `.agents/issue-index.md`, so a malformed row there was invisible to every gate. The function already counted unescaped pipes per table line with exactly the right regex; its call site (`:1527-1530`) passed `roadmap_v1.md`, `coordination.md`, `*MATRIX_PATHS` and `*spec_paths`, and simply did not pass this path. Nothing else in the tree counts this file's cells, which made the index the ONLY markdown table in the record set with no shape gate. It is also the one record surface every change must write, with rows long enough to hide a stray pipe in a code span. Arming it reds exactly one row on `origin/main` at `100026481`: a pipe histogram over the index's 289 table lines reads `{5: 288, 9: 1}`, and the outlier is line 279, the [#1003](https://github.com/mudler/vllm.cpp/issues/1003) `ORACLE-LLAMACPP-REPIN-STOCK` row that arrived with `283c7e492` ([#1051](https://github.com/mudler/vllm.cpp/pull/1051)), carrying four unescaped pipes inside code spans at columns 2705, 3106, 3115 and 3338. FIXED IN FLOW: the path is added, the four pipes are escaped, and three cases in `tests/scripts/test_agent_record.py` hold it — one capturing the paths `main()` really hands the gate, one running it on the shipped file, one mutating a copy so the instrument is proven to fire. Repairing the row EDITS an append-only file, so `check-issue-index-append-only.py` is red on the branch and the exception is argued in the commit body, as `ff264cb82` ([#1025](https://github.com/mudler/vllm.cpp/pull/1025)) argued the same one: appending a corrected copy would leave the broken row in place and add a duplicate key, so the file only becomes well-formed by editing it where it sits. TWO PREMISES OF THE REPORT MEASURED FALSE and are recorded in the spec rather than quietly dropped: the checker does NOT stop at the first finding (one `errors` list, three findings in one run, exit 1 once), and the four pipes are NOT in a `git diff` piped into `grep` — that span does not exist in the row. Spec [`gate-issue-index-table-shape.md`](../../specs/gate-issue-index-table-shape.md) +Title: `scripts/check-agent-record.py::check_table_shapes` never ran on `.agents/issue-index.md`, so a malformed row there was invisible to every gate. The function already counted unescaped pipes per table line with exactly the right regex; its call site (`:1527-1530`) passed `roadmap_v1.md`, `coordination.md`, `*MATRIX_PATHS` and `*spec_paths`, and simply did not pass this path. Nothing else in the tree counts this file's cells, which made the index the ONLY markdown table in the record set with no shape gate. It is also the one record surface every change must write, with rows long enough to hide a stray pipe in a code span. Arming it reds exactly one row on `origin/main` at `100026481`: a pipe histogram over the index's 289 table lines reads `{5: 288, 9: 1}`, and the outlier is line 279, the [#1003](https://github.com/mudler/vllm.cpp/issues/1003) `ORACLE-LLAMACPP-REPIN-STOCK` row that arrived with `283c7e492` ([#1051](https://github.com/mudler/vllm.cpp/pull/1051)), carrying four unescaped pipes inside code spans at columns 2705, 3106, 3115 and 3338. FIXED IN FLOW: the path is added, the four pipes are escaped, and three cases in `tests/scripts/test_agent_record.py` hold it — one capturing the paths `main()` really hands the gate, one running it on the shipped file, one mutating a copy so the instrument is proven to fire. Repairing the row EDITS an append-only file, so `check-issue-index-append-only.py` is red on the branch and the exception is argued in the commit body, as `ff264cb82` ([#1025](https://github.com/mudler/vllm.cpp/pull/1025)) argued the same one: appending a corrected copy would leave the broken row in place and add a duplicate key, so the file only becomes well-formed by editing it where it sits. TWO PREMISES OF THE REPORT MEASURED FALSE and are recorded in the spec rather than quietly dropped: the checker does NOT stop at the first finding (one `errors` list, three findings in one run, exit 1 once), and the four pipes are NOT in a `git diff` piped into `grep` — that span does not exist in the row. Spec [`gate-issue-index-table-shape.md`](../../specs/gate-issue-index-table-shape.md) Row: GATE-ISSUE-INDEX-TABLE-SHAPE State: UNKNOWN Kind: bug @@ -16,7 +16,7 @@ Archive: `.agents/completed/issue-index.md:350` ### Frozen archive evidence -> | [#1033](https://github.com/mudler/vllm.cpp/issues/1033) | `GATE-ISSUE-INDEX-TABLE-SHAPE` | `check_table_shapes` (`scripts/check-agent-record.py:1292`) never ran on `.agents/issue-index.md`, so a malformed row there was invisible to every gate. The function already counted unescaped pipes per table line with exactly the right regex; its call site (`:1527-1530`) passed `roadmap_v1.md`, `coordination.md`, `*MATRIX_PATHS` and `*spec_paths`, and simply did not pass this path. Nothing else in the tree counts this file's cells, which made the index the ONLY markdown table in the record set with no shape gate. It is also the one record surface every change must write, with rows long enough to hide a stray pipe in a code span. Arming it reds exactly one row on `origin/main` at `100026481`: a pipe histogram over the index's 289 table lines reads `{5: 288, 9: 1}`, and the outlier is line 279, the [#1003](https://github.com/mudler/vllm.cpp/issues/1003) `ORACLE-LLAMACPP-REPIN-STOCK` row that arrived with `283c7e492` ([#1051](https://github.com/mudler/vllm.cpp/pull/1051)), carrying four unescaped pipes inside code spans at columns 2705, 3106, 3115 and 3338. FIXED IN FLOW: the path is added, the four pipes are escaped, and three cases in `tests/scripts/test_agent_record.py` hold it — one capturing the paths `main()` really hands the gate, one running it on the shipped file, one mutating a copy so the instrument is proven to fire. Repairing the row EDITS an append-only file, so `check-issue-index-append-only.py` is red on the branch and the exception is argued in the commit body, as `ff264cb82` ([#1025](https://github.com/mudler/vllm.cpp/pull/1025)) argued the same one: appending a corrected copy would leave the broken row in place and add a duplicate key, so the file only becomes well-formed by editing it where it sits. TWO PREMISES OF THE REPORT MEASURED FALSE and are recorded in the spec rather than quietly dropped: the checker does NOT stop at the first finding (one `errors` list, three findings in one run, exit 1 once), and the four pipes are NOT in a `git diff` piped into `grep` — that span does not exist in the row. Spec [`gate-issue-index-table-shape.md`](../../specs/gate-issue-index-table-shape.md) | bug | +> | [#1033](https://github.com/mudler/vllm.cpp/issues/1033) | `GATE-ISSUE-INDEX-TABLE-SHAPE` | `scripts/check-agent-record.py::check_table_shapes` never ran on `.agents/issue-index.md`, so a malformed row there was invisible to every gate. The function already counted unescaped pipes per table line with exactly the right regex; its call site (`:1527-1530`) passed `roadmap_v1.md`, `coordination.md`, `*MATRIX_PATHS` and `*spec_paths`, and simply did not pass this path. Nothing else in the tree counts this file's cells, which made the index the ONLY markdown table in the record set with no shape gate. It is also the one record surface every change must write, with rows long enough to hide a stray pipe in a code span. Arming it reds exactly one row on `origin/main` at `100026481`: a pipe histogram over the index's 289 table lines reads `{5: 288, 9: 1}`, and the outlier is line 279, the [#1003](https://github.com/mudler/vllm.cpp/issues/1003) `ORACLE-LLAMACPP-REPIN-STOCK` row that arrived with `283c7e492` ([#1051](https://github.com/mudler/vllm.cpp/pull/1051)), carrying four unescaped pipes inside code spans at columns 2705, 3106, 3115 and 3338. FIXED IN FLOW: the path is added, the four pipes are escaped, and three cases in `tests/scripts/test_agent_record.py` hold it — one capturing the paths `main()` really hands the gate, one running it on the shipped file, one mutating a copy so the instrument is proven to fire. Repairing the row EDITS an append-only file, so `check-issue-index-append-only.py` is red on the branch and the exception is argued in the commit body, as `ff264cb82` ([#1025](https://github.com/mudler/vllm.cpp/pull/1025)) argued the same one: appending a corrected copy would leave the broken row in place and add a duplicate key, so the file only becomes well-formed by editing it where it sits. TWO PREMISES OF THE REPORT MEASURED FALSE and are recorded in the spec rather than quietly dropped: the checker does NOT stop at the first finding (one `errors` list, three findings in one run, exit 1 once), and the four pipes are NOT in a `git diff` piped into `grep` — that span does not exist in the row. Spec [`gate-issue-index-table-shape.md`](../../specs/gate-issue-index-table-shape.md) | bug | ## Resolution diff --git a/.agents/specs/bench-qwen38-27b-four-way.md b/.agents/specs/bench-qwen38-27b-four-way.md index ccdc130d27..d014d4cfff 100644 --- a/.agents/specs/bench-qwen38-27b-four-way.md +++ b/.agents/specs/bench-qwen38-27b-four-way.md @@ -707,7 +707,8 @@ The append-only rule's own rationale is what settles it. `AGENTS.md` and the line to exist at the merge base. This one does not, and the checker measures exactly that, diffing the merge base against the head rather than reading the tree. It passes on the edit, and `scripts/check-agent-record.py` passes with it. -The duplicate-row refusal at `check-agent-record.py:1437-1441` is real and was +The duplicate-row refusal the record checker carried while the live index existed +(retired with it by W6, `7dc2ef1ea`) is real and was correctly described, and it is simply the wrong instrument here, because this corrects the first row before it lands rather than appending a second. diff --git a/.agents/specs/gate-issue-index-table-shape.md b/.agents/specs/gate-issue-index-table-shape.md index 7ab75350fd..678d10f437 100644 --- a/.agents/specs/gate-issue-index-table-shape.md +++ b/.agents/specs/gate-issue-index-table-shape.md @@ -7,7 +7,7 @@ State: `ACTIVE` ## Scope -`check_table_shapes` (`scripts/check-agent-record.py:1292`) counts the +`scripts/check-agent-record.py::check_table_shapes` counts the unescaped pipes on every table line of every path it is handed and reports any line whose count differs from the first line of that table: diff --git a/.agents/specs/ltx25-completion-scope.md b/.agents/specs/ltx25-completion-scope.md index 743b01c156..010c51602a 100644 --- a/.agents/specs/ltx25-completion-scope.md +++ b/.agents/specs/ltx25-completion-scope.md @@ -190,8 +190,8 @@ no gate and no plan can schedule this backlog without a human reading all 352. ### 2.2 A gate defect found while counting, and it under-reports this backlog -`owed_issues()` in `scripts/check-agent-record.py:2002-2017` reads the backlog -with two bugs: +`owed_issues()` - the record checker's backlog reader, retired by the +local-issue-authority cutover (`a9f6186c2`) - read the backlog with two bugs: ```python if "\n## Owed" not in text: @@ -736,7 +736,7 @@ a cluster of nine and was published as one item**; §6.1 carries all nine. | **D7** | **The campaign `Out` list is stale in five of its entries.** The temporal upsampler, LoRA fusion, multishot, `KeyframeInterpolation` and `TI2VidTwoStages` have all landed or been retired | `ltx-2-5.md:288-296` | S | | **D8** | **Three stale blocker bullets** assert what §5 falsifies, plus two propagated copies. They also carry the two wrong anchors this spec inherited (`hdr_ic_lora.py:229` at `:986`, `ltx2_lora.cpp:246` at `:987`; true values 217 and 255) and a third, the reference-audio refusal cited at `ltx2_video.cpp:1991-2004` when it is at `:2754-2766` | `ltx-2-5.md:973-996` (**not** `:962-991`, which is an unrelated #1458 paragraph), `ltx25-retake.md:212,499` | S | | **D9** | The copy-pasteable render command omits `--checkpoint-class` and refuses as written | `docs/models/ltx-2-5.md:105-118` | S | -| **D10** | **The owed-backlog gate misses 7 of the 166 issue numbers under an owed heading** — a numbered or differently-worded heading is skipped entirely (`:2012`), and only the first section is read (`:2014`). Measured in the gate's OWN unit: `owed_issues()` returns `set[str]` of issue numbers and never counts items, so this row's earlier "~74 of 299 items" measured a quantity the function does not compute. §2.2 | `scripts/check-agent-record.py:2002-2017` | S, needs a red-first test | +| **D10** | **The owed-backlog gate misses 7 of the 166 issue numbers under an owed heading** — a numbered or differently-worded heading is skipped entirely (`:2012`), and only the first section is read (`:2014`). Measured in the gate's OWN unit: `owed_issues()` returns `set[str]` of issue numbers and never counted items, so this row's earlier "~74 of 299 items" measured a quantity the function does not compute. §2.2 | the record checker's `owed_issues()` reader (retired, `a9f6186c2`) | S, needs a red-first test | | **D11** | **NINE in-tree statements describe as unported or owed something this tree ships.** Published as one until review; the table below carries all nine with the tree's falsifier beside each. §A.5 | nine sites, listed below | S each, but see the note | | **D12** | **The campaign carries no ratification of the GGUF k-quant exemption**, which five specs assert independently. §A.3. This is records debt only in that no record arbitrates; the decision itself is the developer's | five `ltx25-*.md` specs; no arbitrating record found | decision | @@ -1130,7 +1130,7 @@ files = [f for f in sorted(set(glob.glob(".agents/specs/ltx25-*.md")) | {".agent tot = secs = blind = 0; agg = {}; specs = set(); issues = set(); seen = set() for f in files: lines = open(f, encoding='utf-8').read().split("\n"); txt = "\n".join(lines) - # exactly what scripts/check-agent-record.py:2012-2014 reads, and no more + # exactly the two rules `owed_issues()` read the owed section with, and no more gate = txt.split("\n## Owed", 1)[1].split("\n## ", 1)[0] if "\n## Owed" in txt else "" seen |= set(ISSUE.findall(gate)) i = 0 diff --git a/.agents/specs/ltx25-decode-dtype.md b/.agents/specs/ltx25-decode-dtype.md index de4b29da50..8ea1dec6a6 100644 --- a/.agents/specs/ltx25-decode-dtype.md +++ b/.agents/specs/ltx25-decode-dtype.md @@ -257,7 +257,8 @@ see and a memory-format change across a shared seam are two independent reviews. | **A blocked summation order for the sites that still sum naively** (§8.1) — `Linear3d`, the attention block, `PixelNorm`. `CausalConv3d` has one; the others do not, and their reductions are shorter but not short. | The same treatment, measured the same way. None of them is near tolerance today. | | NDHWC / `channels_last_3d` (§5) | its own row, after or with a SIMD or device arm | | bf16 *storage*, the phase L6 production arm (`ltx2_video_vae.cpp:63-66`) | [#1007](https://github.com/mudler/vllm.cpp/issues/1007) and the L6 row | -| The `.agents/issue-index.md` row for [#1008](https://github.com/mudler/vllm.cpp/issues/1008) | It is **deliberately not appended here.** The row exists on PR #1018, which filed the issue and is unmerged. `.gitattributes:7` sets `merge=union` on that file and `scripts/check-agent-record.py:1437-1442` refuses a duplicate issue number with "duplicate is what two branches appending the same issue look like". Appending it here would turn `main` red for every branch the moment #1018 merges — the exact failure a duplicate #995 row caused. The link lives in this spec and in the pull request body; the index link arrives with #1018. | +| The `.agents/issue-index.md` row for [#1008](https://github.com/mudler/vllm.cpp/issues/1008) | It is **deliberately not appended here.** The row exists on PR #1018, which filed the issue and is unmerged. `.gitattributes:7` sets `merge=union` on that file and the record checker of the day refused a duplicate issue number with "duplicate is what two branches appending the same issue look like" (the refusal and the live index were retired together by W6, `7dc2ef1ea`). +Appending it here would turn `main` red for every branch the moment #1018 merges — the exact failure a duplicate #995 row caused. The link lives in this spec and in the pull request body; the index link arrives with #1018. | ## 8. Outcome — what was measured