Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .agents/issue-index.md
Original file line number Diff line number Diff line change
Expand Up @@ -301,3 +301,5 @@ rather than merged. `scripts/check-agent-record.py` gates both.
| [#1049](https://github.com/mudler/vllm.cpp/issues/1049) | — | `Ltx2Guidance` (`src/vllm/model_executor/models/ltx2_pipeline.cpp:526 @ c1fe35592`) is dead in production: `git grep -n 'Ltx2Guidance(' -- src include examples tests` returns the declaration (`ltx2_pipeline.h:330`), the definition, and ONE call, at `tests/vllm/models/test_ltx2_pipeline.cpp:710`. It is also the only path to two ported guiders — `Ltx2CfgDelta` (`ltx2_pipeline.cpp:532`, plus `test_ltx2_pipeline.cpp:615`) and `Ltx2StgDelta` (`:534`, plus `:630`) — so both are reachable from no product entry point either. `Ltx2BatchedPerturbationConfig` (`ltx2_pipeline.h:380`) is the same shape from a different direction: constructed only at `test_ltx2_pipeline.cpp:832-859`, while the LTX-2.5 text-to-audio path perturbs through `Ltx2DitPerturbation`, a different type, and no other path perturbs at all. This is the test-only-driver shape [`reachability.md`](reachability.md) names. All four landed with #641. `Ltx2MultiModalGuidance` was the fourth member of the set and is no longer one: [#1005](https://github.com/mudler/vllm.cpp/issues/1005) gave it a production call site in `ltx2_t2a.cpp`. Closing this means either routing a product path through `Ltx2Guidance` with a configured `Ltx2GuiderKind` — `Ltx2GuiderSigmaBin` and `Ltx2GuiderParamsForSigma` are already ported beside it — or retiring the unreached arms into `.agents/completed/` with their provenance. Found repairing the fresh review of [#1039](https://github.com/mudler/vllm.cpp/issues/1039) on PR [#1032](https://github.com/mudler/vllm.cpp/pull/1032), where an earlier draft of that row's spec §6b claimed the row ended all four test-only drivers; §6b now carries the measured table. Listed under `## Owed` in [`ltx25-t2a-one-stage.md`](specs/ltx25-t2a-one-stage.md) | bug |
| [#1050](https://github.com/mudler/vllm.cpp/issues/1050) | — | The guider rescale's `std` comment states a consequence that cannot exist. `src/vllm/model_executor/models/ltx2_pipeline.cpp:505-506 @ c1fe35592`, repeated at `include/vllm/model_executor/models/ltx2_pipeline.h:319-322`, says torch's `std` is the UNBIASED (N-1) estimator by default and "the biased one would be a small, everywhere, resolution-dependent gain error that no shape or finiteness check can see". `factor_raw` is `unbiased_std(cond) / unbiased_std(pred)`, two `std`s over the SAME `count`, so the divisor cancels exactly: `sqrt(ss_c/(n-1))/sqrt(ss_p/(n-1)) == sqrt(ss_c/ss_p) == sqrt(ss_c/n)/sqrt(ss_p/n)`. There is no gain error, small or otherwise, and nothing about it is resolution-dependent; the two forms differ only by f32 rounding in the divide. Worth a record rather than a silent correction because the comment tells the next reader a gate is needed there and it is not: the fresh review of [#1039](https://github.com/mudler/vllm.cpp/issues/1039) mutated the estimator to the biased form and it survived — correctly, because it is an IDENTITY — and a survivor at that site otherwise reads as a blind instrument and costs another investigation. The CODE is right as written and should stay `unbiased_std`, because the name is what mirrors torch even where the ratio does not care; the COMMENT is the defect. Pre-existing from `cefacd2d0` (#641). Found repairing that review on PR [#1032](https://github.com/mudler/vllm.cpp/pull/1032) and out of scope there under its explicit exclusions. Listed under `## Owed` in [`ltx25-t2a-one-stage.md`](specs/ltx25-t2a-one-stage.md) | bug |
| [#1052](https://github.com/mudler/vllm.cpp/issues/1052) | — | `tests/vllm/v1/test_engine_core_proc.cpp:481` ("EngineCoreProc: immediate shutdown aborts in-flight requests") searches for the abort frame over a FIXED budget of 1000 dequeues while a `max_tokens=100000` request keeps the busy loop producing token deltas, so nothing bounds how many frames precede the abort and the budget is a bet on scheduling. MEASURED at `37e680cab`, same binary throughout, CPU-only Release on 20 cores: **2 failures in 3 `ctest -j4` runs** of the full 492-test suite (`CHECK( abort_seen ) is NOT correct!`), **0 in 25 solo runs** on an idle box at load 3.34, **0 in 25 solo runs against 20 spinning processes**, and 0 in two `ctest -R '^test_engine_core_proc$'` runs (`Passed 0.03 sec`). So CPU pressure alone does not reproduce it; it needs the `-j4` harness. The third `-j4` run failed `test_cpu_threadpool` INSTEAD, which is on the same load-dependent list, so the IDENTITY of the failing test rotates between runs of an unchanged binary and both pass alone with exit 0. NO ISSUE NAMED THIS TEST: PR [#1032](https://github.com/mudler/vllm.cpp/pull/1032)'s body attributed its flake to [#294](https://github.com/mudler/vllm.cpp/issues/294), which is a different defect in a different test (`test_async_llm` reusing an aborted request id), and a misattributed flake is worse than an untracked one because the next reader checks the citation, finds an open issue about something else, and stops looking. The assertion guards a real guarantee (an in-flight request gets a `kAbort` finish on immediate shutdown); the 1000-frame budget is the part that is a guess. Found repairing the fresh review of [#1039](https://github.com/mudler/vllm.cpp/issues/1039), on a branch that touches no file under `tests/vllm/v1/` or `src/vllm/v1/`. Listed under `## Owed` in [`ltx25-t2a-one-stage.md`](specs/ltx25-t2a-one-stage.md) | bug |
| [#960](https://github.com/mudler/vllm.cpp/issues/960) | `MODEL-TEXT-nemotron-h-nemotron-hfor-causal-lm` | `vt::QuantFp8Static`'s ONLY CUDA registration lived at `src/vt/cuda/cuda_matmul_fp8_cutlass.cu:376` (@ `0e1bee42f`), and `CMakeLists.txt:1668` compiles that translation unit only when `VT_CUTLASS_FP8_ARCHS` is non-empty — yet the kernel body has ZERO cutlass tokens (`:353-370`): it is `out[i] = e4m3(x[i] * (1/input_scale))`, a grid-stride elementwise convert. So on every CUDA arch outside the cutlass-fp8 cell — sm_110/Thor is the measured one, and `cutlass-fp8: DISABLED for [110]` is that arch's DOCUMENTED NORMAL PROFILE, not a misconfiguration — `OpId::kQuantFp8Static` was not registered for `DeviceType::kCUDA` at all. Nothing refused first: the GEMM partner `kMatmulFp8CublasLt` IS registered unconditionally (`src/vt/cuda/cuda_matmul.cu:920`), so `MatmulFp8CutlassD`'s guard passed, and the missing quant then resolved through `src/vt/op_provider.cpp:501` to the portable CPU reference tier — eligible because `CudaBackend::UnifiedMemory()` is true — which dereferenced DEVICE pointers on the host and SIGSEGV'd one call later under a banner reading "correct but slow". Fixed by relocating the registration to a new unconditionally-compiled TU `src/vt/cuda/cuda_quant_fp8.cu`, which restores upstream's own partition (vLLM builds `static_scaled_fp8_quant` from the unconditional `VLLM_EXT_SRC` list and gates only its cutlass `scaled_mm` sources). This removes one live INSTANCE of [#844](https://github.com/mudler/vllm.cpp/issues/844) and does not address its class, which stays open. Unblocks the FP8 W8A8 arm on every non-cutlass CUDA arch — the base [#810](https://github.com/mudler/vllm.cpp/issues/810)/[#517](https://github.com/mudler/vllm.cpp/issues/517) A2-Q1 needs, where 46 FP8 mamba projections are 36.6% of decode bytes. Spec [`vt-fp8-quant-arch-gate.md`](specs/vt-fp8-quant-arch-gate.md) | bug |
| [#989](https://github.com/mudler/vllm.cpp/issues/989) | `VT-FP8-QUANT-ARCH-GATE` | `scripts/check-pr-size.py`'s `classify_path` has no entry for `.agents/reachability.md` (added by `POLICY-NOTHING-LANDS-DEAD`, [#888](https://github.com/mudler/vllm.cpp/issues/888) @ `8f49ac3be`), and it FAILS CLOSED, so `pr-size` — a REQUIRED check — refuses every pull request that touches that guide, and `tests/scripts/test_check_pr_size.py` has been red on `main` ever since. Red SILENTLY: that suite is wired into no CI job and is not in `agent-preflight.sh`'s `SUITES`, so the only thing that ever loads it is `check-pr-size`'s own executable-evidence contract, which fires only when a PR edits a checker — the red is reachable exclusively by the next person who must touch that file, and presents to them as their own breakage (the [#584](https://github.com/mudler/vllm.cpp/issues/584)/[#965](https://github.com/mudler/vllm.cpp/issues/965) shape). Third instance of the class after [#856](https://github.com/mudler/vllm.cpp/issues/856) (`issue-index.md` + the style guides) and [#668](https://github.com/mudler/vllm.cpp/issues/668) (`.agents/oracles/*`), both fixed in flow by the row that tripped over them. FIXED IN FLOW while landing [#960](https://github.com/mudler/vllm.cpp/issues/960), which could not register its new checker's creation mutation without touching `check-pr-size.py` at all. NOT fixed: wiring that suite into CI, which is its own change and would red `main` until this landed | bug |
Loading
Loading