diff --git a/.agents/coordination.md b/.agents/coordination.md index 842151c2..11721764 100644 --- a/.agents/coordination.md +++ b/.agents/coordination.md @@ -118,6 +118,22 @@ without the selected contention proof for their entire run are discarded. ## Active claims +**Documentation-checkpoint canonical-record coverage (`ROAD-V1-A6`, +2026-08-01, `CLAIM-ROAD-V1-A6-DOC-CHECKPOINT-COVERAGE`).** Codex (GPT-5), +isolated worktree `/home/mudler/_git/vllm.cpp-codex-cpu-20260801`, branch +`codex/cpu-maintenance-20260801b`, base `upstream/main` `1448e981`. CPU-only +governance bugfix under the accepted +`.agents/specs/docs-coverage-audit.md`: `scripts/check-doc-checkpoint.py` omits +the canonical `.agents/sglang-matrix.md`, `.agents/environment.md`, and +`.agents/sync/` record surfaces, allowing binding parity/environment/sync +checkpoints to bypass the required same-commit `docs/STATUS.md` and +`docs/BENCHMARKS.md` update. Owns only the checker, its mutation tests, this +claim, the `ROAD-V1-A6` current-state cell, the two required public checkpoint +notes, and append-only state/ledger evidence. No runtime source, build, model, +kernel, lifecycle, support claim, README, or benchmark number changes. No GPU, +model, compiler, external host, or download is required; verification is the +Python checker mutation suite plus the repository record/document checkers. + **Interactive CLI chat/complete spike (`SERVE-CLI-CHAT`, 2026-08-01, `CLAIM-SERVE-CLI-CHAT-SPIKE`).** Codex (GPT-5), isolated worktree `/home/mudler/.cache/sdd/localai-org-maint-bot-vllm.cpp/codex-serve-cli-chat-spike`, diff --git a/.agents/parity-ledger.md b/.agents/parity-ledger.md index 1156d192..6fb6e03f 100644 --- a/.agents/parity-ledger.md +++ b/.agents/parity-ledger.md @@ -886,3 +886,4 @@ Columns: | 2026-07-31 (`SERVE-C-ABI` W0 contract spike; `CLAIM-SERVE-C-ABI-SPIKE`; CPU-only records/docs) | Accepted `.agents/specs/c-api-library.md` for the already-shipped original C packaging layer: complete scope, vLLM semantic chain/deviation, ABI v10/19-symbol baseline, ownership/error/version/dispatch rules, exact code/test anchors, gates, dependencies, risks, and W1-W5 follow-ons. Also fixes the verified stale public `VLLM_ABI_VERSION 9` labels in README/USAGE to the source-of-truth v10 and adds the missing v10 usage-table entry. No production/test/CMake source changed. | Pinned vLLM `555967922` has no C ABI; behavior beneath the adapter remains owned by its vLLM-derived engine rows. The flat ABI is the recorded llama.cpp-style packaging deviation and may translate, never reimplement, policy. | **CPU/records gate only; benchmark NOT APPLICABLE.** Focused C11/C++/dlopen/export gate passed 3/3 after explicitly building `vllm_shared`; five record checkers pass. `check-agent-record` reports the base tree's same six missing closing-commit objects (`444ea9d7`, `7a3f04b2`, `164453a2`), none in this row/diff. Row stays `ANCHOR-BACKFILL` because all-symbol dlsym coverage (chat symbols currently omitted), historical-layout compatibility, allocation-failure no-throw proof, lifetime sanitizer stress, and a standalone real-model C consumer remain W1-W5. | | 2026-07-31 (`CLAIM-CPU-GCC12-WERROR-PORTABILITY`; maintenance, rows `QUANT-GGUF-KEEPQ-LOADER` + `KV-OFFLOAD`; lifecycle unchanged) | Removes two GCC 12 production-library `-Werror` blockers without suppressions: the GGUF prefault keeps the same one-byte-per-page volatile XOR but uses simple assignment, and the KV filesystem tier builds the identical `...tmp` suffix with append operations inside its thread-local initializer. No API, algorithm, default, CUDA, fixture, or golden change. | Behavior remains grounded in the accepted loader and KV-persistence leaf specs: llama.cpp mmap prefault intent and vLLM `tiering/fs/io.py` unique temporary-file publication. This is compiler portability, not a parity-surface change. | RED: GCC 12 failed first at `qwen3_5_gguf_weights.cpp:49` (`-Wvolatile`), then at `fs_io.cpp:66` (`-Wrestrict`). GREEN: production `vllm` and focused test targets build clean; focused CTest 2/2 (`test_gguf_keep_quant`, `test_kv_offload_fs`). Full all-target build is PARTIAL at 42% on unrelated test-only GCC 12 `-Wrestrict` diagnostics in `test_deepseek_v2_paged_engine.cpp` and `test_glm4_moe_lite_paged_engine.cpp`; no full-CTest claim. Benchmark NOT APPLICABLE. | | 2026-08-01 (`SERVE-CLI-CHAT` W0 contract spike; `CLAIM-SERVE-CLI-CHAT-SPIKE`; CPU-only records/spec) | Accepts `.agents/specs/cli-chat-complete.md`, corrects the inventory from “no direct commands” to the actual pinned `chat`/`complete` surface, and decomposes a dual-mode port: exact remote OpenAI HTTP/SSE commands plus preservation of the existing in-process invocation as a compatibility alias. No production, test, CMake, model, kernel, fixture, or generated file changes. | Pinned vLLM `5559679229`: command registration `vllm/entrypoints/cli/main.py:17-37,73-98`; model/auth resolution and stream shaping `vllm/entrypoints/cli/openai.py:30-100`; chat `:155-234`; complete `:237-312`. The local compatibility baseline is `examples/cli/main.cpp:1-207`. | CPU record/doc gates only; benchmark `NOT APPLICABLE`, `benchmark_binding=false`. Implementation remains absent and the row moves `INVENTORIED` -> `SPIKE`. W1-W5 name parse, transport, complete, chat, and packaging gates, including fake-server request/SSE transcript parity, Release `-Werror`, ASan+UBSan, and TSan. | +| 2026-08-01 (`ROAD-V1-A6`; `CLAIM-ROAD-V1-A6-DOC-CHECKPOINT-COVERAGE`; CPU-only governance) | Extends the existing same-commit public-document policy to the three binding canonical-record surfaces it omitted: `.agents/sglang-matrix.md`, `.agents/environment.md`, and `.agents/sync/`. No runtime, lifecycle, support, or benchmark behavior changes. | Project governance only, under the accepted `.agents/specs/docs-coverage-audit.md`; no vLLM behavior counterpart. | RED-first mutation proof: all three paths produced zero errors before the fix; after the exact allowlist/prefix additions each produces both required STATUS and BENCHMARKS errors. Python script suite 96/96 green. Benchmark NOT APPLICABLE. | diff --git a/.agents/roadmap_v1.md b/.agents/roadmap_v1.md index ee8d437e..3d791f98 100644 --- a/.agents/roadmap_v1.md +++ b/.agents/roadmap_v1.md @@ -533,7 +533,7 @@ diagnostics recorded in `docs/BENCHMARKS.md`. | A3 | `test_ops_fused_chain` FMA-contraction fix | ✅ merged bf48edb (`-ffp-contract=off` host-wide) | | A4 | De-Python the build: vendor Triton AOT artifacts per-arch (`triton_aot_vendored//` + MANIFEST; `VLLM_CPP_TRITON_REGEN` = maintainer-only Python) | ✅ **DONE** (54367cc..a432461; reproducibility hardening `09f1d23`) — `sm_121a` now has 48 generated C/H files + MANIFEST, including both bf16 `chunk_o` shapes; normal builds remain Python-free. Regen is explicit-target (`cuda:121:32`), line-info-disabled and byte-reproducible across source paths; the pure checker makes source/contract/artifact drift fatal and mutation-tests missing/extra/changed artifacts. A4 remains closed; fresh current-main CUDA/runtime/performance validation belongs to the two ACTIVE `CLAIM-PR3` kernel rows (evidence: porting-inventory §9). | | `SERVE-E2E-NIGHTLY` (formerly A5) | e2e suites per gates.md (server conformance nightly on dgx etc.) | ☐ next; leaf spike required | -| A6 | **User-facing surface closure** (audit `CLAIM-DOCS-COVERAGE`, 2026-07-24): make what SHIPPED reachable and truthfully documented. The audit found 2 class-D overstatements, 5 stale doc lines, 4 shipped-but-unreachable features and 153 undocumented env vars | 🚧 Tier 1 (falsehood repair) DONE in the audit commit. **Tier 2 DONE 2026-07-24 (`CLAIM-DOCS-T2-FIXES`)**, 3 of its 4 items: the D1 guard (a per-connector worker-half capability predicate; the disk connector is now REFUSED at engine construction on every device instead of silently shortcutting prefill for KV nothing writes — **its worker half remains unimplemented and is NOT claimed**), server `--tool-call-parser`/`--reasoning-parser` (40 tool names / 7 reasoning parsers now reachable over HTTP; defaults reproduce the old hardcode exactly), and server `--kv-transfer-config` mirroring vLLM's own CLI + JSON shape. Also landed from Tier 3/4: `docs/KV-OFFLOAD.md`, the README flag rows, the three missing Gemma model rows, and the `SERVE-C-ABI` 17→19 record repair. **Comprehensive refresh DONE 2026-07-25 (`CLAIM-DOCS-REFRESH`)**: **Tier 4** `docs/ENVIRONMENT.md` (26 user-facing env vars documented of 153 swept, kernel-internal tail on `scripts/env-doc-allowlist.txt`) + its CI checker `scripts/check-env-doc.py` (mutation-tested, fails on a new undocumented+unallowlisted production env var); the **Tier 3** README refresh to current git history (spec-decode `--speculative-config` now documented as shipped, the "not user-visible" class-B falsehood fixed, C ABI `VLLM_ABI_VERSION 6`, CLI spec-config flag); new usage guide `docs/SPECULATIVE-DECODING.md`. STILL OPEN: `vllm-cli` structured-output/sampling flags (Tier 2 item 4, code, not docs). **C-ABI contract W0 2026-07-31 (`CLAIM-SERVE-C-ABI-SPIKE`):** accepted [c-api-library.md](specs/c-api-library.md), corrected public ABI v9 labels to v10, and named W1-W5 compatibility/no-throw/lifetime gates; `SERVE-C-ABI` honestly remains `ANCHOR-BACKFILL`. **CLI chat/complete W0 2026-08-01 (`CLAIM-SERVE-CLI-CHAT-SPIKE`):** [cli-chat-complete.md](specs/cli-chat-complete.md) corrects the inventory (the pin does ship both remote commands), selects exact OpenAI HTTP/SSE parity plus a compatibility-preserved local invocation, and decomposes CPU-only W1-W5 implementation leaves; `SERVE-CLI-CHAT` is `SPIKE`, no command code has landed. Full table: [specs/docs-coverage-audit.md](specs/docs-coverage-audit.md) | +| A6 | **User-facing surface closure** (audit `CLAIM-DOCS-COVERAGE`, 2026-07-24): make what SHIPPED reachable and truthfully documented. The audit found 2 class-D overstatements, 5 stale doc lines, 4 shipped-but-unreachable features and 153 undocumented env vars | 🚧 Tier 1 (falsehood repair) DONE in the audit commit. **Tier 2 DONE 2026-07-24 (`CLAIM-DOCS-T2-FIXES`)**, 3 of its 4 items: the D1 guard (a per-connector worker-half capability predicate; the disk connector is now REFUSED at engine construction on every device instead of silently shortcutting prefill for KV nothing writes — **its worker half remains unimplemented and is NOT claimed**), server `--tool-call-parser`/`--reasoning-parser` (40 tool names / 7 reasoning parsers now reachable over HTTP; defaults reproduce the old hardcode exactly), and server `--kv-transfer-config` mirroring vLLM's own CLI + JSON shape. Also landed from Tier 3/4: `docs/KV-OFFLOAD.md`, the README flag rows, the three missing Gemma model rows, and the `SERVE-C-ABI` 17→19 record repair. **Comprehensive refresh DONE 2026-07-25 (`CLAIM-DOCS-REFRESH`)**: **Tier 4** `docs/ENVIRONMENT.md` (26 user-facing env vars documented of 153 swept, kernel-internal tail on `scripts/env-doc-allowlist.txt`) + its CI checker `scripts/check-env-doc.py` (mutation-tested, fails on a new undocumented+unallowlisted production env var); the **Tier 3** README refresh to current git history (spec-decode `--speculative-config` now documented as shipped, the "not user-visible" class-B falsehood fixed, C ABI `VLLM_ABI_VERSION 6`, CLI spec-config flag); new usage guide `docs/SPECULATIVE-DECODING.md`. STILL OPEN: `vllm-cli` structured-output/sampling flags (Tier 2 item 4, code, not docs). **C-ABI contract W0 2026-07-31 (`CLAIM-SERVE-C-ABI-SPIKE`):** accepted [c-api-library.md](specs/c-api-library.md), corrected public ABI v9 labels to v10, and named W1-W5 compatibility/no-throw/lifetime gates; `SERVE-C-ABI` honestly remains `ANCHOR-BACKFILL`. **CLI chat/complete W0 2026-08-01 (`CLAIM-SERVE-CLI-CHAT-SPIKE`):** [cli-chat-complete.md](specs/cli-chat-complete.md) corrects the inventory (the pin does ship both remote commands), selects exact OpenAI HTTP/SSE parity plus a compatibility-preserved local invocation, and decomposes CPU-only W1-W5 implementation leaves; `SERVE-CLI-CHAT` is `SPIKE`, no command code has landed. **Checkpoint coverage hardened 2026-08-01:** the public-doc gate now includes the SGLang matrix, environment registry, and upstream-sync reports, with mutation proof. Full table: [specs/docs-coverage-audit.md](specs/docs-coverage-audit.md) | ## B. Research tracks (complete) diff --git a/.agents/state.md b/.agents/state.md index 173f48b6..9fdd1a42 100644 --- a/.agents/state.md +++ b/.agents/state.md @@ -34505,3 +34505,12 @@ The required Slack selection notification was attempted through the bundled secret-safe sender to the only conventional target available, `#general`, but Slack returned `channel_not_found`. No channel ID/name is configured and no credential was inspected or exposed. + +**Documentation-checkpoint canonical-record coverage (2026-08-01, +`CLAIM-ROAD-V1-A6-DOC-CHECKPOINT-COVERAGE`).** CPU-only governance fix for +`ROAD-V1-A6`: `check-doc-checkpoint.py` previously omitted the binding SGLang +matrix, environment registry, and upstream-sync report directory, so changes to +those records could bypass the required same-commit STATUS/BENCHMARKS update. +Added the three exact policy entries and a RED-first mutation test over each +surface (3 failures before the fix, 6/6 green after). No runtime, lifecycle, +support, README, or benchmark-number change. diff --git a/docs/BENCHMARKS.md b/docs/BENCHMARKS.md index fc665a30..98a2daa9 100644 --- a/docs/BENCHMARKS.md +++ b/docs/BENCHMARKS.md @@ -1,5 +1,12 @@ # Benchmarks +## Documentation checkpoint coverage (2026-08-01) - NOT APPLICABLE + +The documentation gate now covers the canonical SGLang matrix, environment +registry, and upstream-sync reports. This is a Python CI-policy correction with +mutation tests; it changes no runtime code, workload, latency, throughput, or +memory behavior, so no benchmark is applicable. + ## Laguna-S-2.1-NVFP4 decode — routed-MoE CastF32 fold (`VT_LAGUNA_TAIL_FUSED`), byte-exact, −39 nodes/step, wall-neutral (2026-08-03, `CLAIM-LAGUNA-TAIL-FUSED`) Continuation of the byte-exact node-count campaign (glue/preamble/addnorm/onecast) on the GB10 NVFP4 decode graph (`~/laguna-xs-nvfp4`, ids `2,785,9626,377,15360,395`, base env `VT_LAGUNA_RESIDENT_DECODE=1 VT_LAGUNA_MARLIN_MOE=1 VT_LAGUNA_DECODE_GRAPH=1`, origin/main `65f3cdc1`). A fresh `cuda_gpu_kern_sum --cuda-graph-trace=node` 20↔70 diff of the baseline ranked the remaining SMALL decode kernels; the biggest tail items are already folded (`RmsNormRow`+`AddAdd2RmsNorm` = the add_rms_norm forms, `FusedQkNormRope` = the preamble) or unfoldable (`SigmoidTopK`/router GEMV = cuBLAS-adjacent, `DecodeAttnGqaSplitG`/`DecodeAttnCombine` = attention compute, `MoeAlign`/`SiluAndMul`/`MoeCombine` = ported-Marlin pipeline). The one clean byte-exact node reduction left was the MoE-output `CastF32`. diff --git a/docs/STATUS.md b/docs/STATUS.md index b8bfbbca..1850939a 100644 --- a/docs/STATUS.md +++ b/docs/STATUS.md @@ -2109,6 +2109,11 @@ _(Laguna decode KV+attention → shared-framework port, bf16-KV slice (2026-08-0 **Canonical record-owner repair (2026-07-31).** No lifecycle or support status changed. Six existing `DONE` rows now point to their reachable binding closure commits; this is records-only metadata maintenance. +**Documentation checkpoint coverage (2026-08-01).** The same-commit public-doc +gate now treats `.agents/sglang-matrix.md`, `.agents/environment.md`, and +`.agents/sync/` reports as binding checkpoint surfaces. This is governance +hardening only; no capability lifecycle or support claim changed. + **Shared pure-dense decode CUDA-graph — `Qwen3DenseModel`, 5 registrations (2026-08-02).** Added `Qwen3DenseDecodeGraph` (opt-in `VLLM_CPP_QWEN3_DENSE_DECODE_GRAPH`), the pure-dense sibling of the shipped `Qwen3MoeDecodeGraph`, driving the SHARED `Qwen3DenseModel` forward so `Qwen3ForCausalLM` + `LlamaForCausalLM` + `InternLM3ForCausalLM` + `MistralForCausalLM` + `InternLM2ForCausalLM` all pick up a captured decode graph at once (Llama/Mistral/InternLM2 alias `Qwen3DenseModel`). The eager forward is split into `EmbedInto` (outside capture) + `ForwardLayers` (the captured region); same cold→warm→capture→replay state machine + padded-batch capture set as the siblings. dgx GB10 SACRED near-tie gate (`test_qwen3_paged_engine`) with the graph ON: Qwen3-0.6B + Qwen3-4B both 16/16 PASS, 0 forward-divergent, BYTE-IDENTICAL to the eager (graph-OFF) baseline (captured S=1, 239 replays/checkpoint). Default OFF keeps the eager path byte-identical (SACRED default gates untouched). Rigorous steady-state decode tok/s (eager vs graphed) OWED. See commit. **CI repair — CPU build leg + two static-gate holes (2026-08-02).** Three jobs were RED on `main` (`ca5c7adc`); no lifecycle, support status or forward path changed. diff --git a/scripts/check-doc-checkpoint.py b/scripts/check-doc-checkpoint.py index 7130fe79..ed6ab38a 100755 --- a/scripts/check-doc-checkpoint.py +++ b/scripts/check-doc-checkpoint.py @@ -19,6 +19,7 @@ CHECKPOINT_PREFIXES = ( ".agents/completed/", ".agents/specs/", + ".agents/sync/", ".github/workflows/", "cmake/", "examples/", @@ -33,6 +34,7 @@ ".agents/backend-matrix.md", ".agents/coordination.md", ".agents/engine-matrix.md", + ".agents/environment.md", ".agents/feature-matrix.md", ".agents/kernel-matrix.md", ".agents/model-matrix.md", @@ -40,6 +42,7 @@ ".agents/porting-inventory.md", ".agents/quantization-matrix.md", ".agents/roadmap_v1.md", + ".agents/sglang-matrix.md", ".agents/state.md", } diff --git a/tests/scripts/test_doc_checkpoint.py b/tests/scripts/test_doc_checkpoint.py index b6e5869b..a5a90d99 100755 --- a/tests/scripts/test_doc_checkpoint.py +++ b/tests/scripts/test_doc_checkpoint.py @@ -42,6 +42,18 @@ def test_lifecycle_and_diagnostic_records_are_checkpoints(self) -> None: with self.subTest(path=path): self.assertTrue(doc_checkpoint.checkpoint_errors({path})) + def test_all_binding_record_surfaces_are_checkpoints(self) -> None: + for path in ( + ".agents/sglang-matrix.md", + ".agents/environment.md", + ".agents/sync/2026-08-01-example.md", + ): + with self.subTest(path=path): + errors = doc_checkpoint.checkpoint_errors({path}) + self.assertEqual(len(errors), 2) + self.assertIn("docs/STATUS.md", errors[0]) + self.assertIn("docs/BENCHMARKS.md", errors[1]) + def test_both_public_documents_satisfy_checkpoint(self) -> None: self.assertEqual( doc_checkpoint.checkpoint_errors(