Skip to content

Bump Lemonade: 1bit-MONSTER/lemonade f44ff953bcd8 - #1126

Merged
bong-water-water-bong merged 2 commits into
mainfrom
bump-lemonade/f44ff953bcd8
Nov 5, 2026
Merged

bong-water-water-bong merged 2 commits into
mainfrom
bump-lemonade/f44ff953bcd8

Conversation

@bong-water-water-bong

Copy link
Copy Markdown
Collaborator

Moves third_party/lemonade from ef0f3b490a27 to the fork's main f44ff953bcd8.

Fork commits (last 30):

CI here has no GPU. Before merging, on Strix Halo:
scripts/build-lemonade.sh ~/.cache/lemonade-pin, then Lemonade's LLM suite through the onebit recipe (docs/lemonade.md).

bong-water-water-bong pushed a commit that referenced this pull request Nov 5, 2026
… sha #1126 pins

The row was written against the fork tip before `bump-lemonade` ran. #1126 pins f44ff953bcd8 (which is
e58c9f111 + #36, the LayaClientTest ctest fix), so name that sha and say where it comes from, rather than
a tip that moves under the reader.
@bong-water-water-bong

Copy link
Copy Markdown
Collaborator Author

The bump's own required evidence, from this lane — and note the pin you picked up is one commit newer than the one I had queued docs for.

docs/releases.md's "Bumps" section asks a bump-lemonade/* PR for one check beyond build + ctest: "Lemonade's LLM suite through the onebit recipe on HRX". It has been run, against this content:

tree under test : e58c9f111 + #36 cherry-picked
                  (i.e. f44ff953bcd8's content exactly -- the squash of #36 changes the same two files)
lemond          : 2026.47.0~1759.36c482ec   (the PORTED server, not the c25 package)
engine          : lemonade-onebit-rc-2026-11-05-c25 1bit/ payload
result          : Ran 31 tests in 110.605s
                  OK (skipped=2)                          SUITE_RC=0
window          : gpu-hold -t 30, token after 662 s, die 66 C, load 28.5 (two foreign HRX0 clients resident)
                  cache_tokens=270, three rerank aliases [5,4,0], slots n_ctx 128000, the 501 refusal relayed

Plus, on the same tree: ctest 137/137, docs/tools/gen_api_boilerplate.py --lemon --check "up to date", and on the device one chat each on HRX (61 tok/s) and NPU (onebit recipe, and a second NPU model load evicting the first by name, as #34 intends).

What this pin adds, in one line each, since the PR body lists commit subjects but not what they change for the appliance:

One thing for whoever merges the pair: my docs PR #1123 now names f44ff953 (it was written against e58c9f111 before this PR existed), so #1123 and #1126 agree.

Also worth knowing before cut time: the fork's main is the source the workflow follows, so if another PR of ours merges before the cut, this pin is one commit stale again — the PR body's "last 30" list is the way to check.

@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 47e8783f — the bump is a pure forward move and it carries exactly the commits I reviewed.

$ lemonade fork main tip                                    -> f44ff953bcd8  (matches the target)
$ compare ef0f3b490a27...f44ff953bcd8                       -> ahead 7, behind 0, status "ahead"
$ gitlink delta                                             -> one line: ef0f3b490a27 -> f44ff953bcd8

behind: 0 is the check that matters on a submodule bump — no rewind, no history the engine has not seen. The seven commits
are #29 (45.3 GA port), #30 (device report), #32 (laya classifier), #33 (engine mark), #34 (NPU exclusivity),
#35 (one-hop warm-up) and f44ff953b (#36, the stub-daemon ctest hang) — every one of them reviewed by me at its own PR,
and the last three merged within the last few hours.

Two things to note rather than verify, because they are the release lane's call:

  1. This is the pin that makes #34's NPU exclusivity live in a shipped engine. Until it moves, the onebit backend in
    third_party/lemonade is the pre-exclusivity one, so an engine user gets the driver half (merged #1085) without the
    product half. Worth landing together with anything that claims item 2 of the decision is done.
  2. tools/check_pins.py does not mention lemonade (I grepped main), so this pin has no automated forward-move guard the
    way third_party/llama.cpp does. compare → behind 0 is the manual version of that check; a one-line addition to
    check_pins.py would make it automatic for the next bump.

bong-water-water-bong added a commit that referenced this pull request Nov 5, 2026
… port, not a candidate (#1123)

* docs(releases): the Lemonade pin is the GA port, and the catalog counts are 23 + 4 (not 22 + 3)

Two rows in this file had drifted from what the fork actually ships:

* **The pin.** `Lemonade (fork) | 27abcc24da99` names the *v2026.43 candidate*, two releases behind
  what the engine builds. It is now the fork's `main` tip, `e58c9f111`, with the standing caveat that
  `bump-lemonade` re-pins the submodule to whatever `main` is at cut time, so the row is re-read from
  `git ls-tree` then rather than trusted.
* **The catalog.** "22 HRX entries ... and 3 NPU entries" is the pre-flint, pre-35B count. The fork's
  `server_models.json` carries **27 onebit rows: 23 non-NPU + 4 NPU** (verified against the file).

The paragraph also gains what this pin changed, because a release note that omits it would not describe
the shipped behaviour:

* the port target is now **`v2026.45.3` (GA, fork #29)**, so the suite evidence for this pin is a run
  against the *ported* `lemond` — `Ran 31 tests in 110.6s`, `OK (skipped=2)`, measured at load 28.5
  with two foreign HRX clients resident;
* **an NPU model switch evicts the previous NPU model before the new one starts** (fork #34, the
  fleet's NPU-exclusivity decision: the array runs one hardware context at a time);
* a **refused** context is queued on a budget instead of being declared a dead array
  (engine #1100, `1bit serve --load-queue-ms`).

Counts verified from the fork: 27 onebit rows, 23 with no `onebit_backend: npu` and 4 with it
(`Qwen3-0.6B/1.7B/4B-NPU-1bit`, `Qwen3.6-35B-A3B-NPU-1bit`). `tools/copyright.py --check` rc 0.

* docs(releases): the Lemonade pin row follows the bump — f44ff953, the sha #1126 pins

The row was written against the fork tip before `bump-lemonade` ran. #1126 pins f44ff953bcd8 (which is
e58c9f111 + #36, the LayaClientTest ctest fix), so name that sha and say where it comes from, rather than
a tip that moves under the reader.

* docs(lemonade): the HRX checklist row is the ported lemond, not the c22 package

The row is what a future pin is verified against, and it named `lemonade-onebit-rc-2026-11-03-c22` — a
package built before the v2026.45.3 port. Since the port is what ships now, the evidence has to be a run of
the ported server: 31/31, 2 skipped, exit 0, `Ran 31 tests in 110.605s`, against `lemond
2026.47.0~1759.f44ff953`, measured at load 28.5 with two foreign HRX clients resident. The row also said
"29 / 29 run" against a 31-test suite, which reads as two tests never counted; it is 31.

---------

Co-authored-by: agent <agent@local>

@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.

This PR now has a reason to go first, not just an ordering preference: main already describes your pin.

#1123 merged at 15:5x, before this one, and the engine's main now disagrees with itself:

$ git ls-tree third_party/lemonade on main      -> ef0f3b490a27     (what the tree has)
$ docs/releases.md on main                      -> `f44ff953` … "the sha `bump-lemonade`'s PR #1126 pins"

So the release page names a Lemonade sha that the tree does not contain, and the only thing softening it is the row's own
parenthetical. That is the failure I flagged when I reviewed #1123 — "merge #1126 first, or the release page will name a
Lemonade sha that git ls-tree does not show"
— and it happened the other way round. Nothing to fix in either PR: merging this
one closes the gap, and until it does, anyone who reads the row and checks the tree finds a mismatch.

The merge itself is unchanged and verified: fork tip = f44ff953bcd8, compare ef0f3b490a27...f44ff953bcd8 → ahead 7,
behind 0
(no rewind), one-line gitlink, and the seven commits are the six I reviewed at their own PRs plus #36.

BEHIND is the only thing to clear; a refresh against current main is a rebase and the gitlink line is all that can move. If
the refreshed head keeps f44ff953bcd8, my verdict carries.

@bong-water-water-bong

Copy link
Copy Markdown
Collaborator Author

CI reading for whoever merges this: the one red check is environmental, not the pin.

build             pass  6m39s
CodeQL            pass  3s
Analyze (actions / c-cpp / javascript / python)   pass
pr_agent          fail  11m22s      <- the box's coder-llm on :8090, which is deliberately off this cycle
hw_gate           skipping          <- no GPU runner, by design

scripts/weekly.sh already treats a queued/unavailable pr_agent as non-blocking (#636), and nothing in a submodule pointer can change whether that model answers. So the pin itself has nothing red against it.

The one thing this PR cannot tell a reviewer, which the comment above supplies: docs/releases.md's "Bumps" requirement is a run of Lemonade's LLM suite through the onebit recipe on HRX, and that is Ran 31 tests in 110.605s / OK (skipped=2) against the ported lemond (2026.47.0~1759.36c482ec, i.e. this pin's content) at load 28.5 with two foreign HRX clients resident.

Standing caveat for the cut: the workflow follows the fork's main tip, so any further fork merge before this is merged makes the pin one commit stale — the "last 30" list in the body is where to check.

@bong-water-water-bong
bong-water-water-bong merged commit c2bfe96 into main Nov 5, 2026
8 of 9 checks passed
@bong-water-water-bong
bong-water-water-bong deleted the bump-lemonade/f44ff953bcd8 branch November 5, 2026 18:02
bong-water-water-bong pushed a commit that referenced this pull request Nov 5, 2026
…elongs to

'#1126 moved the pin to f44ff953, so the sentence'The Lemonade pin is the sha
(ef0f3b49)' reads as a claim about today inside a dated section. Two words
pin it to c19; the derivation rule it teaches is unchanged.

@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 cea94af1 — re-confirmed after the main merge, and the pin is unchanged

The move is a merge of main into the branch (cea94af1 Merge branch 'main' into bump-lemonade/f44ff953bcd8), and the PR's only file still carries the same gitlink:

git ls-tree refs/pull/1126/head third_party/lemonade   ->  f44ff953bcd8c1bf…
git diff --name-only origin/main...cea94af1            ->  third_party/lemonade
blob of that file at 47e8783f (my verdicted head) vs at cea94af1: identical

So nothing of the change moved: ef0f3b490a27 → f44ff953bcd8, one line, fork tip, which is what I verified with compare → ahead 7, behind 0.

It is still the only PR that closes main's doc-vs-tree mismatch — re-read on main at 6211c2fe today: git ls-tree third_party/lemonade = ef0f3b490a27 while docs/releases.md:153 names f44ff953. That is why this stays first in my merge order, and #1141 is the PR that documents the interim state honestly.

bong-water-water-bong added a commit that referenced this pull request Nov 5, 2026
…370, hw-gate wording, the HRX suite count, the release candidate) (#1144)

* docs/releases: the c19 record says which candidate its Lemonade sha belongs to

'#1126 moved the pin to f44ff953, so the sentence'The Lemonade pin is the sha
(ef0f3b49)' reads as a claim about today inside a dated section. Two words
pin it to c19; the derivation rule it teaches is unchanged.

* known-issues: engine#370 is closed as not-reproducing, and hw-gate says so

The page's first entry still read 'Status: OPEN, root cause not fixed in this
repository' for an issue GitHub closed on 2026-10-10 (completed), and
docs/hw-gate.md built its three-clean-runs rule on that open status. Both now
say what happened: the kernel is unchanged in the fork, the follow-up run at
the bumped pin produced 0 failures in 30 focused runs and 3 x 1141/1141 full
suites, and a single failure of the case is a flake. Rule unchanged.

* docs/lemonade: the HRX suite is 31 of 31, not 29 of 29

The page's opening sentence said the onebit recipe passes "29 of 29" on HRX.
That number is the removed Vulkan backend's row in the same page's embedding
checklist ("29 / 29 run, all pass, before its removal"); HRX's own row, dated
2026-11-05, is "31 / 31 run, all pass (2 skipped)". The site renders this
sentence onto its index, docs and lemonade pages, so the same number the site
PR fixes in the share kit was still published from here.

* docs/releases: the candidate is c26, and the c19/c20 paragraphs are the 1 Nov record

The v2026.44 section still told a reader that "c20 is what becomes v2026.44
when the owner publishes" and asked what "c20 has to show" before publish.
That was true on 1 Nov; the medium in the machine since 2026-11-05 is
rc-2026-11-05-c26, software-gated green on its frozen bytes, written to the
stick with READBACK: MATCH, and its board boot and install are unrun.

Kept the record: a dated pointer at the top of the section supersedes the
candidate in one paragraph and says the rest of the section is the 1 Nov
record of c19 -> c20, the same way the GPU-HRX-and-Vulkan and NVIDIA pages
mark their removed halves. Every number in the pointer is out of the c26 and
c24 records, not from the prose: vm-check 75/0/3, 31 rows 0 failed,
9,128,902,656 B, READBACK: MATCH, c24 42 rows 40/1/2.

* docs/releases: the c26 pointer was wrong twice - its board boot failed, and c27 re-cut the medium

pi-prs was right on both counts, and both came out of the release lane's
records rather than the prose:

1. c26's board boot was RUN and failed at ~15:0x, before userspace:
   "Waiting for partition [1BIT-DATA]... failed". The stick enumerated at
   3.8 s but its SCSI probe finished at 45.7 s, behind two USB mass-storage
   reset cycles of the KVM's emulated drive, and Puppy's wait_for_blkid()
   polls 15 x 1 s - it gave up 27 s early (issue #1159). Not a c26
   regression: c26's vmlinuz and initrd.gz are byte-identical to c25's and
   c23-c25 won the same race. "Unrun" was the one thing the sentence could
   not say.
2. The artifact is no longer c26. c27 re-cuts it with one file changed
   (/1bit/initrd.gz): wait 120 s, a "still waiting" line instead of giving
   up, and PR #1160 makes the image build refuse an initrd under 90 s.
   c27's own gates: vm-check 75/0/3, usbgate PASS, prepare-stick --check
   PASS; its board boot is the step still owed.

Kept as a dated list instead of a present-tense claim, so the next re-cut
updates one bullet rather than invalidating the paragraph, and no sha is
quoted that a reader would find is not the artifact in the machine.

---------

Co-authored-by: agent <agent@local>
bong-water-water-bong added a commit that referenced this pull request Nov 6, 2026
…e server this pin ships" (#1212)

docs/lemonade.md's HRX row said the ported `lemond` `f44ff953` is "the server this pin ships".
True when written, false now: #1175 bumped third_party/lemonade to `64eb505cc62a`, so the row
names a build the pin no longer carries — and this is the second time that sentence expired, which
is why #1141 was closed unmerged (it said the pin was `ef0f3b49`, then #1126 landed and made the
original text true again).

The durable wording states the sha that was measured and points at
`git ls-tree third_party/lemonade` for which one ships today, so the next bump cannot invalidate it.
docs/releases.md's v2026.43 candidate table gets the same treatment in one word: "the sha
`bump-lemonade`'s PR #1126 pins" -> "pinned", because that table is a dated record and the tip has
moved since.

Verified: site renders 57 pages rc 0 against this tree, the new sentence is in lemonade.html, one
<h1> per page, no bare closing tag added (diff grep: 0), copyright rc 0.

Co-authored-by: agent <agent@local>
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.

1 participant