Commit graph

2134 commits

Author SHA1 Message Date
igneum-labs
0da8e65fce 0.3.25: the Windows node-source pin moves to 5f316c21 (42ce0f07 plus the chain-id answer: eth_chainId and net_version return the id the pool admits at; nothing consensus, digest 1b37cb9d unchanged)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 11:59:14 +00:00
igneum-labs
3d080d75e1 0.3.25: the Metal worker from class-v5 79799452 (proto-metal/main.swift and packbench.swift: the generator-5 path, packClassOf v5, servePackDataset reading leaves.bin as buffer 3); the DMG's igneum-bench built from f2267bb6's tree refused epoch 19 at prepare (generator 5 not run), the cause of the Mac side of the Devnet 3 stall at the class v5 floor; the igneum-pow pairing f2267bb6 unchanged (the worker host is the kit's, the hash object the freeze's)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 11:54:52 +00:00
igneum-labs
f055fba78f 0.3.25: the Windows node-source pin moves to 42ce0f07 (e0644958 plus the ring self-check, the snapshot digest stamp, the vetoed-node status and the proof map's window; nothing consensus, digest 1b37cb9d unchanged; the 0.3.25 pin candidate)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 11:40:26 +00:00
igneum-labs
8604e89b13 Merge amd-clock-25 aa2b8652 into release-0.3.25 (the RX 9070 XT's measured efficient point in the tuner's ceiling table: 149 W at 18.96 MH/s, clock offset -500 and power limit -30, 24 percent under stock; the grid playbook finds the rebuilt exe by itself; the kit input unchanged)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 11:26:23 +00:00
igneum-labs
aa2b865295 0.3.25 AMD knob: the RX 9070 XT's measured efficient point, 149 W, in the tuner's ceiling table (the first grid on the knob, PC 1, 8 October 2026, 12:10 BST, run-ca3-pc1-amd-grid-9070-20261008-b, 24 of 24 rows ok, the app's own hash_now, the card reset at the end). The rate is flat at 18.93 to 18.98 MH/s over the whole ladder: the knob moves watts only, so the knee never comes and the stop rule reaches the floor; the efficient point is both floors (clock offset -500, about 2,920 MHz where ADLX clamps; power limit -30): 149.3 W at 18.96 MH/s, 0.127 MH/W, 24 percent under stock's 195.8 W at the same rate. The clock offset alone takes 196 to 159 W; the power limit alone does nothing until -30 (184 W). Test: efficient_watts reads 149
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 11:23:54 +00:00
igneum-labs
3a15e3b0d0 ca3-pc1-amd-grid.ps1 finds the rebuilt telemetry exe by itself: the newest igneum-gpu-telemetry*.exe under the data root's jobs folders (a fetch job's landing place) whose --tune prints a tune line, before the installed exe (the kit's old tool has no --tune, so the first grid stopped at no_tune_line); IGNEUM_GRID_TOOL still overrides
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 10:27:53 +00:00
igneum-labs
b36b7200be fast-time: override-60x.json taken whole from ca3-v4-node (81 keys: master's 75 plus base_unit_decimals, pool_split_activation_daa, program_class_v5_activation_daa, proving_base_fee_ceiling_multiple, proving_fee_ceiling_activation_daa, subsidy_per_block_activation_daa; no shared value differs), the file the 0.3.25 node line's test fast_time_60x_file_is_the_devnet_at_60x reads key by key; a single added field moved the red to the next key (8 October 2026, 11:2x UK)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 10:24:26 +00:00
igneum-labs
d9b1c22d54 fast-time: base_unit_decimals 8 in override-60x.json, the field the node line's test fast_time_60x_file_is_the_devnet_at_60x demands (0e4ec18a's change, added by hand after its cherry-pick conflicted; the 0.3.25 pre-pin matrix read core RED on every box without it, 8 October 2026, 11:1x UK)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 10:16:33 +00:00
igneum-labs
9c77b36be8 Merge tiers-class-25 dc7df7bd into release-0.3.25 (the tiers at the class flip, both halves: the engine's class key ember-tiers-25 2d188892 and the display; tiers measured under one program class never apply under another, the search re-arms within ten minutes, the knee note over 2 percent)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 10:13:51 +00:00
igneum-labs
30b5c85564 ota::return_tests: the installer's clear step is read in either shape (the one-line form, or install-detach-25's block within the next lines); the literal one-line assert went red on 8779c80e
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 10:13:50 +00:00
igneum-labs
dc7df7bd9a Merge ember-tiers-25 2d188892 into tiers-class-25 (the class-flip engine half: tiers_class, tiers_remeasure_at, knee_loss_pct, the stale refusal, the re-armed search; on release-0.3.25 87d8862d, before the install-detach merge whose .iss reshaping reds ota::return_tests on 8779c80e)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 10:10:30 +00:00
igneum-labs
2d18889284 tiers tests: the json test's fn line, dropped by the stale-test insertion
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 10:06:15 +00:00
igneum-labs
7e08d5663a Ember Tune tiers: the class flip (tiers_class, tiers_remeasure_at, knee_loss_pct): tiers measured under one program class read stale under another, the apply and /api/tune/tier refuse with the re-measuring line, the scheduler re-arms the search on the class change and says why once, the search's end stores the set under the new class with the knee loss against the old; the tier and the class survive a restart; known-failed first (v4 tiers under v5 read stale)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 10:04:58 +00:00
igneum-labs
8779c80eb2 Merge install-detach-25 05aa562d into release-0.3.25 (an installer started under the app's job runner re-launches itself as a one-shot scheduled task outside the job's process tree, so the engine's kill_tree on quit cannot end it between PrepareToInstall and the copy; the 0.3.24 take 2 class on PC 2; known-failed first)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 10:04:21 +00:00
igneum-labs
05aa562da9 installer-stop-check rule 6: the /Create pattern matches the installer's own line (the schtasks command is built in a variable); self-test green on the tree, known-failed on the shape without the detach
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 10:01:25 +00:00
igneum-labs
bdc9a49425 0.3.25: an installer started by the app's job runner detaches itself from the job's process tree (PC 2, 0.3.24 take 2, 8 October 2026, 09:24Z: the stop step ended the host and quit the engine, the engine's job runner ended the job's whole process tree on its way out (src/jobrun.rs kill_tree, taskkill /T) and the installer, the job script's child, died between PrepareToInstall and the copy: every exe still 0.3.21, install-running.flag left behind, no ssDone, no DeinitializeSetup). Igneum-Miner.iss: under a job (IGNEUM_JOB_ID set, no /IGDETACHED=1) InitializeSetup copies the installer to <localappdata>\igneum\app\updates\, registers and runs a one-shot scheduled task (a child of the Task Scheduler, outside the tree) with the same switches plus /IGDETACHED=1 and /LOG=install-<v>-detached.log, and exits before any marker or stop step; the detached run installs and deletes its task at ssDone; if the detached start fails it installs in place and says so in the log. The job's proof is the --version wait and the detached log, not this process's exit code (1). installer-stop-check rule 6 reads the path, the order (InitializeSetup first) and Inno's declare-before-use (RemoveDetachTask above CurStepChanged); self-test known-failed on 87d8862d's installer
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 10:00:44 +00:00
igneum-labs
87d8862d53 0.3.25: host.sha256 in the gate's line shape (the sha alone, the note as a comment line above it; the one-line form was not read by host-gate.py)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 09:53:33 +00:00
igneum-labs
6f444d14cd Ember Tune tiers: the class flip on the table (tiers-class-25, 0.3.25; the Counter ASIC coordinator's order of 10:4x BST, 8 October 2026, after the sweep found a power-capped A4000 reading class v5 17 percent under v4). The card's stored tiers carry the class they were measured under (tiers_class) and the card runs program_class; when they differ the engine re-runs the search within ten minutes (tiers_remeasure_at). The table then reads "re-measuring for class v5" on every button with the start minute ("Re-measuring for class v5, started 12:54; the class v4 points are out of date", or "queued (within ten minutes of the crossing)") and never the v4 watts as current; the tier in force stays marked; the strip's sentence names the crossing and the cards re-measuring; the fleet buttons read the re-measure when nothing else is measured; a flipped card counts as not measured. The knee note under the table when the measured loss at the same lock (knee_loss_pct) is over 2 percent: "The knee is being re-found under class v5: 5.2% less rate at the same lock than under class v4."; 2 or under, nothing. View.classFlip, minuteOf, kneeNote; the rows re-render on the four fields. Mock scenario tiers-flip. Test known-failed first on build-2 (the v4 tiers stayed on the buttons after the flip on 290d4e1d), then 74 green. Reads the hash lane's class-flip fields in the proposed shape (tiers_class, program_class, tiers_remeasure_at, knee_loss_pct).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 09:50:43 +00:00
igneum-labs
69d15f3f5f 0.3.25: the Windows node-source pin moves to e0644958 (7bd2940f plus proving_fee_ceiling_activation_daa 82,800 in the Devnet 3 object; digest 1b37cb9d; the 0.3.25 pin candidate)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 09:49:18 +00:00
igneum-labs
b5b69ad5e4 0.3.25: the Windows host sha256 bc8d4f79 (Igneum Miner.exe from kit c68aea33 on PC 1, MSVC, 10:37 BST)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 09:40:27 +00:00
igneum-labs
c68aea339c 0.3.25: the Windows node-source pin moves to 7bd2940f (c6629572 plus the proof-pool reannounce, nothing consensus; digest cc902690 unchanged)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 09:31:06 +00:00
igneum-labs
58c80eb751 0.3.25: the Windows node-source pin moves to c6629572 (the 0.3.25 node line: keygen and the fee ceiling switch coded; Devnet 3 digest cc902690 unchanged)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 09:26:06 +00:00
igneum-labs
0e99664283 Merge tiers-25 290d4e1d into release-0.3.25 (the three-tier Ember Tune, both halves: the tier buttons with rate, watts and the daily saving on the Cards strip, the Settings card and each panel; sweep on at Balanced from install)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 09:22:50 +00:00
igneum-labs
bf3eefb3c3 Merge amd-clock-25 2ab55388 into release-0.3.25 (the integrated Radeon's dash-only tune line reads not available; the 9070 XT's real line gives the knob)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 09:20:30 +00:00
igneum-labs
62a666853f 0.3.24 installer: drop the unused Age: TDateTime var that stops ISCC (the install-close-23 9b4a4324 fix, which release-0.3.24 had merged before)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
(cherry picked from commit 857925b9e9)
2026-10-08 09:18:37 +00:00
igneum-labs
290d4e1d03 Merge ember-tiers-25 04e5b25a into tiers-25 (the engine half: tiers[], tier, tier_note, tier_at, settings.tune_tier, POST /api/tune/tier, sweep on at balanced from install)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 09:14:20 +00:00
igneum-labs
596c4f3827 Ember Tune: the three tiers, the UI half (tiers-25, 0.3.25; main's order of 8 October 2026 after the project lead's word that the settings must give a miner everything they need; the project lead's definition: Ember tunes a card once and the tiers are rows of that search, efficiency = the best MH/W row, balanced = the best MH/W row within 1% of the top rate and the default from install, max = the top-rate row). The Cards strip and the Settings Tuning card carry three tier buttons from View.fleetTiers: the name, the fleet's rate and watts at that tier, the saving against stock in watts and money a day ("Balanced / 202.9 MH/s · 622 W / saves 188 W, £1.26 a day"), the one in force marked; under them the one sentence (View.tierSentence: on at Balanced before the first tune, "Balanced on 2 cards, tuned 1 h ago · next check 15 Oct", off with the tiers still one tap, measuring, no lever), the electricity figure (View.priceFigure: the set price, else 0.25 in the currency in force named as the default) with the measured count, and the rule ("Ember never locks below the knee by itself. Going lower is your choice."). Each card's panel carries its own three tiers with rate, watts, MH/W and saving (View.tierSet), the lock in words ("locked at 1950 MHz, 372 W; stock 450 W"), the note for a card not yet measured or measuring, and a card with no lever shows one tier, "Stock", with its numbers and the reason; a tap applies the known row at once through POST api/tune/tier (fleet or one card; an engine before the route falls back to the goal route and says the tiers need the 0.3.25 engine). The per-card tier is wired, the "needs the next update" text is gone. Reads the hash lane's fields (ember-tiers-25: tiers[], tier, tier_note, tier_at, settings.tune_tier). Tests known-failed first on build-2 (V.tierSet, fleetTiers, tierSentence not functions), then 73 green; mock scenarios tiers, tiers-first, tiers-mac; ?tune=tuned carries the tiers; captures on build-2.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 09:14:19 +00:00
igneum-labs
ddb13210f0 Merge ember-tiers-25 04e5b25a into release-0.3.25 (the three-tier Ember Tune, the engine half: the tier fields and the apply Cmd)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 09:14:10 +00:00
igneum-labs
ef45ab926d Merge amd-clock-25 922da9b7 into release-0.3.25 (the AMD core-clock and power-cap knob through ADLX manual tuning in the telemetry tool; the 9070 XT grid playbook)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 09:13:59 +00:00
igneum-labs
533944897a 0.3.25: version strings first (rule 15; the six places), the tree after 0.3.24's cut: the AMD core-clock and power-cap knob, the hash text fixes, the Intel rotate-fold kit, the three-tier Ember Tune, keygen and the fee ceiling on the node line
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 09:13:58 +00:00
igneum-labs
2ab55388e7 0.3.25 AMD knob: a tune line with no ranges is "not available (no tuning interface)", from PC 1's read-back of igneum-gpu-telemetry 1d8e055d (8 October 2026, 09:07Z): the integrated Radeon answers gmax - gmax_range - - plimit - plimit_range - - factory 0 ok, every field a dash (-1 after the parser), which amd_knob read as an offset knob with a one-MHz ladder and a 99 percent power range (known-failed first). The RX 9070 XT's line (gmax 0 gmax_range -500 1000 plimit 0 plimit_range -30 10 factory 1 ok) and its sample (gclk_mhz 3292 under load, plimit_pct 100, gmax_mhz 0) are the test's second half: the knob reads stock 3,292 MHz, the ladder 3192 down to 2792, the power range 70 to 110 percent, the apply sending offsets. Tests: ember::tests::the_amd_knob_reports_not_available_with_its_reason_and_sets_nothing (the integrated line added), engine::tests::pc1s_two_tune_lines_give_one_refusal_and_one_knob
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 09:13:22 +00:00
igneum-labs
04e5b25a5d tiers test: 123.05 formats as 123.0 (the binary value sits under the half)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 09:12:20 +00:00
igneum-labs
087eb65d58 Ember Tune tiers (engine half, 0.3.25): the three measured rows of the card's own search as card-state fields (tiers, tier, tier_note, tier_at; efficiency = best MH/W outright, balanced = best MH/W within 1 percent of the top rate, max = the top-rate row, source measured or stock, nothing interpolated), the fleet tier setting (balanced from install, sweep on), Cmd::TuneTier and POST /api/tune/tier through the cap and lock path with no re-search, an automatic tune lands on the tier's row, the first-run strip line, a no-lever card's one stock tier with its reason; tests on the 5090 and 5080 curves of 7 to 8 October
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 09:11:20 +00:00
igneum-labs
922da9b789 0.3.25: relay/playbooks/ca3-pc1-amd-grid.ps1, the RX 9070 XT's first measured grid on the AMD knob by job, under the installed app (0.3.20 to 0.3.24 have no AMD knob in the engine), driving the rebuilt igneum-gpu-telemetry.exe directly: the tune line names the card's ordinal and ranges, each point sets the max-clock offset then the power-limit offset (refusals are rows marked refused), holds 75 s with the first half settling, reads the app's own hash_now for the card and the tool's watts and clock in force, prints RESULT GRID row lines, resets the card at the end and names the best point against stock. One card at a time, the NVIDIA cards untouched, never quits, pauses or resumes the app and never starts its tune
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 08:53:27 +00:00
igneum-labs
f0c12e22a6 0.3.24: packaging/windows/host.sha256 takes PC 1's MSVC 0.3.24 window host 0e241c94 (the kit at 736d8e98)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 08:53:20 +00:00
igneum-labs
00960323b2 0.3.25: the AMD core-clock and power-cap knob for Ember Tune (main's order of 8 October 2026: PC 1's RX 9070 XT measured 18.9 MH/s at 202 W and stopped, "no knob on AMD"; the card is latency-bound on the whole class v4 ladder, so a core-clock cap is the lever as on NVIDIA). Two findings behind the stop: the app's AMD lever (--tune, --set-gmax, --set-plimit, --reset in igneum-gpu-telemetry: ADLX IADLXManualGraphicsTuning2 and IADLXManualPowerTuning on Windows, pp_od_clk_voltage and hwmon power1_cap on Linux) was built on 5 October (8c27350f) and never left branch opencl-rdna4-telemetry, so the kit's exe answers no tune line and every AMD tune fell to "measure only"; and the 9070 XT's max clock is an OFFSET range (gmax 0, gmax_range -500 1000), which the engine read as "no clock knob". Now: proto-opencl/gpu-telemetry.c takes 8c27350f's tool whole (a superset of the shipped one); src/ember.rs amd_knob turns the tune line and the card's stock clock under load into the knob (clock ladder stock down to stock + gmax_min, power ladder on the percent scale 100 + plimit range; absolute-MHz drivers pass through), amd_limits, amd_gmax_arg (the apply sends the offset), and "not available (<reason>)" with nothing set for no AMD device, a tune line that read an error, Linux (root under /sys, a later cut), or a stock clock not yet known; Plan::full takes a narrow range (the floor above the 45 percent rung) as the fine ladder alone in 100 MHz steps, so the 9070 XT runs 2870, 2770, 2670, 2570, 2470 under a 2,970 MHz stock, the stop rule at the knee or a faulted row, lock_result and the lock_* fields as on NVIDIA. ADLX manual tuning needs no elevation (PC 1, 5 October 2026, an unelevated job), so the no-prompt rule holds with no Power Helper verb; nothing of the engine runs elevated. engine.rs carries the whole tune line in TuneProbe.amd_tune and the card's amd_stock_mhz and amd_gmax_offset. Tests known-failed first: the_amd_knob_reports_not_available_with_its_reason_and_sets_nothing, the_9070_xt_gets_a_power_ladder_and_a_clock_ladder_from_its_stock_clock, the_9070_xt_ladder_locks_at_the_knee (a declared ladder in the card's shape, not a measurement). Owed: the kit's igneum-gpu-telemetry.exe rebuilt from this source (MSVC on a PC or build-1, the ADLX SDK at vendor/adlx beside the tree), then the first measured grid on PC 1 by job when the hash lane's queue is clear
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 08:42:15 +00:00
igneum-labs
736d8e98d2 Merge knob-24 b9f66eff into release-0.3.24 (the core-clock knob's display: the lock against the unlocked row on the card row, the Ember panel's lock line and the knee, the rule sentence)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 08:38:14 +00:00
igneum-labs
674c4023a9 0.3.24: the Windows node-source pin moves to 5b673577 (the v5 floor cut from the 10:45 BST minute: DAA 68,400, epoch 19)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 08:35:17 +00:00
igneum-labs
b9f66eff48 Ember Tune: the core-clock knob's display (knob-24, 0.3.24; the hash lane's engine tip 8bb0e288 on release-0.3.24, the shipper's line of 7 October 2026): the card row and the Ember panel read the card's lock_* fields. The row's tune line carries the lock against the unlocked row at the same cap ("the lock: 112 W less for 1.3% of rate, knee at 1200 MHz"; "no rate lost" when nothing was lost; "clock unlocked, the knee came at 2472 MHz" when the first lock step was already past it) and, while the clock ladder runs, the search step inside the tune's ("locking clocks: step 4 of 9 · about 7 min left"). The panel adds a lock line (the measured point, the unlocked row, the knee in words: the rate fell, a hash mismatch with the clocks reset, or the floor with no knee), the rule the knob keeps (Ember never locks the clock below the knee by itself; going lower is the user's choice) and the knee as a dashed point on the curve with its sentence in the note; "no lever" names a card without a clock lock; a build without the fields shows nothing new. View.lockWords, kneeWords and LOCK_RULE in the pure block; the rows re-render when the lock fields change (sig). The mock gains scenario=knob (the 5090 locked at 1,300 MHz with the knee at 1,200, the 4070 in the clock search) and knob-search; ?tune=tuned and ?tune=running carry the fields. view.test.mjs: the lock, the knee words, the search step, no lever, the untouched older shape (known-failed first on build-2: "V.lockWords is not a function"; then 69 green). Display only: the knob and its fields stay the engine's.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 08:32:19 +00:00
igneum-labs
e3ecd6775e ember tests: the efficient-point plan counts the knob's seven fine steps on the 5090 (1 + 6 + 7), the two features meeting on release-0.3.24
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 06:17:13 +00:00
igneum-labs
8bb0e2884e Ember Tune: the core-clock knob (0.3.24, main's order of 7 October 2026): the clock ladder continues below 45 percent in 100 MHz steps to a 20 percent floor; the search stops at the knee (the first row more than the tolerance under the cap point's rate) or on a faulted row (a rejected or mismatched hash: the fingerprint check), the best MH per watt within tolerance is the point; lock_result and the card's lock_* fields for the UI; tests known-failed first on a fake helper
ember.rs: CLOCK_FLOOR_PCT 45 -> 20 (the PC 1 passes of 7 October: the 5090's best MH/W at 1,200 to 1,300 MHz, 39 to 42 percent of 3,090, under the old floor), CLOCK_FINE_STEP_MHZ 100, Plan.clock_fine, Plan::cap_row, Plan::clock_stop_reason ("rate fell 5.2 percent at 1200 MHz", "fingerprint mismatch at 2163 MHz, clocks reset", "the floor at 700 MHz"), the stop rule in Plan::next, LockResult + lock_result (lock_mhz/mhs/w/mhw, unlocked_mhs/w, lock_note; "no lever" without a clock maximum). state.rs: CardState lock_mhz, lock_mhs, lock_w, lock_mhw, unlocked_mhs, unlocked_w, lock_step, lock_steps, lock_at, lock_note. engine.rs: sweep_finish fills them (Baseline: "no lever" on Apple or without a maximum clock), the progress tick fills lock_step/lock_steps while a clock step runs. Tests: the ladder to the floor (2,781 .. 1,390, 1,300 .. 700), the knee at 1 and 1.5 percent on the measured 5090 rows (1,854 and 1,300 as the points), a Faulted clock row ends the search and the note says so, and the Run-level fake helper: a mismatch during 2,163's hold -> the row Faulted, no next step, the final Apply is the chosen 2,472 (the reset), Finished; the existing full-plan test updated to the stop rule. The 18 Ember tests green on box 2.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
(cherry picked from commit a0751feb43)
2026-10-08 06:14:47 +00:00
igneum-labs
7656e22080 0.3.24: the Windows node-source pin moves to dfbd1e10 (the v5 floor cut from the named move minute 02:00 BST: DAA 39,600, epoch 11)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 23:55:29 +00:00
igneum-labs
95c0e9d34f 0.3.24: the Windows node-source pin moves to c9e385eb (the v5 floor re-cut to DAA 32,400, epoch 9; the 28,800 floor lost to the clock)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 22:33:14 +00:00
igneum-labs
6c8df8fcf2 Merge power-helper-24 5a8bad66 into release-0.3.24 (a deferred install takes the task's unattended form through the registered helper itself, no click; the S4U proof and reprobe playbooks)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 22:08:49 +00:00
igneum-labs
5a8bad665c 0.3.24: a job's install takes the Power Helper's unattended form through the registered helper itself (PC 2, 7 October 2026: the deferred rule left every new right to "the next interactive start", which on a PC with nobody at the desk never comes, so an update by job could never take the S4U form without a click). rights::install, in the deferred branch: when every missing right is one the registered helper can take (HELPER_TAKEABLE = power-helper-task@unattended) it starts the task, waits for the heartbeat, writes "<seq> reregister" and waits 20 s for the helper's own "reregister ok" line (the helper re-registers from the running build's script, now S4U + Highest, elevated, no prompt), then records the right in the manifest; anything else stays deferred as before. Playbooks: pc2-s4u-proof.ps1 (unelevated: an S4U probe task started from the job's session, read by stamp file, LastTaskResult and LastRunTime, then unregistered; the real task read only) and pc1-helper-reprobe.ps1 (installed version, heartbeat first, one dev line, the log line within 15 s: answers or not). Test known-failed first: a_job_install_takes_the_task_form_through_the_registered_helper_and_defers_the_rest
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 22:06:10 +00:00
igneum-labs
38b28841d2 0.3.24: the Windows node-source pin moves to 47b9b229 (the 0.3.24 node pin: the class v5 object by height on Devnet 3, the chain id at the v5 floor, the testnet re-cut at 18 decimals with the final message)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 22:04:35 +00:00
igneum-labs
51401e52b1 Merge power-helper-24 f42ebbd7 into release-0.3.24 (the engine never runs an elevated helper of its own on Windows; the task registered S4U with the right power-helper-task@unattended)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 22:02:08 +00:00
igneum-labs
f42ebbd762 0.3.24 Power Helper (main's two orders, 7 October 2026, PC 1): (1) the engine never runs an elevated helper of its own on Windows. The tune's legacy branch (helper.ps1 written into the sweep folder and run through the administrator prompt) and the cap's elevated step (register-power-task.ps1 plus ELEVATE through the window host) are deleted; helper_route decides Task, Unix or Unavailable, and a missing task is the one event "power control: helper not available (the Igneum Power Helper task is not registered, or its exe is gone): run the installer's rights step" with no script, no process and no prompt; the tune's task path waits for the heartbeat before its dev line. The Windows helper script in sweep.rs goes with the branch. (2) The task is registered to run whether or not a user is logged on (-LogonType S4U, RunLevel Highest, the user's own token, no stored password), so a start from a job's session or the engine's own tune is accepted; a new right id power-helper-task@unattended makes a 0.3.23 install take the form once at the update. (3) The helper logs "cmd.txt changed (N lines) but nothing to run: ..." when a changed file yields nothing (PC 1's 0.3.20 silence read in its own log). Tests known-failed first: the_engine_never_runs_an_elevated_helper_of_its_own_on_windows (the literals grepped gone, the route, event before return before any file), the_registration_is_per_user_highest_no_trigger_fixed_action (S4U, Interactive gone), the_unattended_task_form_is_one_new_right_for_a_0_3_23_install, a_two_line_rewrite_over_a_two_line_start_runs_and_a_silent_change_is_logged. Owed to the Windows gate: the S4U registration taken through the scheduler on a box and PC 2 by job (PC 2 is under stand-down tonight)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 21:59:49 +00:00
igneum-labs
6789b4192e Merge power-helper-24 2a9f4876 into release-0.3.24 (the Power Helper logs its facts at start and its exit reason; the engine names a helper that is not running; the cap and remove lines written after the heartbeat)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 21:53:15 +00:00
igneum-labs
1cdc5dd8ab publish-public.sh: the public manifest leaves the signed interface entry out (the apps read it from the token manifest; the --public arm had refused every publish since interface 1.0.1 because the entry carried the token)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 21:49:03 +00:00