Commit graph

1637 commits

Author SHA1 Message Date
igneum-labs
102abff9ae Merge remote-tracking branch 'origin/master' into build-server 2026-10-07 13:40:57 +00:00
igneum-labs
4233d27a24 Counter ASIC 3.0 status: main's byte-7 ruling (fleet 5090 G1 now, all green by 19:00Z or byte 5), 0.3.21's first digest gate PASS on 55768f88, the 0.3.21 order
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 13:39:52 +00:00
igneum-labs
bd76f6292a Counter ASIC 3.0 status: the pin stays c4459193 (main's word), 55768f88 is 0.3.21's first; PC 1 offline for cable work; the G1 waits for a PC
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 13:37:44 +00:00
igneum-labs
f4f05f2e7c Counter ASIC 3.0 status: the proving-ids child 55768f88 built (sha256 279b1b690e854fc9), the pin candidate, its gates from 13:37Z
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 13:36:44 +00:00
igneum-labs
3d50882dfd Merge remote-tracking branch 'origin/master' into build-server 2026-10-07 13:36:15 +00:00
igneum-labs
c9548894a5 Counter ASIC 3.0 status: the 4,096-seed census at 8bdcbdd8 (r = 0.674, 0 exhaustions); the control's verdict (statement passes, the race to a 24 GB box)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 13:35:11 +00:00
igneum-labs
541f3cf32f Counter ASIC 3.0 status: the suite line at 8bdcbdd8 (101 of 101 on box 2)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 13:34:17 +00:00
igneum-labs
935c4b61d6 Merge remote-tracking branch 'origin/master' into build-server 2026-10-07 13:33:24 +00:00
igneum-labs
b010eeb2d7 Counter ASIC 3.0 status: the proving-ids control (the environment names the ids on c4459193), the late-join commit 70e4601e for 0.3.21
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 13:33:16 +00:00
igneum-labs
92757b148e Counter ASIC 3.0 status: AP-F8-2 fixed on 8bdcbdd8 (MAX_ATTEMPTS_V4 256, the last-resort draw, the stream unchanged, the census continues)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 13:32:26 +00:00
igneum-labs
6f5787ed71 Build boxes: the measure file is retired; a pinned measurement leases its cores only (lease.sh cores), a whole-box quiet measurement is its own class (refused beside a slot or a lease, 20-minute cap, named owner), bounded suites never take it, every run keeps off leased cores, stopped holders are reaped after 5 minutes by every keeper, every waiter has a label file; the box-side self-tests in the gate; provision installs the lease tool and the headless Chromium libraries
Main, 7 October 2026, 15:07 UK: one global exclusive measure flock across unrelated measurements stalled build-1 at load 120 with
free slots (a stopped probe held it 5.5 h; an exclusive waiter queued every new shared taker) and build-2 behind a one-core VDF
bench. lease.sh (installed at /srv/builds/_bin/lease by provision.sh and by hand on both boxes) takes one flock per core for a
pinned measurement and the quiet file for a whole-box one; remote-run.sh takes quiet shared only for unbounded runs, excludes
leased cores from its set, and its keeper refreshes the holder file and calls lease reap (a STOPPED holder of a lease, quiet or a
slot for 5 minutes is killed with a line in _log/reaped.log). Keepers close the lock descriptors they inherit (an orphaned sleep
held a slot and the worktree lock 20 s past the release; the slot self-test had rotted on that since the worktree lock landed).
tools/ci/box-locks-check.sh runs lease.sh --self-test and remote-run.sh --self-test-slots on build-1. provision.sh also carries
the 16 libraries headless Chromium needs (installed by hand on both boxes at 14:5x UK) and a headless self-test step.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 13:30:40 +00:00
igneum-labs
378b63dd35 Merge remote-tracking branch 'origin/master' into ca3-coord 2026-10-07 13:30:23 +00:00
igneum-labs
00a8a286af Counter ASIC 3.0 status: the proving-ids cause (the bare start environment, not the binary), the child's embedded-key fallback, the gate carry under rule 4a
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 13:29:40 +00:00
igneum-labs
a9f5b5fd4d Chain scene 2.0.3: /live and the home fold paint on every push whatever the document's visibility says; the renderer, its palette and its feed contract move to one shared folder scene/ with byte-equal copies checked by the gate (7 October 2026, 15:2x UK)
The blank /live (the project lead, 14:3x UK): IgneumDag 2.0.2 painted only from a requestAnimationFrame loop gated on document.hidden and
the IntersectionObserver, so a page that loaded with document.hidden true (the desktop pane, a background tab) and whose embedder
never fired visibilitychange took every push, reported live and never drew a frame. 2.0.3 paints the current picture synchronously
on push, size and theme change; the motion loop alone waits for a visible document and an intersecting canvas. Confirmed headless
on build-2 against the live feed: hidden document 0 lit pixels before, 110,007 after; the never-intersecting observer repaints
on every push. Known-failed test tools/scene/paint-test.cjs (the 2.0.2 renderer draws nothing in the same world).

The second 2.0.3 change: the phone rule (30 s window, four lanes) keys on the viewport width, not the canvas width; a 640 px hero
on a 1,440 px laptop was rendering as a phone while the app's card beside it was not.

scene/ is the one source: live-dag.js, proof-core.js, tokens.css (the fourteen palette tokens, the brand package's values, dark and
light), feed-contract.md and .json (one JSON shape for the observer's /api/live and the app's api/live), a recorded reply as the
fixture. tools/scene/sync.mjs writes the copies and the scene-tokens block into site.css and app.css; --check is the gate line
(byte-equal scripts, an equal block, the names defined nowhere else, a print block excepted), --self-test fails five known cases
first. The site's token definitions move out of the package's :root line into the block; no value changes on the site.
tools/scene/feed-contract.mjs validates a reply against the key lists; its test refuses a miner rewritten to "you", a float now,
a stray key. Three new lines in tools/ci/pre-push.sh. The app side (branch scene-parity, for 0.3.21) takes the same folder.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 13:29:38 +00:00
igneum-labs
ac030be0a9 Counter ASIC 3.0 status: main's AP-F8-2 ruling (a total draw, no panic); the 12 GB line on c4459193 refused (shard program id unknown, statement zeros), the cut set not complete
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 13:28:05 +00:00
igneum-labs
dae0d790c4 Counter ASIC 3.0 status: AP-F8-2, draw exhaustion under (a') on sub-version 2 (one seed in 331,672, a liveness halt class); not green
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 13:27:04 +00:00
igneum-labs
e3329b65a9 Counter ASIC 3.0 status: the PC 1 G1 variant staged (a2714d43, the 5090 by index-free key, published only on the go line)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 13:21:41 +00:00
igneum-labs
37b97d2086 Merge remote-tracking branch 'origin/master' into ca3-coord 2026-10-07 13:20:55 +00:00
igneum-labs
eae74e13c2 Counter ASIC 3.0 status: the PC 1 G1 gated on the shipper's "PC 1 on 0.3.20" line, about 15:30 to 15:40Z
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 13:20:55 +00:00
igneum-labs
0deaa5489a CI queue: a second self-hosted runner (igneum-build-2 joins the pool label), docs-only pushes skip the compile jobs, the red watcher pinned to the box that posts
31 runs were queued on igneum-build-1's one runner at 13:15 UK on 7 October 2026 and nothing had concluded since 13:03Z, so no lane could read a conclusion.
- ci.yml: a `changes` job (ubuntu-latest) classifies the push with tools/ci/docs-only-check.sh (docs/, site/, *.md only = code=false; a new branch, a pull request, a force push or an API error = code=true); pow and sims need it and run only on code=true. The site job is unchanged on ubuntu-latest for every push. The classifier's self-test is in the gate.
- provision.sh and runner/register.sh: `--host <ip>` registers another box, forwarding BOX_HOSTNAME, RUNNER_NAME, RUNNER_LABELS, RUNNER_CPUS and RUNNER_JOBS (plain words only); RUNNER_CPUS writes AllowedCPUs into the service drop-in beside Nice=10, so igneum-build-2's runner is bounded like a suite (32 cores). The pool label is igneum-build-1 (both boxes carry it); ci-red marks the box with the record file and the poster, the default labels carry it, and igneum-build-1 got it through the runners API today.
- ci-red.yml runs on the ci-red label, so the red line always lands where the poster reads it.
- CLAUDE.md: the rule reads "read the conclusion when it lands, own a red before the next push"; pushes are never held.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 13:20:18 +00:00
igneum-labs
d258054854 Counter ASIC 3.0 status: main's word on PC 2 (hand restart asked of the project lead; go PC 1 for the G1 at 15:00Z if silent)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 13:19:36 +00:00
igneum-labs
8d8a7fd726 Merge remote-tracking branch 'origin/master' into ca3-coord 2026-10-07 13:18:34 +00:00
igneum-labs
cd0ff2a6c5 Counter ASIC 3.0 status: sub-version 2's suite line (526fa757, 100 of 100 on box 2, the route line), the re-gate carries from 07a809a7
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 13:17:56 +00:00
igneum-labs
721e0f3ab9 Merge remote-tracking branch 'origin/master' into build-server 2026-10-07 13:17:19 +00:00
igneum-labs
caff656593 Build boxes: the box probe carries its own ssh options (bash 3.2 under set -u refused the unset BS_SSH_OPTS array before bs_host built it; every unpinned route on the Mac died, the pool lane 7 Oct 2026); the router check runs the ssh path under /bin/bash
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 13:16:39 +00:00
igneum-labs
5cc07506f0 Merge remote-tracking branch 'origin/master' into ca3-coord 2026-10-07 13:16:25 +00:00
igneum-labs
d9b249cee0 Counter ASIC 3.0 status: PC 2 silent since the 0.3.19 update-now; G1 and the Windows kept-datadir gate wait on a hand restart
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 13:15:44 +00:00
igneum-labs
7e1b1c58e8 CI red watcher: its own workflow_run workflow (ci-red.yml) so the copy on master watches every branch's run whatever ci.yml the branch carries
GitHub runs a workflow_run workflow from the default branch only, so a feature branch no longer waits for a merge of master before its reds are posted. record() reads the FAILED run from RED_WATCH_* (id, attempt, workflow, branch, sha, event, url, actor, title, author: the workflow_run payload) and asks the jobs API for that run, not the watcher's own; the inline GITHUB_* shape stays for a branch with the old `red` job (one line per run id either way). The inline job leaves ci.yml. Self-test covers the workflow_run shape and the full line.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 13:15:11 +00:00
igneum-labs
009995351a Counter ASIC 3.0 status: sub-version 2's static census (0 lossy-sourced sites of 16,432), the attempt cost, G1 blocked on PC 2's intake
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 13:14:03 +00:00
igneum-labs
3725683e08 Counter ASIC 3.0 status: main's word on the floor move, the CI lever and the rule's reading
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 13:13:02 +00:00
igneum-labs
bd542bf76b Merge remote-tracking branch 'origin/master' into ca3-coord 2026-10-07 13:11:22 +00:00
igneum-labs
94dc0e0138 Counter ASIC 3.0 status: 0.3.20's cut set as it stands, 0.3.21's clock and the byte-5 fallback, the CI queue note
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 13:11:22 +00:00
igneum-labs
a2aa13541d CI red watcher: every branch, one line per failed run naming the branch, the commit, the red check and the pushing author
The red job's condition drops the master/release-* clause; record() keeps GITHUB_ACTOR and the head commit's author name (RED_WATCH_AUTHOR from the workflow) and formatLine prints "pushed by <actor> (commit by <author>)" before the failed job and step. The self-test covers a feature-branch run and the author in the line. Same updates channel, same box file, same one-line-per-run idempotence.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 13:09:06 +00:00
igneum-labs
3fae316607 CI gate: the feature-branch hook runs the never-push classes (no-secrets, identity grep) beside the structural checks; harness summaries write keys through a redacting writer with its own check
The class (7 October 2026, 11:26 to 12:47 UK): three fork-gate summaries on ca3-v4-node carried the miners' vote-key hashes under "key" and eight CI runs went red on "no secret file names and no 64-hex secrets in the tree" while the pushing lanes saw nothing: the light gate ran only conflict markers and Windows paths.

- tools/ci/pre-push.sh: never_push_checks() (identity grep, no-secrets) runs on every ref from --hook, and inside the full gate where the identity grep already sat; the self-test asserts the wiring; the light gate is about 20 s on the Mac.
- infra/fast-time/lib/redact-keys.mjs: writeSummary() shortens every 64-hex value under a key-shaped field to 8 hex and an ellipsis and refuses a text the no-secrets rule would flag (line named); --self-test and --check; the gate runs the self-test. fork-gate.mjs adopts it on ca3-v4-node.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 13:09:06 +00:00
igneum-labs
0e4ea6909d Merge branch 'build-server' into HEAD 2026-10-07 13:08:22 +00:00
igneum-labs
b04c4b3ac9 Build boxes: the class router is a preference with spill-over (a held or overloaded box hands the job to the other one); build-2 gets a third slot and every run there is bounded on its own 32-core band; the spill decision in the first route line, the slot label and the JSONL row
the project lead, 7 October 2026 15:02 UK: build-1 at load 139 / 114 / 90 with both slots held and a 1 h 40 min queue while build-2 read 4.5 with
free slots, because the class router pinned each class to its box. Now lib.sh bs_route_spill reads the preferred box (free slots,
1-minute load) with one ssh and hands the job to the other box when the preferred one has no free slot or sits above load 64 and the
other qualifies; neither qualifying queues on the class's own box. The decision travels as BR_ROUTE_* into the JSONL "route" object
for the dashboard. build-2's slots file reads 3; everything on box 2 runs at nice 10 / 32 cores / -j 32, and a bounded run takes
the band its slot owns so three never share a core. Self-test tools/ci/route-spill-check.sh (thirteen cases) in the gate.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 13:08:19 +00:00
igneum-labs
068fa345af Counter ASIC 3.0 status: sub-version 2 committed (07a809a7, id a788661687db4bb3, the fixpoint rule, seven fingerprints, packs sha256)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 13:03:19 +00:00
igneum-labs
6049b406ca Counter ASIC 3.0 status: the F8 re-gate verdict on sub-version 1 (53 of 64 PASS, 11 FAIL, worst 29.27x), the three residual classes, the fixpoint requirement for sub-version 2
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 12:57:40 +00:00
igneum-labs
db3b0b3d85 Counter ASIC 3.0 status: the shipper's reason for gating on the cases (dc141409 to c4459193 touches the class signal byte)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 12:54:49 +00:00
igneum-labs
215b9c74e7 Counter ASIC 3.0 status: the cut gated on CASES END, the word about 15:15Z, publish on green, sweep PC 1 first
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 12:54:05 +00:00
igneum-labs
542da05fa0 Counter ASIC 3.0 status: the cases rerun slips to about 15:10Z; the wipe canary holds 14:17Z; the kept read in hand
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 12:52:55 +00:00
igneum-labs
8afe0714af Counter ASIC 3.0 status: c4459193's mixed-version gate PASS, the restart step green
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 12:46:58 +00:00
igneum-labs
ddca50ecb5 Counter ASIC 3.0 status: c4459193's build line and digest gate PASS
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 12:46:16 +00:00
igneum-labs
fae2dbacc5 Counter ASIC 3.0 status: the wipe canary on c19-1 started 12:38:55Z, synced about 14:17Z
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 12:40:00 +00:00
igneum-labs
8a73af463b Counter ASIC 3.0 status: c4459193's binary sha256 in the fleet's hand, the wipe pod c19-1, synced line about 14:20Z
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 12:39:00 +00:00
igneum-labs
79ef854f70 Counter ASIC 3.0 status: the shipper's clock call (a second one-shot pod for the wipe canary, line about 14:15Z)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 12:36:29 +00:00
igneum-labs
c60f9b91eb Counter ASIC 3.0 status: the fleet's clock on c4459193 (wipe line about 14:40Z, past the checkpoint)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 12:35:10 +00:00
igneum-labs
bb19181456 Counter ASIC 3.0 status: the shipper's carry ruling, the pin c4459193, sub-version 2 is 0.3.21's, the floor move recommended
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 12:32:58 +00:00
igneum-labs
c4ba8352e9 Counter ASIC 3.0 status: the fifth commit c4459193, the shutdown test green, the kept-datadir carry
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 12:31:00 +00:00
igneum-labs
b8a3d01600 Counter ASIC 3.0 status: b7cc37e7's mixed-version gate FAIL (the 10 s watchdog sleep at shutdown), the fifth commit's clock, the sub-version 2 re-pin cost
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 12:29:28 +00:00