Repository navigation
bump-hrx: a mirror hold, so AMD's rebase is a reported hold instead of a daily failure — holds nothing until the owner names the commit (Refs #1945) - #2110
Conversation
… merge is reported, not failed daily (Refs #1945) config/llama-mirror-hold.config: while it names the mirror's commit, the sync reports the hold, moves nothing and succeeds. The run fails, naming the file, when the hold is stale (the mirror moved) or unneeded (AMD's pin contains the held commit again). The shipped file names no commit: it holds nothing until the owner adds the line. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
|
ready for review at e937372 |
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
bong-water-water-bong
left a comment
There was a problem hiding this comment.
VERDICT at e937372: READY
This is the right resolution for #1945, and the reason is that it converts a permanent red into a reported state. "A rewrite of AMD's line that the rules above cannot merge leaves the daily run with nothing to do but fail, every day, until somebody does the merge by hand" — a scheduled job that fails every day for a week is a job nobody reads, so the failure stops carrying information.
The hold is shaped well:
- it is data (
config/llama-mirror-hold.confignaming the mirror's commit), so the state is visible and reviewable rather than encoded in a script; - the summary says the whole situation:
mirror 1bit/hrx-vulkan HELD at …; AMD's pin is …, on a line that does not contain it— which is exactly the distinction #1945'sbump-hrxreport was built to make ("AMD rebased its line" vs "your commit is on no AMD branch"); - it moves nothing and succeeds, while "the engine's pin still follows our own line" — so a hold cannot silently advance a pin, which is the failure this could have introduced;
- and it lands with an arm (
tests/bump_hrx_sync_test.sh), so the hold's behaviour is pinned rather than trusted.
That combination — stop the noise, keep the pin honest, record why — is what a release blocker needs. #1945 moves on this.
|
VERDICT: READY at The shape is right for a blocker that ends in an owner decision: the mechanism lands now, the decision stays a one-line file edit, and the shipped file names no commit, so merging changes nothing in any run. That means the PR can land before the decision without pre-empting it — which is the property that lets a blocker move while the owner is not available. The two failing states are the interesting ones and both are there — a hold that is stale (the mirror is no longer the named commit) and a hold that is unneeded (AMD's pin contains the named commit). A hold with no expiry check is how a hold becomes permanent; failing on unneeded is the rarer half and the one that keeps this honest. Proof reads the way I want a dry run to read: the real script against the live fork and AMD's repository, Two asks:
Scope of my check: fresh configure (rc 0), ran the |
Refs #1945 (release-blocker; I lead the row). This PR does not move any branch and does not hold anything by itself. It adds the mechanism that lets the owner close the blocker with a one-line decision, and it states what that decision defers.
Where #1945 actually stands
The scheduled
bump-hrxrun fails because AMD re-committed its HRX line on a base 1777 upstream commits newer, so AMD's pin no longer descends from our mirror. The script cannot merge that by rule and, correctly, refuses:It will fail every day until the pin is merged by hand. I sized that merge three ways, without a checkout (
git merge-tree), fork tip7a1f2b81c, pin9bf587131:11924d4c1, 2026-08-02)43b0ec2c41cc), as cl-hrxkern proposed on the issueOf the 84 files outside the backend, 8 resolve by evidence (our version is an older version from the pin's own history: take the pin's). The other 76 are files both lines changed: our line sits on upstream of 2026-08-02 with later upstream changes ported in by hand, AMD's new line sits on upstream of 2026-10-08 and has those changes natively.
src/models/qwen4exp.cpp(55 hunks),deepseek41.cpp(28),llama-model.cpp(24),llama-memory-hybrid-idx.cpp(24) lead the list. That is days of work for the lanes that own those files, plus a full build and the hw gate, and two things outside any lane's reach are still open: the fork push needs aworkflow-scope token, and the hrx-system hold contradicts a plain merge. Per-file lists are on the box in~/lb/hrx-pin-1945/(hunks-vbase.txt,class-vbase.txt).So the merge is real work that is sized and assigned, and the red scheduled job adds no information to it.
What this PR adds
config/llama-mirror-hold.config, the same shape as the hrx-system hold. While it names the mirror's commit:The shipped file names no commit, so merging this PR changes nothing in any run. The state it would record is written in the file's comment, with the line to add.
Proof
Dry run of the real script against the live fork and AMD's repository, nothing pushed,
GH_TOKENunset:rebasedequal to the engine's current pin is what makes the workflow's last step print "nothing to move" and stop.tests/bump_hrx_sync_test.sh(ctestbump_hrx_sync, already registered), 9 new arms on a local repository: no file; a commit only mentioned in a comment; held; stale; unneeded (pin descends from the mirror, and pin equal to the mirror); a commit line with a trailing note and a non-commit line; a short hash is not a hold; the shipped file holds nothing.bump_hrx_sync: ok.tools/copyright.py --checkrc 0;tests_referenced_check.pyclean. Docs:docs/hrx.md, "The mirror hold".The decision this leaves, and it is not mine
Adding the one commit line to
config/llama-mirror-hold.configturns the daily failure into a reported hold and lets #1945 close for the release, with the merge carried as backlog work. Not adding it keeps the job red until the merge is done. The orchestrator's earlier instruction on this issue was to do the merge (new dated mirror branch, normal merge PR, no force-move); a hold defers that, it does not replace it, so I have not added the line.What I did not do
llama_heldoutput is not shown in the bump PR body, since no bump PR is opened while held.🤖 Generated with Claude Code