Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions config/llama-mirror-hold.config
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,12 @@
# is out of date (the mirror is no longer the named commit) or no longer needed (AMD's pin contains the
# named commit again), so a hold cannot outlive the state it describes.
#
# No commit is named below, so nothing is held. Naming one is the owner's decision. The state it would
# record, as of 2026-11-11 (engine#1945):
# HELD 2026-11-11 for the release (orchestrator decision on engine#1945, the owner having delegated technical
# calls): the engine's llama.cpp pin stays where it is, and the merge of AMD's rebased line is post-release work.
# The state this records:
# mirror 1bit/hrx-vulkan 44ee5710d19f7f3af79b99bbcbe5fd13979d1f67 (AMD's line before its rebase)
# AMD pin 9bf5871310a8d7de74f4cb0c57009835fbf91c27 (the rebased line, 1777 upstream commits newer)
# merge into 1bit/hrx-vulkan-patched, against the last AMD commit our line took (43b0ec2c41cc):
# 149 conflicted files, 538 hunks (65 files / 83 hunks in the HRX backend)
# To hold, put the mirror's commit on a line of its own:
# 44ee5710d19f7f3af79b99bbcbe5fd13979d1f67
# Lift it by deleting the line below, once AMD's line has been merged into ours.
44ee5710d19f7f3af79b99bbcbe5fd13979d1f67
7 changes: 4 additions & 3 deletions docs/hrx.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,12 +102,13 @@ fails a pin that leaves a gate model's node off HRX.
nothing to do but fail, every day, until somebody does the merge by hand. While
[`config/llama-mirror-hold.config`](../config/llama-mirror-hold.config) names the mirror's commit, the run
instead reports the hold in its summary (`mirror 1bit/hrx-vulkan HELD at …; AMD's pin is …, on a line that
does not contain it`), moves nothing and succeeds; the engine's pin still follows our own line. The hold
does not contain it`), moves nothing and succeeds. The engine's pin does not move in a held run either: moving
it along our own line is a reviewed PR of its own. The hold
describes one state and fails the run when that state ends, so it cannot be forgotten: **stale** when the
mirror is no longer the named commit, **unneeded** when AMD's pin contains the named commit again (an ordinary
sync would work). `scripts/bump-hrx-sync.sh llama-hold <repo> <mirror> <pin>` prints the decision alone
(`none`, `held`, `stale`, `unneeded`). The file ships naming no commit, so it holds nothing; naming one is
the owner's decision. It was added for AMD's 2026-11-09 rebase (engine#1945): taking that pin is a merge of
(`none`, `held`, `stale`, `unneeded`). **Held since 2026-11-11** for the release (engine#1945): the file names
the mirror's commit `44ee5710d19f`, and the merge of AMD's rebased line is post-release work. It was added for AMD's 2026-11-09 rebase (engine#1945): taking that pin is a merge of
149 conflicted files (538 hunks) into `1bit/hrx-vulkan-patched`, measured against the last AMD commit our
line took.
- **The hold.** While [`config/hrx-system-hold.config`](../config/hrx-system-hold.config)
Expand Down
6 changes: 4 additions & 2 deletions scripts/bump-hrx-sync.sh
Original file line number Diff line number Diff line change
Expand Up @@ -169,10 +169,12 @@ sync_llama() {
held)
note "1bit/hrx-vulkan is held at ${mirror:0:12} by $LLAMA_HOLD_FILE: AMD's pin ${pin:0:12} does not descend from it (AMD rewrote its line). Nothing was moved; the merge is tracked where the hold file says."
summary "- llama.cpp: mirror \`1bit/hrx-vulkan\` HELD at \`${mirror:0:12}\` ($LLAMA_HOLD_FILE); AMD's pin is \`${pin:0:12}\`, on a line that does not contain it. Not merged."
output "rebased=$patched"
# The engine's pin does not move while the mirror is held: `rebased` is what the workflow would pin, and
# naming the engine's own pin makes its last step say "nothing to move" (our line may be ahead of the pin;
# moving the pin along it is a reviewed PR of its own, not something a held run does).
output "rebased=${OURS_LLAMA:-$patched}"
output "llama_held=1bit/hrx-vulkan HELD at \`${mirror:0:12}\` by \`$LLAMA_HOLD_FILE\` (AMD's pin is \`${pin:0:12}\`)."
output "patches<<EOF
$(git log --format='- `%h` %s' "${OURS_LLAMA:-$patched}..$patched" 2>/dev/null || true)
EOF"
return 0 ;;
esac
Expand Down
9 changes: 6 additions & 3 deletions tests/bump_hrx_sync_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -124,11 +124,14 @@ expect "the commit line may carry a trailing note; a line that is not a commit i
printf '%s\n' "${mirror:0:12}" > "$holdf"
expect "a short hash is not a hold: forty hex digits or nothing" "$(hold "$mirror" "$pin")" "none"

# The file shipped in the tree names no commit, so merging it holds nothing.
# The file shipped in the tree: whatever it names must be one full commit hash or nothing, and what it means for a
# run is decided by the same function as above (a hold on a commit the mirror has left is stale, and so on).
shipped=$(cd "$(dirname "$script")/.." && pwd)/config/llama-mirror-hold.config
if [ -f "$shipped" ]; then
expect "the shipped hold file holds nothing until a commit line is added" \
"$(LLAMA_HOLD_FILE=$shipped bash "$script" llama-hold "$repo" "$mirror" "$pin")" "none"
n=$(grep -v '^[[:space:]]*#' "$shipped" | grep -cE '^[0-9a-f]{40}' || true)
if [ "$n" -le 1 ]; then ok "the shipped hold file names at most one commit"; else fail "the shipped hold file names at most one commit (found $n)"; fi
junk=$(grep -v '^[[:space:]]*#' "$shipped" | grep -v '^[[:space:]]*$' | grep -vcE '^[0-9a-f]{40}([[:space:]].*)?$' || true)
expect "every line of the shipped hold file is a comment, blank, or a full commit hash" "$junk" "0"
else
fail "config/llama-mirror-hold.config is in the tree"
fi
Expand Down
Loading