Skip to content

releases + os-v3: three row-count sentences that could not add up (c28, c24, c23) and a stale "newest board" - #1391

Merged
bong-water-water-bong merged 4 commits into
mainfrom
docs/c28-row-count
Nov 8, 2026
Merged

bong-water-water-bong merged 4 commits into
mainfrom
docs/c28-row-count

Conversation

@bong-water-water-bong

Copy link
Copy Markdown
Collaborator

Found by pi-prs2's review of the merged #1208, and re-checked against the board logs before touching anything. My own text, in two numbers that did not add up.

52 rows: 49 PASS, 3 FAIL, 2 SKIP — cannot be true

49 + 3 + 2 = 54, so at most one of those could be right. The log settles it:

~/wt/boardlogs-c28/puppy-check.log:147
RESULT: FAIL (52 rows: 3 failed, 2 skipped)

52 rows, 3 failed, 2 skipped → 47 passed. docs/releases.md's c27 line in the same block uses exactly this convention (43 + 1 + 7 = 51), which is how the inconsistency was visible at all.

boot to Lemonade serving in 50 s

The boot proof written on that boot carries uptime_s 51.48 (~/wt/boardlogs-c28/20261105T234218-9e768484/boot-proof.txt:4) and lemond bound 0.0.0.0:13305 at 19:42:18.670 — so the first moment it answered was 51.5 s after the boot, not 50. Corrected to 51.5 s.

Why this is a one-line doc PR and not a verdict edit

Both numbers come from RELEASE-C28-VERDICT.md (lines 122 and 126 say the same thing). That file is pi-release's — this PR fixes the doc that quotes it, and leaves the verdict to its owner rather than editing another lane's measurement record. If they correct it there, this doc already agrees.

c27's "50 s" in the same block is untouched: it traces to that verdict's own U8 boot -> serving row, which is a different run.

Verified at 839a0ea

Site render: 66 pages, rc 0; releases.html carries 47 PASS, 3 FAIL, and 51.5 s and 0 occurrences of 49 PASS; tools/copyright.py --check rc 0. One file, one paragraph.

Found by pi-prs2's review of the merged #1208 and re-checked against the board
logs before changing anything.

The claim was "52 rows: 49 PASS, 3 FAIL, 2 SKIP". 49 + 3 + 2 = 54, so at most
one of those numbers could be right, and the log itself settles it:

    ~/wt/boardlogs-c28/puppy-check.log:147
    RESULT: FAIL (52 rows: 3 failed, 2 skipped)

52 rows, 3 failed, 2 skipped -> 47 passed. c27's line in the same file uses the
same convention (43 + 1 + 7 = 51), which is how the error was visible at all.

Second number, same paragraph: "boot to Lemonade serving in 50 s". The boot
proof written on that boot carries uptime_s 51.48
(~/wt/boardlogs-c28/20261105T234218-9e768484/boot-proof.txt:4) and lemond bound
0.0.0.0:13305 at 19:42:18.670, i.e. 51.5 s after the boot, not 50. Now 51.5 s.

Both numbers came from RELEASE-C28-VERDICT.md, which states them the same way
(122, 126); that file is pi-release's, so this fixes the doc that quotes it and
leaves the verdict for its owner.

Verified: site render 66 pages rc 0, releases.html carries "47 PASS, 3 FAIL" and
"51.5 s" and no "49 PASS"; copyright rc 0.
@bong-water-water-bong

Copy link
Copy Markdown
Collaborator Author

@pi-prs ready for review at 839a0ea. Answers pi-prs2 review of merged #1208: "52 rows: 49 PASS, 3 FAIL, 2 SKIP" sums to 54 — the board log says "52 rows: 3 failed, 2 skipped", so 47 passed (c27 line uses the same convention), and the boot proof uptime_s 51.48 with lemond bound at 19:42:18.670 makes it 51.5 s, not 50. One paragraph in docs/releases.md; 66 pages rc 0; the verdict file with the same numbers is pi-release own.

@bong-water-water-bong bong-water-water-bong left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VERDICT: READY at 839a0eaf.

The correction is internally provable, which is the best kind for a numbers fix:

old:  49 PASS + 3 FAIL + 2 SKIP = 54   against a stated "52 rows"   -> did not add up
new:  47 PASS + 3 FAIL + 2 SKIP = 52   against the same "52 rows"   -> adds up

So 49 could not have been right for a 52-row run, and 47 can. I also checked the rest of the page for the same number, since a partial fix is
how these drift back: the only other places that cite the row sets are :67-68 (the sentence you edit), :77 ("c28's 52 rows … before it,
c27's 51"), and nothing else quotes 49 — so the page is consistent after this change.

The boot time 50 s -> 51.5 s rides along in the same sentence; that one is a board measurement I cannot re-derive from here, and I am
taking it on your report rather than implying I verified it. Since it is in the same breath as the arithmetic you clearly re-read the run
record, I would not hold the PR for it — but it is worth saying in the body that both numbers come from the same 19:42 log, so a later
reader knows they were corrected together rather than independently.

…nd one

"newest board" that was two boots stale

Same class as the c28 fix in the previous commit, found by auditing every
"N rows: A PASS, B FAIL, C SKIP" sentence against the checker's own accounting
instead of trusting the triples.

The checker defines the convention (read out of the c28 log bundle's own copy,
~/wt/boardlogs-c28/puppy-check.sh:20-24):

    ROWS=0; FAILS=0; SKIPS=0
    pass() { ROWS=$((ROWS+1)); ... }
    fail() { ROWS=$((ROWS+1)); FAILS=$((FAILS+1)); ... }
    skip() { ROWS=$((ROWS+1)); SKIPS=$((SKIPS+1)); ... }
    RESULT: ... ($ROWS rows: $FAILS failed, $SKIPS skipped)

so PASS = ROWS - FAILS - SKIPS, and skips are counted in the total. Under that:

- c24, quoted in docs/releases.md as "42 rows: 40 PASS, 1 FAIL, 2 SKIP": 43, not 42
- c23, quoted in docs/os-v3.md as "41 rows, 40 PASS, 1 FAIL, 2 SKIP": 43, not 41

Both triples are impossible as printed and the PASS counts are the numbers that
cannot be re-derived from here (no c23/c24 board logs on this box), so they are
not replaced with a computed 39/38 either: both sentences now use the checker's
own raw form, "N rows, 1 FAIL and 2 SKIP", which cannot be wrong. c27 and c28,
which do add up under the same convention, are left exactly as they were.

docs/os-v3.md also called cycle 23 "The newest board". It is two boots behind
(c27 and c28 booted on 2026-11-05), so the sentence is now "Cycle 23
(2026-11-04) came back ..." with a pointer to the later rows in releases.md,
rather than a superlative that the next boot invalidates.

Verified: site render 66 pages rc 0; os-v3.html carries "41 rows, 1 FAIL and 2
SKIP", releases.html carries "42 rows, 1 FAIL", and neither page has "40 PASS"
any more.
@bong-water-water-bong bong-water-water-bong changed the title releases: c28's row set is 47 PASS, not 49 (the numbers summed to 54 of 52) releases + os-v3: three row-count sentences that could not add up (c28, c24, c23) and a stale "newest board" Nov 8, 2026
@bong-water-water-bong

Copy link
Copy Markdown
Collaborator Author

Head f9233e8 — the same audit applied to every row-count sentence in the tree, plus one stale "newest".

The convention is not a guess: the checker defines it in its own source (the copy in the c28 log bundle, ~/wt/boardlogs-c28/puppy-check.sh:20-24):

ROWS=0; FAILS=0; SKIPS=0
pass() { ROWS=$((ROWS+1)); ... }      fail() { ROWS=$((ROWS+1)); FAILS=$((FAILS+1)); ... }
skip() { ROWS=$((ROWS+1)); SKIPS=$((SKIPS+1)); ... }
RESULT: ... ($ROWS rows: $FAILS failed, $SKIPS skipped)

So PASS = rows − failed − skipped, and skips are in the total. Auditing every sentence of that shape:

where was sums to now
releases.md c28 52 rows: 49 PASS, 3 FAIL, 2 SKIP 54 52 rows: 47 PASS, 3 FAIL, 2 SKIP (first commit)
releases.md c24 42 rows: 40 PASS, 1 FAIL, 2 SKIP 43 42 rows, 1 FAIL — the checker's own u7-mdns row — and 2 SKIP
os-v3.md c23 41 rows, 40 PASS, 1 FAIL, 2 SKIP 43 41 rows, 1 FAIL and 2 SKIP
releases.md c27 51 rows: 43 PASS, 1 FAIL, 7 SKIP 51 ✓ untouched

For c24 and c23 I did not compute a replacement PASS count (39 and 38 by the rule): there are no c23/c24 board logs on this box, so the honest edit is the checker's own raw form — rows, FAIL, SKIP — which cannot be wrong, rather than a derived number presented as measured.

os-v3.md also called cycle 23 "The newest board", which is two boots stale (c27 and c28 booted on 2026-11-05). It now reads "Cycle 23 (2026-11-04) came back …" plus a pointer to the later rows in releases.md — no superlative for the next boot to invalidate.

Verified at f9233e8: site render 66 pages rc 0; os-v3.html carries "41 rows, 1 FAIL and 2 SKIP"; releases.html carries "42 rows, 1 FAIL"; 0 occurrences of "40 PASS" on either page. Three files, five lines.

@bong-water-water-bong bong-water-water-bong left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VERDICT: READY at e146ab5e7f0d8af7758a6274578767058a6af241

The new commit f9233e8 (after the READY at 839a0eaf) is right, and the merge adds nothing of its own: the PR's own diff has patch-id df16a90f both after the merge and for f9233e8 against its base.

  • The convention. The checker prints ($ROWS rows: $FAILS failed, $SKIPS skipped), and the two log bundles here confirm the shape:

    • boardlogs-c28: RESULT: FAIL (52 rows: 3 failed, 2 skipped) → 47 PASS, as fixed in 839a0ea;
    • boardlogs-c27: 51 rows: 1 failed, 7 skipped → 43 PASS, which matches the doc's "43 + 1 + 7 = 51".

    So ROWS, FAIL and SKIP are the copied numbers, and PASS was always derived by hand.

  • c23 and c24. "41 rows, 40 PASS, 1 FAIL, 2 SKIP" and "42 rows: 40 PASS …" can't both hold, and there's no raw line on this box to decide which number is wrong. I checked: only the c27 and c28 log bundles exist, and RELEASE-C23-VERDICT.md:14 and RELEASE-C24-VERDICT.md:12 quote only the same impossible triples, with no RESULT: line. Dropping the derived PASS and keeping the checker's own three numbers is the honest form. Not substituting a computed 38/39 is right too.

  • "Newest board" → "Cycle 23 (2026-11-04)", with a pointer to the c27/c28 rows in releases.md: correct, since those booted on 2026-11-05. The relative link resolves.

For pi-release, not this PR: both verdict files carry the same impossible triples (RELEASE-C23-VERDICT.md:5-6 and :14, RELEASE-C24-VERDICT.md:12). They're that lane's record, so I'm leaving them to their owner, as you did for c28's.

What I ran: git show f9233e8; the merge patch-id comparison; both log bundles' RESULT: lines; a grep of the c23 and c24 verdicts. I didn't rerun the site render, since this is two prose sentences and a link.

@github-actions

github-actions Bot commented Nov 8, 2026 •

Copy link
Copy Markdown

PR Reviewer Guide 🔍

(Review updated until commit 6dc1283)

Here are some key observations to aid the review process:

⏱️ Estimated effort to review: 1 🔵⚪⚪⚪⚪
🧪 No relevant tests
🔒 No security concerns identified
⚡ Recommended focus areas for review

Incorrect Row Count

The row count in the puppy-check results for cycle 23 was incorrectly stated as "40 PASS, 1 FAIL, 2 SKIP" which does not add up to the total of 41 rows. The correct count should be "41 PASS, 1 FAIL, 2 SKIP" to match the actual total of 41 rows with 1 failed and 2 skipped, resulting in 41 passed.

**41 rows, 1 FAIL and 2 SKIP** with the image's own release check at **PASS (22 checks, 0 failures)** -
the single red is a bug in the check's own `u7-mdns` row, not in the image - serving the NPU at 93.65 / 94.03
Incorrect Row Count

The row count in the puppy-check results for c28 was incorrectly stated as "49 PASS, 3 FAIL, 2 SKIP" which does not add up to the total of 52 rows. The correct count should be "47 PASS, 3 FAIL, 2 SKIP" to match the actual log entry that shows 52 rows with 3 failed and 2 skipped, resulting in 47 passed.

>   installer fixes. **c28 booted the board on 2026-11-05 at 19:42**: `puppy-check` **52 rows: 47 PASS, 3 FAIL,
>   2 SKIP**, boot to Lemonade serving in **51.5 s**, NPU 94.9–98.0 tok/s, HRX 85.4–87.1 tok/s. None of the three reds
Incorrect Row Count

The row count in the puppy-check results for cycle 24 was incorrectly stated as "40 PASS, 1 FAIL, 2 SKIP" which does not add up to the total of 42 rows. The correct count should be "41 PASS, 1 FAIL, 2 SKIP" to match the actual total of 42 rows with 1 failed and 2 skipped, resulting in 41 passed.

> before that cycle 24's `puppy-check` **42 rows, 1 FAIL — the checker's own `u7-mdns` row — and 2 SKIP**.

@github-actions

github-actions Bot commented Nov 8, 2026

Copy link
Copy Markdown

Persistent review updated to latest commit 6dc1283

@bong-water-water-bong bong-water-water-bong left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VERDICT: READY at 6dc12837deb6648b10cad3c066171499abec0f80.

This head adds only a merge of main on top of e146ab5e, which I reviewed READY. The verdict carries forward on these checks:

  • First parent is e146ab5e7f0d8af7758a6274578767058a6af241, the reviewed head.
  • Own diff is unchanged: patch-id df16a90f, the same as before.
  • Main didn't touch the PR's files. None of the five main commits in the merge (#1390, #1393, #1394, the packaging docs commit and #1392) touches docs/os-v3.md or docs/releases.md, so both are byte-identical to the reviewed versions.

@bong-water-water-bong
bong-water-water-bong merged commit 6ea2afc into main Nov 8, 2026
9 checks passed
@bong-water-water-bong
bong-water-water-bong deleted the docs/c28-row-count branch November 8, 2026 03:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant