Commit graph

275 commits

Author SHA1 Message Date
igneum-josh
2d356dccc9 bugs.md: restart proof for the observer diagnostic; Sam's Mac second silence is not a quit
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 21:31:44 +01:00
igneum-josh
f22870a050 Observer: logs the seeded checkpoint states at start and names the earlier state when a lock is recorded over one (index 1319 re-recorded 14 min after its lock at the 20:15 restart)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 21:19:59 +01:00
igneum-josh
7758f3fb1d Observer autosync: the restart key is observer.mjs and run.sh, not the whole tools/observer tree (an autosync.sh change restarted the observer for nothing)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 21:18:32 +01:00
igneum-josh
115d517bf4 publish-manifest.sh: the live manifest must be byte-identical to the folder's and verify, with retries and named reasons; --verify-only; a failed deploy stops before the check
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 21:17:01 +01:00
igneum-josh
038e02ebbe Observer autosync: a failed fast-forward names git's reason and the dirty files the incoming commits also touch
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 21:14:21 +01:00
igneum-josh
b84644c1fe publish-manifest.sh: --override carries every height switch in consensus.override (proving v0 activation needs it)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 21:09:35 +01:00
igneum-josh
69a4eb0c64 Igneum Miner 0.3.4: Finality rule v3 (dormant behind finality_v3_activation_daa), proving v0, job-channel fixes 2026-10-04 21:08:30 +01:00
igneum-josh
2dd074c189 Site: journey and bench rebuilt after the finality merge
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 21:07:01 +01:00
igneum-josh
99e87c4eec Merge branch 'master' of https://github.com/igneum-network/igneum 2026-10-04 21:06:13 +01:00
igneum-josh
8d4ad0229e Merge branch 'igneum-wt-finality'
# Conflicts:
#	docs/bench-log.md
2026-10-04 21:06:11 +01:00
igneum-josh
5e6dee36e6 bugs.md: the stopped-versus-silent console row
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 21:05:03 +01:00
igneum-josh
4d208c9d4c Console: a machine whose app logged a clean quit or an update, with no status line after it, shows 'stopped (quit|update) N ago' instead of 'silent' (parseAppTail moved to relay/lib/parse.mjs, test)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 21:04:18 +01:00
igneum-josh
c5e4cda0b7 Finality rule v3 (ledger F21, F22): simulator scenario M, spec 03 Q4/Q5, cloud vote-timing analysis, v3 harness runner, fast-time profile, bench-log entry, devnet rollout plan
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 21:04:12 +01:00
igneum-josh
918ed9cb89 bugs.md: the observer double-lock fix proven on the live stream (21 locks, 0 duplicates)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 21:02:48 +01:00
igneum-josh
73fc2fd578 Observer autosync restarts the observer whenever the checked-out tools/observer tree changes (marker + check mode); console stale mark at 180 s (one missed upload is not stale); bugs.md rows
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 20:48:45 +01:00
igneum-josh
8a77b853f4 gitignore: trademark instruction packs stay out of the repository
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 20:43:49 +01:00
igneum-josh
080d284d96 Brand: trademark filing pack (word mark, device mark in black, combined mark, classes 9, 36, 42, fees, the IGNIUM plan)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 20:39:27 +01:00
igneum-josh
7de1bdb027 Observer: one checkpoint_locked event per index (the poll claims the state before its first await; the FinalityLock notification path raced it and the live feed showed two locked lines 30 ms apart); a lock claimed by the notification gets its votes_seen from the next poll
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 20:34:57 +01:00
igneum-josh
960cd75e66 Bug hunt: bugs.md row for the relay X28/X24 fixes; CLAUDE.md names the live site project (igneum team, GitHub integration)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 20:33:17 +01:00
igneum-josh
c1f59fb034 Relay: secrets compared in constant time (relay/lib/auth.mjs, unit test in CI), HSTS header, tools/relay.mjs prints /r/<token> in list and watch (round 4, X28 and X24 part)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 20:31:22 +01:00
igneum-josh
c7653a2c97 Cloud devnet results: final collection of the 4 October network before teardown
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 20:27:34 +01:00
igneum-josh
dde50730af Bug hunt: the site's Vercel project is in the igneum team (link, env and deploy commands in README-ship.md); bugs.md rows for the collect branch and the Vercel link, Sam's Mac closed
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 20:20:32 +01:00
igneum-josh
8fd492c16d Bug hunt: console cards for other/intel workers and a stale mark on old STATUS lines (relay/lib/parse.mjs + test in CI); publish-jobs verifies the live file with retries and named reasons, a verify command, a failed deploy stops, a collect command without $_ is refused; the dl token masked in printed URLs; docs/bugs.md
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 20:15:05 +01:00
igneum-josh
1e45f98860 Lock: three build slots, exclusive measure, run mode, status command; replaced atomically
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 20:12:26 +01:00
igneum-josh
2996cca84d CI identity grep: .log files get the generic scrub too; the 4 October difficulty record carried a home path (every master run red since 67bf226)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 20:09:09 +01:00
igneum-josh
6f78e06f3e Lock: a 'run' mode for functional runs that lets builds continue; rule updated
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 20:08:36 +01:00
igneum-josh
58dd36eb75 Bench log: four-shard block proven on the RTX 5090 (run 3), save gap closed; first machine in the United States
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 20:07:21 +01:00
igneum-josh
096b99ee6e Jobs reader: error lines shown under a job's status
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 20:00:57 +01:00
igneum-josh
b7309953d2 CLAUDE.md: a watcher is trusted only once it has fired on a finished and a failed case
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 19:59:27 +01:00
igneum-josh
7a7e873347 Jobs reader: the app's closing report counts as final and error lines are collected; prove-shard.sh fails the job when a stage fails
Three watchers never saw a job finish because the closing upload starts with the app header, not the SUMMARY line,
and a shard run whose stages failed still exited 0.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 19:59:13 +01:00
igneum-josh
256212ad0e prove-shard.sh: touch the copied sources so cargo-prove rebuilds the guests on the PC
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 19:56:36 +01:00
igneum-josh
e7225b74f1 Prove package: a build gate executes the shard fixture and every block fixture on the Mac before any zip exists
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 19:49:25 +01:00
igneum-josh
18fe8fdeb5 Site: preview image URLs bumped to v3 so chat apps refetch the square mark
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 19:48:29 +01:00
igneum-josh
33c430d93c Ship tool: one command cuts an Igneum Miner version (tools/ship-app.mjs)
Josh, 4 Oct 2026: 0.3.1, 0.3.2 and 0.3.3 each took eight hand steps and an hour. The tool runs them in order, each
step idempotent and resumable (--from): preflight, bump (six version files, one function, read back), push-inputs,
commit and push, the windows.yml run polled with gh (auth switch before every call), fetch, DMG under the build lock,
copy, signed manifest, one deploy, HEAD/GET verification with sizes and sha256, one console item. --dry-run prints
the plan, --check compares the version files, --self-test bumps a scratch copy. Secrets never printed.

Found by --check: Igneum-Miner.iss and Info.plist were left at 0.3.2 when 0.3.3 was cut (CI passed -Version from
Cargo.toml, so the installer was right; the Mac bundle said 0.3.2 because build-dmg.sh's sed only matched 0.3.0).
Both aligned to 0.3.3; build-dmg.sh now stamps the version with plutil. fetch-ci-artifacts.sh: CONSOLE_SKIP=1.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 19:29:21 +01:00
igneum-josh
c170779578 Log intake: accepts LOG_INTAKE_KEY_NEXT during a key rotation (round 4, X23)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 19:25:33 +01:00
igneum-josh
2ecb963d17 Relay: its own key (relay-key) replaces the intake key for the Mac tools and clients; relay token rotated 4 Oct 2026 (round 4, X23); prove package excludes cross-build folders
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 19:25:19 +01:00
igneum-josh
86d2696e25 Observer autosync: the shared checkout fast-forwards to origin and restarts the observer when its code or the public API changed
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 19:19:12 +01:00
igneum-josh
0f44edd3de Prove host: lock file for the serde dependency
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 19:17:55 +01:00
igneum-josh
f47f5df041 Bench log: shard proving on the RTX 5090 measured (10.9 s per shard, 2.2 s aggregation); evidence rows 15 and 16; journey line
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 19:17:16 +01:00
igneum-josh
01c9671939 Merge remote-tracking branch 'origin/review-round-4' 2026-10-04 19:15:02 +01:00
igneum-josh
b0ac0627e2 Ledger P20: the 24-minute save gap measured on the second RTX 5090 run
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 19:15:02 +01:00
igneum-josh
d787d3a47c Relay: run and task posts need the console token (round 4, X23); prove host saves proofs buffered (ledger P20, second gap)
The intake key sits in every miner package, so the relay now lets it report only (drop text and files, ack, done,
register, upload). Posting a run or task, or renaming and re-roling a machine, needs the console token.
The prove host wrote proofs through SP1's unbuffered save: on WSL2 under /mnt/c the 18 MB core proof of a shard
took longer to save than to prove. Proofs now go through a 4 MB buffer with a timed 'saved' line, and
prove-shard.sh keeps results on the Linux side and copies them per stage. Ledger P20 updated.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 19:14:10 +01:00
igneum-josh
fd530ca406 Review round 4 (4 October 2026, afternoon): what is live. 1 fatal, 16 serious, 8 minor, 1 fixed; ledger X18 to X30, G12 to G14, F23, F24, M25 to M29, E16, E17, L9; fixes rows 104 to 116
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 18:05:28 +00:00
igneum-josh
1b65132324 Console: a job is done only on the app's closing report; prove-shard.sh takes every block fixture after the first argument
The console marked any job with a RESULT line as done, so a running shard job read as finished. Done now means
the SUMMARY line carries finished_at or the job's closing 'job <id>: <status> (exit N)' line is present.
prove-shard.sh dropped the third fixture argument (block-344-shards4) because it read only $2.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 18:52:35 +01:00
igneum-josh
7b55d70b88 Bench log: difficulty v2 activated on the live devnet by height switch
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 18:44:27 +01:00
igneum-josh
e0236131fe Live page: the ?window=300 capture with a paid shard cell and its tooltip; header counts and the ingest keep-window follow the target scale (the 8 px/s floor was the adaptive scale's); counts right on the first poll; lock label backed; record rotation 80 blocks per tick
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 18:43:26 +01:00
igneum-josh
08e76c9427 Live page: shards per block (proving v0), three strips on one time axis (blocks, finality bar, proving), observer proof feed, hero glint
Observer (tools/observer/observer.mjs): reads the execution layer's JSON-RPC of a node on the proving build
(IGNEUM_EVM_RPC, default the Mac app's node 26800): every chain block's shard plan as it joins the chain
(igneum_getShardPlan by blockHash, one live_proofs row per shard, planned), the proof records of the chain
blocks of the last 10 minutes polled in rotation (igneum_getProofRecords, four in flight, 40 blocks per tick
while active, 10 before activation): proving (in the pool), verified (SP1 proof verified, or carried and checked
by consensus), paid (a carrying segment paid it), with the prover's id8, the carrier, lag in DAA and the payout.
live_state.proving = {supported, active, activation_daa, tip_daa, verifier, pool, blocks_10m,
blocks_fully_proven_10m, shards_proven_10m, shards_paid_10m, median_proof_lag_s, provers_10m}. A node without
the RPCs gives supported false (rechecked every 5 min); an unreachable endpoint is retried every 20 s. Events:
proving (activation, first paid shard), prover_seen. Additive schema (live_proofs, live_state.proving).

API (site/api/live.mjs): proving, and per block shards: [{i, n, state, prover, lag, payout (IGN), pgas}] and
proven; ?window=N (30 to 300 s) for the page's diagnostic long view; LIVE_TABLE_PREFIX reads a test observer's
tables.

Live page (site/live.html), the design change of 4 Oct 2026: three thin strips sharing one time axis, newest at
the right. BLOCKS keeps the per-miner lanes, chain path, blue/red/pending colouring, arrival glow and tooltips;
the lock ring, dashed lock line and final band leave it. FINALITY is an 18 px bar: ember wash = final (up to the
newest locked checkpoint on screen), molten tick = locked checkpoint, faint = proposed, one label at the newest
lock ("locked #522, 12 s ago"); while finality is not active it reads "finality paused: N% of weight silent" and
nothing else (R4.6.3). PROVING shows one cell per shard under each chain block, outline (planned), molten
(proving), prover colour (verified), tick (paid), a dashed "proofs land N s behind the tip" line, or the one
honest line before activation ("Proving layer: not yet activated on this devnet; activation at DAA N" / "node
without proving"). Header stats: on screen, chain, identities, last lock, proven. Legend: one line per strip.
Hover and tap tooltips on blocks and cells (block, shard, prover, lag, payout). Lanes snap on resize (they used
to ease from a zero-height layout). Phone width, no horizontal scroll; draw 0.6 ms avg, 1 ms max with 110 blocks
on screen (playwright, 1280 px).

Hero (site/index.html): a faint second glint behind a real block once every shard of it is verified, only while
the proving layer is active; pace and sampling untouched.

Verified on the private 3-node proving network (tools/proving-v0/run.mjs --network-only, activation 60) with a
CPU prover loop signing as v0/v1/v2: records relayed, verified on node 0, carried and paid (block 155 by 405,
lag 259 DAA, 0.634 IGN); screenshots in docs/design/live-proving (devnet before activation at 1280 and 375 px,
test network active, the ?window=300 view with paid cells). The live devnet shows the "not yet activated;
activation not set" line once the observer runs this build.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 18:39:28 +01:00
igneum-josh
d5b777b757 Share images: the master mark replaces the ringed coin on every og image; og.png (was a 404) added; ?v=2 cache bust
make-icons.py make_social(): og-small.png (256 square, the compact card index/live/litepaper declare), og-square.png
(1024), og-coin.png and og.png (1200x630: mark left, IGNEUM wordmark, tagline, subline; same layout as before, no ring,
no glow). bench.html, evidence.html and build.mjs referenced /og.png, which did not exist; they now get the 1200x630 card
with width/height 1200x630 and twitter:card summary_large_image. Every og:image and twitter:image carries ?v=2 so
Slack, X and iMessage refetch. brand/profile: github-social-1280x640.png (repository social preview) and
vercel-avatar-512.png. bench.html edited by hand for the meta only (a build.mjs run would publish uncommitted log entries).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 18:39:05 +01:00
igneum-josh
3320421dae Igneum Miner jobs: WSL as root by default, the shipped wsl2\bin prover run fixture by fixture (no cargo, no setup), account context logged at every job start, dashboard note when the app runs elevated or as another account
PC 2 on 0.3.3: 'wsl -d Ubuntu-24.04 -u josh' from the app fails with getpwnam(josh) and the default user has no
cargo, while Josh's own session has both in a distro of the same name: WSL distros belong to the Windows account,
and the engine runs under a different context than the interactive session. So the prover path is self-sufficient
inside the Ubuntu the app sees: the wsl-prover probe and the shard-benchmark job run as root (the job's wsl_user or
IGNEUM_APP_WSL_USER first, root second, the distro default last), and the shard job runs the Linux host the
payload ships next to the app (wsl2\bin\igneum-prove-host, cuda feature) directly for each fixture (shard 0 in
shard mode, the blocks in block mode, results under <app data>\prove\igneum-prove-wsl2\results); params.build
= true keeps the package's prove-shard.sh path. Every job logs the account context first (Windows user, SID,
elevated, the signed-in console user, then 'wsl user <id> uid <n> home <h>' and nvidia-smi inside the distro),
the engine logs it once at start, and the dashboard (Settings and the job strip) says 'The app runs as X
(elevated). The signed-in user is Y; WSL and its tools belong to that account.' when they differ.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 18:14:00 +01:00
igneum-josh
bf4d7eccb5 Evidence rows 10 and 12: measured bounds stated as properties; v2 result on the cloud network
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 18:08:01 +01:00