Commit graph

1522 commits

Author SHA1 Message Date
igneum-josh
dba9b04e10 Counter ASIC 3.0 gates (hash): the PC 2 G1-only playbook for the sub-version 2 packs (--cards-off runner)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 14:03:52 +01:00
igneum-josh
766ff6acc4 Counter ASIC 3.0 gates (hash): ledger AP-F8-1, the sub-version 2 paragraph (the 11 of 64 residual on sub-version 1, the three classes, the three rules, byte 7, the new id and fingerprints, the gates owed before any proposal)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 14:03:25 +01:00
igneum-josh
07a809a7fe Counter ASIC 3.0 gates (hash): class v4 sub-version 2 (AP-F8-1, main's ruling B2: 0.3.20 ships sub-version 1 untouched; this stream is object byte 7). F1, the draw: a load's source is drawn only from registers fresh by dataflow (fresh at the start; a load keeps freshness only from a fresh source; add, sub, xor, mad, shfl from either operand; rotl, rotr from their operand; or, mul, mulhi never), keyed on the class v4 shape on EVERY draw path (era or not, the pass count set aside), so a census through candidate_class reads the chain's stream. (a'), accept.rs: the same freshness run to its fixpoint over the loop (base then shadow block) and every load's source fresh in the steady state, else the candidate is rejected and the next attempt drawn (closes the iteration boundary the draw cannot see: F8's p11, an or at 63 feeding a load at 1, and the load-after-load and rotate-of-saturated chains of p6, p23, p26, p31, p34). (c'), accept.rs: per load site, the count of source values equal to 0 or all-ones over the 64 units' 16,384 evaluations, rejected at 164 or more (the (c) limit), the backstop for any delivery of saturation (zero and all-ones alike: p45's mulhi zero). Both keyed on the class v4 shape, so v2 and v3 verdicts and ids do not move. PROGRAM_SUBVERSION_V4 = 2 in the id suffix and the pack lines. The seven gate packs re-exported: the devnet epoch-0 seed's attempt 0 is now rejected and attempt 1 accepted, id a788661687db4bb3 (must-differ: c120d7963abdcd96 the 6 October stream, 1a4230699a6b9c60 sub-version 1); the seven 256-block ladder packs of packs-ca3-shadow re-exported under the rule (the no-era path moves too; their measured rates stand as the old stream's). Tests: the generator test checks the fixpoint rule on the amended program and the known-failed case (the v3 stream re-labelled v4); the mixer contract checks the dataflow rule on every V4-shaped class, era or not
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 14:01:40 +01:00
igneum-josh
dd5ef62a94 Counter ASIC 3.0 gates (hash): ledger AP-F8-1, the crate suite line (100 of 100 at 8c728ca3 on igneum-build-1)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 13:18:47 +01:00
igneum-josh
8c728ca3ff Counter ASIC 3.0 gates (hash): the source rule keys on the class with the shadow's pass count set aside (the node lane's line: era present, the V4_SHADOW_INSTRS block, the base equal to V4_CLASS without era and shadow), so every rung of the latency ladder draws under it; of_load_class compared the pass count and left every rung but 27 on the old draw (the fork's ladder test, 10:06Z). The reps-0 packs and their ids do not move (re-export byte-identical)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 11:09:28 +01:00
igneum-josh
965d9e96f4 Counter ASIC 3.0 gates (hash): igneum-pow taken from release-0.3.20 (3f1652bf: the latency ladder's chain_program_shadow with the reps argument, never merged to master) with the AP-F8-1 amendment re-applied on top (the diff of a0aaca92 and the test fix, applied without offset); the seven packs re-export byte-identical (checked on v4-devnet-epoch0 and v4-era-5), so the ids and fingerprints stand; the pairing is against the fork's release-0.3.20-node dc141409
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 11:08:43 +01:00
igneum-josh
4aa0c665e8 Counter ASIC 3.0 gates (hash): the v4 unit test follows the amendment (the base program is its own stream over class v3's load slots and era draw; every load site obeys the source rule)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 11:07:43 +01:00
igneum-josh
d8859522d0 Counter ASIC 3.0 gates (hash): ledger AP-F8-1, the G1 line (eight fingerprints equal on the RTX 5090, self-test PASS) and the node lane's signal byte 5
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 10:51:24 +01:00
igneum-josh
e1f48d63e7 Counter ASIC 3.0 gates (hash): the fud-ledger entry AP-F8-1 (the fault, Josh's ruling, the amendment, the split protection, the owed tests); the suite, pairing and G1 lines fill when the jobs land
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 10:41:11 +01:00
igneum-josh
1748fd1d48 Counter ASIC 3.0 gates (hash): the PC 2 G1-only playbook for the amended class v4 packs (AP-F8-1, limited testing by Josh's word)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 10:40:03 +01:00
igneum-josh
a0aaca9201 Counter ASIC 3.0 gates (hash): the class v4 amendment for AP-F8-1 (Josh: option A, limited testing). The chain draw of class v4 takes a load's source only from registers whose last writer injects (add, sub, xor, mad, shfl, load) or is a rotate (rotl, rotr), never one last written by or, mul or mulhi (candidate_from_words_class, keyed on the era-composed V4_CLASS; no attempts lost, rule (a) unchanged, v2 and v3 and the generator-2 ladder packs byte-identical). Split protection agreed with the node lane: generator stays 4 and the program id of a generator-4 program appends "sub/" || PROGRAM_SUBVERSION_V4 (= 1) as little-endian u16 bytes inside program_id(), so a pre-amendment binary and this one never share an id for one seed; packs carry IGNEUM_PROGRAM_SUBVERSION 1 and program.json sub_version 1, and packcheck refuses a generator-4 pack whose sub-version is absent or other. The seven gate packs re-exported (devnet epoch 0 and eras 0 to 5): id 1a4230699a6b9c60 (was c120d7963abdcd96, now the must-differ vector in tests/recheck.rs), fingerprints Metal = Apple OpenCL 867dbc45cfb36b4d, 2146ecacc8c75a8e, fe52602393f6d3d4, 3b206471a13912b4, c3f03c4a5d7333aa, f1dfd7209f15bb97, 8c194da64fadf31d; the v3 control 73bcbfe8ccf988f1 / 90f794dd556f7a3b untouched. The mixer harness checks the source rule on every load site of an amended program instead of equality with the v3 base
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 10:38:51 +01:00
igneum-josh
13e520b141 Merge branch 'ca3-v4-uniform' into ca3-v4-amend 2026-10-07 10:33:11 +01:00
igneum-josh
095f84a705 Counter ASIC 3.0 gates (hash): AP-F8-1 under the windows-union model. The window layer moves the null from 0.115 to 0.160 percent at f = 0.1 percent (1.39x, not 4.05x); the 153x item is the all-ones value of an or-written load source (site 15, or at 61, load at 63), which the era map sends to item 0xca5b92 exactly and whose next seven items are the seven surviving one-zero-bit sources; the popcount model at the measured bias predicts 77,348 reads against 78,479 and the program's S_0.1 percent at 0.58 against 0.52; a static census of 1,024 chain-shaped v4 programs (tools/ca3-v4-uniform, built and run on igneum-build-1): 96.6 percent carry a lossy-sourced load, 48.5 percent an or-sourced one, 4.9 percent an or chain (p3's class); F8's 1.2x gate fails 96.6 percent; the chip ceiling under rule (c) is 1.067x; the two flip options priced; the v5 bound defined
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 10:26:48 +01:00
igneum-josh
5c08c6e012 Merge site-ui-4: the EMBER 02 renderer on the home fold and /live (2.0.1 real-data options, the proof inspector, the observatory page)
renderer pack EMBER 02 supplied by Josh, 7 Oct 2026

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 10:11:43 +01:00
igneum-josh
5e8f11deac site-ui-4: live-dag.js 2.0.1, the real-data presentation options (lanes capped at 7 with the own key first, node size from the lane height with a floor, hairline merge edges within two lanes and the first parent only, the others lane smaller and dimmer, a glow and ring on proven blocks); 60 s default window; the demo-feed proof capture beside the live one
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 10:09:24 +01:00
igneum-josh
d3f55ba844 site-ui-4: the your-blocks tile reads 0 in ash until a key is marked
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 09:59:58 +01:00
igneum-josh
9c1742a8da site-ui-4: the EMBER 02 renderer on the home fold and /live, the proof inspector, the compact copies for the app (prototype, not deployed)
renderer pack EMBER 02 supplied by Josh, 7 Oct 2026: src/live-dag.js
and src/proof-core.js adopted byte for byte (sha256 582f2e73... and
c2a094a6...), reviewed as third-party code (one same-origin fetch of
/api/live when poll is on, no eval, no CDN, no font download, tokens
read from :root in both themes, checkpoints placed only on an exact
blue score, proof never implies inclusion, a lock only when reported),
its tests/verify.py run on this Mac (73 of 73) and the module mounted
against the real observer feed (state live, only /api/live requested,
zero records promoted). Home: the pack's full mode in the one-screen
fold with the legend row and the newest block's caption, fed by the
page's own reader. /live: the pack in the graph slot, the four miner
stats (blocks in window, your blocks, proven, latest checkpoint), the
All blocks / Selected chain / Your blocks tabs, Pause and Follow, the
window stepper, the inspector column with IgneumProof's shard scene,
the proof shards list, inclusion, miner key, blue score, DAA, parents,
header time, checkpoint, finality, and the three-beat Motion, with
meaning block; the observatory's six tiles, identities, event stream,
block activity, light client and table stay. site.css gains --included
and --excluded. The standalone demo is the pack's standalone.html; the
10-second recording is from this branch's /live.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 09:59:46 +01:00
igneum-josh
9b98b8376b Income per tier: the three tariffs are USD 0.05, 0.10 and 0.25 a kWh (cheap industrial, US retail, UK retail; the coordinator's answer, 7 October 2026), the table regenerated, the cost per mined IGN shown to three significant figures
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 09:54:44 +01:00
igneum-josh
130b7fa1a9 Launch pack: the thirteen gate rows in testnet-go.md with their checks, the certificate runbook and signing-step specification, the hash-origin runbook, the site-lane text handoff, what needs the owner
docs/plans/testnet-go.md, "Launch gates": LG-1 income per tier (done, re-generate at the cut), LG-2 hash origin on Devnet 2 for seven days, LG-3 signed and notarised installers, LG-4 first-share time per release, LG-5 the text on the site, LG-6 to LG-10 the community gates (first 100 keys, first outside block, first outside-reproduced benchmark, first attested outside pool, first 1,000 independent keys), LG-11 a signed proving customer as a MAINNET gate (the owner, 7 October 2026: a customer paying at a published rate or a letter of intent with a volume), LG-12 the report daily for 90 days, LG-13 the USD 50,000 disclosure prize (approved, staged until the entity address and the publish word). Each with its check, its state and its owner.

docs/plans/launch-pack.md: the Apple organisation and EV Authenticode runbooks (provider, cost, the entity's documents, where the keys live, never on the box), the signing step for the shipper (windows.yml before ISCC and the Inno SignTool directive, build-dmg.sh Developer ID plus notarytool and stapler, the manifest's signed_by and notarized fields, the shipper's fetch and verify checks), the first-share measurement specification, the hash-origin timer on the box and today's reading with its consequences, the handoff block for the site lane (the three wants on the front page, finality on page two, the block sentence, the eight sentences of future.md 8.3 verified and numbered under the label, the journey gate changes, the ledger rows X13, X37, X38, E23, L10), and the nine items that need the owner.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 09:53:12 +01:00
igneum-josh
fef536abfa Launch pack tools: per-tier income table from the bench rows and TESTNET_1, the daily hash-origin report, the launch-gates check (mission item 10)
tools/launch/income-tiers.mjs renders docs/analysis/income-tiers.md (public) from tools/launch/income-tiers.json: eleven measured cards (the 6 October rented-card rows, the 9070 XT telemetry run, the M5 Max Metal bench, each with its source), IGN a day at 1, 10 and 100 GH/s after the ramp on EmissionSchedule::TESTNET_1 (100 IGN a block, 90-day ramp from 10 percent, monthly 2^(-1/24), the 80 percent producer share), electricity a day and per mined IGN at USD 0.005, 0.02 and 0.10 a kWh, a rig and a pool-user line, the consequences per tier, the owed rows; --check fails CI when the page and its inputs disagree; the test pins the arithmetic (6,912 IGN a day for 100 MH/s on 100 GH/s at the launch rate, day 1 at 10 percent, one step at 2^(-1/24)).

tools/observer/hash-origin.mjs: once a day from the observer's tables, who found the blocks: keys with a block and above dust, attested pools against shared payout addresses (a multi-key machine is not a pool until its operator attests), the project fleet's share from the intake identity lines plus the fleet registry's key file, the ten largest keys, the 2x step since yesterday, the community gates (first 100 keys, first outside block, first attested outside pool at 10 percent for 7 days; the X5 count stays an upper bound until the two observer columns exist). --dry reads only; --write keeps hash_origin_days and hash_origin_reports and live_state.hash_origin; --post goes through the Discord poster's guard. Fixture, a known-finished and a known-failed day in the test. Ran read-only on the live devnet today: 113 keys, 0.76 GH/s, the fleet share wrong until the key file exists.

tools/ci/launch-gates-check.mjs (in pre-push.sh with the two test lines): every row of the Launch gates table in testnet-go.md has a check and every backticked path exists; the site-lane handoff and the income table carry no served-page or export pattern and no em dash; the eight regulatory sentences are present in order under the label. Self-test fires on each.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 09:53:12 +01:00
igneum-josh
e81343eb0a site-ui-4: /live as the network observatory (prototype, not deployed)
The reference page's composition in our tokens and words, every number
from the observer: the header row (eyebrow, the title with its ember
full stop, one sentence, two buttons, the state word), six tiles in one
hairline row each with a definition, the block graph panel (our
live-dag.js in the graph slot, the block-count chip, selected chain
only, pause and follow, the inspector column with hash, lane, time, blue
score, DAA, chain, colour word, shards, checkpoint and lock state, the
drag-to-explore line, the zoom control, the legend row and the blue
score range), the three panels (block activity with per-minute bars,
mining identities with share bars and the reader's own key marked when
set, the event stream), the blocks table, our footer. live-dag.js gains
an onSelect hook on click (additive; the app's copy unchanged).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 09:30:23 +01:00
igneum-josh
b92a5fd4fa build server: the remote checkout's clean spares a lane's scratch (AP-H1, the lost-scratch class)
remote-run.sh checkout_tree ran `git clean -fd` on the box mirror before every build from any agent, so the attack rows
lost attack-f3/, attack-f1-venv/ and tools/attack/*/target to each other's builds (7 October 2026, 09:2x UK). The clean now
also spares the fixed prefixes attack-*, scratch-*, target-attack-*, .build-remote.log and every glob in the mirror-local
.igneum-scratch-spare (one per line, # comments, the file itself spared), keeps the target and stamp excludes and still runs
without -x. The clean-tree test asks `git clean -nd` with the same excludes instead of filtering the status list, so a spared
dir is not "not clean". --self-test: a fixed-prefix dir at the root and nested, a declared dir and the spare file survive, an
undeclared dir is removed. tools/ci/scratch-spare-check.sh in the pre-push gate fails when the clean line loses the spare
arguments, spare_args stops reading the file, a fixed prefix goes, or -x appears. docs/plans/build-server.md R4a says how a
lane declares its prefix.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 09:24:07 +01:00
igneum-josh
11496f7f05 Merge mission: the last research round (five lanes: past, unfinished, future, invent, reinvent) and The Igneum Mission, the closed list of twelve
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 09:22:14 +01:00
igneum-josh
5352d00c7a Export exclusion: docs/analysis/mission is internal research (the last mission's five lanes and the closed list), outside the public export list
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 09:22:09 +01:00
igneum-josh
6d31fe462c The Igneum Mission: the one page for Josh and the closed list of twelve (five in flight, seven new, about 290 agent hours, no new consensus rule beyond the three cut branches), the rejected ideas with the line that killed each, what was not run, and the closing line: nothing is added without removing something
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 09:19:29 +01:00
igneum-josh
d5c94fa89f Mission lane 2, unfinished: proof of useful work (every scheme that passed cheap-verify did so by making the work useless; Filecoin at 29 to 36 percent utilisation), the stalled ASIC-resistance programmes, merged mining, finality on proof of work (every one that held was a second set bought with coins), decentralised pools (only Monero's P2Pool at 7.7 percent; a share sidechain about 40 hours on Igneum), the one-click miner apps against Ember, the three-way verdicts
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 09:18:20 +01:00
igneum-josh
2121b33471 Mission lane 5, reinvent: the miner's dopamine loop from a 105-post sample (the miner's own card at 777x the room median, the network's milestone at 66x), Helium, Chia, Ethereum 2017 and Kaspa 2022 compared, the first month on Igneum per tier (an 8 GB card: a block in 1.6 h at 100 GH/s, never the vote line at 1 TH/s), the 30-day weight as the status ladder, the launch gates, the surfaces table, what not to build
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 09:15:30 +01:00
igneum-josh
a7b8b66f7c Mission lane 4, invent: proof of following, serving, propagation and state availability judged against class v5 (the 108 ms answer kills every challenge scheme), the in-protocol pool priced (FruitChains shape, 14.6 GB a day at 10,000 miners), heat mode, the 786 B offline finality QR, the self-generated candidates, four persona verdicts, the honest answer
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 09:08:01 +01:00
igneum-josh
66fc62cb5c Mission lane 3, the far future 2030 to 2036: HBM4 and the end of GDDR, the chip maker's break-even by node and market cap, the rental deflation curve against the 51 percent table, heat and grid rules by region, zk proving cost to 2036, phone light clients, post-quantum votes at 8,192 voters, regulation of a coin with no issuer, the three-scenario table
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 09:08:01 +01:00
igneum-josh
0fcbef5017 Mission lane 1, the past: every GPU-mined chain since 2011 (31 rows), what each promised and paid, the earnings-curve shape (income halves 60 to 120 days after peak, under USD 0.10 per kWh in 6 to 18 months, 50 to 100 percent of hash gone in 90 days), the three wants and three hates from the archives, the lessons mapped to the design
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 09:08:01 +01:00
igneum-josh
9f76510861 Merge site-ui-3: light-theme wallet captures, the miner light showcase
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 09:07:55 +01:00
igneum-josh
b205a2b835 site: light-theme wallet captures (0.1.5, rendered from the wallet's mock), the miner showcase frame differs from the hero in light
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 09:07:53 +01:00
igneum-josh
a3678789d4 Merge site-ui-3: the site redesign (simple nav, miner, app, live devnet, one design system), X36, the Discord vanity
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 09:01:06 +01:00
igneum-josh
3f89597a05 site: light-theme app captures, the X9 withdrawal correction (ledger X36), the Discord vanity link
Light theme shows light screenshots on the miner and app pages (the
0.3.16 renders from the RTX 5090 Windows rig's live state, the 390 px
pair included). The X9 never shipped: pre-orders 26 December 2025,
withdrawn mid-May 2026 before any unit shipped, no benchmark; every
public sentence that had it shipping now says so, with k about 0.33
labelled as the claimed, unmeasured core; ledger X36, notes on X34, X35,
M34 and C2. Every public Discord link is https://discord.gg/igneum.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 09:01:03 +01:00
igneum-josh
fd1d1c421c site: no paragraph above the fold on /live; the v5 capture set (every page, 1440 and 390, dark and light, fold and full)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:51:42 +01:00
igneum-josh
99cb0dee4a site: the simple nav, the miner and app pages, the live devnet redrawn, one design system for every page (not deployed)
Nav sitewide: Litepaper, Miner, App, Wallet, Live devnet, Ledger and the
Download button; the rest in the sheet and the footer. /miner is the
product page for the installers: the shipped app in its frame, the card
picker with the live time to a block, the downloads with sizes, HiveOS,
the fee in full view, three real shots. /app is new: the Igneum Ember app
page by page (Overview, Cards with Ember, the chain drawn live by the
module the app ships, Earnings, Prove, Settings, phone width, what keeps
it mining), light and dark, every shot a real capture or a render from
the RTX 5090 Windows rig's live state with the hostname painted out.
/live is redrawn to show the system working: the step scene, six live
cells, finality in plain words, miner lanes, provers paid, recent blocks
landing, the light client in one line, the DAG below. site.css carries
the shared product components (frames, download list, lines, your-card
line, phone download bar); yourcard.js reads the network rate. The
ledger and wallet pages no longer overflow at 390 px.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:44:15 +01:00
igneum-josh
ab99e5e388 Ledger decisions: Josh approves the emission schedule, the signing bonus, the ladder, the cryptanalysis engagement and the testnet genesis re-cut (7 October 2026, 09:3x UK)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:36:12 +01:00
igneum-josh
a9f6ab7cd9 Observer sync follows GitHub: the deploy-key probe captured before grep (ssh -T exits 1 under pipefail); plan 5c done
Josh added the read-only deploy key on 7 October 2026 (SHA256:51ice3W8...). The sync still said 'mirror' because ssh -T to GitHub
exits 1 after its greeting and observer-sync.sh runs under pipefail, so su ... | grep -q reported failure although grep had
matched (the same line by hand, without pipefail, said authenticated; shown under the unit's environment with systemd-run -v).
The probe's output is captured first. First github pass 07:30:54 UTC: the clone moved from the mirror's 8397781 to origin/master
8aab05ce, the observer restarted on it.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:31:42 +01:00
igneum-josh
8aab05ce8c Merge site-ui-3: the one-screen home page is back
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:14:26 +01:00
igneum-josh
89d77ee561 site: the one-screen home page is back (62bfaea), with the wording that landed since
The owner's word this morning: the 56 px header, the eleven-word
statement, two buttons, the step scene full bleed, three facts, the
downloads and one line to the ledger. Kept from the nights since: the
X31 testnet sentence, the X35 chip range with k stated, the Discord
line. The RandomX correction (X34), G4, C2 and X8 stand on the
litepaper; the ledger notes and the text check say so. The app showcase
moves to the miner page in the next step.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:14:24 +01:00
igneum-josh
8ffe26083c CLAUDE.md: shared-scratchpad ownership, own-marker waits, presence checks, and the lock rule (standing rules from the night of 6 to 7 October)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:07:00 +01:00
igneum-josh
808e4c81d1 Hands mover: on 0.3.18 trees the restart read-back takes powEngine and the blockrate object from igneum_getNodeInfo; a stub answer stops the sequence
The shipper's read-back for 0.3.18 (7 October 2026): igneum_getNodeInfo exists again and must answer powEngine igneum-pow (a stub
is a FAIL) with a blockrate object, which the mover prints; a tree before 0.3.18 answers -32601 and the engine is still read from
the binary's igneum-pow source paths. The parser is checked against the three answer shapes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 07:25:12 +01:00
igneum-josh
4a51bd48bd Hands plan: the 0.3.17 hotfix run log (hands and seed on 5899f603, read-backs, times, the pairs held for 0.3.18)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 06:33:45 +01:00
igneum-josh
607a7433c3 lib.sh: bs_pin gives an empty pin for a tree without rust-toolchain.toml (a failed sed under pipefail ended the caller silently)
The b3c228fa builds under the 0.3.16 app tree 5d118f58 (no rust-toolchain.toml yet) died right after the pairing line with no
message: sed on the missing file failed, pipefail carried its status into the assignment, set -e ended the script. A guard and a
tolerant pipeline; checked alive against a tree without the file.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 04:44:26 +01:00
igneum-josh
8820beadbc Build tools: whole-body blocks (the edited-while-running class, with its check), the igneum-pow pairing line, move-hand.sh restart with its readbacks
Three classes from the 0.3.17 night. (1) bash reads a script incrementally: tools/build-remote.sh was edited while a four-minute remote
build ran, the running copy continued at shifted bytes and died with a syntax error after the build had succeeded on the box; the
four long-running tools (build-remote, cross-remote, workers-remote, move-hand) now keep their body in one brace block ending in exit,
parsed whole before a line runs; tools/ci/whole-body-check.sh (in the gate, self-test with a block-less copy) holds the shape.
(2) A fork build pairs with the igneum-pow of the igneum worktree it sits in: a fork at 12153428 under a master worktree failed in
kaspa-pow four minutes in (no chain_program_shadow; master's igneum-pow predates release-0.3.17's); build-remote.sh says the
pairing on its first line ('pairs with igneum 6f8d7a7e (detached): igneum-pow 0.2.0') and the JSONL line carries pairs_with.
The first version of that line used '[ -n ... ] && echo' inside an assignment's $( ) and set -e ended the script on the false
status; fixed. (3) move-hand.sh restart <hand> [--digest <hex>] [--go]: after binary installed a release, restart ONE unit and read
it back (first exec line, commit string in the running binary, digest against the wanted one, igneum_getNodeInfo powEngine over the
node's loopback EVM RPC); the digest readers tolerate a missing line.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 04:12:51 +01:00
igneum-josh
5c405946ae glibc ceilings per artefact class: hive and rig 2.31, seed and linux 2.35, native unchecked; proven in ubuntu:20.04 and 22.04 on the box
Main's order of 7 October 2026 after RunPod's Ubuntu 22.04 canaries (glibc 2.35) refused the box's GLIBC_2.38 binaries and HiveOS
turned out Ubuntu 20.04 based (2.31). The table lives once, in tools/ci/glibc-ceiling-check.sh (--class, --ceiling-of; self-test
covers the table, an unknown class and a 2.34 need against hive); tools/build-remote.sh --ship hive|rig|seed|linux (default seed)
and tools/workers-remote.sh --class (default rig) build with zig at the class's glibc and check against it. provision.sh installs
docker.io (user build in the docker group) for the proof. Proof: fork 3bfe346f at class hive, igneumd and igneum-miner need
GLIBC_2.30; the workers at class rig need GLIBC_2.17; all four run in ubuntu:20.04 (ldd 2.31) and ubuntu:22.04 (ldd 2.35) and
print their version or usage lines (the OpenCL worker its own no-libOpenCL message, the binary running in a GPU-less container).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 01:35:18 +01:00
igneum-josh
580324f0e1 Deploy key: the plan's section 5c (Josh's four steps and the public half) that d468ac74 named but did not carry; observer-sync.sh runs git as build
The previous commit's plan edit aborted on a changed anchor, so section 5c was missing; written now with the public half
(ssh-ed25519 ... igneum-build-1 observer read-only) and the CI-runner row closed. observer-sync.sh ran git rev-parse as root
against the build-owned clone (safe.directory refused it, 'up to date at' with no commit); every git call runs as build now.
Verified on the box: one sync pass prints 'source: mirror (the deploy key is not accepted by GitHub yet ...)' and the commit.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 00:49:20 +01:00
igneum-josh
d468ac74f4 Observer clone: a read-only deploy key made on the box, GitHub preferred over the mirror once accepted; Josh's steps in the plan
Main's order of 7 October 2026. install-hands.sh creates /srv/observer/.ssh/deploy_igneum (ed25519, user build, mode 600; the private
half never leaves the box and nothing prints it) and the ssh alias github-igneum-observer; observer-sync.sh tests the key with
ssh -T on every pass, pulls from GitHub when it is accepted and from the mirror otherwise, saying which. docs/plans/build-server.md
5c: the four steps for Josh (print the public half, Settings > Deploy keys > Add, read-only, start one sync pass) and the public
half itself. Verified on the box: key created, alias written, one sync pass reads 'source: mirror (the deploy key is not accepted by
GitHub yet)'. The CI-runner row is closed (the box-work agent's runner service).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 00:47:10 +01:00
igneum-josh
e8cfbead82 rust-toolchain.toml: one pin for every side (1.99.0, the two cross targets); the mismatch refusal reads it
Main's order of 7 October 2026. The repo root carries rust-toolchain.toml (channel 1.99.0, targets x86_64-pc-windows-gnu and
x86_64-unknown-linux-gnu); rustup resolves the nearest file walking up from the crate, so the fork worktrees under vendor/ are
covered, and the fork's master carries its own copy (vendor/igneum-node 37f1206b). lib.sh bs_toolchain_check reads the pin
and refuses a build when the pin, the Mac's rustc as resolved in the crate dir, or the box's rustc differ (the message says
the three commands that align them); run-from-mac.sh passes the pin to provision.sh as RUST_TOOLCHAIN. The 1.99.0 toolchain
with both targets is installed on the Mac so no agent's build stalls on rustup's auto-install. Verified: the Mac resolves
1.99.0 in a fork worktree, the box runs 1.99.0, the check prints 'pinned 1.99.0 by rust-toolchain.toml'.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 00:44:20 +01:00
igneum-josh
07172f5292 workers-remote.sh: the host's /usr/include stays out of the zig build (the OpenCL headers through a CL-only symlink dir); both workers proven at glibc 2.36
The previous commit's 'the workers at 2.36' was not yet true: the first zig build died on __isoc23_strtol because -I /usr/include
for CL/cl.h put Ubuntu's glibc 2.39 stdlib.h in front of zig's bundled 2.36 headers. Fixed; proof on the box (6 s):
igneum-worker-cuda 6,759,272 B sha256 690c8e91..., igneum-worker-opencl 307,264 B sha256 329fb6a9..., each needing GLIBC_2.34
and libc only, the ceiling check passing. The two static flags zig ignores are dropped on the zig path (zig links its libc++ in).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 00:40:14 +01:00