igneum/app/igneum-app/ui
igneum-labs 089b078a3a Miner app: plug, tune, play (the project lead, 7 October 2026): node readiness gate, the retry ladder, no permanent fault, fault lines to the intake, the signed cards job, the fault-class register
docs/plans/miner-faults.md: MF-1 to MF-7, each with its rule, test and gate line.
- MF-1/MF-2: a worker starts and is judged only when the node is READY (synced and igneum_getExecStatus reports an
  executed tip; execrpc::probe every 5 s off the engine thread); the node watchdog never counts the catch-up (settled
  once read synced; 30 min cap before that; any RPC answer is a sign of life); the watchdog restarts on a ladder 10 s,
  30 s, 2 min, 5 min, then every 5 min for ever (watchdog::RETRY_LADDER_S); the faulted state and the one-restart
  budget are gone (tools/ci/permanent-fault-check.sh in the gate); a node-caused restart resets the ladder at sync.
- MF-3: the hot-plug pass starts a recovered or revived card's worker (unchanged rule, now in the register).
- MF-4: the status clock starts at ready (program loaded), loading bounded by 300 s; a self-test failure holds the
  card 30 min with the reason on its row, released on a driver change; a crash loop climbs the ladder; the pack is
  exported once a minute for every card (a refused pack forces one).
- MF-5: the app reads template_wait=, template_ms=, identities_active= from the 0.3.20 miner's STATUS; waiting on
  the node is never the card's fault; the row says node slow; every node-wait label clears on the first rate.
- MF-6: a miners hold belongs to the job that took it and releases when that job is gone or at its own cap.
- MF-7: the engine owns every igneum-miner it started: an untracked one on this engine's node RPC is killed at start,
  after every stop and every minute, one line and one fault report per kill; a restart kills the old process first.
- Every fault line posts one FAULT line to the log intake (label fault-<id8>, app and node version, 60/h cap).
- The signed cards job kind (per card enabled, identities, power_pct; refused for a card the machine lacks; applied
  through the app's own card path, persisted, read back): packaging/ota/publish-jobs.sh add --kind cards.
- LG-4 as a job: relay/playbooks/first-share.ps1 and tools/fleet/first-share-gate.mjs (no Windows box yet).
- tools/reliability: the fault injector with one step per class (catch-up, card-appears, own-restart, zero-ladder,
  no-status, node-silent, one-card-fails, orphan-miner); fake-worker.mjs lists devices and fails self-tests on command.
- master's build tooling (97255a4e) and release-0.3.20's igneum-pow taken into the worktree for the box routes.
Box: app 198 + 27 + 8 tests green on igneum-build-2; the tree gate green (33 checks).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 13:11:48 +00:00
..
fonts One-click miner app: Rust engine (node, miner and worker supervisor with a local dashboard), Mac WKWebView window with a menu-bar item, design screenshots 2026-10-04 10:00:22 +00:00
app.css Driver check: the app detects a missing or old driver per card and installs it on one click from the vendor's own server (branch driver-check, 7 October 2026) 2026-10-07 13:09:46 +00:00
app.js Miner app: plug, tune, play (the project lead, 7 October 2026): node readiness gate, the retry ladder, no permanent fault, fault lines to the intake, the signed cards job, the fault-class register 2026-10-07 13:11:48 +00:00
heat-region.test.mjs ember-heat (0.3.19): the region and price prompt, the heat cards and lines, the cost-against-rent row 2026-10-07 10:50:05 +00:00
index.html ember-heat (0.3.19): the region and price prompt, the heat cards and lines, the cost-against-rent row 2026-10-07 10:50:05 +00:00
live-dag.js miner-ui-5: live-dag.js 2.0.2 (master 6c70b948, byte-identical), fps 60 and narrow on the phone-width card, four captures reshot 2026-10-07 10:43:51 +00:00
mark.svg One-click miner app: Rust engine (node, miner and worker supervisor with a local dashboard), Mac WKWebView window with a menu-bar item, design screenshots 2026-10-04 10:00:22 +00:00
notices.test.mjs miner-ui-3 polish: the strip, the feed and the pill in the app's voice; three Mine layouts to pick from 2026-10-06 18:01:47 +00:00
proof-core.js miner-ui-5 (0.3.19): the ladder on every page, the count-up, the block card, Earnings in IGN first, EMBER 02 scene 2026-10-07 09:12:43 +00:00
tune-line.test.mjs miner-ui-3: the card row is the product (audit, design, build) 2026-10-06 17:55:45 +00:00
ui-ota.test.mjs ui-ota (0.3.20): Settings > Interface, the health ping, the first-paint error and the gentle reload 2026-10-07 10:43:52 +00:00
update-card.test.mjs miner-ui-3: the card row is the product (audit, design, build) 2026-10-06 17:55:45 +00:00
VERSION ui-ota (0.3.20): the manifest's interface channel and the engine that swaps a signed dashboard bundle in 2026-10-07 10:43:51 +00:00
view.test.mjs Miner app: plug, tune, play (the project lead, 7 October 2026): node readiness gate, the retry ladder, no permanent fault, fault lines to the intake, the signed cards job, the fault-class register 2026-10-07 13:11:48 +00:00