igneum-labs
6f234587c3
0.3.23: version strings (the tree after 0.3.22's cut: the rights step at install, the unattended driver install, the check labels, the .next token read, per-monitor DPI, the network step, the installer closing the host; node pin 2720d8d2)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 20:23:57 +00:00
igneum-labs
38c694d89b
Merge install-close-23 5d76448d into release-0.3.23 (main's order: an installer over a running app ends the window host first and waits for the unlock; the engine and host refuse a relaunch while an installer runs)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 20:19:19 +00:00
igneum-labs
9da8e68559
Merge network-23 69e6f9e3 into release-0.3.23 (the first-run network step: the manifest's default_network, the testnet card present and refused until testnet_open; igneum-testnet-1 by --testnet --netsuffix=1 with the seeds as --addpeer; view.test.mjs as the union of the check-labels and network tests)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 20:14:37 +00:00
igneum-labs
5d76448d3f
0.3.23: an install over the running app returns the new version (PC 2, 7 October 2026, 20:54 BST: a job's silent 0.3.22 install quit the engine through api/quit, the 0.3.21 window host's restart ladder started the old engine 10 s later, Inno could not replace the locked host and every file stayed 0.3.21). (1) The installer's stop step ends the window host FIRST by its path, then asks the engine to quit, then ends what is left by path, and waits up to 30 s for every exe to open for write, naming the one that stays locked; CloseApplicationsFilter and SetupMutex set. (2) The engine prints "EXIT update" when an installer or its own OTA stopped it and the host then ends itself instead of restarting; the installer writes install-running.flag beside app.url for its whole run and the update helper's every launch and the host's restart ladder hold while it is there (a marker older than 15 min is a dead installer, ignored with a FAULT line). Tests known-failed first: exit_line, relaunch_allowed with tonight's sequence, the stop step's order and unlock wait, the host's and the installer's text
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 20:14:08 +00:00
igneum-labs
69e6f9e3c9
The network step (0.3.23, main's design with two corrections, 7 October 2026): a fourth first-run screen before the address step and a Settings card, two cards, Devnet 3 (igneum-devnet-3, chain id 4463; staging: the chain may reset, coins have no value) and igneum-testnet-1 (the public test chain: coins have no value, resets are announced); a fresh install selects the manifest's default_network (Devnet 3 until the go), the testnet card reads not yet open and is refused until the manifest's testnet_open names it open, a manifest naming the testnet default before the open is refused by the parser; an existing install keeps the network it runs and sees the step as the Settings card; nothing switches a running miner but the user's click and the confirm that names what resets (the node's data and the mining state; the key and the address stay); the choice lives in settings.network, read before the runtime so igneum-testnet-1 starts the node with --testnet --netsuffix=1 and the three seeds as --addpeer (no DNS seeders compiled; no override file on the testnet), taking effect at the next start; api/network, Cmd::Network, config::network_switch with its tests, manifest default_network_rules, the Rust round trips, two view tests known-failed first
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 19:36:38 +00:00
igneum-labs
ce0bdeefef
Merge dpi-23 a7af1c75 into release-0.3.23 (per-monitor DPI awareness for the Windows host: the manifest, WM_DPICHANGED, the opening size in logical pixels)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 19:34:08 +00:00
igneum-labs
8a1b79e41f
0.3.23: the Windows node-source pin moves to 2720d8d2 (the 0.3.23 node pin: the cache-rung digest fix and the three Devnet 3 heights)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 19:31:03 +00:00
igneum-labs
e4447e8418
Merge ota-token-23 ba2d6c8b into release-0.3.23 (publish.mjs reads the dl token by the .next rule)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 19:31:01 +00:00
igneum-labs
a7af1c754f
Per-monitor DPI awareness for the Windows host (dpi-23, 7 October 2026, PC 2's 5120 by 2160 at 200 percent rendered stretched and blurry): host.manifest declares PerMonitorV2 (and true/pm), embedded by host.rc as RT_MANIFEST with the link at /MANIFEST:NO; SetProcessDpiAwarenessContext at start as the runtime path for a Windows that ignores the manifest, SetProcessDPIAware as the last fallback; WM_DPICHANGED takes the suggested rectangle so WebView2 re-renders at the new monitor's scale; the opening-size rule now runs in logical pixels (opening_size.h igneum_opening_size_scaled: the primary monitor's physical work area and its DPI from GetDpiForMonitor, looked up at run time, LOGPIXELSX as the fallback), so the 1440 by 900 and 1920 caps mean CSS pixels as on the Mac (PC 2 opens 1625 by 1016 logical, 3250 by 2032 physical, sharp); the remembered frame is logical on both hosts (the unaware host read virtualised coordinates), kept as it is, with a WindowUnits marker from here; six scaled cases in opening_size_test.c (the test could not compile before the function existed); tools/windows/dpi-check.ps1 is the read-only PC-job check (awareness, rectangle, monitor DPI, logical size; -Expect PerMonitorV2 fails on the 0.3.22 host, which reads Unaware); host.cpp touched
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 19:28:34 +00:00
igneum-labs
0769f828e0
Merge check-labels-23 331f023d into release-0.3.23 (Settings: Check for an update, Check for jobs; each handler's route asserted)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 19:24:10 +00:00
igneum-labs
ba2d6c8bcb
ui-ota publish: the dl token follows packaged-config.sh's .next rule (IGNEUM_DL_TOKEN_FILE, else dl-token.next while a rotation runs, else dl-token), so a bundle staged during the rotation lands in the new folder and --verify reads the new URL; tokenFile and readToken exported, token.test.mjs on the gate, known-failed first on the direct read (7 October 2026, the dl token rotates with 0.3.22)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 19:20:28 +00:00
igneum-labs
331f023d49
Settings: "Check for an update" and "Check for jobs" (7 October 2026, main's ruling after a press of the jobs button for the update check: the two sat as "Check" and "Check now"); the view test asserts each label and that each handler posts its own route (api/update/check, api/jobs/check), known-failed first on the old labels; for the 0.3.23 tree
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 19:19:39 +00:00
igneum-labs
70b7c555f6
Merge driver-hold-22 60a30738 into release-0.3.23 (the unattended driver install through the Power Helper task; the driver-install-task right)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 19:15:45 +00:00
igneum-labs
2df643a078
Merge boot-start-22 cd9ceca4 into release-0.3.23 (the rights step at install, deferred in a job or session-less install; the WebView2 right webview2-runtime@109.0.1518.78)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 19:15:45 +00:00
igneum-labs
de8be6e038
Driver check plan: the driver-install-task right taken into rights::RIGHTS on boot-start-22 332b82eb; the merge point and the prompt rule recorded
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 19:12:57 +00:00
igneum-labs
cd9ceca499
Rights step: asks only in an interactive session that is not a job's (SESSIONNAME set, no IGNEUM_JOB_* in the environment), else "rights: deferred" and the next interactive start asks once (the project lead, 7 October 2026: no PC job may need a click); the WebView2 runtime as the right webview2-runtime@<min> with the host loader's minimum in app/windows/version.h (IGNEUM_WEBVIEW2_MIN 109.0.1518.78, read at build time), the elevated step reading the Edge WebView2 client key (HKLM WOW6432Node and HKCU) and running the bundled evergreen bootstrapper silently when absent or below it (make-payload.sh carries the bootstrapper only when it matches packaging/windows/webview2.sha256); the driver lane's right driver-install-task in the list; tests known-failed first (a job's install defers, a session-less one defers, the person at the PC asks once; absent or older runtime installs, equal or newer does not, a raised minimum is exactly one new right)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 19:09:55 +00:00
igneum-labs
406a7fe1d8
pool/tools/dn3-split-read.mjs from pool-finish-22 c15b39b0 (the Devnet 3 read for the split's activation; the merge did not apply, the one file taken as is)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 19:05:54 +00:00
igneum-labs
60a30738ba
Driver install unattended through the Power Helper task: the rights-at-install step driver-install-task (7 October 2026, 19:5x BST; the project lead's rule that evening: no PC job needs a click or a UAC prompt)
...
src/driverinstall.rs: RIGHT = ("driver-install-task", ...) for boot-start-22's rights::RIGHTS; register_script = the Power Helper task with a two-hour run limit (no second task, no new firewall rule); the helper's command file takes "<seq> driver <vendor>" with a vendor WORD only, and the elevated helper resolves the file, size, sha256 and Authenticode signer from the signed table itself (Intel Corporation, NVIDIA Corporation or Advanced Micro Devices, and the row's own signer), runs the row's silent arguments with the heartbeat kept (cap 45 min), and writes "<seq> <vendor> exit <code> reboot <0|1>" to driver-result.txt; a restart-required exit is the Restart now button, never a restart by the app. drivers::start_install takes the helper route when the task is registered and keeps the one-prompt path otherwise. Tests known-failed first (the helper knew no driver verb: red on build-2, then green; the refusal of a file that is not the table's or not a vendor's; the right's id and the protocol round trip). Box gate 263 + 34 + 8. Plan 3d is the step as a table for the rights lane.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 19:03:01 +00:00
igneum-labs
eeb1498aa9
0.3.22: the Windows node-source pin moves to 34a2dbaa (the 0.3.22 node pin; the Windows node pair 2040cf65 / 680dacfe is its cross)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 18:56:21 +00:00
igneum-labs
810af2c39b
0.3.22: every right taken once at install, never at runtime (the project lead, 7 October 2026: "all the rights need to be done on install, and then on update if anything new"): src/rights.rs with the rights list (the Power Helper task, the boot task, the firewall rules for the node and the pool miner), the installed manifest rights.json, the one elevated script, and the prompt model; the installer's [Run] step igneum-app.exe --rights on every install (silent ones too) asks for administrator rights only when a right is missing; at runtime Power control is a plain toggle (the Power Helper task does the work) and a missing right is a notice ("run the installer again"), the firewall first-run prompt gone; tests known-failed first: a fresh install then Power control on shows one prompt at install and none after (the old way: two), an update with no new right shows none, an update with a new right shows exactly one
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 18:54:53 +00:00
igneum-labs
a9b00f8d1e
Merge driver-hold-22 a38e0da7 into release-0.3.22 (the Intel row takes min_version 32.0.101.6733: an Arc on the inbox driver reads fine, no button)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 18:46:31 +00:00
igneum-labs
abdd6507ee
Merge ota-cut 43bbb411 into release-0.3.22 (the interface version pair: ui/VERSION 1.0.2, pair-check.mjs, publish-manifest.sh stamps ui_version on new entries)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 18:46:31 +00:00
igneum-labs
4115303cb2
Merge boot-start-22 85eb90ea into release-0.3.22 (the window host gate: a payload's Igneum Miner.exe must carry the cut's version, no mingw signature, and a sha in packaging/windows/host.sha256)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 18:42:21 +00:00
igneum-labs
a38e0da733
Driver table: 6733 is acceptable for the Arc B580 until an unattended install path exists (the project lead's rule, 7 October 2026 evening: no PC job needs a click or a UAC prompt; the 9034 retry on PC 2 cancelled)
...
The Intel row's min_version is 32.0.101.6733 (Windows' inbox driver, on which the worker mines at 11.0 MH/s with the Intel rotate rewrite); 9034 stays the version on offer for a card with no driver. Test known-failed first (the shipped table demanded 9034 of an Arc on 6733; red on build-2, then green). The mock's offer scenario shows an older 6600 so the Install row still renders. Plan 3c: the install path moves onto the app's Power Helper task next; the minidump waits for the same path.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 18:42:12 +00:00
igneum-labs
43bbb4119a
publish-manifest.sh: a carried app entry keeps its own ui_version or none; only a new entry is stamped from the tree (a carried 0.3.21 entry had taken the tree's 1.0.2 and passed the pair check falsely)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 18:42:05 +00:00
igneum-labs
6b3760539d
ui-ota publish: --ui-pair-override passes through to the manifest writer (tonight's 1.0.2 to the 0.3.21 manifest)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 18:41:20 +00:00
igneum-labs
434e4c8bd8
ota-102: the ui-ota test pins ui/VERSION 1.0.2; publish-manifest.sh --ui-pair-override <reason> ships an interface from another UI tree knowingly with the reason logged (tonight: interface 1.0.2 from the 0.3.22 tree to the 0.3.21 manifest, so every 0.3.21 app takes the Prove switch fix), the pair rule binding without it
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 18:40:38 +00:00
igneum-labs
12bebbb508
The version pair (7 October 2026, the project lead's Mac on 0.3.21: interface 1.0.1, cut from 0.3.20 and carried into the 0.3.21 manifest, served over the packaged UI and brought the Prove switch defect back): tools/ui-ota/pair-check.mjs refuses a manifest whose ui.version differs from the ui_version of any app entry, or whose entries carry none (today's shape fails by design; self-test known-failed first); publish-manifest.sh stamps the tree's app/igneum-app/ui/VERSION on every new entry, carries it on carried entries and runs the check before signing, so a carried-over interface against a newer tree refuses the publish; ui/VERSION 1.0.2 for the 0.3.22 tree and the interface cut from it; the gate runs the self-test and the check on IGNEUM_MANIFEST when one is given
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 18:40:38 +00:00
igneum-labs
1438e03aed
Merge window-22 8bfdda2d into release-0.3.22 (the opening size from the primary monitor's work area, a frame never wider than 1.6 times its height; the project lead's 5120 by 2160 panel)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 18:40:14 +00:00
igneum-labs
85eb90eaa9
The window host gate (0.3.22): packaging/windows/host-gate.py refuses a payload whose Igneum Miner.exe version resource is not the cut's version, carries a mingw-w64 signature, or is not the pinned MSVC host (packaging/windows/host.sha256, e223db18 for 0.3.21); wired into make-payload.sh before the host is copied, its self-test in the pre-push gate (PC 2, 7 October 2026: a 0.3.22.0 mingw host inside a 0.3.21 installer crashed in ntdll seconds after starting its engine)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 18:39:23 +00:00
igneum-labs
8bfdda2d65
The opening window size, one rule for both hosts (window-22, 7 October 2026, the project lead on PC 2: "why did the app open super wide?"): scaling-21's 80 percent of the work area scaled above 1920 wide opened 2752 by 1152 on a 3440-wide area and 3072 by 864 on a two-monitor span, and a remembered WindowW/WindowH could carry that into later starts; now app/windows/opening_size.h: the PRIMARY monitor's work area (MonitorFromPoint primary, never the virtual desktop), width 80 percent capped at 1440 up to a 1920-wide display and 1920 beyond, height from the width at 16:10 bounded by the work area, never wider than 1.6 times the height, never under 900 by 600, never over the work area; a remembered frame kept only when it fits the work area, the minimum and the aspect cap, and never saved when it would not; the Mac window mirrors the rule on NSScreen.screens.first and discards an autosave frame that fails it; opening_size_test.c compiles on the gate with cc (known-failed first: it could not compile before the header, and 0.3.21's rule fails the 3440 by 1440 and the 3840 by 1080 cases); host.cpp touched (the shipper's named line)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 18:34:47 +00:00
igneum-labs
67608448f7
Merge pool-finish-21 340f75fa into release-0.3.22 (the pool daemon keeps jobs 60 s or 256 per member, stale grace 30 s: the Devnet 3 read of 25,477 unknown_job shares at one template a second)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 18:34:37 +00:00
igneum-labs
3b125e26a1
Merge shards-22 into release-0.3.22 (the inspector's shard words from the block's facts)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 18:34:37 +00:00
igneum-labs
e7d6d327d2
Merge boot-start-22 6c6bd1f3 into release-0.3.22 (the engine starts at boot without a logon on Windows: the per-user boot task, headless --launch, the host bridge; a headless engine never reads a closed stdin as the host leaving)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 18:30:32 +00:00
igneum-labs
6c6bd1f3e6
0.3.22: the engine starts at boot without a logon on Windows (MF-11's second half; PC 2 idle 67 minutes after its 17:28 BST self-reboot, 7 October 2026): the per-user task "Igneum Miner (boot)" at system start under the user's S4U logon running igneum-app.exe --launch --data-root <root>, registered by the engine at start and in the Power Helper's one approved step; --launch with no interactive session runs the engine headless (--boot); a window host's --wrapper engine that finds the headless engine's app.url answering becomes a bridge (URL and STATE lines to the host, quit, pause, resume and detect relayed to the API; the window closing leaves the engine mining; an engine gone ends the bridge with EXIT); a headless engine never reads a closed stdin as the host leaving (PC 2, 19:09 to 19:11 BST: four engines quit 3 s after the node started); the known-failed forms first in every test, the no-logon return case beside the helper's sequence; install-repair.ps1 on the record
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 18:28:06 +00:00
igneum-labs
85065cedb9
Merge driver-hold-22 a15a7a6d into release-0.3.22 (a driver install holds every enabled card of that vendor, the other vendors keep mining, each held card returns when the installer ends)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 18:26:04 +00:00
igneum-labs
081ad80f69
Merge miner-reliability-22 a9d8fd60 into release-0.3.22 (MF-14: a worker never waits on the export past one retry interval; the row names the blocker, the slot leaves building at two)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 18:22:31 +00:00
igneum-labs
a15a7a6ddb
Driver check: every card of the vendor stops for the install (0.3.22; PC 2's Arc in the Razer Core X V2 read kind=discrete on 0.3.21, so the external-kind hold alone missed the card that crashed the box at 16:27Z)
...
drivertable::install_hold_keys holds every enabled card of the vendor being installed (the other vendors' cards keep mining; a card already off has nothing to stop); the row says so before the click and while it runs, with the enclosure warning kept on an external row; the toast and the engine's event name the vendor. The x1 gen1 link signature is not on the card state and was not added. Test known-failed first (the 5090 inside the case was not held for an NVIDIA install; red on build-2, then green); box gate 259 + 33 + 8; UI 51.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 18:20:14 +00:00
igneum-labs
340f75fa5e
Pool daemon: jobs kept 60 s or 256 per member (never fewer than 12), the open pool's stale grace 30 s unless set (the Devnet 3 pair, 7 October 2026, 18:16Z: a template every second and a GPU batch outliving the 12-job window, 25,477 unknown_job and 19,119 stale shares, 0 accepted)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 18:19:52 +00:00
igneum-labs
a9d8fd6046
MF-14: a worker never waits on the program export longer than one retry interval without the reason shown
...
PC 2, 7 October 2026 18:34 BST: two rows sat on "exporting this hour's program" for 18 minutes while a third card
mined. The export ran on a thread per card under one lock with no bound on the wait, and a result that never came
left the slot in the building state for ever.
- watchdog::export_wait: inside one interval (the ladder rung, at least 30 s) the row keeps its word; past it the row
names what blocks the export; past two intervals the wait ends and the worker retries on its own interval.
- engine: EXPORT_HOLDER names the card whose export holds the pack lock and for how long, EXPORT_LAST_ERROR the last
failure (the node not at the epoch, no seeds.txt); export_blocker() reads them for the row; build_seq ignores a
late result after the wait ended; a failed export retries on the ladder, never a flat five minutes.
- docs/plans/miner-faults.md: MF-14 with rule, test and gate line.
Test known-failed first: an export that never returns is named at one interval and given up at two.
Gates: app tests 260 + 33 + 8 green on igneum-build-2; the tree gate GREEN, 56 checks.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 18:18:43 +00:00
igneum-labs
5ee7a38107
The shard sentence from the block's facts (7 October 2026, the site's animation said "no shard plan yet" on every planless block): IgneumDag.shardWords(block, nowMs) in scene/live-dag.js (2.0.6) is the one source for the tooltip, the /live inspector and the app's inspector: no shards reads shard plan loading (a chain block under 10 s), excluded, nothing to prove, not yet ordered (pending), off the selected chain, no shards planned, or no shard plan after N s; a planned shard with no prover reads awaiting a prover with the block's age, assigned to <prover> when one holds it, proving, verified, paid as before; the app's inspector prints these per shard and as the count line; the copies synced; tools/scene/shard-words.test.mjs on the gate's scene line, known-failed first on 2.0.5
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 18:13:23 +00:00
igneum-labs
e1dd2601a9
0.3.22 packaged peers: the Devnet 3 hubs dn3-g1 64.119.209.250:21703 and dn3-g2 154.64.230.67:27017 beside build-1's seed and node1, so a home app dials three hosts (tree item f); the self-test reads four
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 18:10:15 +00:00
igneum-labs
06a9d5b19a
Merge key-22 82e6b1e1 into release-0.3.22 (the amend: the legend test takes the /live key's ruled exceptions, the site untouched; crate and UI byte-identical to 51563fa7)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 18:06:07 +00:00
igneum-labs
82e6b1e1f6
The miner's chain key from the shared legend export (key-22, 7 October 2026): IgneumDag.legend({mine}) and renderLegend(el, {mine}) in scene/live-dag.js (2.0.5) carry the one list of entries with each state's token and shape (Pending, Included, Excluded, Selected chain, Proven, Locked checkpoint; the app adds Your blocks, ringed, first); the app's chain card renders its key from it at mount with the source line kept (the Included swatch had been ember while the scene draws included blocks in --included, and "pending" was lower-case), its CSS colours a swatch only from the entry's token; the copies synced; tools/scene/legend.test.mjs on the gate's scene line: the export's entries, order, tokens and shapes, every colour the scene draws has an entry, the app key is the export, and the /live key equals the export minus the ruled exceptions (no Pending, no Your blocks) with the same wording, token and shape on every shared entry, binding on master where the site deploys from and a diagnostic on a release branch whose site tree is the frozen cut; the site is not edited (main's correction: the project lead's ask was the miner's key)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 18:02:56 +00:00
igneum-labs
4466a3b711
Merge key-22 51563fa7 into release-0.3.22 (the one chain key: scene/live-dag.js 2.0.5 legend, the app's chain card renders it, Your blocks first)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 18:01:11 +00:00
igneum-labs
51563fa795
The chain key, once (key-22, the project lead's screenshot of the app's key against /live, 7 October 2026): IgneumDag.legend({mine}) and renderLegend(el, {mine}) in scene/live-dag.js (2.0.5) are the one key both pages render: Pending, Included, Excluded, Selected chain, Proven, Locked checkpoint, each with the token the scene draws that state in and the swatch's shape, the app adding Your blocks (ringed, molten) first; the app's key renders from it at mount with the source line kept after the entries (the Included swatch had been ember while the scene draws included blocks in --included, and "pending" was lower-case), its CSS now colours a swatch only from the entry's token; the copies synced; tools/scene/legend.test.mjs on the gate: the export's entries, order, tokens and shapes, every colour the scene draws has an entry, the app key is the export, and the site key must equal it (binding on master, a diagnostic on a release branch whose site tree is frozen; known-failed under SCENE_SYNC_SCOPE=site today: the site's hand-written key lacks Pending and carries Your block)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 17:57:52 +00:00
igneum-labs
cbb5e6bc45
Merge signing-22 c19f1a7f into release-0.3.22 (the project lead's signing-bonus plan, the app half: vote on by default pinned by test, the Overview and Cards rows read signing or silent with the reason)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 17:55:30 +00:00
igneum-labs
c19f1a7f6f
Signing state on every card row and the node line (signing-22, the project lead's signing-bonus ruling, 7 October 2026): the miner signs the finality section by default (Settings.vote true, an old settings file without the field reads true, the one --no-vote flag comes from config::vote_flag and exists only when the user turned voting off; the Rust test vote_defaults_on pins all three); View.signingWords says "signing" with the checkpoint signed and when, or "silent" with the reason (voting off in Settings, no vote key, the clock behind or ahead of the network, no template while the node syncs, or a key that stopped for N min while the chain kept locking), "first checkpoint pending" in the first two minutes, "paused" when the network itself has not locked; the Overview's node line ends in the word and turns bad with the reason as its sub line; each Cards row shows its own keys' state under the state line; two view tests known-failed first
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 17:52:08 +00:00
igneum-labs
a39e0a3a24
Merge pool-finish-21 864e8402 into release-0.3.22 (pool/tools/dn3-split-read.mjs, the Devnet 3 read tool for the split's activation; docs and tools only)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 17:49:20 +00:00
igneum-labs
864e8402a8
pool/tools/dn3-split-read.mjs: the Devnet 3 read for the pool split's activation (the hour's first and last chain block, blocks carrying IGNS and IGNP, exec roots across the nodes at one executed height, the implied height)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 17:42:45 +00:00