From 5ea54327e9514fb08d6a35bf7575a7e47239712a Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Tue, 6 Oct 2026 08:27:08 +0000 Subject: [PATCH] release 0.3.12: the plan's builds, CI, publish gate and owed items Co-Authored-By: Claude Fable 5.1 --- docs/plans/release-0.3.12.md | 46 ++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/docs/plans/release-0.3.12.md b/docs/plans/release-0.3.12.md index 20d2283f3..a330eeb67 100644 --- a/docs/plans/release-0.3.12.md +++ b/docs/plans/release-0.3.12.md @@ -44,3 +44,49 @@ Checks on 81e4ecb before the rebase landed: the app `cargo test --release -p ign | What | Command | Result | |---|---|---| | The HiveOS package | `NODE_OUT= WORKERS_OUT= VERSION=0.3.12 OUT= 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=/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= MINER= PROVE_HOST/PROVE_EXPORT= 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) | (section 4) | + +## 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`) | (pending at the time of writing; the installer and zip hashes go here) | + +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 ''` | 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 /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 |