Commit graph

1443 commits

Author SHA1 Message Date
igneum-labs
0750b2bb35 Merge commit '85c712f' into release-0.3.17 2026-10-06 23:13:57 +00:00
igneum-labs
9d162e4302 override-60x.json: the duplicated exec_restart_state_root from the merges removed
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 23:13:42 +00:00
igneum-labs
ced26f4e4e Merge commit 'e39d966' into release-0.3.17 2026-10-06 23:12:13 +00:00
igneum-labs
690e7dc12a Merge commit '1065b81' into release-0.3.17
# Conflicts:
#	.github/workflows/ci.yml
2026-10-06 23:10:56 +00:00
igneum-labs
b8010abf82 Merge commit '1e9ddb4' into release-0.3.17
# Conflicts:
#	docs/bench-log.md
2026-10-06 23:10:27 +00:00
igneum-labs
6084a7ea64 Plan: owed rows from publish 2's read-back (the Mac app's port collision, the node's digest line in the app log, the box's 26611, the safe-moment hold)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 23:06:06 +00:00
igneum-labs
708b1e0fc8 Plan: publish 2 as run (the sixteen-field object, digest eada4bda, every node moved, the vote open)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 23:04:35 +00:00
igneum-labs
e39d966840 latency ladder: the step2 harness case passes on all 18 checks; the four runs' summaries and logs under docs/design/latency-ladder-harness
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 22:58:39 +00:00
igneum-labs
770eca9daf latency ladder design doc: the no-step case passes (5,833 bps weakest of seven holds rung 0 over 10 epochs)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 22:47:54 +00:00
igneum-labs
057b489107 latency ladder design doc: the test lines and the first two harness results (the known-failed case fails, the step case stepped at epoch 8; the two harness faults named)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 22:38:20 +00:00
igneum-labs
0bc7681875 igneum-pow show: --shadow-reps reaches the show path too (the step case's id check, 22:37Z: the CLI printed the rung-0 id for --shadow-reps 35 because show built its program without the rung; the three miners' rung-1 ids agreed with each other and differed from rung 0, as the chain requires)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 22:37:56 +00:00
igneum-labs
85c712f01a bench log: Devnet 2 zero program-id class closed (paidSegments 4 at 22:28Z)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 22:31:16 +00:00
igneum-labs
d33fa30f89 Plan 0.3.15: the live retry and the forced poisoned-peer confirmation in the gate table
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 22:30:19 +00:00
igneum-labs
1e8bcf7cb1 Plan: the 0.3.17 merge rule names ember-tune d5f236a (the helper's wire-sequence fix)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 22:30:05 +00:00
igneum-labs
b3cd2d21f4 Plan: the 0.3.17 merge rule names miner-ui-4 57bb4f7 (N4's app half with the node lane's miner half)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 22:29:37 +00:00
igneum-labs
c4d29c58fd Plan: wallet 0.1.5 published, publish 2's floor a week past publish
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 22:28:05 +00:00
igneum-labs
6660722bd7 latency-ladder harness: genesis (header version 0) is out of the low-byte check; the first known-failed run tripped it (a harness fault, recorded in the file)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 22:27:50 +00:00
igneum-labs
edf5e8831e fast-time 60x file: exec_restart_state_root, the last field the 0.3.16 node tree's every-field test asks for (never-set defaults, nothing else changes)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 22:20:34 +00:00
igneum-labs
b0af074fb4 Latency ladder (Horizon finding 4, 0.3.17): docs/design/latency-ladder.md (where N lives, the ladder as a genesis list, the 90 percent seven-window step rule on the class signal's machinery, the verifier bound and its measured table, the X9 chip anchor, the hostile review, consequences per tier); igneum-pow: v4_class_at, v4_rung_reps, v4_counted_ops, generate_from_seed_bytes_program_class_shadow and Epoch::chain_program_shadow (rung 0 is V4_CLASS byte for byte; a rung above carries its shadow size in the id through program_id_class), era draws 8 and 9 consumed and not used, --shadow-reps on the CLI, the known-failed test first (a changed N hashed another program under one id); tools/ladder/verify-bench-remote.sh (the bench per rung on core 40 alone and with core 88 loaded under the box's measure hold; the first run's sibling finished early and is recorded as the script's failed case) with both runs' raw lines under docs/design/latency-ladder-bench; infra/fast-time/latency-ladder.mjs (step, no-step and the known-failed case) and the 60x file's three ladder fields plus the two 0.3.16-lane fields it lacked; ledger M34; the litepaper's hash-class paragraph and the corrected RandomX precedent (Bitmain's Antminer X9, approximate)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 22:18:48 +00:00
igneum-labs
9c9a09ff09 publish-jobs guard ignores the index's updated stamp; plan: the hive rename, the card, the finality notes' number
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 22:17:40 +00:00
igneum-labs
ea76eac0f8 Plan: 0.3.16 the corrective cut, every machine on f1ea7a38, the 0.3.17 tree
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 22:15:21 +00:00
igneum-labs
27677b596c ledger and bench log: the export-disk row is X34 (X31 to X33 are the site lane's) and the consensus proof verification ships as 0.3.17 (0.3.16 is tonight's corrective cut)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 22:00:16 +00:00
igneum-labs
30511ab700 Plan: the planned 0.3.16 tree is 0.3.17; 0.3.16 is the corrective cut
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 21:58:58 +00:00
igneum-labs
60e78a56ba Staging rule: publish-jobs.sh --deploy ships a jobs-only change (refuses when anything else differs from the live folder); restart-seed.sh refuses a binary whose GLIBC need exceeds the seed's; the CLAUDE.md rule
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 21:58:58 +00:00
igneum-labs
10112d1df7 Igneum Miner 0.3.16: the same release as 0.3.15 under a new number, so every machine takes the final node build (f1ea7a38)
The Mac and PC 1 took earlier 0.3.15 builds (nodes 713ef876 and 7961c5f1) through deploys of the shared downloads folder before the publish; the updater compares version strings only, so the number moves them to the final build. Node pin unchanged at f1ea7a38.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 21:55:32 +00:00
igneum-labs
9601749fb2 Merge remote-tracking branch 'origin/master' into release-0.3.15
# Conflicts:
#	.github/workflows/ci.yml
#	tools/ci/install-hooks.sh
#	tools/ci/no-foreign-tree-writes.sh
#	tools/ci/windows-paths-check.sh
2026-10-06 21:55:30 +00:00
igneum-labs
3559537130 Plan 0.3.15: the leak (earlier 0.3.15 builds reached the Mac and PC 1 through other lanes' deploys of the shared folder), the rule rows
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 21:54:08 +00:00
igneum-labs
606414392d Merge site-ui-3: miner app and wallet showcase on the home page
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 21:52:20 +00:00
igneum-labs
8d758bfa38 site: showcase the miner app and the wallet on the home page
A section between the live scene and Your card: three real screenshots
(the shipped Mine page of 0.3.14, and the next release's Overview and
Cards pages from the app in development), light and dark variants,
three lines (one click, every card tuned, the chain on your screen),
the download list repeated, and the wallet in one card.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 21:52:17 +00:00
igneum-labs
e976b344f3 Plan 0.3.15: publish 1 as run (deploy, update-nows, the hands, the seed with the glibc lesson)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 21:47:27 +00:00
igneum-labs
27ce42aab5 Merge ci-hardening b2262e5: one gate script for the hook and CI, the research exclusion list, the Windows paths check, the red watcher and the box's red-row classes with pre-flight
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 21:43:37 +00:00
igneum-labs
80c5618eb5 Merge site-ui-3 13fafe3338: the home page restored and polished for the miner (the step scene as the hero, the network strip, the measured card picker, the Discord line). The owner, 6 October 2026: "Ok new page approved".
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 21:42:16 +00:00
igneum-labs
437ca52ca8 Ledger decisions: the project lead's answers to the seven genesis questions (verification on, leave on, 18 decimals, cryptanalysis yes, date open, emission solution owed)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 21:41:25 +00:00
igneum-labs
b2262e5dc6 Build box: every red run classified and kept, pre-flight before the slot, one run per worktree, box reds in the red-run file, a 09:00 UK digest
The box's 34 red rows of 6 October classified (docs/analysis/ci-failures-2026-10-06.md section 6): 22 iterations, 12 in three real classes (instant deaths with nothing kept, a shared worktree directory, an unread dry run). remote-run.sh now: pre-flight (subcommand, manifest, -p package, --features) refuses in a second with exit 3 and a class; the last 400 lines of every run kept in /srv/builds/_log/runs; a class on every row (compile-error, link-error, test-failure, instant, no-test-matched, slot-timeout, no-dir, preflight-*); a cargo test whose filter matched no test exits 3; a per-worktree lock in checkout and run mode; every red row appended to /srv/ci-red/red.jsonl as source box. red-watch.mjs never posts a box row alone and sends one digest a day (counts per class with each class's guard); the timer runs tick. Shared group cired on the box so the runner and build append to one file. Shown in a sandbox on the box: pass, failing test, empty filter, bad package, bad feature, missing subcommand, compile error, broken manifest, two concurrent runs of one worktree.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 21:40:07 +00:00
igneum-labs
62348832bd Merge horizon-close c8d6acb: the Horizon close, the one page for the project lead, the two standing decisions of 22:3x UK, ledger-decisions.md and lane 5's experiment onto master
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 21:39:23 +00:00
igneum-labs
13fafe3338 Home page restored and polished for the miner: the step scene with the shards, the glow and the final line brought up to date; live network strip; measured card picker; Discord; no calendar month
The owner, 6 October 2026: "Im not sure about the site can we revert it but polish it? minimal, simple but everything needed
for the dopamine and emotional triggers of the gpu miner", then "cant we have a dag animation like we had before? with the
shards making up the block, then the final line and the other bits that looked really cool but brought upto date?"

Restored (a new commit, no history rewrite): site/index.html as it stood at 14da2b8, the step-view page with its hero, facts,
scene, three things to check, downloads, build, wallet, journey, economics and the ledger band; nothing from tonight's other
work is undone (the litepaper, /live, the roadmap and benchmark wording, ledger X31 to X33, the scroll-zoom fix). Where the
page named a month it now carries tonight's sentences: the proofs card reads "Live rows arrive with the public testnet. The
public testnet is weeks away: three seed nodes and the public RPC are up, and it opens when the go checklist closes."; the
journey lead reads "Six phases, four public gates ... No calendar dates: each phase closes at its gate." and its inlined
phases are the gate-worded ones. No "August 2027", no month anywhere on the page.

The scene (site/live-steps.js): the original bits, every one driven by the live feed. A real block arrives from the right
with a glow and its chain number under it; its outline is grey while pending and ember once included; as its shards are
verified or paid, particles fly in from the edges and its quarter cells fill molten; when every shard is proven the block
turns ember and the caption says how many provers were paid; a locked checkpoint takes a ring and a ripple and the dashed
"final" line sweeps in from the right to it, drawn only while finality is active (the legend no longer says "final to its
left"; the wallet card's state word "final, checkpoint 5" is the wallet's own vocabulary and stays). A proof or a lock that
lands on a block already off screen re-enters from the right as its own event, so every step is seen when it happens. The
counters gain blocks per second. The caption follows the newest block that changed step.

The miner's triggers, each one element with live or measured numbers, none invented: a network strip under the facts
(hash rate, blocks in the last ten minutes, the latest block's age ticking every second with its chain number and word,
shards proven and paid with the last ten minutes), each value flashing molten when it changes; a card picker from the bench
table with the time a card alone takes to find a block at the live hash rate (RTX 5090 127.7 MH/s at 227 W and RTX 4070
28.8 MH/s at 76 W from the 6 October Ember Tune on the three-card Windows rig, RX 9070 XT 17.8 MH/s from the 5 October eGPU
entry, Apple M5 Max 26.7 MH/s from the first live swap; the RTX 4090 and RX 7900 XTX shown as not yet measured with the
bench table linked) with the pool note; the fairness line (graphics cards only, a new program every hour, your card proves
the blocks, 80% to the miner and 20% to the provers, nothing to anyone else); the download buttons with sizes; a Discord join
line (the standing invite, recorded in docs/community/discord-hooks.md so nobody asks again); the testnet sentence.

docs/fud-ledger.md: G4, C2 and X8 each gain a status line saying the restored home page carries their sentence again; the
ledger-text check guards them on the home page again (55 sentences, 0 missing).

Measured headless over 40 s against the live feed: 19 captioned transitions, the strip reading 2.3 GH/s, 562 blocks in ten
minutes, 8 s ago, 2,970 shards paid, the picker's times 18 s (5090), 79 s (4070), 2 min (9070 XT), 86 s (M5 Max) at that
hash rate, 0.92 blocks/s; no console errors at 1440 or 390 in either theme; no horizontal overflow. Captures in
docs/plans/site-ui-3-shots/after-v2/: home-{1440,390}-{dark,light}-fold.jpg, home-{1440,390}-{dark,light}.jpg and
home-steps-1440-dark.webm (ten seconds of the scene). Checks: identity grep 0 hits on served files, link check 934 links
across 16 pages 0 broken, ledger text 55 of 55, contrast 32 pairs 0 under 4.5:1, api tests 5 pass. Not deployed: the owner
sees it first.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 21:37:38 +00:00
igneum-labs
c8d6acbbc2 Horizon close: the one page for the project lead (597 words, every lane landed, each item marked done / in 0.3.16 / decision owed), the two standing decisions of 22:3x UK recorded in ledger-decisions.md, lane 5's experiment and ledger-decisions.md brought onto master
- docs/analysis/horizon-2026-10.md section 1 rewritten as a standalone page: the project lead's three lines verbatim (fees cannot fund security for a decade; miners need to be the security; wrong constants and claims in our own text) with the recorded meaning (miners are the security always, no time bound, no stake, no outside checkpoints or committee; emission plus fees pay the miners, nobody pays upkeep; emission never decays on a schedule that assumes fees take over); the nine items with what landed tonight (proof verification in consensus da2d17ec with the switch off by default; the leave item 766e70ca; seven-window signalling 0760b844; the peer-driven unwrap class 8e2f5cbe; the receive-side version gate f1ea7a38; Ember's pause wording and activation guard b43d329, e5e1e92, e54a87b; the export-disk cap f9ad70e; the nine ledger rows plus X31 to X33); lane 8's measured verdicts (B never as class content, C the class v5 candidate); lane 5's 1 block/s verdict with the three gates for 10; the four decisions still owed
- lanes table, section 4 (lanes 5, 6, 8) and section 5 (A2 dropped) brought current
- docs/plans/ledger-decisions.md: the fud-close file (c6b0bad) now on master, since docs/fud-ledger.md already points at it, with the standing decisions section appended
- docs/analysis/block-rate-devnet2.md: lane 5's experiment from gpu-fleet b965b64, unchanged

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 21:37:31 +00:00
igneum-labs
89391d0052 Merge box-capacity 58dacf6: the builder's background capacity layer (fuzz, sims, sweeps, clippy; yields to builds)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 21:35:54 +00:00
igneum-labs
58dacf6f38 Capacity layer: fixes from the smoke runs
- pow-fuzz: list saved mismatches from the directory, not an ls|node pipe (pipefail ran
  the || echo too, giving invalid JSON [][]); drop the dead inner accumulation line
- sync-fuzz: merge the override with python, not node (node rounds the u64::MAX activation
  fields to a float the Rust parser rejects); retention-period-days 2 (the 2-day minimum);
  grep -c without || echo (pipefail doubled the count)
- clippy-audit: cap_cargo_t (timeout cannot run the cap_cargo shell function); grep -c fix
- all jobs sync the checkout unconditionally and lib.sh defaults the branch vars so a
  standalone job or smoke never trips set -u on CAP_NODE_BRANCH

Smokes on igneum-build-1, all 0 panics: pow-fuzz 98 rounds / 19,600 programs / 78,400
units; sync-fuzz 142,883 requests, node alive, every kind disconnected or answered;
sim-sweeps 5 rows; model-sweeps 7 sections; clippy-audit 69 branches, 1,192 warnings,
1 error (ca2-coord), 0 advisories.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 21:32:55 +00:00
igneum-labs
ea7c30d799 Plan 0.3.15: the 0.3.16 node tree's commits and the testing-integration breakage row
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 21:26:57 +00:00
igneum-labs
c07d259323 Plan 0.3.15: the 0.3.16 merge rule names ember-tune b43d329 and the node lane's 0316 commits
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 21:24:34 +00:00
igneum-labs
708842e40d red watcher job: actions:read on its token, so the recorded line names the failed job and step (the first real red run, windows-ci at 21:19Z, got 403 from the jobs API and recorded no step)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 21:20:10 +00:00
igneum-labs
eb5d798070 remote-run.sh: a stale index.lock is one older than 30 s, not one with no git anywhere on the machine; the self-test backdates its fixture lock
pgrep -x git over the whole machine kept the lock whenever any git ran (the pre-push hook's own git push, another agent's build) and the checkout died with "index.lock: File exists". The fact is the lock's age. Class Q in docs/analysis/ci-failures-2026-10-06.md with the GIT_DIR leak of the previous commit.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 21:11:30 +00:00
igneum-labs
de058a4af5 Plan 0.3.15: the final Windows installer and payload on f1ea7a38, the final manifest
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 21:08:20 +00:00
igneum-labs
0969bedb2e Plan 0.3.15: the X31 ledger-row collision (renumber X34 at the 0.3.16 merge)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 21:06:48 +00:00
igneum-labs
487cea3844 pre-push gate: clear git's hook environment (GIT_DIR and friends) so the self-tests' nested git never acts on this repository
The first master push through the gate died inside remote-run.sh's self-test: its mirror push ran this repository's hook against the fixture tree. Shown fixed by a push to a local bare repository (the real hook, GREEN).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 21:06:16 +00:00
igneum-labs
e49c7a058a Plan 0.3.15: the proving agent's 0.3.16 node and app tips in the owed rows
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 21:06:12 +00:00
igneum-labs
1e9ddb457e 0.3.16 app side: the forged-record harness; ledger P21 round 4 and X31 (the export-disk class); bench-log verify costs
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 21:05:19 +00:00
igneum-labs
3ef7f901c6 Plan 0.3.15: the f1ea7a38 Windows exe, the inputs, the cancelled runs and the cross tool's swallowed defaults line
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 21:01:12 +00:00
igneum-labs
0be32c92ce prover: the proving directory owns its disk (size and age caps, delete on submit, a free-disk floor before each export)
The fleet's segment exports (50 to 500 MB each with the old [0, last] export, never pruned) filled 42 GB on the hub
(586 segment dirs, 60 GB disk, 100 percent) and 3 to 46 GB on every standing box between about 13:00Z and 20:44Z on
6 October 2026, 4 to 6 GB an hour a box; the hub's node died on the full disk at 20:42:31Z (its two earlier deaths
at 19:58:08Z and 20:01:55Z were the sync KeyNotFound). The app's prover now:
- enforces a cap on <app dir>/proving before every export: entries older than IGNEUM_PROVING_DIR_MAX_DAYS (7) go,
  then the oldest until the total is under IGNEUM_PROVING_DIR_MAX_GB (20); the plan is a pure function with a
  unit test (provingdir::prune_plan); the defaults leave 80 GB of a 100 GB box to the node and the system
- skips the export with a logged line when the disk is under 10 percent free (statvfs on unix, GetDiskFreeSpaceExW
  on Windows), and the Prove page says so
- deletes a segment's directory (fixtures, proofs, logs) the moment its record is submitted, on the first try or on
  a retry; seq.json was already removed after the cut
The fleet's kit (box-prover.py, gpu-fleet 86c9854) carries the same rule on the boxes since 20:5xZ.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 21:00:34 +00:00