Commit graph

898 commits

Author SHA1 Message Date
igneum-labs
be0937bc41 ember-tune-pc1.ps1: budget 45 min (two NVIDIA cards, 19 steps)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 11:44:58 +00:00
igneum-labs
ef2ac77201 make-payload.sh: the AMD telemetry helper is taken from the unpacked inputs on CI (the worker glob missed igneum-gpu-telemetry.exe, so the 0.3.12 payload of run 37435975425 lacked it)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 08:34:41 +00:00
igneum-labs
27c2db64c3 app: every elevated launch through one hidden-console builder; CI check for Windows spawns; PC 1 console watchers
The console-window class (the project lead, 5 October 2026: "Windows Command Processor" windows on PC 1 whenever a remote job runs).
Measured on PC 1 (ae432dc7, Windows 11 Pro 26200, default terminal "Let Windows decide" = Windows Terminal 1.24) with
tools/windows/console-watch.ps1 (job run-20261005-182528): no child a job script starts from the app's headless
console opens a window (powershell, cmd, query, curl, nvidia-smi, wsl --status, a distro, interop cmd and powershell,
powershell -WindowStyle Hidden: 0 windows each); Start-Process in a new console opens a Terminal window (the known-failed
case: 2 windows), the same with -WindowStyle Hidden opens none (the known-finished case). The elevated path
(Start-Process -Verb RunAs -WindowStyle Hidden through the AppInfo service) is the one road left; its watcher
(console-watch-elevated.ps1, job run-20261005-184610) was cancelled at the UAC prompt.

- platform.rs: elevated_ps_line + elevated_command build the one PowerShell line every elevated launch uses (the NVIDIA
  power cap, the sweep helper, the clock sync, an elevated remote job), -WindowStyle Hidden by construction; unit
  tests on the line, the quoting and the Command.
- jobrun.rs: the elevated job path uses it; the relaunch helper's Start-Process carries the reason it has no
  -WindowStyle Hidden (igneum-app.exe is a windows-subsystem program).
- tools/ci/windows-spawn-check.mjs (+ ci.yml): fails when a Command::new in app/igneum-app/src is not quieted,
  a creation_flags is not CREATE_NO_WINDOW alone, a Start-Process the Rust code writes lacks -WindowStyle Hidden or
  -NoNewWindow, or host.cpp spawns without CREATE_NO_WINDOW / SW_HIDE; self-test on known-good and known-bad samples.
- tools/windows/console-watch.ps1, console-watch-bg.ps1, console-watch-elevated.ps1: the watchers (run jobs).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 08:21:46 +00:00
igneum-labs
563463b35f Merge release-0.3.12 (fda4684) into ember-tune: 0.3.11's six-section View and card order kept, Ember Tune's line and switches re-added on it; the tune fields move into hotplug::apply_pref; the power-cap plan keeps present(); both CI test lists; 132 app tests, 26 UI tests, every gate green
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 08:20:46 +00:00
igneum-labs
fda4684e28 release 0.3.12: merge hive-words: the bundled node takes the override from the Flight Sheet
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 08:17:02 +00:00
igneum-labs
622e3c90bb release 0.3.12: merge card-order: the GPU list by performance
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 08:16:26 +00:00
igneum-labs
328b6088ec release 0.3.12: merge update-catchup: an old update skips the hourly slot
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 08:16:26 +00:00
igneum-labs
92b109cddb release 0.3.12: merge proving-v1 app: paid_wei as a decimal string
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

# Conflicts:
#	docs/bench-log.md
2026-10-06 08:16:26 +00:00
igneum-labs
50a08e8d50 app: an update published over an hour before the engine started skips the hourly rollout slot
PC 1, 6 October 2026 06:58:47Z: the app came up after the 0.3.11 publish, had the installer verified 44 s
later and sat on "installs at the next safe moment" with its slot at minute 35; the project lead pressed Install now at
07:00:48Z. The slot staggers a fleet through a NEW publish; a machine that was off through the publish has
nothing to stagger. Now: published_at + 3,600 s <= engine start => slot_ok, logged once. The other safe-moment
guards (node synced, miner idle, boundary, network drop) are unchanged. manifest::unix_from_rfc3339 with tests.
For 0.3.12.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 08:13:51 +00:00
igneum-labs
ebedff9b66 ember-tune.md: the next-cut note names the right commit
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 08:03:19 +00:00
igneum-labs
6de4827ccb a job that cannot mine never burns its budget silently: the elevated job path follows its output file while the script runs (the 5-minute progress reports carry the lines; 0.3.12), and the tune playbook's watchdog fails a run that mines nothing within 120 s of its first status line (the engine's last log line in the RESULT, the tree ended, mining restored by the runner)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 08:03:13 +00:00
igneum-labs
663fca4d76 bench log: run 2 (07:21 to 07:56Z): the BOM in the copied settings, no miner started, nothing set, mining paused 36 min 13 s, the hold released by the runner itself
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 07:59:21 +00:00
igneum-labs
d1705e0e1b playbooks: the scratch settings.json is written without a BOM (PowerShell 5.1's -Encoding utf8 adds one, the engine's JSON parser refuses it, the copy read as defaults with no payout address and nothing mined in runs 1 and 2); the address is read back and the job fails at once if it is empty; the CI check fails any playbook writing JSON with Set-Content -Encoding utf8
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 07:58:39 +00:00
igneum-labs
85e7e8e527 app: order the GPU list by performance (usable, discrete before integrated, rate in 5 MH/s buckets, memory)
the project lead, 6 October 2026: on PC 1 the integrated card sat between the 5090 and the 9070 XT. The list now shows
usable cards first, ordered by the measured rate since the start in 5 MH/s buckets (no flicker), discrete,
external and Apple before integrated, then memory; removed and unusable cards last; ties keep the detection
order. The row signature follows the order, so a reorder re-renders. Three UI tests. For 0.3.12.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 07:23:25 +00:00
igneum-labs
715890b0da ember-tune-pc1.ps1: find the AMD helper under any amd-kit job folder
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 07:20:36 +00:00
igneum-labs
6c38efc1c6 ember-tune-pc1.ps1: both cards stay on their best points (the project lead, 6 October 2026 07:25Z); no reset at the end
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 07:17:21 +00:00
igneum-labs
e941588c58 ember-tune-pc1.ps1: the copy runs with Power control off (the installed setting is read and reported, never a prompt: the project lead, 6 October 2026 07:20Z), the kit paths after the update, the AMD card reset to factory at the end
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 07:15:43 +00:00
igneum-labs
f5dfdbf443 bench log: the 22:31 UTC installer run was a second install of 0.3.10 over 0.3.10 (PC 1 took 0.3.10 at 21:40:41Z through update-now), not how PC 1 got 0.3.10
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 07:03:26 +00:00
igneum-labs
f8088c49c3 release 0.3.11: C35's cause on PC 1 and the ember-tune guard e600e63 in the next-cut list
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 07:03:10 +00:00
igneum-labs
3d505766d2 C35 named: PC 1's 22:31 UTC quit was the per-user installer launched by the second engine's own updater (0.3.9 under min_supported_version = urgent, beating auto_update = false); a second engine never runs the updater (IGNEUM_APP_NO_OTA=1, implied by --sweep; the playbooks set it; the CI check demands it); bench log and plan carry the named source
Source: the scratch engine's own log in collect ember-c35-collect-1 (06:59Z): 22:31:02Z '0.3.10 is available: downloading',
22:31:05Z 'update: starting the installer first ... ota-apply.ps1', and the installed app's 'quit:' at 22:31:06Z.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 07:01:57 +00:00
igneum-labs
42f36b3fd3 app: /api/state never answers {} again (paid_wei over u64::MAX broke to_value; the field is a decimal string, the error is logged once)
serde_json's to_value refuses a u128 over u64::MAX (18.45 IGN) and state_json turned the error into json!({}). A paid shard is 1.23 IGN on average, so a proving machine's dashboard went blank about 15 paid shards after every app start. Unit test over the boundary; 114 app tests pass.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 00:27:35 +00:00
igneum-labs
047932f2e1 plan: the prover-floor agent's sweep 3 rows (the patched server proves the v1 shard at 10.3 GB on the 12 GB profile, 12.9 GB at 2^27; the 12 and 16 GB rows move from nothing to proves alone, the pairs pending)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 00:18:32 +00:00
igneum-labs
18de437605 release 0.3.11: the plan's merge and push section
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 00:14:19 +00:00
igneum-labs
d61ce0ccee release 0.3.11: the plan's step 2, the digest sweep and the open items; sections in order
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 00:12:23 +00:00
igneum-labs
f7613e5f96 release-0.3.11 plan: the push and both CI runs, step 1 (the hand nodes and the seed at 4d8f8bb6, the manifest with the override carried over, the Mac, PC 2 and its epoch-boundary recovery, the stall and the Mac's resume, the laptop), the next-cut list
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 23:56:46 +00:00
igneum-labs
08547b0cac HiveOS: the bundled node takes the override from the Flight Sheet (C41)
The finding (release-0.3.11.md section 5): h-run.sh started the rig's node with --devnet --appdir
--rpclisten --listen and the peers and no --override-params-file, so a HiveOS rig in local mode ran
on genesis parameters, printed the no-override digest and was refused by every devnet peer; no
package ever carried the override.

h-config.sh: OVERRIDE=<json object> in the Flight Sheet's extra config, read as a whole line (JSON
may carry spaces; single or double quotes around it are stripped), refused unless it is {...},
written to igneum.conf single-quoted (sq helper; EXTRA gets the same quoting, the same class: a
value with shell characters sourced unquoted). Still sourceable (return, never exit).

h-run.sh, local branch: writes data/override-params.json from OVERRIDE when set and passes
--override-params-file=<that path> to igneumd; when empty, a WARNING in the main log that the node
runs on genesis parameters and devnet peers will refuse it. After the node answers, the switch
lines and the "Consensus params digest" line from node.log are copied into the main log as
"node: ..." so the operator can compare the digest with the downloads page.

README: the Flight Sheet table gains the OVERRIDE row with the four-field devnet object as the
example (nine fields after the 0.3.11 switch; the downloads page carries the live one), the rule
"set OVERRIDE from the downloads page when it changes", the sentence that a rig without it is
refused, the digest check in the requirements, and the gap entry. No "every override publish
needs a package republish" sentence exists in packaging/hive/README.md on this branch or master,
so nothing was replaced; the new rule stands alone.

selftest.sh: a fake igneumd that records its argv and prints the real digest line; OVERRIDE
single-quoted on its own line beside other keys round-trips through the conf; OVERRIDE=notjson
refused; empty OVERRIDE named in the summary; the main h-run run checks the file, the flag on the
node and the digest and switch lines in the main log; a second short run without OVERRIDE checks
the warning and the absence of the flag. bash packaging/hive/selftest.sh on this Mac:

== h-config.sh OVERRIDE
   OVERRIDE (single-quoted, own line) sourced back intact beside the other keys ok
   OVERRIDE that is not {...} refused ok
   no OVERRIDE: empty in the conf and named in the summary ok
== h-run.sh (fake GPUs: 2 NVIDIA, fake node, fake miner)
   data/override-params.json written from OVERRIDE ok
   the node got --override-params-file ok
   the node's digest and switch lines reached the main log ok
   NVIDIA cards got the cuda worker ok
   exit 42 restarted the miner and re-exported the pack ok
== h-stats.sh (sourced)
   stats JSON ok: hs [118500.0, 118500.0] temp [61, 58] ar [24, 0] bus [1, 2]
== h-run.sh without OVERRIDE (the warning)
   no OVERRIDE: warning in the main log, no flag on the node ok
== self-test passed (scripts and stats shape; Hive itself is untested)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 23:35:03 +00:00
igneum-labs
d85f4dec2b igneum-census: build against class v3 (Instr width/win/off, Program class/era_bytes, fetch layout, Scratch/Hot arms)
The ci run on 6f95751 (37387751432) failed in the census release build only; windows-ci was green.
The census generates the lottery hash's class, so every new field takes its v2 value and the two
experiment ops are unreachable.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 23:25:52 +00:00
igneum-labs
6f95751e06 Windows payload inputs: node 89dfcb95 (push-inputs.sh, the PC 2 build, the class-aware workers, signed); release-0.3.11 plan: the PC 2 job
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 23:18:28 +00:00
igneum-labs
9d1c494a9f release-0.3.11 plan: the three digests on the 0.3.11 binary (4d8f8bb6 with the live file, measured), the two-publish order (C39, C40), the HiveOS package's missing override
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 23:15:20 +00:00
igneum-labs
87dcbd804a release-0.3.11 plan: the PC 2 job id, the rollout order as agreed
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 23:10:03 +00:00
igneum-labs
c785bd3113 release-0.3.11 plan: the relay's PC1 is the 1ccfe586 box (PC 2 restarted twice by my tasks, PC 1 unreachable until the morning), the combined PC 2 job, C38 complete
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 23:08:52 +00:00
igneum-labs
c5bc0f6bc8 Merge ca2-coord (6bb8124) into release-0.3.11: the Counter ASIC 2.0 docs commits (N4 rows, gate cells, digests, rules, status; the five cited documents already in the tree)
# Conflicts:
#	docs/bench-log.md
2026-10-05 23:06:38 +00:00
igneum-labs
d3b44141d1 prover-floor: the three other PC 2 scripts test their kit file before the first use (C32)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 23:06:38 +00:00
igneum-labs
6bb8124080 Counter ASIC 2.0 status 23:05: C38 closed, the four branches merged into ca2-coord 2026-10-05 23:05:34 +00:00
igneum-labs
426252927e ca2-coord: verify.rs and tests/scratch.rs set to the release tree's versions (b9acc57 carries them through ca2-mixer), so the docs merge changes no shipped code 2026-10-05 23:04:59 +00:00
igneum-labs
34b2fa0ff6 prover-floor: pc2-floor-sweep3-miner.ps1 tests its kit file before the first use (the kit-path check, C32)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 23:04:52 +00:00
igneum-labs
14b748fafa Merge branch 'prover-floor' into ca2-coord 2026-10-05 23:04:46 +00:00
igneum-labs
b9f0158872 Merge branch 'ca2-epoch' into ca2-coord
# Conflicts:
#	docs/bench-log.md
2026-10-05 23:04:46 +00:00
igneum-labs
dae3593578 Merge branch 'ca2-soundness' into ca2-coord
# Conflicts:
#	docs/bench-log.md
#	proto-metal/packbench.swift
2026-10-05 23:04:45 +00:00
igneum-labs
310e5f0ee5 ca2-soundness: docs/analysis/scratch-soundness.md alone (its code is already in the tree through the mixer merge; the branch merge conflicted there); release-0.3.11 plan: C37 and C38
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 23:04:38 +00:00
igneum-labs
22b495aa1d Merge branch 'ca2-analysis' into ca2-coord
# Conflicts:
#	docs/bench-log.md
2026-10-05 23:04:14 +00:00
igneum-labs
0059f12c98 Merge prover-floor (8e2686d) into release-0.3.11: docs and standalone probe sources the evidence rows cite (C38); nothing a built artefact reads 2026-10-05 23:03:46 +00:00
igneum-labs
41889fcaea Merge ca2-epoch (6cb846b) into release-0.3.11: docs and standalone probe sources the evidence rows cite (C38); nothing a built artefact reads
# Conflicts:
#	docs/bench-log.md
2026-10-05 23:03:46 +00:00
igneum-labs
bfdc632a14 Merge ca2-analysis (c9ebe7b) into release-0.3.11: docs and standalone probe sources the evidence rows cite (C38); nothing a built artefact reads
# Conflicts:
#	docs/bench-log.md
2026-10-05 23:03:45 +00:00
igneum-labs
f754d6ba7f Counter ASIC 2.0 status 23:03: C38, the four analysis branches' documents and the two options 2026-10-05 23:03:33 +00:00
igneum-labs
142b5ef254 release-0.3.11 plan: the tree, the builds and tests so far, the override object and both digests, PC 1's hung engine and the relaunch, the next cut
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 23:02:07 +00:00
igneum-labs
f9d9805ae8 bench log + plan: C35 corrected (the quit was not the 0.3.11 update; what is established, the hang, the orphans, the prompt, the fixes)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 23:00:52 +00:00
igneum-labs
e9c95297ec Counter ASIC 2.0: ember-tune 8ab9068 on the next-cut list with the second-engine rule; status 23:00 2026-10-05 23:00:32 +00:00
igneum-labs
d19441c14d C35 class: a second engine gets no pipe (its output goes to a file the playbook tails) and its whole tree is ended at the end and on the budget; ember-tune-pc1.ps1 and sweep-5090.ps1 fixed; tools/ci/second-engine-check.sh fails any playbook without both; the rule in ember-tune.md
PC 1, 22:31 UTC: the installed engine's quit hung 24 minutes in the jobs runner's abort, waiting for EOF on the script's
stdout pipe whose write end the second engine and its miners had inherited (Process.Start with redirection inherits
every inheritable handle), while the orphaned miners mined on against the relaunched app.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 23:00:06 +00:00
igneum-labs
30b6959557 Counter ASIC 2.0 status 22:59: the orphaned second-engine miners, the hang's mechanism, the second-engine playbook rule 2026-10-05 22:59:45 +00:00