Commit graph

1253 commits

Author SHA1 Message Date
igneum-labs
f455789340 Pool vardiff: the idle easing no longer consumes the sized first correction; docs/plans/pool.md 9.3: the re-run's close and the member rows
pm-1, 7 October 2026: the member was idle for four intervals while its worker compiled, the first-phase idle easing
set first_done, and the measured 190 shares a second then walked down one step per 30 s for 5.5 minutes (the share
check at 10 to 11 ms on pool-1's cores). The sized correction now stays owed through idle easings (test
an_idle_easing_does_not_consume_the_sized_first_correction). Section 9.3: 207 found / 144 confirmed / 56 own orphans
under 2f6c0358, the residual as the node's 1 to 1.6 s template latency (a node-lane row), the member findings.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 06:41:12 +00:00
igneum-labs
9bfde8bf8a Pool daemon: the confirmation walk on its own gRPC connection, never restarted from the pruning point, bounded per tick
7 October 2026, 06:01Z and 06:12:55Z on pool-1: confirm_loop restarted its chain walk from the pruning point on any
failed getVirtualChainFromBlock and then fetched every chain block since (about 120,000) over the one connection the
templates used; one timed-out request under four parallel template fetches started it, every template request after it
timed out, no job was issued, 105 blocks on stale templates were orphans. Now: a second GrpcClient (pool.walker) for the
walk and the network numbers; a failed chain call keeps its cursor (the sink only when the node no longer knows it;
cursor_after_failure, node::walk_tests); at most 600 chain blocks per tick with a line saying so; a start with pending
blocks walks from the sink and says that older ones resolve by the orphan rule. docs/plans/pool.md section 9.2: the
re-run's record (the class question closed on pm-1 and pm-2, 71,240 shares, 0 mismatches), the cause, what stays open.
Suite 24 of 24 on igneum-build-1. Protocol and API unchanged.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 06:18:53 +00:00
igneum-labs
21a98cb43a Pool daemon: --template-timeout-s (default 20, was a fixed 5 s): pool-1's node builds a template in 1.6 to 1.8 s under load, four parallel member fetches overran 5 s and no job was issued for 7 minutes (7 October 2026, 06:08Z)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 06:10:39 +00:00
igneum-labs
2d8b383df0 Pool daemon: refuses to start half-alive (listeners bound first, exit 2; a node that answers no template, exit 3; a STATUS line every 30 s)
The fleet agent's row from the 6 October night: the daemon ran 20 minutes as a process serving nothing while its node
answered no template and its member port had been held. Now main binds the member and API listeners before anything
else (server::bind_listener; a failure is "POOL NOT STARTED: cannot bind the members listener on <addr>: <os error>",
exit 2), probes the node for a template with pow_epoch, retried for --node-wait-secs (default 60) with a line per
attempt, else exit 3, and prints a STATUS line every 30 s (members, jobs issued, shares, blocks, template failures, the
node's state: ok, NODE NOT ANSWERING, NO TEMPLATE YET). fetch_job counts template failures and the last success.
Test server::bind_tests: a held port is refused with the address in the message, the freed port binds. Suite 23 of 23
on igneum-build-1. Protocol and API unchanged.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 23:41:08 +00:00
igneum-labs
d191906f6d Build server: the remote checkout's clean-tree check accepts the sha stamps and target dirs at any depth
The second build of every repo-kind crate in a subdirectory failed (6 October 2026, 18:51 UTC, the pool build: "tree not
clean after reset: ?? pool/.build-remote-sha-target"): checkout_tree keeps the stamps with `git clean -e` at any depth but
its status check matched them at the root only. The check now reads `git status --porcelain --untracked-files=all` (an
all-untracked directory is listed file by file, not as "?? sub/") and accepts target dirs, sccache and both stamps under
any path. The self-test carries the subdirectory case (stamp and target dir kept, overlay file removed) and the known-failed
case (a stray untracked file still fails the check).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 18:55:41 +00:00
igneum-labs
4de1b3ba52 Pool v0 rebased onto master and the 0.3.14 fork: the program class and era seed ride with every seeds and job line; the re-check test for class v3 and class v4
The fleet's 10-member load run (6 October 2026, 18:14Z to 18:24Z) accepted 0 shares: the pool fork's miner re-checked GPU
shares with a fixed class v2 program while the 0.3.14 workers hashed class v3 (docs/plans/pool.md section 9).

pool: node.rs builds the share verifier's seeds from the template's pow_epoch with the class and the era, installs the
node's genesis day, dataset size and class v3 activation beside the schedule, and sends program_class, next_program_class,
era_seed, era_index, genesis_day_index, genesis_dataset_log2 and program_class_v3_activation_daa in `seeds` and
program_class and era_seed in `job` (protocol.rs, additive fields); verify.rs tests through EpochSeeds::v2. Protocol,
vardiff, PPLNS, stats API and page otherwise unchanged. Suite 22 of 22 on igneum-build-1.

igneum-pow tests/recheck.rs: for class v3 (packs-ca2-mixer/mx8-devnet-epoch0) and class v4 (packs-ca3-v4/v4-devnet-epoch0)
the pack's program reproduces the pack's 96 vectors (the worker's reference), the chain seam the node engine calls
(Epoch::chain_program, chain_dataset_day) builds the same program, one known nonce hashes equal through both paths, and
the fixed-v2 program of the same seed disagrees; the pinned v3 and v4 program ids differ. 2 of 2 on igneum-build-1.

packaging/hive: the pool:// mode merged with master's per-card IDENTITIES=auto and OVERRIDE handling (selftest passes).
pool/README.md and pool.md: building on igneum-build-1 (the vendor/igneum-node symlink on the box).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 18:49:13 +00:00
igneum-labs
8b837962cf docs/plans/pool.md: the share check cost measured in isolation under the measure lock (1.35 ms mean, 500 checks)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 18:40:21 +00:00
igneum-labs
e83da0fac5 Pool v0: the solution message no longer double-counts its share; docs/plans/pool.md (what v0 does and does not, the two measured runs, consequences by tier, the WhatToMine checklist, the app setting design); API fixtures captured from the run; the harness's watch timeout; a carrier miner option
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 18:40:21 +00:00
igneum-labs
4329af5bcd Pool v0: igneum-pool (spec 09 newline JSON, per-member templates with the member's vote key, vardiff, CPU warp-verified shares, PPLNS on the EVM side with a 1% default fee and dry run, stats API and page), the Hive hooks' pool:// mode, the private-network measurement harness
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 18:40:21 +00:00
igneum-labs
08e469ff65 Build server: a path dependency inside a vendor repository is synced as a whole repository (the shipper's proving build)
proving/igneum-prove depends on vendor/igneum-node-exec/igneum/evm-types, a member of the fork's workspace that inherits
from the fork's root manifest; syncing that one directory left cargo without a workspace root on the box. lib.sh now groups
path dependencies by git top level: a repository under vendor/ is pushed to its mirror (a fork worktree to
/srv/igneum-node.git, a repository of its own to /srv/<name>.git, created on first use), checked out whole at
/srv/builds/<worktree>/vendor/<name> and overlaid whole; run-from-mac.sh wires every vendor repository the Cargo.toml files
reach. libprotobuf-dev added (sp1-prover-types imports google/protobuf/empty.proto). build-remote.sh no longer fails on a
default artefact the caller's own -p selection did not build. Proof on the box: igneum-prove-host 71,943,192 B, sha256
e9213e3a6c979512d7859f6d8e848105bab53f4355e99fb0d30fb4a72c2d5714, 1 min 05 s warm. Plan: gotcha rows for the case, the
protoc miss and one lost ssh session (collector cleared by test).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 18:36:39 +00:00
igneum-labs
b895bcb7af Merge site-miner: the miner hero is PC 1's three-card row (0.3.14, 169 MH/s)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 18:24:35 +00:00
igneum-labs
137ddf2c30 Site: the miner hero is PC 1's three-card row (site-capture-pc1-1, 6 Oct 2026, 18:16Z)
Mine, Earnings and Settings on igneum.network/miner are now the installed 0.3.14 app on PC 1 (RTX 5090 at 122 MH/s,
222 W, 0.55 MH/W, 56 C; RTX 4070 at 28.7 MH/s, 76 W; RX 9070 XT at 18.9 MH/s, 198 W; 169 MH/s at 532 W; Ember Tune
and Power control on), shot read only by the signed run job site-capture-pc1-1 with Edge headless and brought back
over the relay. Masked in pixels: the job's own strip cut out of the content column, the rail foot and the Settings
name field (hostname, address) painted over, the Earnings address box painted over. Captions say PC 1, the time, that
no electricity price is set and that the tune lines are stopped tunes from before that afternoon's Power Helper fix.
Prove, light and the phone width stay the Mac's (PC 1's Prove shows an exporter error line that belongs in a bug
report; headless Edge followed the Windows theme so its light set is dark; its 390 px window clipped the right edge).
The contact sheet is refreshed.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 18:23:56 +00:00
igneum-labs
d025e9fc2c Merge remote-tracking branch 'origin/master' 2026-10-06 18:20:13 +00:00
igneum-labs
f17826bd17 Site: the downloads snapshot is written only on SITE_DOWNLOADS_REFRESH=1 or in CI; a CI check against scripts writing into other worktrees
On 6 October 2026 the pre-push hook's site build fetched the live downloads index (0.3.14 since 17:47Z) and rewrote site/downloads.json and the stamped pages in five worktrees that had nothing to do with the release, as uncommitted edits to tracked files. A plain build and the hook now read live and warn when the snapshot lags; the ship step refreshes it with the flag and commits it. tools/ci/no-foreign-tree-writes.sh fails a script that builds a path from a worktree name, a glob over Projects or a worktree-list loop that writes; the eight absolute defaults into the shared checkout are listed as warnings until they move to env-only defaults. The journey, bench and index rebuilt from the merged tree.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 18:19:58 +00:00
igneum-labs
9484f454f2 Merge branch 'ca3-v4-node' into ca3-coord 2026-10-06 18:19:53 +00:00
igneum-labs
a20d238fac Merge release-0.3.14: Igneum Miner 0.3.14 (exec-sync deep-reorg reload, miner-ui-3, ember-tune), publish 1 on the thirteen-field object
The node pin moves to 4c6b129d (release-0.3.14-node), which is what the live payload inputs carry, so windows-ci's payload-inputs step is green again (red since e9eca23 on master's 0.3.13 pin against the 0.3.14 inputs).
Conflicts: infra/fast-time/override-60x.json keeps master's side (the fresh-rule field was already there at u64::MAX; the release line would be a duplicate key); tools/ci/playbook-quit-check.sh keeps master's rule 2 and pre-rule list with the release side's Ember allow entry and the 0.3.15 expiry check.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 18:18:17 +00:00
igneum-labs
ea5e4588e2 Counter ASIC 3.0 gates (node): the rehearsal re-cut for the hour (1 block/s: 600-DAA epochs, window 600, flip at minute 20, floor at minute 40; digest d23394e7...)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 18:18:04 +00:00
igneum-labs
534feaedd6 Merge remote-tracking branch 'origin/master' into ca3-coord 2026-10-06 18:17:32 +00:00
igneum-labs
f179f2db61 Counter ASIC 3.0 status: the two fast-forwards and their CI runs (decision 5 closed); the project lead's go (v4 now, the clean-day wait removed), the P1 rehearsal running, 0.3.15 tonight on PASS 2026-10-06 18:17:31 +00:00
igneum-labs
9df9688b59 Build server: the remote checkout discards the previous overlay first (the stale-overlay class, PC 1 worker, 6 October 2026)
remote-run.sh gains a checkout mode used by lib.sh: git checkout -- . and git clean -fd (target dirs, the sha stamps and
ignored files kept), fetch, branch at the commit, then a clean-tree check; the overlay follows. Before this, the rsync of
uncommitted files stayed in the box's tree and the next commit's git checkout -B refused with 'local changes would be
overwritten'. remote-run.sh --self-test reproduces the dirty tree (edited tracked file, untracked file, target dir, sha
stamp), shows the plain checkout refusing and the mode landing clean on the new commit; it runs in ci.yml and passed on the
Mac and the box; a live dirty-then-clean pair on the fork worktree passed too. Plan: section 5, gotchas of the first day.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 18:16:27 +00:00
igneum-labs
9cc3bb4224 Merge site-ui-3 item 0: the home page's live scene reads the chain (block height, shards proven, last lock), the failed-feed state is labelled
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 18:14:48 +00:00
igneum-labs
0868e423c8 Merge site-miner: the 0.3.14 miner on the site (real captures, the four pages, Ember Tune measured, Power control)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 18:14:48 +00:00
igneum-labs
870bc4ed33 Home live scene reads the chain, not the window: chain block, shards proven, last lock, live colours, a plain unavailable state
The "LIVE DEVNET" scene on the home page showed blocks 21, proven 0, locked 3 and grey nodes while the devnet stood past
chain block 140,000 with 2,090 shards paid and a checkpoint locking every 30 s. Four causes, all in site/index.html:
- "blocks" was the scene's own spawn counter, never the chain;
- "proven" counted blocks of the 90 s window whose shards were all paid, and proofs land a median 380 s behind the tip
  (median_proof_lag_s), so the window can never hold one;
- "locked" counted locked checkpoint blocks inside the same 90 s window (always about 3);
- the live path skipped the colour state machine, so every real block stayed grey, and a failed first fetch left the
  simulation running under a label that looked live, with no further polls.

Now: /api/live carries state.height (the chain block number, the same field /api/stats reports, one indexed subquery);
the scene's counters read chain block (state.height), shards proven (proving.paid_shards_total, the node's count of paid
shard records, with the 10-minute count and the median lag in the note) and last lock (finality.latest_locked_index);
live blocks take the observer's own words (pending, included, excluded, proven, locked checkpoint, final to its left),
refreshed on every poll, with a legend in those words; the hero tile shows the chain block instead of the node's
held-block count; polling never stops (2 s while fresh, 10 s while off) and the off state is labelled "simulated preview ·
live feed unavailable" or "observer offline, last update N ago" with a note that the counters count simulated blocks.
Also found while verifying: the scene advanced a fixed 16 ms per frame, so it ran at double speed on 120 Hz displays;
it now uses the real frame time, capped at 50 ms.

/live had the same window bug in its "proven 0/16" counter; it now reads the observer's 10-minute truth (chain blocks
with every shard paid, of the chain blocks planned in 10 min) with the lag and the chain total in its title.

Verified against the live API through tools/site-serve.mjs in the built-in browser and headless Chromium:
chain block 140,489, shards proven 2,130, last lock #6,784; the failed-fetch state shown by blocking /api/live.
Screenshots: docs/plans/site-ui-3-shots/item0/ (1440 and 390, live and failed). Checks: identity grep 0 hits,
link check 708 links 0 broken, site/api tests 14 pass, site build clean.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 18:14:05 +00:00
igneum-labs
ff25321e8b Site: the miner page pictures 0.3.14 (Mine, Earnings, Prove, Settings; the card row; Ember Tune measured)
Real screenshots of the live 0.3.14 app on the Apple M5 Max (paused, Ember Tune off, as the project lead left it), shot headless
at 1440x900 and 390 px, dark and light, the rail foot, the address and the machine id masked: miner-dashboard.webp
(the hero, same name), miner-earnings, miner-prove, miner-settings, miner-dashboard-light, miner-phone.
miner.html: a page-by-page section (the card row cell by cell, three page shots, light and the phone), the lead and
the meta copy name the four pages and pounds a day at the user's price, the Ember Tune feat carries the app's one
sentence and the measured PC 1 rows from the 6 Oct log (5090: 311.0 to 226.8 W for 0.15% of rate; 4070: 106.0 to
75.6 W for none; the floor, not the optimum), the Power control feat (one approval, then the helper task, no prompts),
the dev fee moved to Earnings as in the app. index.html: the same hero shot, two pills. build.mjs: the caption no
longer says 'until 0.3.6' (0.3.14 still says Igneum Miner). The 9070 XT row, the market price for pounds earned and
the bench anchor (the run 6 entry is on the ship0314 branch) are marked as owed or coming.
relay/playbooks/site-capture-pc1.ps1: a read-only run job that shoots the installed app's UI on PC 1 with Edge
headless and drops the PNGs on the relay (no quit, pause, resume or settings change; passes the playbook checks).
docs/plans/site-miner-2026-10-06.png: before and after.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 18:13:01 +00:00
igneum-labs
1e8d6e5deb tools/ci/playbook-quit-check.sh: the executable bit back (lost in the rebuild on master's text) 2026-10-06 18:12:30 +00:00
igneum-labs
c6486f3132 Merge commit '141b559' into ca3-pc1-amd
# Conflicts:
#	app/igneum-app/src/engine.rs
#	tools/ci/playbook-quit-check.sh
2026-10-06 18:10:29 +00:00
igneum-labs
14c7087c42 Counter ASIC 3.0 PC 1 AMD: the scripts stop switching cards (jobs 1, 2, 4 and the watts job read the card's state only; the runner's --cards-off at publish), the watts job split into the read-only control row in the app and the candidate row alone, the README's record of the 17:52Z death (the 0.3.14 relaunch under the job) and the rule
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 18:07:52 +00:00
igneum-labs
8b9edccff8 Counter ASIC 3.0 PC 1 AMD: the runner owns a job's card switch: --cards-off <key,key> (matched with or without the device index, switched through the app's card path before the script, restored exactly on any exit including the app quitting; report lines; two tests, igneum-app 114 of 114 on igneum-build-1); playbook-quit-check rule 2 fails any script that requests api/cards (pre-rule playbooks on a dated allow list)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 18:07:52 +00:00
igneum-labs
141b559b82 Merge origin/master into ca3-coord: Counter ASIC 3.0 complete (every gate green, P2 green, P1 written); the drive-ref check skips single-quoted here-strings and the copied-sources check reads code lines only (master's CI red on dbdfda0); main's decisions and the close in the status file 2026-10-06 18:05:54 +00:00
igneum-labs
7f4874ff24 Counter ASIC 3.0 status: PC 1 free, the 9070 XT restored (confirmed off at 17:55Z, mining from 17:57Z), the amd:1 flag back 2026-10-06 18:02:01 +00:00
igneum-labs
708224fab7 release 0.3.14: the Mac's and PC 2's version lines, PC 2's exec at start, the wallet DMG on this node
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 18:00:17 +00:00
igneum-labs
dbdfda0d21 Merge workers-dash: the worker dashboard on the fleet URL (collector on igneum-build-1, Mac pusher, workers.html)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 17:59:54 +00:00
igneum-labs
942a58a0ef Worker dashboard: collector on igneum-build-1, Mac pusher, workers.html next to the fleet page (the project lead, 6 October 2026)
tools/workers/collect.mjs runs every 30 s on the box (infra/build-server/workers/igneum-workers.{service,timer},
install.sh) and writes /srv/workers/workers.json from the machine itself: /proc/stat deltas per core, meminfo, df on
/srv, net bytes, hwmon temperatures, the flock state of /srv/builds/_locks, cargo processes with worktree, target and
start time, flock waiters, /srv/builds/_log/builds.jsonl (the format agreed with the build-server agent), sccache
--show-stats, headline.json. tools/workers/push.mjs (launchd every 60 s) adds the Mac's with-lock slots and waiters
and the two PCs' relay job states from the intake, drops them on the box so its file is whole, merges the box's file
and writes the fleet folder's workers.json; it deploys only when the live copy is over 6 min old, otherwise the
fleet orchestrator's 5-minute deploy carries it. The page (tools/workers/page/workers.html, shape.js) tries
https://build.igneum.network/workers.json first and falls back to the folder copy; core strip, arcs, now building,
queue, recently done with closing lines, headline timings, analytics; UK time with UTC tooltips; phone width.
node --test tools/workers/test: 13 tests over /proc/stat, lock dir, JSONL and sccache fixtures and the page shaping.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 17:59:07 +00:00
igneum-labs
d9e580d3bd Build server: wait-<pid> file while a build queues for a slot; Caddy serves the dashboard's two JSON files at build.igneum.network
remote-run.sh writes /srv/builds/_locks/wait-<pid> in the slot-file line format while it waits and removes it when the
slot is taken or the wait is given up (shown: present during a held slot, gone after). provision.sh installs Caddy with a
Caddyfile that serves only /srv/workers/workers.json and headline.json (every other path 404, CORS for dl.igneum.network,
no-store, Let's Encrypt only) and opens 80 and 443. Both asked for by the worker-dashboard agent, approved by main.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 17:59:02 +00:00
igneum-labs
1d0e458417 Counter ASIC 3.0 PC 1 AMD: the amd:1:gfx1201 flag job (the entry back to enabled, as before the watts job) 2026-10-06 17:58:23 +00:00
igneum-labs
c5a50995c1 Counter ASIC 3.0 status: P2 green (miner-signalled activation, three runs and the failed case, G6), P1's plan and objects written; the line for the project lead re-read 2026-10-06 17:57:35 +00:00
igneum-labs
b8b1a72185 Merge branch 'ca3-v4-node' into ca3-coord 2026-10-06 17:56:58 +00:00
igneum-labs
ddfef6b526 Counter ASIC 3.0 status: the cards-off rule from main (runner flag + CI check tonight), the 4070 consequence 2026-10-06 17:56:13 +00:00
igneum-labs
6a57c69580 Counter ASIC 3.0 gates (node): G6 on the signalling fork change GREEN (jobs build-20261006-173017, -174027, -174823: the 2.0 flake re-run alone, the five crates and the app, the relay upload fault noted)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 17:56:11 +00:00
igneum-labs
e6e3bd1954 Counter ASIC 3.0 status: the watts job's failure and the 9070 XT restore in flight; the 4070 came back 2026-10-06 17:55:18 +00:00
igneum-labs
d4aa127041 Counter ASIC 3.0 status: the build-server rule passed to every lane 2026-10-06 17:53:17 +00:00
igneum-labs
383649efa3 release 0.3.14: the rollout so far (the canary's evidence, the hands and the seed, publish 1 at the host, the two update-nows)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 17:53:04 +00:00
igneum-labs
aed5ca9bd7 Build server adopted: box-first build rule in CLAUDE.md, reproducible Windows exes, the commit-string gate, PC and Mac recipes
Main's decision of 6 October 2026. CLAUDE.md 'Running agents on this Mac': every Linux and Windows cargo build and every
Linux test suite goes to igneum-build-1 through tools/build-remote.sh and tools/cross-remote.sh; the PCs keep GPU and
Windows-runtime jobs; the Mac keeps macOS binaries, the DMG and Metal tests under the lock. -Wl,--no-insert-timestamp in
cross-remote.sh, proto-cuda/windows-node/cross-build.sh and jobbuild.rs (two box builds byte-identical, verified).
The empty-commit class: tools/ci/commit-string-check.sh (self-test in ci.yml, shown firing on a Mac worktree build and
passing on a box build) runs on every igneumd from the three build scripts; push-build-inputs.sh adds node.commit_full,
the PC job writes a minimal node/.git from it at extract and cleans kaspa-build-info on a new commit (4 jobbuild tests
pass, run on the box); cross-build.sh refuses a worktree and cleans on a new commit. Plan: second worktree's clean build
1 min 18 s with sccache 604 hits of 993.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 17:50:39 +00:00
igneum-labs
6a0d4eb59f Counter ASIC 3.0 status: the RTX 4070 ladder (holds to 200,000 ops at its tune point; binds at 330,700 under the 160 W cap) 2026-10-06 17:49:44 +00:00
igneum-labs
f35cf492bf Counter ASIC 3.0 gates (node): the signalling gate GREEN (two of three never flips, all three flips at the first full window, nobody flips at the floor; the failed case fails on eight checks), the four summaries, the preconditions rows
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 17:47:31 +00:00
igneum-labs
eb0713e312 restart-hand-nodes.sh: stop()'s pid filter never fails the pipeline (set -e ended the script before node 1 at 17:43Z)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 17:45:28 +00:00
igneum-labs
0b3ca31d87 Build server: remote-run.sh with the JSONL build log, benchmark plan docs/plans/build-server.md, commit hash in box builds
remote-run.sh runs on the box behind BR_* exports: slot, sccache stats, the RESULT line and one JSON line per run in
/srv/builds/_log/builds.jsonl (v 1, id, host, tool, worktree, crate, kind, command, target, branch, sha, label, agent, slot,
wait_s, queued_at, start, end, secs, exit, compiles, sccache, load_end, artefacts; written on success, failure and the 2 h
slot give-up), the label ending in '; agent=<name>' (IGNEUM_AGENT, default the worktree). The remote checkout is a branch and
build-remote.sh cleans kaspa-build-info (release profile) on a new commit, so the box's igneumd carries its commit hash
(no Mac worktree build does: .git is a file there). cross-remote.sh fetches the GCC 13 runtime DLLs beside an exe that
imports libstdc++-6.dll. The plan holds the three benchmarks: clean node build 1 min 27 s (Mac 12 to 18 min), incremental
7 s (Mac 2 to 15 min), Windows cross 1 min 44 s (Mac 4 min 49 s to 12 min 28 s), their consequences and the proposed rules.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 17:41:26 +00:00
igneum-labs
1fbdf1008e Counter ASIC 3.0 status: item 6's RX 9070 XT column (the card alone; every family 0.75x to 1.30x except perm and mm8; R3 unmoved) 2026-10-06 17:36:21 +00:00
igneum-labs
a1ecb37bef Build server: the overlay re-stamps files only (a tree whose files were all identical listed only directories and failed the pipeline)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 17:31:19 +00:00
igneum-labs
7704ed1181 Counter ASIC 3.0: item 2's 9070 XT rows (bit-exact, +2.0 s OpenCL compile per pack, no rate cost) 2026-10-06 17:30:00 +00:00