Commit graph

148 commits

Author SHA1 Message Date
igneum-josh
c16af2cc2c Merge release-0.3.14: Igneum Miner 0.3.14 (exec-sync deep-reorg reload, miner-ui-3, ember-tune), publish 1 on the thirteen-field object
The node pin moves to 4c6b129d (release-0.3.14-node), which is what the live payload inputs carry, so windows-ci's payload-inputs step is green again (red since 630b537 on master's 0.3.13 pin against the 0.3.14 inputs).
Conflicts: infra/fast-time/override-60x.json keeps master's side (the fresh-rule field was already there at u64::MAX; the release line would be a duplicate key); tools/ci/playbook-quit-check.sh keeps master's rule 2 and pre-rule list with the release side's Ember allow entry and the 0.3.15 expiry check.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 19:18:17 +01:00
igneum-josh
35776fef44 Merge commit '88f5026' into ca3-pc1-amd
# Conflicts:
#	app/igneum-app/src/engine.rs
#	tools/ci/playbook-quit-check.sh
2026-10-06 19:10:29 +01:00
igneum-josh
54557cc2e6 Counter ASIC 3.0 PC 1 AMD: the runner owns a job's card switch: --cards-off <key,key> (matched with or without the device index, switched through the app's card path before the script, restored exactly on any exit including the app quitting; report lines; two tests, igneum-app 114 of 114 on igneum-build-1); playbook-quit-check rule 2 fails any script that requests api/cards (pre-rule playbooks on a dated allow list)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 19:07:52 +01:00
igneum-josh
39ebba0ca5 Build server adopted: box-first build rule in CLAUDE.md, reproducible Windows exes, the commit-string gate, PC and Mac recipes
Main's decision of 6 October 2026. CLAUDE.md 'Running agents on this Mac': every Linux and Windows cargo build and every
Linux test suite goes to igneum-build-1 through tools/build-remote.sh and tools/cross-remote.sh; the PCs keep GPU and
Windows-runtime jobs; the Mac keeps macOS binaries, the DMG and Metal tests under the lock. -Wl,--no-insert-timestamp in
cross-remote.sh, proto-cuda/windows-node/cross-build.sh and jobbuild.rs (two box builds byte-identical, verified).
The empty-commit class: tools/ci/commit-string-check.sh (self-test in ci.yml, shown firing on a Mac worktree build and
passing on a box build) runs on every igneumd from the three build scripts; push-build-inputs.sh adds node.commit_full,
the PC job writes a minimal node/.git from it at extract and cleans kaspa-build-info on a new commit (4 jobbuild tests
pass, run on the box); cross-build.sh refuses a worktree and cleans on a new commit. Plan: second worktree's clean build
1 min 18 s with sccache 604 hits of 993.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 18:50:39 +01:00
igneum-josh
04d8940eb0 release 0.3.14: merge exec-app-0314 bfebff1 (the prover exports from one block below and seeds the exporter from the account dump; nothing claimed below the restart; the exporter; the fast-time file deduplicated)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 18:04:54 +01:00
igneum-josh
ed2420ada9 release 0.3.14: merge ember-tune e70ac5e (the Measured wording for a baseline row; the helper's commands under its fixed folder)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 18:04:54 +01:00
igneum-josh
e70ac5e82e Ember: every task command goes to the helper's fixed folder (platform::fixed_data_root, powertask::helper_dir, engine helper_cmd_dir): a scratch-root engine wrote under its own root, where the task never reads; test. The shipped-app window playbook: the installed app tunes itself through the task (AMD ladder, then the NVIDIA climbs), asked and watched over its API, never stopped
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 17:59:33 +01:00
igneum-josh
bfebff1b8f exec 0.3.14 app side on release-0.3.14: the prover exports from one block below and seeds from the account dump; nothing claimed below the restart; the harnesses
On 220dc03, by hand, the app half of the exec fix (fork exec-sync-0313 1f59c5d0 is the node half):
- app/igneum-app/src/prover.rs: igneum_exportSegments [n-1, n] for a shard and [first-1, last] for a segment,
  never from 0 (on a restarted node the records below the restart carry zero roots and the exporter refused every
  cut, the fleet 16:02Z); exec_boundary() reads igneum_getExecStatus.restartNumber (or the startedFrom text on a
  0.3.13 node) and the prover claims no shard and no segment below it
- proving/igneum-prove/export: seeds the port from the export's preState (the node's account dump after the first
  segment), checks its root against the node's there and replays from the next segment; without a dump the
  restart-aware replay (execRestart) and the genesis replay stay
- tools/exec-sync/net.mjs (15 checks: the persisted state, the file, the wrong pin, another chain, the unreadable
  flag file, the account-dump cut) and tools/exec-sync/reorg.mjs (18 checks: a 300-block reorg from the ring and
  from the persisted generation)
- infra/fast-time/override-60x.json: the duplicate proving_v1 block from the 0.3.12 merge removed (the
  consensus-core test fast_time_60x_file_is_the_devnet_at_60x failed on it)
The three UI files are untouched (byte-equal to 220dc03); the igneum-prove-r0 tree is not in this cut.

Green on this tip (6 October 2026): cargo test in app/igneum-app 28 + 8; node --test app/igneum-app/ui 35; the 13
CI checks of ci.yml that run on this Mac; tools/exec-sync/net.mjs 15/15 in 97.2 s against this exporter and the
fork's igneumd (IGNEUM_EXEC_BIN, IGNEUM_EXPORTER).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 17:59:18 +01:00
igneum-josh
98b6d8c418 Ember: a baseline (measure-only) result's row reads Measured, not Tuned; the event line no longer doubles the words; test; next-cut table row
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 17:56:24 +01:00
igneum-josh
96f569f5c1 release 0.3.14: merge ember-tune c04a0da (the engine commits 200362a, bd7fcf4, 185c333 and the helper repoint: task_exe prefers the installed exe; a power step on a card with no limit readback is skipped)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

# Conflicts:
#	app/igneum-app/ui/app.js
#	app/igneum-app/ui/index.html
#	docs/bench-log.md
2026-10-06 17:54:36 +01:00
igneum-josh
bd7fcf4d1c Ember: a power step on a card with no limit readback (AMD through ADLX reports an offset, never watts) is applied on the acknowledgement; run 6 aborted the 9070 XT's ladder at its first step on "card reports 0 W"; test
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 17:43:26 +01:00
igneum-josh
200362afac Ember run 6: the helper registered on the scratch copy, so task_exe prefers the installed exe for every path that is not itself an install candidate, and the helper gains a reregister verb (no path argument; re-points the task at the install folder it finds itself, logs the action read back); the clock ladder and floor go to 45% with the 1% rate tolerance as the guard; a chosen point on the floor says floor, not optimum; the 5090 row (84 W saved for 0.15% of rate) on the fleet page; the re-point and no-prompt proof playbook; run 6 notes, threat note, bench log
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 17:35:03 +01:00
igneum-josh
eacfd23326 release 0.3.14: merge miner-ui-3 ae88457 (index.html, app.css, app.js rewritten; the engine untouched)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 17:22:01 +01:00
igneum-josh
ae88457770 miner-ui-3: the card row is the product (audit, design, build)
The audit (docs/plans/miner-ui-3-audit.md, 27 screenshots): no money anywhere, three red n/a per Apple row,
tuning split across two pages, 370 px of controls per card, Prove's 95 words and four zeros, Node's eleven
numbers, the jobs table on every Updates page, fixes two taps away, no light mode, no layout under 900 px,
developer lines on user surfaces.

The design (docs/plans/miner-ui-3.md): four sections (Mine, Earnings, Prove, Settings); the card row carries the
state word with its reason, MH/s, W with MH/W, £ a day at the user's electricity price, °C, Tune, the switch,
and its details under a chevron (cap slider, identities, pin, telemetry, the tune table); the tune line per row
(not tuned yet / tuning: step k of n with a bar / tuned N ago · point · next check <weekday> / measured only and
why / pinned / stopped / fleet pause); Tune all; the goal (Efficiency, Balanced, Maximum) with its £ a day; Power
control as one switch where it is the fix; the node as one line with Details; updates as one card; earnings money
first, IGN second; proving as a tier sentence per card; every costly action confirmed in place (quit, change
address, show key, trust mode), no dialogs; light and dark; a bottom tab bar under 720 px.

The build: index.html, app.css, app.js rewritten on the same engine routes; the pure blocks keep their API and
carry ember-tune's tuneNotice, tuneWord, toggle states and tune-line test (e9738dd) so the merge is clean; the
update card is named Igneum Miner; the Rust side is untouched. node --test on the four UI files: 35 pass.
Screenshots of the result: docs/plans/miner-ui-3/n00 to n26.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 17:19:53 +01:00
igneum-josh
5165de7910 Ember 2: the plan's section 6b (the clocks, the hill-climb, the goal, the price, the curve, the fleet prior, what is owed); Settings: the goal, the electricity price, the climb switch; the card detail: £ a day for the tuned point and the measured curve; UI test
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 16:56:22 +01:00
igneum-josh
4b25760e50 Igneum Miner 0.3.14: the six version files (node-only: the exec layer survives a deep reorg and a moved pruning point)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 16:54:14 +01:00
igneum-josh
564bdea138 Ember 2: the climb's tests (a synthetic memory-bound card converges in five probes; a refused probe backs the knob off for good; each goal picks its point; the £/day formula) and the fleet prior carrying the memory clock (climb records aggregate)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 16:50:34 +01:00
igneum-josh
e9738dd4d5 state: tune_period_s on the settings state (the manifest's period), so the UI derives the next tune from sweep_at
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 16:48:44 +01:00
igneum-josh
8770aa5294 The one approved Power control step on PC 1 failed with exit 1 (15:45:21Z, no cap applied, no helper registered): cmd.exe strips the first and last quote of a /c line that starts with one and holds more than two (two NVIDIA cards, or a cap plus the registration script); both launchers now wrap the line in one outer pair (platform::cmd_c_args, host.cpp runElevated), unit-tested; Ember 2: the memory clock set through nvidia-smi -lmc/-rmc (direct and through the helper's lmc/rmc verbs), the goal, the electricity price and the hill-climb switch in Settings and /api/tune/goal, the chosen point's memory clock and the measured curve on the card
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 16:48:14 +01:00
igneum-josh
5e4ef43236 Run 5 (15:28 to 15:39Z): the 5090's five power rows in the bench log (the cap does not bind: 0.41 MH/W flat at 310 W); the playbook's watchdog killed the live three-card tune at the first clock step, so: idle = three consecutive status lines reading 0.00 MH/s and 300 s, never a missing match; the after snapshot and the engine-log dump on every exit; an elevated tune engine registers the Igneum Power Helper itself before its first step (the --sweep engine skipped the cap path where the registration lived); Ember 2 groundwork: the memory-clock knob in Point and Limits, the goal, the hill-climb plan (not yet wired to the engine)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 16:44:06 +01:00
igneum-josh
6f46cd40dc A card never shows 0 MH/s without a reason word (Josh, 6 October 2026, watching PC 1 during the table run): the Mine row reads 'tuning: step k of n · measuring W W' with the live rate, 'held for a remote job: <title>' while a job holds the miners, and the Tuned line at the end; the big button reads 'Tuning, mining again in about N min'; the strip carries one tune line; a measurement engine prints a TUNE progress line every 10 s and the playbook forwards it (and TUNE chosen as done) to the installed app's POST /api/tune-progress, a post of state, never quit, pause or resume; the rule in ember-tune.md 6a; UI tests for the three states
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 16:36:07 +01:00
igneum-josh
ccad9a13d9 powertask: a kit run from a jobs folder registers the INSTALLED exe as the task's action (the 15:28Z run on PC 1 registered jobs\ember-kit-5\igneum-app-ember.exe); the playbook uses a kit only on an app that predates Ember Tune
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 16:30:42 +01:00
igneum-josh
e4b9a52aed ember: a registered Igneum Power Helper task counts as permission for the tune (an unelevated measurement engine, Power control forced off, still sets NVIDIA limits through the task with no prompt)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 16:11:37 +01:00
igneum-josh
fd1917c363 Merge master 494c9c7 into ember-tune (0.3.12's version files and the proving-v1 app merge; my own 7f6c4e6 came back as ebea8b6) 2026-10-06 16:03:37 +01:00
igneum-josh
71f08d5b9c release 0.3.13: merge ember-tune 07d5a72 (the Power Helper: one approval registers a per-user elevated scheduled task, no prompt after; the folder-lock ACL; the verbatim settings copy; the watchdog; no firewall prompt for a sweep engine; the jobrun follow_file)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 16:03:27 +01:00
igneum-josh
07d5a725b6 lock_permissions: the folder grant is user:(OI)(CI)F WITHOUT /T (measured on PC 1, collect ember-acl-2: /T re-applies /inheritance:r to each file after the propagation and an (OI)(CI) entry on a file is inherit-only, so the copied settings still read as nothing); the playbook prefers ember-kit-5
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 15:50:49 +01:00
igneum-josh
d3e207b2ed Why every measurement engine on PC 1 ran on defaults: lock_permissions cut the app folder's inheritance with a non-inheritable user:F, which left files COPIED in before the start (settings.json, machine-id, wallet.json) with no ACE at all, unreadable by their owner; the folder grant is now user:(OI)(CI)F with /T (unit test on the argument shape); a --sweep engine never asks for the firewall rule; the playbook copies the firewall flag; the settings fixture test
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 15:39:18 +01:00
igneum-josh
0b7f9afa7b run 4's cause: the playbook's PowerShell JSON round trip rewrote the copied settings (big integers as doubles), the engine read the file as defaults (no payout address, every card off, 96 old remote jobs run in the scratch root). Fix: the copies are verbatim and a --sweep engine applies Settings::for_measurement in memory (remote jobs, updates, proving and Power control off, not paused, tune on, every card due and unpinned); the CI check fails any playbook that rewrites settings.json through ConvertTo-Json; unit test
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 15:21:06 +01:00
igneum-josh
7c9b00fde0 Igneum Miner 0.3.13: the six version files (node-only cut: the exec follower fix and the finality route fix)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 14:14:55 +01:00
igneum-josh
53b50e81ba One administrator approval, ever (Josh, 6 October 2026 11:50 UTC): the first Power control approval also registers the per-user scheduled task 'Igneum Power Helper' (RunLevel Highest, no trigger, action = the app's own exe --power-helper); every later cap and every tune's helper starts the task and writes the command file, no prompt, across restarts, updates and reboots; Power control off sends remove and the task unregisters itself; the helper runs only fixed verbs with digit-only nvidia-smi arguments (threat note in ember-tune.md 7a); 4 tests
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 12:50:49 +01:00
igneum-josh
49e0e2c694 release 0.3.12: merge proving-v1 app aea2f6a (the segment-aligned prover, the held fresh record, the fresh-record rule harness)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 09:37:18 +01:00
igneum-josh
ebea8b69ed release 0.3.12: merge ember-tune 7f6c4e6 (Ember Tune, the quit source, no OTA and no pipe in a second engine, the elevated follow_file, the BOM fix, Power control, job-console's hidden-console builder and spawn check)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 09:22:22 +01:00
igneum-josh
7f6c4e639a app: every elevated launch through one hidden-console builder; CI check for Windows spawns; PC 1 console watchers
The console-window class (Josh, 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 09:21:46 +01:00
igneum-josh
c5918c7e57 Merge release-0.3.12 (b0a6231) 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 09:20:46 +01:00
igneum-josh
81e4ecbfe7 Igneum Miner 0.3.12: the six version files
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 09:19:00 +01:00
igneum-josh
c6608c1fe5 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 09:16:26 +01:00
igneum-josh
b984c17a0e 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 09:16:26 +01:00
igneum-josh
9bcf4cd232 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 09:16:26 +01:00
igneum-josh
2207cd7a33 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; Josh 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 09:13:51 +01:00
igneum-josh
272b025c9f prover: a segment record the chain rule refuses is held and offered again every pass until the segment's deadline (the fresh-record window on the 0.3.11 rule is one segment length in DAA); the tile counts held records; the fast-time file sets the fresh-rule switch
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 09:03:46 +01:00
igneum-josh
1e9550e629 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 09:03:13 +01:00
igneum-josh
ffb2bfa552 app: order the GPU list by performance (usable, discrete before integrated, rate in 5 MH/s buckets, memory)
Josh, 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 08:23:25 +01:00
igneum-josh
ce8f34afce prover: segment-aligned work (proving v1): a free prover claims a whole segment, proves every shard from one export in one chain run, submits the shard records and the segment record; the host's chain mode takes --prev and writes per-shard records with --save-shards
One prover at 2.2% coverage never had 8 consecutive proven blocks (C47, 6 October 2026); claiming whole segments makes it complete about 1 segment in 75 instead of none. The choice is deterministic per key (FNV of first block and key hash) over the untouched whole segments inside their deadline by a margin (240 DAA or 1.5x the last segment's time); the per-block path stays as the fallback. Unit tests for the grid, the grouping, the margin, the attempted set and the per-key order; 120 app tests, 8 core and 9 host tests pass.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 08:12:23 +01:00
igneum-josh
e600e63df6 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 08:01:57 +01:00
igneum-josh
6714a450d3 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 01:27:35 +01:00
igneum-josh
b671c8b4b9 C35: every quit names its source (Cmd::Quit carries it: the window host's stdin, the host gone, POST /api/quit, the --sweep run's end); the --sweep job never counts as Power control and sets no cap at start (it raised a UAC prompt on PC 1 at 22:30 UTC); the tune playbook's budget quit goes only to its own scratch URL file and says so
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 23:53:32 +01:00
igneum-josh
054e0416d8 ember: the AMD helper's gmax range is an offset from stock (PC 1's 9070 XT: -500 to 1000), not MHz: the clock knob stays closed on an offset range and the power ladder is bounded by plimit_range (-30 to 10) on a percent scale
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 23:43:43 +01:00
igneum-josh
21173c4f3d Igneum Miner 0.3.11: the six version files
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 23:40:42 +01:00
igneum-josh
22c23639e2 prover loop: a PermissionDenied from the host names the root-owned GPU-server socket and the fix (the root-socket class); the plan's two times
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 23:38:22 +01:00
igneum-josh
e0de2ab18e App: every worker gets --prepare-packs in the platform's path form and runs with the app data folder as cwd (program class v3: the Metal worker compiles v3 only from a prepared pack; the Macs would have answered need lines at the first v3 epoch)
cargo test --release -p igneum-app under the build lock: 113 + 27 + 8 passed, 0 failed (the prepare_packs_tests,
resume_tests and provedefault tests among them).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 23:22:44 +01:00