Commit graph

2021 commits

Author SHA1 Message Date
igneum-labs
dbc45a334f 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
1e0454161c 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
40494b2c57 Merge key-22 8a690ab2 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 afcc9662)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 18:06:07 +00:00
igneum-labs
8a690ab244 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
c60269def8 Merge key-22 afcc9662 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
afcc966286 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
390cf17ae0 Merge signing-22 22c5ce4c 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
22c5ce4c01 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
3f013f7433 Merge pool-finish-21 283118f8 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
283118f8f4 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
igneum-labs
795b372fdd Merge driver-check 136889b7 into release-0.3.22 (main: a 0.3.22 app item; the eGPU driver-install hold and warning)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 17:32:40 +00:00
igneum-labs
273339877a Merge release-0.3.21 97f9648f into release-0.3.22 (the 0.3.21 app tree as shipped over c4459193)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 17:32:40 +00:00
igneum-labs
136889b748 Driver check: a card in an external enclosure has its worker stopped for the install (PC 2, 7 October 2026, 16:26Z: the Intel installer's display reset took the machine down with the app's worker mining on the Arc in the Razer Core X V2)
The rule (drivertable::install_hold_keys): a driver install on a card the app reads as external (the eGPU kind from update-return-21b) stops that card's worker before the installer starts, through the cards path with the restore choice kept (the --cards-off shape); the vendor's cards inside the case and every other vendor's card keep mining. The row says so before the click and while it runs (the display reset can take the machine for a minute and may need a restart; save your work first). When the installer ends the held card goes back as it was; a card the install took away comes back when the card does (driver_release_held on the detection that lists it again). The app never restarts the machine.

Tests: the known-failed rule test first (an install on an eGPU card with the worker still running held nothing: red on build-2, then green), the view test for the two sentences; box gate 258 + 33 + 8 (test --release on build-2). Mock scenarios drivers-egpu and drivers-egpu-running; captures 13 to 16 (light and dark). Branch rebased onto release-0.3.21, which already carries the driver-check commits; the earlier tip is kept as driver-check-0320.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 17:28:45 +00:00
igneum-labs
97f9648f07 0.3.21 over the field node: the Windows node-source pin back to c4459193 (main's shape: the 0.3.21 app over c4459193, no node gate; the 96161037 line folds into 0.3.22)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 17:04:28 +00:00
igneum-labs
ec9bb227b4 windows.yml smoke: a direct call with the exit code read, in place of Start-Process -Wait -PassThru that raced a program exiting at once (the 0.3.21 run's failure at the version read-back)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 17:02:58 +00:00
igneum-labs
6bef0a41cb Merge remote-tracking branch 'origin/scaling-21' into release-0.3.21 2026-10-07 17:01:49 +00:00
igneum-labs
54f2599a36 Scaling (the project lead, 7 October 2026: "the miner needs some scaling so more is visible in the initial window"): the window opens at about 80 percent of the screen's work area, capped at 1440 by 900 on a display up to 1920 wide and scaled up with the display beyond that, remembered per machine once the user resizes (the Mac window's frame autosave name; the Windows host's HKCU Software/Igneum/Miner WindowW and WindowH, written on WM_EXITSIZEMOVE and used while they fit the work area); the Overview's vertical rhythm tightened so the rate band, the big button, the ladder strip, the chain card and the node card's first row sit above the fold at 1280 by 800 (gaps, paddings and the scene's height 220 to 184 px; no type below 13 px; the live scene and the GPU marks keep their look); fold.test.mjs measures the Overview's key elements inside the viewport at 1280 by 800, 1440 by 900 and 1920 by 1080 and the first object of Cards, Earnings and Prove, with Playwright on build-2 (known-failed on 0.3.21: the chain card ended at 836 and the node row at 900 of 800), skipping where there is no Playwright env; tools/ui-mock/fold-measure.cjs prints the numbers; captures at 1280 by 800 and 1920 by 1080
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 16:58:40 +00:00
igneum-labs
182e67f316 release rules 6a (the engine link check mechanical on every fetch, start and placement); the 0.3.22 plan's start incident and ruling
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 16:56:05 +00:00
igneum-labs
747c625f8f packaged-config: the Devnet 3 package names its network (node_devnet_suffix 3, node_peers = build-1's seed 26631 and node1-dn3 26671), NODE_OVERRIDE_PARAMS empty on the new chain (the node refuses the file), the shared devnet's object kept for the record; self-test rows for the fields
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 16:53:23 +00:00
igneum-labs
6da9596c75 release-0.3.22 plan: section 3, Devnet 3's first node up on dn3-g1 at 16:50:21Z
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 16:51:51 +00:00
igneum-labs
eff88bdc96 release-0.3.22 plan: section 2, 21d8f454 green on every box gate and the canary set; the app side's first commit and the packaged peers
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 16:51:08 +00:00
igneum-labs
b776412ec4 0.3.22, Devnet 3 (7 October 2026): the package names the network its node joins (igneum-app.json node_devnet_suffix and node_peers; Runtime::from_env_with reads them when the environment is silent, node_dir devnet-N beside devnet-v4), no override file on a suffixed devnet from 3 (the node refuses it; the manifest's consensus override ignored with one log line), the version strings; app gate on build-2 258 + 32 + 8
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 16:49:21 +00:00
igneum-labs
ea3e7193a6 release-0.3.22 plan: main's yes with two conditions; the app side's shape (the packaged devnet-3 suffix, no override file, a fresh node datadir)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 16:44:07 +00:00
igneum-labs
ee60c8eba6 release-0.3.22 plan: main's ruling on the nine switches; the fleet's Devnet 3 set standing, the cutover and gate scripts, the capacity plan
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 16:42:34 +00:00
igneum-labs
c6f9e6e9f7 release-0.3.22 plan: section 1, the candidate fa7f854f and the Devnet 3 object; build-1's Devnet 3 processes staged
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 16:41:52 +00:00
igneum-labs
eda005504c 0.3.21: the Windows node-source pin at 96161037 (written by push-inputs with the payload)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 16:39:10 +00:00
igneum-labs
67ff8b97e1 release-0.3.22 plan: the frozen sub-version 3 object (017e7037, byte 7, id a785001687d8688a, the fingerprints, both gates green)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 16:31:39 +00:00
igneum-labs
1851b0d410 powertask: the registration test asserts the Power Helper's action is the app's own windowless exe (the Rust part of update-return dbbf0483; the relay/clients half lands through master on the relay line)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 16:31:07 +00:00
igneum-labs
7686f08a88 Merge remote-tracking branch 'origin/currency-21' into release-0.3.21 2026-10-07 16:29:12 +00:00
igneum-labs
b1165dbcbe release-0.3.22 plan: Devnet 3 by 18:30 BST (main's order), the node line, the gates, the staged seed and hands, era VDF clean on 96161037
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 16:28:31 +00:00
igneum-labs
e8112f4e51 Site currency (currency-21): site/money.js is the app's currency rules for the site (tables generated from app.js, site/lib/money-regen.mjs rewrites them, site/lib/money.test.mjs fails on drift and runs in the pre-push gate); the card picker (yourcard.js, on /miner and /app) follows navigator.language, shows the card's electricity a day at the region's typical tariff through the one Intl formatter, with a currency switch saved in localStorage; watts per card from the Ember table and the bench log, Apple silicon says no power reading; the review shots from build-2 (Earnings in euro dark and light with de-DE placement, Settings with the picker, the first-run step on a fr-CA machine, the Overview in euro)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 16:27:27 +00:00
igneum-labs
d73cba9a68 Currency by locale (the project lead, 7 October 2026: "£/day is for UK; we need other currencies"): no IP lookup; the web view's language (the OS locale) picks the region, its currency and its default tariff at first run (GBP, EUR, USD, CAD, AUD and the long tail by ISO region through ISO_CURRENCY, names from Intl.DisplayNames, an EU member on the euro takes the EU average), a currency picker in Settings and on the first-run step whose override lives in the engine's settings file (config.rs currency, state.rs, Cmd::Region's third field, api/region currency; the Rust round-trip test) and wins over the locale; a region with no currency row falls back to USD with the prompt visible; every money line goes through one formatter (fmtMoney: Intl.NumberFormat with the code, narrowSymbol, the symbol placed as the locale places it); the user's own tariff is the number, so no exchange rate anywhere (the rent line says so for a currency without a USD rate); zero-decimal currencies typed in the unit (priceFactor), the price field's ceiling 100,000; three view tests known-failed first (de-DE reads EUR with the Eurostat tariff; the override wins and survives restart; a locale with no row asks); the mock's euro scenario
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 16:22:37 +00:00
igneum-labs
2534849578 release-0.3.21 plan: 96161037's hands and seed pairs, the Mac's binaries and DMG
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 16:20:15 +00:00
igneum-labs
dff16f3745 release-0.3.21 plan: the injector's nine steps PASS on 0.3.21's binaries; the register merged
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 16:14:50 +00:00
igneum-labs
91db40be36 Merge remote-tracking branch 'origin/miner-reliability-21' into release-0.3.21 2026-10-07 16:14:50 +00:00
igneum-labs
4bc5e050c1 miner-faults register: the 0.3.21 injector run (nine steps green on app 786c3d37 and node c4459193, kept-datadir included)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 16:14:03 +00:00
igneum-labs
3a4419e561 release-0.3.21 plan: 96161037's two node gates PASS, the prover pair stands, the builds running
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 16:12:53 +00:00
igneum-labs
8a2cbcc927 release-0.3.21 plan: section 6, the node line staged at 96161037 with its suite lines and the two box-input rules
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 15:56:12 +00:00
igneum-labs
0fcebf1f44 reliability injector: catch-up after a kept datadir reads the readiness line before the first worker start (the record exists from the first second there)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 15:48:32 +00:00
igneum-labs
64ccb16e5b release-0.3.21 plan: the final node order with c631c64b first, the whole-crate suite rule
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 15:35:25 +00:00
igneum-labs
cf85c9f80f release-0.3.21 plan: update-return-21b, first-block-21 (seen once), the reliability register in
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 15:21:50 +00:00
igneum-labs
8a77336545 Merge remote-tracking branch 'origin/miner-reliability-21' into release-0.3.21 2026-10-07 15:21:29 +00:00
igneum-labs
dc3d763822 Merge remote-tracking branch 'origin/first-block-21' into release-0.3.21 2026-10-07 15:21:29 +00:00
igneum-labs
815d49f503 miner-faults: MF-11 in the update-return lane's words (the helper owns the return, the relay service, the ping, the tuner's ceiling) and MF-13 (the Power Helper's stale-command count); the external card kind noted
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 15:09:50 +00:00
igneum-labs
7c065d100c first-block-21, main's reading "seen once": the first-block card waits until a window has shown it. The flag first_block_shown is set when the page reports the card displayed or dismissed (POST api/card/seen with the milestone's count and at, ladder.rs card_seen; the window hiding to the tray with the card up counts as the dismiss), never when the card is raised; an unseen card survives restarts and auto-updates (start_run drops a card only once milestone_seen), so a first block found overnight greets the miner the first time they open the app and never again. Every other rule stands: the lifetime count 0 to 1 raises it, identities and card swaps leave it, a kept directory at 0 shows it on the first block, a count that starts over raises nothing, a 0.3.20 record (schema 0, no flag) whose first block already came takes the flag and loses its card. The view trusts a 0.3.21 engine (the ladder carries first_block_shown) and keeps the uptime refusal only against a 0.3.20 engine. Tests: ladder.rs eight (a_first_block_found_with_no_window_greets_the_miner_at_the_first_open_and_never_again added: no window, a restart, the first open shows it once, a second open does not; the round-trip helper gets one temp dir per call, the shared path let parallel tests wipe each other's file), the view test re-cut, the mock's firstblock card unseen (the capture's mock log shows the page's api/card/seen). Lines: build-2 app gate 255 + 32 + 8; UI 67; pre-push 56 green; captures re-taken to ~/Desktop/igneum-previews-2026-10-07/first-block.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 15:09:20 +00:00
igneum-labs
da38a6aca5 MF-11 follow-ups on release-0.3.21 (the app half of update-return 2d3d211a and 0b423697): the external card kind from a USB4 or Thunderbolt router in the device's parent chain (PC 2's RTX 5060 Ti in a Razer Core X V2 reads eGPU, not discrete); the Power Helper's registered probe wants the task enabled and its action exe on disk; a helper that gives no heartbeat or no line inside its window is a FAULT power-helper line with the registration re-read; a same-length rewrite of the command file is a new command (effective_skip; PC 2, 7 October 2026: every tune refused since the 14:35Z boot)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 15:07:17 +00:00
igneum-labs
6ffb825cf0 release-0.3.21 plan: first-block-21 in
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 14:59:10 +00:00
igneum-labs
371d7dfcf0 first-block-21 (the project lead, 7 October 2026: "the 'you got your first block' situation only shows for the miner's first ever block"): the first-block card once in the app's life. Engine: ladder.rs carries a persisted first_block_shown flag set when the lifetime count settings.json holds crosses from 0 to 1 (survives restarts, updates and a kept data directory; never touched by a key changing identities or a card swap; a count that starts over on a shown record raises nothing); Ladder::start_run at engine start drops a milestone an earlier run persisted (a card is for the run that raised it) and takes the flag on a 0.3.20 record whose first block already came; the new-card card never fires at a count of 1; the state carries started_at (the run's wall-clock start). View: blockCard refuses a milestone raised before this run (staleCard, a minute of slack, uptime_s when the engine has no started_at), firstWait keeps the count-up off once the ladder records a first block, the first rung reads the flag. Tests: seven in ladder.rs (the known-failed second run first: a 0.3.20 record with the card persisted and the count at 1 showed it again; the first ever block; a restart at 1; an update at 1 over the older shape; a kept directory at 0 with the flag unset; a count that starts over; block 2 ordinary) and one view test in the same order. Mock: the secondblock scenario and started_at. Lines: build-2 app gate 254 + 32 + 8 (test --release); UI 67; pre-push 56 green; captures in ~/Desktop/igneum-previews-2026-10-07/first-block.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 14:57:34 +00:00
igneum-labs
24ef8d6545 release-0.3.21 plan: update-return-21 in
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 14:32:15 +00:00
igneum-labs
49f9aa773c Merge remote-tracking branch 'origin/update-return-21' into release-0.3.21 2026-10-07 14:32:13 +00:00