Skip to content

fix(record): retire the shared record surfaces that make concurrent PRs conflict (#364) - #368

Merged
mudler merged 6 commits into
mainfrom
row/ENG-RECORD-CONFLICT-SURFACES-v2
Aug 11, 2026
Merged

fix(record): retire the shared record surfaces that make concurrent PRs conflict (#364)#368
mudler merged 6 commits into
mainfrom
row/ENG-RECORD-CONFLICT-SURFACES-v2

Conversation

@localai-bot

Copy link
Copy Markdown
Collaborator

Issue #364. Row ENG-RECORD-CONFLICT-SURFACES. Spec .agents/specs/retire-shared-record-surfaces.md.

Supersedes #367 (same work; that branch's commits carried a malformed Assisted-by trailer and the history was rewritten rather than force-pushed).

Spec + W1–W5, complete. No product source is touched.

Measured

git merge-tree --write-tree origin/main <head> over every open PR at origin/main d928e2c3: 16 of 29 conflict (55%), and 13 of the 16 conflict in bookkeeping onlycoordination.md 8, NOW.md 5, roadmap_v1.md 4, check-public-doc-tables.py 4, STATUS.md 4, against 3 in any src/ or tests/ path.

What changed

  • W1 — removed the chars key of STATUS_RATCHET, a byte count of docs/STATUS.md pinned in the checker and allowed to fall only. Narrowed from the spec: the other three keys count quality defects, not length, so they don't move on an ordinary edit — kept, and they carry the anti-decay obligation. RED-BEFORE: the page was exactly 243245/243245; one capability line put it 27 over.
  • W3 — removed MAX_CHARS from check-now-current.py. The digest measured exactly 6000/6000, so a row could only be added by evicting one. MAX_LINES/MAX_ENTRY_CHARS carry the obligation.
  • W4 — sorted the roadmap issue table by stable row ID (rows byte-identical, verified as a set).
  • W2 — new .agents/claims/CLAIM-*.md, one file per claim, read alongside the legacy table. Redesigned from the spec: deriving from gh pr list would put a network call in an offline gate and would drop the bidirectional cross-check check_row_contracts performs. Additive on purpose — no row migrated; the table empties as claims close.
  • W5 — the invariant in AGENTS.md §Records: no surface that every PR must write, and the three admissible shapes.

A correction the tests forced

tests/scripts/test_record_merge_shape.py asks git directly, and it disproved a claim I had made in the spec: removing a budget does not on its own make two row additions merge — two appends collide at the same anchor either way. What the budget added was a forced deletion of unrelated content, and that is the part with teeth: it made every PR edit lines it did not own, and it made a successful merge unsafe (git applies both evictions, both victims vanish, no gate notices). W3 removes the eviction, W4 the collision; neither alone suffices. The spec is corrected in the same change.

Evidence

  • preflight rc=0; test_check_public_doc_tables 52, test_check_now_current 11, test_record_merge_shape 11, test_check_pr_size 34.
  • W2 mutation-proven: reverting claim_sources to coordination.md alone → 2 failures; tree restored byte-for-byte (md5 b9f325f1238a954001132a19309e7caa) → green.
  • Merging origin/main mid-flight produced three conflicts, all three the defect itself (main re-pinned chars 243245→243188 against the deletion; unsorted roadmap appends). Resolved keeping all 46 issue rows.
  • Filing this one row tripped four hardcoded global counters (ENGINE_ROWS, two matrix roll-ups, RUNNABLE_BASELINE), each re-pinned with its reason and recorded as evidence.

🤖 Generated with Claude Code

mudler added 4 commits August 11, 2026 09:39
…conflicts (#364)

16 of 29 open PRs are CONFLICTING, and 13 of those 16 conflict in bookkeeping
files ONLY, with no product code involved. Measured at origin/main d928e2c by
running `git merge-tree --write-tree` against every open PR head:
coordination.md in 8, NOW.md in 5, roadmap_v1.md in 4,
check-public-doc-tables.py in 4, STATUS.md in 4 -- and any src/ or tests/ path
in just 3, one of which is a stale mega-branch.

Three surfaces are shaped so concurrent PRs must collide, rather than merely
risk it. NOW.md is a fixed-size shared buffer sitting at EXACTLY 6000/6000
chars, so adding a row requires evicting another and every PR becomes a
read-modify-write of one global -- where the conflict is the lucky outcome,
since a clean three-way merge would apply both evictions and both additions and
silently drop live rows. STATUS_RATCHET is a hardcoded byte count of a
different file that may only fall, so a PR owing STATUS.md one lifecycle line
must delete unrelated prose to pay for it; the checker's own comment already
records the failure and answered it with slack rather than by removing the
coupling. And coordination.md's claims table is insert-at-one-anchor, which is
why six ROCm GDN PRs from one author's sequential stack conflict on nothing
else.

It also contradicts the protocol it serves. AGENTS.md holds that history is git
and that there is no state log, yet both claims tables are state logs
duplicating `gh pr list`, row/<ID> branch names and issue state. The argument
that refuses a waiver registry applies unchanged to a claims registry, and this
is the third instance of one failure mode: policy.csv was retired in 0f3e44e
and the per-class line budgets on 2026-08-10, both because the gate fired on
ordinary work.

The exonerated surfaces share one property, one writer per file. Specs are one
file per row and took ZERO conflicts across the whole sample, so W1-W5 rewrite
the three offenders into that shape or derive them, keep every local per-cell
and per-paragraph cap, and record the invariant: no surface that every PR must
write.

This commit is the spec and the record only. No checker semantic, no doc
content and no product source changes; the four counter re-pins below are the
existing bump convention for a real new row, each carrying its reason.

Filing this one row tripped four separate hardcoded global counters
(ENGINE_ROWS, two engine-matrix summary roll-ups, and RUNNABLE_BASELINE), which
is the same defect the row exists to remove and is recorded here as evidence
rather than worked around.

Issue: #364

FOLLOWING_AGENTS_PROTOCOL

Following-Agents-Protocol: true
AI-Assisted: true
Assisted-by: AGENT:claude-opus-5 [Claude Code]
…ed write (#364)

W1, W3, W4 and W5 of the spec. The claims table (W2) follows separately.

W1 removes the `chars` key of STATUS_RATCHET. It was a byte count of
docs/STATUS.md stored in scripts/check-public-doc-tables.py and allowed to move
only downward, so a PR owing the page one lifecycle line had to delete unrelated
prose from another row to pay for it AND re-pin the constant -- two shared files
per PR, both of which every other PR was also editing. RED-BEFORE measured: the
live page was EXACTLY 243245 of 243245 permitted chars, and one ordinary
capability line put it 27 over.

The cut is narrower than the spec's W1 text, deliberately. The four keys are not
alike: `chars` is a LENGTH and moves on every edit, while `h2_sections`,
`long_paragraphs` and `oversized_cells` count QUALITY DEFECTS, so an ordinary
line moves none of them and two concurrent PRs do not collide on them. Those
three are kept and carry the whole anti-decay obligation -- BENCHMARKS.md's
11,127-line decay would have tripped two of them on its own. Deleting them would
have dropped a real obligation for no conflict benefit, which is the case the
spec's stop condition names.

W3 removes MAX_CHARS from check-now-current.py. The tracked digest measured
EXACTLY 6000 of 6000: tuned to the byte, no headroom, so a row could only be
added by evicting one. MAX_LINES and MAX_ENTRY_CHARS stay and carry the
obligation -- a row costs one line rather than a variable number of bytes, and
each entry is still capped locally.

W4 sorts the roadmap issue table by stable row ID. The 43 rows are reordered and
otherwise byte-identical, verified as a set before and after. Appending at one
anchor is why concurrent additions collided; sorting puts them in different
hunks.

W5 records the invariant in AGENTS.md: no surface that every PR must write, and
the three shapes that are admissible instead.

The new tests/scripts/test_record_merge_shape.py asks git the question directly
rather than inspecting a checker, and it CORRECTED a claim I had made in the
spec. Removing a budget does NOT on its own make two row additions merge -- two
appends collide at the same anchor either way. What the budget added on top was
a forced deletion of unrelated content, and that is the part with teeth: it made
every PR edit lines it did not own, and it made a SUCCESSFUL merge unsafe, since
git resolving two such branches applies both evictions and both victims vanish
with no gate noticing. W3 removes the eviction, W4 removes the collision, and
neither alone is sufficient. The spec is corrected in the same commit.

Gates: preflight rc=0; check_public_doc_tables 52 OK, check_now_current 11 OK,
record_merge_shape 8 OK; check-public-doc-tables, check-now-current and
check-agent-record all green on the live tree. No product source is touched.

Issue: #364

FOLLOWING_AGENTS_PROTOCOL

Following-Agents-Protocol: true
AI-Assisted: true
Assisted-by: AGENT:claude-opus-5 [Claude Code]
Three conflicts, and all three are the defect this row removes.

scripts/check-public-doc-tables.py and its test conflicted because main re-pinned
the STATUS `chars` ratchet 243245 -> 243188 while this branch was deleting the
key. Resolved in favour of the deletion: that IS the change, and the collision is
one more instance of the coupling being removed -- an unrelated landing had to
touch this constant, which is the whole reason it was a merge hotspot in 4 of the
16 conflicting open PRs.

.agents/roadmap_v1.md conflicted because main appended three issue rows (#269,
#305, #206) at the same anchor this branch had just sorted. Resolved by unioning
both sides and re-sorting by the same stable key W4 uses, so the result carries
all 46 rows with no row lost from either side. Verified by count and by
check-agent-record.

Suites re-run after resolution: check_public_doc_tables OK, check_now_current 11,
record_merge_shape 8, check_pr_size 34; check-public-doc-tables, check-now-current
and check-agent-record green on the merged tree.

FOLLOWING_AGENTS_PROTOCOL

Following-Agents-Protocol: true
AI-Assisted: true
Assisted-by: AGENT:claude-opus-5 [Claude Code]
…liding (#364)

W2, and the largest single conflict source in the repository: the claims TABLE in
coordination.md is insert-at-one-anchor, so every concurrent claim appends a row
at the same line. It conflicted in 8 of the 16 conflicting open PRs measured at
origin/main d928e2c, six of them (#334 #336 #341 #343 #345 #348) one author's
sequential ROCm GDN stack whose ONLY conflict was this file. Their work did not
overlap at all.

New claims now go in .agents/claims/CLAIM-<ID>.md, one file per claim.
parse_active_claims reads that directory AND the legacy table, so both are valid
to the gate and the bidirectional cross-check is unchanged. A file with one
writer cannot collide -- the shape .agents/specs/ already has, which is why specs
took ZERO conflicts across the measured sample.

The design differs from the spec's W2, which said to derive claims from open PRs
and branch names. Reading the consumers showed that to be wrong twice over, and
the spec is corrected rather than the change quietly reinterpreted. Deriving
would put a NETWORK CALL inside an offline gate -- check-agent-record.py runs in
preflight with no network -- and the table is not redundant with the PR list:
check_row_contracts uses it for a bidirectional cross-check, where every
SPIKE/ACTIVE matrix row must be claimed by a live claim and every claim must name
rows in those states. A PR list cannot supply that, so deriving would have
dropped a real guarantee. That is the case the spec's own stop condition names.

Deliberately ADDITIVE: not one existing row is migrated. The 115 rows are spread
across several interleaved tables, struck-through released entries and prose
blocks, some below a later heading -- bulk-rewriting that is how a record gets
lost, in a diff no reviewer could check. Rows leave as their claims close and the
table empties on its own, while the conflict source is closed for every future
claim from the day this lands.

RED-BEFORE proven by mutation: with claim_sources reverted to coordination.md
alone, tests/scripts/test_record_merge_shape.py goes 2 failures; restored
byte-for-byte (md5 b9f325f1238a954001132a19309e7caa before and after) and green
again at 11/11.

Gates: preflight green apart from the commit-trailer repair in the same push;
check-agent-record, claim-view --check-local, check-pr-size 34 all green.

Issue: #364

FOLLOWING_AGENTS_PROTOCOL

Following-Agents-Protocol: true
AI-Assisted: true
Assisted-by: AGENT:claude-opus-5 [Claude Code]
mudler added 2 commits August 11, 2026 11:50
The same three conflicts as the previous merge, for the same three reasons, in
the same session. That is the measurement reproducing itself rather than a new
problem: check-public-doc-tables.py and its test because main re-pinned the
STATUS `chars` ratchet again while this branch deletes the key, and
roadmap_v1.md because main appended issue rows at the anchor this branch sorts.

Resolved identically: the deletion stands, and the roadmap is the union of both
sides re-sorted by the same stable key, carrying all 48 rows with none lost from
either side.

Worth recording from the range this merge brings in: d72ac5a is
"docs(now): keep the ROCm live-claim row inside the NOW.md budget" -- a commit
whose entire content is paying the 6000-char eviction tax that W3 removes. It
landed while this branch was removing the constant that demanded it.

Suites after resolution: check_public_doc_tables, check_now_current,
record_merge_shape, check_pr_size and agent_record all green; check-agent-record,
check-public-doc-tables and check-now-current green on the merged tree.

FOLLOWING_AGENTS_PROTOCOL

Following-Agents-Protocol: true
AI-Assisted: true
Assisted-by: AGENT:claude-opus-5 [Claude Code]
…364)

check-pr-size.py was RIGHT and this is its finding, not a workaround. Three
governance checkers changed in this row -- check-agent-record.py (per-claim file
source), check-pr-size.py (the .agents/claims path class) and
check-gate-commands.py (the RUNNABLE_BASELINE re-pin) -- and the evidence for
all three lived in the NEW tests/scripts/test_record_merge_shape.py rather than
in each checker's paired suite. The gate requires the paired suite, correctly:
that is where a later reader of that checker looks, and a new file is easy to
miss or delete wholesale.

Added, each with a mutation that proves the assertion is load-bearing:

test_agent_record.py -- a claim in its own file registers exactly as a table row
does; patching claim_sources back to coordination.md alone HIDES it (the
mutation); a claim declared twice across the two sources is still rejected, so
reading a second source did not weaken the duplicate check.

test_check_pr_size.py -- .agents/claims/CLAIM-*.md classifies as the same class
as the per-row spec it mirrors; substituting a never-matching pattern for CLAIM
makes classify_path raise (the mutation), proving the clause is not shadowed by
a broader rule; and a non-markdown path in the directory still fails closed, so
the pattern is not a blanket directory exemption -- which AGENTS.md forbids.

test_check_gate_commands.py -- the row is credited runnable and its spec really
names failable commands; removing the entry from RUNNABLE_BASELINE must break
the exact pin (the mutation), so the baseline is not decorative.

Also moved `if __name__ == "__main__"` to the END of test_agent_record.py and
test_check_pr_size.py. It sat mid-file, so classes appended after it were
defined AFTER unittest.main() had already collected and run -- the suites
reported OK while never executing the new tests (34 and 25 before, 38 and 29
after). A green suite that silently skips what was just added is the same class
of defect as the rest of this row.

Suites: test_agent_record 29, test_check_pr_size 38, test_check_gate_commands 27,
test_record_merge_shape 11, all OK.

Issue: #364

FOLLOWING_AGENTS_PROTOCOL

Following-Agents-Protocol: true
AI-Assisted: true
Assisted-by: AGENT:claude-opus-5 [Claude Code]
@mudler
mudler merged commit 87308de into main Aug 11, 2026
13 of 14 checks passed
@localai-bot
localai-bot deleted the row/ENG-RECORD-CONFLICT-SURFACES-v2 branch August 11, 2026 12:59
dariofinardi pushed a commit to dariofinardi/vllm.cpp that referenced this pull request Aug 11, 2026
FOLLOWING_AGENTS_PROTOCOL

main advanced 32 commits during this benchmark run and retired two of the exact
mechanisms this change had to fight: mudler#376 removed `.agents/NOW.md`'s live-claims
table, so no row-advancing change writes that file any more, and mudler#368 deleted
`STATUS_RATCHET` from `scripts/check-public-doc-tables.py`. Both of this row's
edits to those surfaces are therefore obsolete, not merged: the target-branch
version was taken wholesale for each conflicted file rather than three-way
merged, per the keyed-record rule.

What survives is the measurement itself and the surfaces that still carry it:
`.agents/benchmark-record.md`, `.agents/specs/muse-glimmer.md` §14,
`.agents/model-matrix.md`, `docs/BENCHMARKS.md`, `docs/FEATURES.md` and
`docs/STATUS.md`. Verified byte-for-byte that no unrelated key moved.

Following-Agents-Protocol: true
AI-Assisted: true
Assisted-by: AGENT:claude-opus-5 [Claude Code]
localai-bot pushed a commit that referenced this pull request Aug 11, 2026
…retired under us

`origin/main` advanced a SECOND time during this landing, 31 commits, while the
reconciliation merge below was being gated. A plain `git push` was refused as
non-fast-forward, which is git protecting those merges, so this fetches,
re-merges, reconciles every record against the shape main now has, and re-gates.
No force, no rebase of a published branch.

THE TWO CONSTRAINTS THIS LANDING WAS BUILT AROUND NO LONGER EXIST. #364/#368
(`ENG-RECORD-CONFLICT-SURFACES`) retired them as a defect, and AGENTS.md gained
the rule behind it: *no surface that every PR must write*. Concretely:

  - `STATUS_RATCHET["chars"]` is DELETED from
    `scripts/check-public-doc-tables.py`. It was a byte count of one file stored
    in another and allowed only to fall, so every PR owing STATUS.md a line had
    to evict unrelated prose AND edit the checker. The three QUALITY keys
    (`h2_sections`, `long_paragraphs`, `oversized_cells`) are kept.
  - `MAX_CHARS` is DELETED from `scripts/check-now-current.py`. NOW.md was a
    fixed-size shared buffer at exactly 6000/6000, so adding a row meant
    evicting someone else's. `MAX_LINES` and `MAX_ENTRY_CHARS` are kept, and
    they cap the ENTRY rather than the file.

So the ratchet arithmetic this landing carried out three times -- 243188 ->
243128 -> 243119 -> 243117, each byte-tight and re-measured -- is now moot, and
the honest resolution is to DROP it rather than defend it. Main's version of
both checker files and of `tests/scripts/test_check_public_doc_tables.py` is
taken BYTE-FOR-BYTE, which also drops PR #267's
`test_one_char_of_growth_on_the_LIVE_page_is_rejected`: that guard asserts on
the `chars` key, and the key is gone. Its subject was retired, not its argument.
`grep 'STATUS_RATCHET\["chars"\]'` over `scripts/` and `tests/scripts/` returns
nothing. Equally, the NOW.md compactions this landing made to buy room -- the
`SERVE-METRICS` restatement, the MiniMax-H3 and Release cells, the TP row's
`(unblocks #127/#154/#155)` clause -- are reverted to main's fuller text: they
were payments for a budget that no longer exists, and carrying them would be
unrelated churn in a keyed record.

Also fixed on main and no longer owed by anyone: the four conflict markers
committed to `.agents/specs/sm120-qwen35-conv-channel-tile-2026-08-08.md`,
which this landing found on main and did not touch (`76dfe8dc`).

KEYED RECORDS, reconciled against the shape main now has.

  scripts/check-public-doc-tables.py, tests/scripts/test_check_public_doc_tables.py
                            main's version taken BYTE-FOR-BYTE (`git diff` vs
                            `f64f2b71` is empty for both). The landing's ratchet
                            work is dropped entirely, per above.
  .agents/roadmap_v1.md     CONFLICT. Main SORTED the whole issue table by Row
                            then issue number, which moved every line. Main's
                            sorted table taken wholesale and the landing's SIX
                            rows re-inserted in sorted position -- #299, #314,
                            #337, #338 under `ROAD-V1-C1`, #278 under
                            `LORA-RUNTIME`, #264 beside #238 under
                            `SAMPLE-LOGPROB-TOKEN-IDS`. Verified: all 48 of
                            main's rows present, exactly 6 added, and the only
                            other line that differs from main is the
                            `ROAD-V1-C7` portfolio row, which PR #267
                            deliberately updates.
  .agents/engine-matrix.md  CONFLICT. Main's `Serving, API, CLI, library` row
                            gained a row and a `READY` (27 -> 28). Main's row
                            kept wholesale, the landing's `LoRA and adapters`
                            row (`ANCHOR-BACKFILL` -> `ACTIVE`) reapplied, and
                            the **Total** RECOMPUTED from the ten actual area
                            rows rather than carried from either side:
                            148|35|16|4|9|27|8|9|39. `check-agent-record.py`
                            confirms ENGINE=148.
  .agents/coordination.md   auto-merged and verified byte-identical to main's
                            edit set. #368 introduced `.agents/claims/` (one
                            file per claim) but deliberately does NOT migrate
                            existing rows -- the checker still reads the legacy
                            table -- so PR #282's `CLAIM-LORA-RUNTIME-W2` row
                            stays where it is and is removed when the claim
                            closes.
  scripts/check-gate-commands.py  CONFLICT: both sides added a comment block at
                            the same anchor. Unioned; `RUNNABLE_BASELINE` now
                            carries `ENG-RECORD-CONFLICT-SURFACES` (main's),
                            `ENG-RELEASE-CONTAINERS` (main's) and `LORA-RUNTIME`
                            (#282's). 117 gated rows, 32 runnable.
  docs/FEATURES.md          CONFLICT. Main's newer prose wins (37 registered
                            architectures, up from 35) and PR #324's
                            merged-GEMM sentence is reapplied into it. First
                            attempt as a separate paragraph tripped the
                            21-vs-20 prose-paragraph cap and appending it inline
                            tripped the 700-char paragraph cap at 782, so it is
                            paid for INSIDE the paragraph exactly as #324
                            originally did -- the lead-in collapsed, total 697
                            of 700. No cap was raised.
  .agents/NOW.md            CONFLICT. Main's three fuller rows taken wholesale
                            (`BACKEND-ROCM` now records the gfx1100 GDN slice
                            and #269 M0-M4). 94 of 100 lines, every entry inside
                            MAX_ENTRY_CHARS.
  docs/STATUS.md, docs/BENCHMARKS.md   untouched by main this time; 243,117 and
                            44,839. BENCHMARKS is still 161 chars inside its
                            hard 45,000 cap thanks to the row PR #282's merge
                            moved into `.agents/benchmark-record.md`.

GATE for the WHOLE landing, re-run by the operator on THIS tree, CPU Release,
foreground, no timeout on any test binary.

  cmake --build build-cpu -j 18     692 targets, 0 errors, 0 warnings

  Focused, all seven declared gates of the three PRs:
    test_dense_gate_up_seam_forward   4/4  cases | 1940 assertions | 0 skipped
    test_linear_method                6/6        |   76           | 0 skipped
    test_lora_layers                 16/16       | 4498           | 0 skipped
    test_punica_cpu                   8/8        |  149           | 0 skipped
    test_sampler                     21/21       |  114           | 0 skipped
    test_input_batch                 29/29       |  205           | 0 skipped
    test_llm_engine                  24/24       |  494           | 0 skipped

  Checkers, `scripts/__pycache__` cleared before each:
    check-agent-record.py         OK  ENGINE=148 MODEL=362 QUANT=82 KERNEL=51
                                      BACKEND=80
    check-public-doc-tables.py    OK  BENCHMARKS 44,839 / 45,000
                                      FEATURES   27,371, longest prose 697 / 700
    check-now-current.py          OK  94 / 100 lines
    check-fusion-consistency.py   OK  glue 14 / 12 routed / 2 allowlisted;
                                      merged-gemm 10 / 6 / 6, 0 drift
    check-gate-commands.py        OK  117 gated rows, 32 runnable
    check-commit-trailers.py      OK  over the whole landing range
  Checker unit suites, all seven: test_check_public_doc_tables 52/52,
    test_check_gate_commands 28/28, test_check_fusion_consistency 20/20,
    test_agent_record 29/29, test_check_now_current 11/11,
    test_record_merge_shape 11/11, test_check_pr_size 38/38.

  Full `ctest --test-dir build-cpu -j 6 --output-on-failure`, 383 tests,
  2771.26 s. BOTH numbers reported:
    99% tests passed, 2 failed out of 383 -- `test_async_llm` (0.33 s) and
    `test_openai_conformance` (163.91 s). Both are on the known
    starvation-prone list, and both pass SERIALLY on an idle box (load 2.52):
      test_async_llm           15/15 cases | 443 assertions | wall 0.05 s
      test_openai_conformance  23/23       | 252            | wall 0.45 s
    `test_openai_api_server`, which needed a serial re-run last time, PASSED
    under -j 6 here in 128.64 s -- the same binary, the same tree, a quieter
    box, which is the clearest available evidence that these are scheduling
    artifacts rather than defects. Neither failing binary loads a file this
    landing touches.
    The #274 ASan/UBSan five did not appear: this gate is Release with no
    sanitizer, and `test_llm_engine`, `test_capi` and `test_llama_embedding_fold`
    -- three of that five -- all PASS here (2006.17 s, 1618.64 s, 14.20 s).

  Note on `test_llm_engine`'s assertion count, corrected earlier in this
  landing: it is run-to-run NONDETERMINISTIC in this binary (493, 493, 492
  measured across three consecutive runs of one unmodified build; 494 here).
  Every run is 24/24 cases, 0 failed, 0 skipped.

FOLLOWING_AGENTS_PROTOCOL

Following-Agents-Protocol: true
AI-Assisted: true
Assisted-by: ClaudeCode:claude-opus-5 [ClaudeCode]
joral pushed a commit to joral/vllm.cpp that referenced this pull request Aug 11, 2026
Main moved 158 commits since the last merge. Merged, not rebased: main is never
force-pushed, so the branch absorbs main rather than rewriting over it.

Three files conflicted and two keyed records auto-merged; none of the five was
left to git's three-way result (AGENTS.md "Records"). Each was reset to
`origin/main` wholesale and the branch's scoped edit reapplied against an anchor
asserted to match exactly once:

- `.agents/roadmap_v1.md` (CONFLICT) — main re-sorted the intake table by row
  ID; the two `KV-EVENTS` issue rows (mudler#352, mudler#353) are reinserted in the sorted
  position ahead of `KV-EXTERNAL-CACHE`, not where the old unsorted table had
  them.
- `docs/USAGE.md` (CONFLICT) — both sides appended after the logprobs prose.
  Kept BOTH: main's `logprob_token_ids` paragraph, then this branch's
  "KV-cache events, and `kv_cache_report_mode`" section.
- `scripts/check-gate-commands.py` (CONFLICT) — both sides grew
  `RUNNABLE_BASELINE` at the same anchor. Took main's set entire (which is four
  entries wider and drops the three DONE rows mudler#374 closed) and reinserted only
  the `KV-EVENTS` entry with its re-pin rationale.
- `.agents/engine-matrix.md` (auto-merged, REDONE) — main's `KV-EVENTS` row is
  byte-identical to the merge base's, so the row replacement reapplies cleanly.
  Lifecycle state is `ACTIVE` on both sides, so no matrix count moves and none
  of the branch's totals are carried.
- `.agents/coordination.md` (auto-merged, REDONE) — reverted to `origin/main`
  byte-for-byte. `CLAIM-KV-EVENTS-W3` moves to
  `.agents/claims/CLAIM-KV-EVENTS-W3.md`, the per-claim surface mudler#364 added while
  this branch was parked; its README says new claims go there, and it is what
  made this row conflict in the first place. `check-agent-record.py` reads both.

`scripts/check-public-doc-tables.py` is taken from main unchanged: the
`STATUS_RATCHET["chars"]` pin was retired by mudler#364/mudler#368 and is not reintroduced.
`docs/BENCHMARKS.md` is untouched — this row has no measurement, so nothing is
charged against its 45,000-char cap.

FOLLOWING_AGENTS_PROTOCOL

Following-Agents-Protocol: true
AI-Assisted: true
Assisted-by: ClaudeCode:claude-opus-5 [ClaudeCode]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants