igneum/docs/plans/release-0.3.12.md
igneum-labs 0c002a2284 release 0.3.12: the Windows run green, the installer and zip hashes
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 08:32:34 +00:00

13 KiB

Igneum Miner 0.3.12: app only, prepared to the publish gate, 6 October 2026

Release engineer, from 08:05 UTC, on the coordinator's instruction ("prepare 0.3.12, APP ONLY, up to the publish gate and STOP there; the project lead gives the go"). No node change, no override change, no consensus parameter: the node fork stays 89dfcb95 (release-0.3.11-node), the override the nine-field object of 0.3.11 (digest 0139ab9d...), the packaged line unchanged. Worktree /Users/joshm/Projects/igneum-wt-ship0312, branch release-0.3.12 from master ddfcdac; vendor/ symlinked to the main checkout's (46 entries) with vendor/igneum-node-0312 pointing at the 0.3.11 fork worktree (89dfcb95). The 0.3.11 recipe (release-0.3.11.md) throughout; every Mac build under the main checkout's lock; igneum-labs commits. Times are UTC.

1. What 0.3.12 carries

Change Where State
/api/state never answers {} again: paid_wei (u128) is a decimal string, the error reply is logged; test proving-v1 app 6714a45 (the first item) merged 9bcf4cd (the docs/bench-log.md conflict: both sides kept, the log is append-only)
An update published over an hour before the engine started skips the hourly rollout slot; manifest::unix_from_rfc3339 + tests update-catchup 2207cd7 merged b984c17
The GPU list ordered by performance (usable, discrete before integrated, rate in 5 MH/s buckets, memory); 3 UI tests card-order ffb2bfa merged c6608c1
HiveOS local mode carries the override (OVERRIDE= in the Flight Sheet's extra config, written to data/override-params.json by h-run.sh, C41), rigs mine only until a Linux prover ships, IDENTITIES=auto by VRAM, the per-card README table hive-words 98271ff (packaging/hive only) merged b0a6231
Ember Tune: two-knob plans + priors + the UI line; every quit names its source (b671c8b); a second engine never runs the updater (e600e63, C35); no pipe into a second engine (8ab9068); jobrun.rs elevated follow_file (1e9550e); the BOM fix + CI check (8273494); Power control switch (49bbe14 = 3562f26); igneum-gpu-telemetry.exe (ADLX) built by build-windows.sh and carried in the Windows inputs ember-tune 9a6469f NOT MERGED: conflicts in seven files against the 0.3.10/0.3.11 app (its base ca8d9f3 predates both): ci.yml, config.rs, engine.rs (the detect path, the power-cap plan, the test module), ui/app.js (four hunks against miner-ui-2's View), ui/index.html (the settings panel 0.3.10 removed), proto-opencl/README.md, bench-log.md. Its agent is rebasing it onto release-0.3.12 (section 2)
The hidden-console builder for every elevated launch, windows-spawn-check.mjs, the PC 1 console-watch scripts job-console 13755b9 (+ 3562f26 Power control) NOT MERGED: conflicts in six files (ci.yml, config.rs, engine.rs, jobrun.rs, app.js, index.html), base a93199a; carried by the ember-tune rebase (it already holds 3562f26)
The miner's gRPC resubscribe after a node restart (C43, the 0.3.11 finding) no commit exists (the ledger entries b19fe5f, 0751dde, c8c831c only) OWED, listed in section 10
The six version files 81e4ecb (--check: 0.3.12 in all 6)

Left out on the coordinator's word: the node fork, prover-floor's server (its packaging row is 0.3.13), explorer d7e797c, pool-v0, rig-install, ota-k2, the ledger forks.

Changelog line (draft, for the manifest notes at the go): "Igneum Miner 0.3.12: the GPU list in performance order; an old update no longer waits for the hour; Ember Tune (every card tuned for MH per watt, Power control off by default, the app never asks for administrator rights on its own); a second engine never installs over the app; /api/state always answers; HiveOS rigs carry the override. Node unchanged."

2. The branch

Commit What
9bcf4cd, b984c17, c6608c1, b0a6231 the four merges above, in the coordinator's order (proving-v1 first)
81e4ecb Igneum Miner 0.3.12: the six version files
(pending) the ember-tune rebase tip (with job-console 13755b9 inside), merged as one branch

Checks on 81e4ecb before the rebase landed: the app cargo test --release -p igneum-app under the lock: ok 115 (lib) + 28 (ota-sign) + 8 (prove-verify), 0 failed (08:19:22 to 08:19:28Z, warm target cloned from the 0.3.11 worktree); the UI tests notices, update-card, view: 23 of 23.

3. Builds and artefacts

What Command Result
The HiveOS package NODE_OUT=<the 0.3.11 zig node dir> WORKERS_OUT=<the 0.3.11 Linux workers> VERSION=0.3.12 OUT=<scratch> packaging/hive/make-hive-package.sh (the node 63cf490d... and the workers 4aaff27f.../82d90890... unchanged; the h-* scripts from hive-words) 08:19:45Z: igneum-hive-0.3.12.tar.gz b0a20917dd1f995e7ff7f456cd995fed0860563e6952a7fb4f64a7857a5d2afe (24,501,272); h-run.sh writes data/override-params.json from OVERRIDE and starts the node with --override-params-file (the 0.3.11 open item closed)
The merged tree ember-tune 7f6c4e6 (release-0.3.12 b0a6231 merged INTO ember-tune as c5918c7, job-console 13755b9 cherry-picked on top; 0.3.11's six-section View and card order kept whole, Ember Tune's TuneLine block and the Power control switch added in 0.3.11's markup, engine.rs keeps the detect arm with the tune fields in hotplug::apply_pref, both test modules, jobrun.rs the hidden-console builder plus follow_file) merged as one branch ebea8b6 (the CI commit), 08:22Z; the version files still 0.3.12 in all 6; packaged line, node-source.pin and vendor/ untouched against master
The app cargo test --release -p igneum-app under the lock, then cargo build --release 08:22:56 to 08:23:06Z: ok 133 + 28 + 8, 0 failed; igneum-app 0.3.12 (2,273,664)
The UI and relay tests node --test notices, update-card, view, tune-line; relay/test/*.test.mjs 26 of 26; 23 of 23
The CI checks on the Mac identity, no-conflict-markers, copied-sources, signer-pipe, prover-socket, second-engine, bash-body (self-test + tree), kit-path (self-test + tree), windows-spawn (self-test + tree), pinned-guests, no-secrets, check-workflow-shell all ok; link-check passes after node site/build.mjs (as ci.yml runs it: the committed litepaper.html points at /bench#counter-asic-2-0-the-numbers, an id the site build creates from bench-log.md)
The Windows workers and the AMD telemetry helper proto-cuda/nvrtc/build-windows.sh (mingw) under the lock, 08:23Z the worker SOURCES are unchanged against master (git diff master HEAD -- proto-cuda proto-opencl proto-metal igneum-pow: only build-windows.sh, the new gpu-telemetry.c and its .rc), so the inputs carry the 0.3.11-verified workers that mined all night, igneum-worker-cuda.exe 2b3b8c92885442179f6bf2907c6f3eb453dc4a19908d90fd05981a09b7c2674c (1,536,512) and igneum-worker-opencl.exe edc4a75da3b93d814caa69fd635010780d63d5b622ec24c3741d433c584f91e3 (478,208), not this morning's rebuild of the same sources (12bfaa27..., e0fd7042...: mingw PE builds are not byte-reproducible); NEW igneum-gpu-telemetry.exe 8d679b52b19af3cbd6bf4fd6f77d337b2fb78af13d02627e7aa7e92507993459 (387,584; ADLX, SetupAPI, PDH; the Igneum resources, version 0.3.0 as the workers carry)
The Windows inputs IGNEUM_WIN_RELEASE=<fork>/target-integration/x86_64-pc-windows-gnu/release IGNEUM_NODE_SRC=vendor/igneum-node-0312 packaging/windows/push-inputs.sh, 08:24:29Z (a deploy of the downloads folder only; the manifest untouched) node 89dfcb95 (igneumd.exe be8e83c0..., igneum-miner.exe 1ba1a249..., PC 2's 0.3.11 build), the two workers above, the telemetry helper, the mingw DLLs and nvrtc; signed, verified, live (HTTP 200); node-source.pin unchanged 89dfcb95
The DMG NODE=<fork igneumd> MINER=<fork igneum-miner> PROVE_HOST/PROVE_EXPORT=<the 0.3.11 build> packaging/mac/build-dmg.sh under the lock 08:24:33Z: Igneum-Miner-0.3.12.dmg ff630e9deb2e8f0ab39cdce422680f130fe9f8a6a9b679a24fa8a999de9998ee (41,630,620), engine 0.3.12, node 89dfcb95 (unchanged binary), the 0.3.11 prover host and export, igneum-bench rebuilt from proto-metal/main.swift (unchanged), CFBundleShortVersionString 0.3.12, hdiutil checksum valid
The Windows installer and zip windows.yml run 37435975425 on ebea8b6 (dispatched 08:25:10Z after the inputs push; the build reads the live inputs) Igneum-Miner-Setup-0.3.12.exe f6bbf384f1e6f4f2cffe9169a121230f6093617f5b27ce116c5c037831b4ae8f (50,107,390); igneum-windows-app.zip f744bf907a18797cf1c7cd7e49e600014c14bbcebbb8f917a0070a204e1a278a (72,131,710), with igneum-gpu-telemetry.exe inside beside the two workers

4. CI

Run On Result
ci 37435705568 ebea8b6 (the branch push, 08:22:40Z) green (pow tests and census build, simulators, site build + link check + identity, the PowerShell 5.1 parse job)
windows-ci 37435975425 ebea8b6 (gh workflow run windows.yml --ref release-0.3.12, dispatched 08:25:10Z after the inputs push) green 08:30:58Z (the parse job 08:25:16 to 08:25:56Z; engine, window host, payload, installer, smoke run 08:26:00 to 08:30:58Z against the 89dfcb95 inputs with the telemetry helper); fetched 08:31:40Z with OTA_SKIP=1 CONSOLE_SKIP=1 packaging/windows/fetch-ci-artifacts.sh 37435975425 into the downloads folder (NOT deployed: the ship's deploy step does that at the go)

The ship state file ~/.cache/igneum/ship/0.3.12.json carries sha = ebea8b6 (the CI commit; the plan commits after it are docs only), forkCommit 89dfcb95, bumpedAt before the DMG's mtime (so the dmg step reads "already"), and runId once the Windows run is green.

5. The publish gate: what runs at the project lead's go, and in which order

Nothing below has run. At the go, from this worktree:

Step Command What it does
the ship node tools/ship-app.mjs 0.3.12 --node vendor/igneum-node-0312 --branch release-0.3.12 --public --from ci --notes '<the changelog line of section 1>' preflight, ci "already" (37435975425), fetch (the installer and zip from that run), dmg "already", copy, manifest (consensus CARRIED OVER from the live 0.3.11 manifest: the nine-field object, activation_height 154800, the digest stays 0139ab9d...), deploy, verify (--from console after the public index settles at the edge, as 0.3.10 and 0.3.11 needed), console item; --public carries the HiveOS package (packaging/ota/publish-public.sh --hive <scratch>/hive/igneum-hive-0.3.12.tar.gz runs with it)
update-now, the Mac packaging/ota/publish-jobs.sh add --kind update-now --target d937c69d --id update-now-0312-d937c69d --title "Igneum Miner 0.3.12" --deploy the Mac's engine restarts with 0.3.12 within the minute (its node is node 1, untouched: no node restart, no digest change)
update-now, PC 2 the same for 1ccfe586, on the Counter ASIC coordinator's "PC 2 clear" if a measurement is in flight the engine restarts; its node restarts only if the app's override file changes, and it does not (the same nine fields)
update-now, PC 1 last, ae432dc7, once the project lead has relaunched its app (down since 22:31:06Z yesterday; it is on 0.3.10 and takes 0.3.11's override at the relaunch, then 0.3.12) Power control is OFF by default in 0.3.12, so no administrator prompt on the relaunch or the update; the 5090's power cap is not applied until the project lead switches Power control on in Settings
the laptop (37ba0461), Sam's Mac (3a9bf309) no job: they take 0.3.12 through the manifest when they are next on the air (min_supported 0.3.0)
the hand nodes, the seed NOTHING: no node change, no override change

One line for the project lead, per machine, when he says go: the Mac and PC 2 restart their engines once (under a minute each, the miner is back on the next template; the node keeps running) and show the GPU list in performance order, the Ember Tune line and the new Power control switch (off); PC 1 gets the same at its relaunch, and because Power control is off nothing asks for administrator rights on it any more, which also means its 5090 runs uncapped until he switches Power control on; no node restarts, no digest change, no consensus change anywhere.

6. Owed to the next cut (0.3.13)

Item What
C43, the miner's dead gRPC channel no commit exists; igneum-miner mine grpc:// must re-subscribe after its node restarts (the 0.3.11 finding: 11 min of 26 MH/s burned on the Mac); until then every hand restart of node 1 is followed by restart --what miners
prover-floor's server its packaging row is 0.3.13 (the coordinator's word)
explorer d7e797c, pool-v0, rig-install, ota-k2, the ledger forks left out on the coordinator's word
the Windows workers' reproducibility mingw PE builds differ byte-for-byte between builds of the same sources (12bfaa27 vs 2b3b8c92 today); a -Wl,--no-insert-timestamp (or SOURCE_DATE_EPOCH) in build-windows.sh would make G5's one-commit rule checkable by hash
the site build's non-idempotence and the pre-push flip unchanged from 0.3.10 and 0.3.11