From a310b318111895697df2cdf20cf31fc10a12a53a Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Thu, 8 Oct 2026 13:20:18 +0000 Subject: [PATCH 1/2] The mirror fan-out skips the landed box by host, whichever URL form took the landing mirror_master compared the landed remote's URL against the mirror entry's host:/path tail; the box remote is ssh://build@/srv/igneum.git, which never contains ":/srv", so the landed box took a second, harmless push on the 14:18 landing. The skip now matches the host alone; a self-test lands through the ssh:// form against a host:/path mirror entry. Co-Authored-By: Claude Fable 5.1 --- tools/ci/merge-to-master.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/ci/merge-to-master.sh b/tools/ci/merge-to-master.sh index 4dd0f9c18..f85a70913 100755 --- a/tools/ci/merge-to-master.sh +++ b/tools/ci/merge-to-master.sh @@ -94,7 +94,9 @@ mirror_master() { # [landed-remote-url]: the landed master to every othe # every box with a build-server file (8 October 2026, 13:5x UK: build-3 and build-4's mirrors sat at 7 October 15:27 with only the first two listed) if [ -z "$list" ]; then for f in "$HOME/.config/igneum/build-server" "$HOME"/.config/igneum/build-server-[0-9]*; do [ -s "$f" ] && list="$list $(head -1 "$f" | tr -d '[:space:]'):/srv/igneum.git"; done; fi for m in $list; do - case "$landed" in *"${m#*@}"*) continue ;; esac # the mirror that took the landing itself + host="${m#*@}"; host="${host%%:*}"; host="${host%%/*}" # build@:/srv/igneum.git -> ; the landed URL may be ssh://build@/srv/igneum.git + key="$host"; [ -n "$key" ] || key="${m#file://}" # a bare-path mirror (the self-test) is known by its path + if [ -n "$landed" ]; then case "$landed" in *"$key"*) continue ;; esac; fi # the mirror that took the landing itself (8 October 2026, 14:19 UK: the host:/path form never matched the ssh:// URL) # --no-verify: this is a copy of a master the gate already passed on landing (the sha is the landed remote's master, read back), # not a landing; with the hook on, a stale mirror re-ran the full gate for six minutes per box (8 October 2026, 14:0x UK) if GIT_SSH_COMMAND="ssh -i $key -o BatchMode=yes -o ConnectTimeout=10" git push -q --no-verify "$m" "$sha:refs/heads/master" 2>/dev/null; then echo "merge-to-master: mirror $m master -> ${sha:0:8}" @@ -168,6 +170,7 @@ success 4 u push run out=$( cd "$d/src" && IGNEUM_MIRRORS="$d/mirror.git" mirror_master "$tip" ) grep -qE '^ mirror_master "\$\(git rev-parse "\$REMOTE/master"\)"' "$0" || { echo "self-test failed: the landing path does not fan master out to the mirrors for every remote"; fails=1; } out2=$( cd "$d/src" && IGNEUM_MIRRORS="$d/mirror.git" mirror_master "$tip" "file://$d/mirror.git" ); case "$out2" in *"mirror"*) echo "self-test failed: the mirror that took the landing was pushed to again: $out2"; fails=1 ;; esac + out3=$( cd "$d/src" && IGNEUM_MIRRORS="build@203.0.113.9:/srv/igneum.git" mirror_master "$tip" "ssh://build@203.0.113.9/srv/igneum.git" ); case "$out3" in *"mirror"*) echo "self-test failed: the landed box in ssh:// form was pushed to again from its host:/path mirror entry: $out3"; fails=1 ;; esac [ "$(git -C "$d/mirror.git" rev-parse master)" = "$tip" ] || { echo "self-test failed: the mirror was not fast-forwarded to the landed master: $out"; fails=1; } ( cd "$d/src" && git checkout -q -b other master~1 && git -c user.name=t -c user.email=t@t commit -q --allow-empty -m fork ); fork=$(git -C "$d/src" rev-parse other) out=$( cd "$d/src" && IGNEUM_MIRRORS="$d/mirror.git" mirror_master "$fork" ) From 35020797ad6882f90be95e598296bedac80e3e3f Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Thu, 8 Oct 2026 13:29:27 +0000 Subject: [PATCH 2/2] The swap page's table cells wrap: the syncing message ran past the card while the public RPC was behind site.css sets td{white-space:nowrap} for every page; the swap page's table rule added overflow-wrap:anywhere without white-space:normal, so the pools table's one-cell messages ("The public RPC is still syncing: block 0 of at least 26,972. Reserves, quotes and swaps appear when it reaches the pools.") never wrapped and the table ran 55 to 372 px past the card and the body at 768 to 1600 px, both themes. The overlap gate read it as CLIPPED the moment the public RPC fell behind (14:2x UK, the 0.3.25 minute), and every landing's gate went red with it. white-space:normal on the swap and pools cells; zero overlaps at all five widths and both themes on box 2. Co-Authored-By: Claude Fable 5.1 --- site/swap.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/swap.html b/site/swap.html index 123932166..952b9312e 100644 --- a/site/swap.html +++ b/site/swap.html @@ -72,7 +72,7 @@ input[readonly]{color:var(--ash)} p.small,.small{font-size:14px;color:var(--ash);line-height:1.55} table.swaps,table.pools{width:100%;border-collapse:collapse;font-size:14px;margin-top:8px} table.swaps th,table.pools th{text-align:left;color:var(--ash);font-weight:500;padding:8px 6px;border-bottom:1px solid var(--line)} -table.swaps td,table.pools td{padding:10px 6px;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere} +table.swaps td,table.pools td{padding:10px 6px;border-bottom:1px solid var(--line);vertical-align:top;white-space:normal;overflow-wrap:anywhere} table.swaps td[data-state="bad"]{color:var(--bad)} table.swaps tr.empty td{color:var(--ash)} p.notice{margin-top:14px;padding:12px 14px;border-radius:10px;border:1px solid var(--line-2);font-size:13px;color:var(--molten);display:block}