Commit graph

325 commits

Author SHA1 Message Date
igneum-labs
1a4d729fed Merge remote-tracking branch 'origin/master' into release-0.3.5 2026-10-05 01:14:23 +00:00
igneum-labs
d0936a5f5f release-0.3.5 plan: round-3 binaries from fork 2e75a238 (build-info fix), header igneumd/2.1.0-2e75a238 confirmed
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 01:14:05 +00:00
igneum-labs
bb5360befb Lock: three run slots for functional runs; a measurement waits for all of them
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 01:10:17 +00:00
igneum-labs
5d6c7b2842 release-0.3.5: master 52096a0 and bugfix-collect-exit merged, site rebuilt, plan rows (round-3 hashes to follow)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 01:04:17 +00:00
igneum-labs
4b3734ed1e Merge remote-tracking branch 'origin/bugfix-collect-exit' into release-0.3.5 2026-10-05 01:02:23 +00:00
igneum-labs
3888870462 Merge remote-tracking branch 'origin/master' into release-0.3.5 2026-10-05 01:02:23 +00:00
igneum-labs
52096a02fe bugs.md: the stopped detector's second live firing (a plain quit)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 00:18:05 +00:00
igneum-labs
ecdf639007 release-0.3.5 plan: final binaries from fork 6ef230d5 with hashes, every test result
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 23:29:59 +00:00
igneum-labs
1e9bb15b11 release-0.3.5 plan: the second dev-fee merge
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 23:17:07 +00:00
igneum-labs
783971f967 Merge origin/dev-fee (56437d3) into release-0.3.5
bench-log.md: both appended entries kept; the generated site pages rebuilt with node site/build.mjs.
2026-10-04 23:16:45 +00:00
igneum-labs
56437d3143 Site: bench page and journey rebuilt with the dev-fee entry
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 23:15:41 +00:00
igneum-labs
e80e8f870e Dev fee: the test-network measurement in the bench log; run.mjs waits for the nodes and edits the override as text
9 fee blocks in the 785 blocks of the two fee-paying miners (1.15%, expected 1 in 100 templates), the miners' fee
counters equal the chain's count on both nodes, the control miner at --dev-fee 0 paid nothing.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 23:15:27 +00:00
igneum-labs
ecc4832d59 release-0.3.5 plan: dev-fee and miner-reliability merged on both repos, fork branch and build table (hashes of the final round to follow)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 23:04:03 +00:00
igneum-labs
9f4f0214bc Merge origin/miner-reliability into release-0.3.5
Conflicts resolved keeping both: engine.rs carries the sweep state (miner-eff) and the node watchdog (reliability);
the STATUS line goes through watchdog::parse_status and still feeds the sweep's rate sample; main.rs declares both
modules; bench-log.md keeps both entries. site/build.mjs keeps master's partial-injected pages and adds the /miners
bench table through the same page() with active: 'miners'; the Miners link is in site/partials/nav.html; sitemap
gains /miners; every generated page rebuilt with node site/build.mjs.
2026-10-04 22:25:10 +00:00
igneum-labs
f0ba794194 Site: journey feed picks up the reliability measurement entry
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 22:22:39 +00:00
igneum-labs
77d1534107 Reliability measured: miner guards and the app watchdog on private test networks; M26, M27, X21 fixed in the ledger
docs/bench-log.md: the fake-worker measurements (slow start one trip and 2.0 s restart, fake-fast guard in under
0.1 s, exit 43 at 8.8 s, CPU re-check stop at 0.5 s, stall guard at 60.1 s with STATUS lines through the silence,
one prepare per epoch with refused retries held; app: zero-rate restart at 79.6 s and faulted at 75.4 s on the
repeat, no-status restart at 90.4 s, silent node restarted at 150.7 s and synced 7.2 s later; no double restart on
the miner's own worker restart). Two defects the harness found are named with their fork commits.
docs/fud-ledger.md and the round-4 review table: M26, M27, X21 Fixed with the commits.
engine.rs: the miner's restart note no longer hides the fault reason on the card.
tools/reliability: the harness matches the miner's stderr lines where they are printed there.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 22:22:16 +00:00
igneum-labs
abe0ef19e0 Merge remote-tracking branch 'origin/master' into release-0.3.5 2026-10-04 21:50:27 +00:00
igneum-labs
00da18216d site: rebuilt after the dev-fee merge (node site/build.mjs)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 21:50:11 +00:00
igneum-labs
537cec4452 Merge origin/dev-fee into release-0.3.5
Conflicts resolved keeping both: Settings and SettingsState carry the sweep fields (miner-eff) and dev_fee /
fee_total (dev-fee); the engine's settings snapshot sets both and the DevFeeState line stays.
2026-10-04 21:48:04 +00:00
igneum-labs
23124efc40 bugs.md: the collect-exit branch rebased and fully tested
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 21:47:22 +00:00
igneum-labs
9e11251770 Igneum Miner jobs: a collect job fails when its command exits non-zero (collect_done, unit test); collect-pc1-board3 had reported done (exit 0) over command exit Some(1)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 21:46:56 +00:00
igneum-labs
b4dc4e982b Miner dev fee: app switch and UI line, HiveOS package, Linux worker cross-build, docs and public text
Decision of 4 October 2026 (evening): the Igneum Miner software takes a visible, switchable 1% dev fee, the norm
for GPU miners; the protocol stays fee-free. The miner side (--dev-fee, the 1-in-100 template counter, the audit
command) is on branch dev-fee of the node fork.

- app: settings.dev_fee (default on) passes --dev-fee 0 to igneum-miner when off; Settings shows the miner's own
  "dev fee 1% (1 block in 100) to 0x..." line next to the rewards address with a switch; the engine parses the
  miner's start line and its dev-fee block lines (fee_session, lifetime fee_total, an event per fee block)
- packaging/hive: h-manifest.conf, h-config.sh, h-run.sh, h-stats.sh, make-hive-package.sh (igneum-hive-<v>.tar.gz
  with the Linux igneumd, igneum-miner and both GPU workers), README with the Flight Sheet, selftest.sh (bash -n,
  stub binaries, the three hooks the way Hive runs them, the stats JSON parsed). Hive itself is untested
- infra/cross/build-workers-linux.sh: the NVRTC and OpenCL workers cross-compiled for Linux with zig;
  proto-opencl/cl_dynamic.h gains the Linux dlopen branch (libOpenCL.so.1)
- tools/dev-fee/run.mjs: the fee-block test network (two nodes on 29900+, three CPU miners, payouts audit)
- docs/design/miner-dev-fee.md (mechanism, flag, lines, the DEV_FEE_ADDRESS placeholder and the devnet address),
  docs/fud-ledger.md E18 and the E5/L9 status line, litepaper "What a miner's hour looks like" paragraph, homepage
  miner section note

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 21:46:41 +00:00
igneum-labs
ef7968b08f release-0.3.5 plan: master 44a7bcc merged (bugs.md only)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 21:38:40 +00:00
igneum-labs
cd7729908d Merge remote-tracking branch 'origin/master' into release-0.3.5 2026-10-04 21:38:26 +00:00
igneum-labs
92a72cb203 docs/plans/release-0.3.5.md: the overnight merge, tests, the morning cut and the Windows hand installs
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 21:37:48 +00:00
igneum-labs
44a7bcc6dd bugs.md: the memo row's evidence corrected (PC 2's case), the misleading approval wording on Windows
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 21:36:53 +00:00
igneum-labs
a3d2d225f6 Merge remote-tracking branch 'origin/master' into release-0.3.5 2026-10-04 21:35:05 +00:00
igneum-labs
910a427171 Merge origin/build-job into release-0.3.5
Conflict resolved: publish-jobs.sh keeps master's verify command and --tries (the retrying live check) alongside the
build kind's arguments; the usage range covers the merged header.
2026-10-04 21:32:48 +00:00
igneum-labs
4377ac1ef4 Merge origin/miner-perf into release-0.3.5
Conflicts resolved: state.rs keeps both the sweep fields (miner-eff) and the race fields (miner-perf); bench-log.md
keeps both appended entries; publish-manifest.sh keeps master's --override implementation (5ef5c75, the "every
height switch" rule, --verify-only, --tries, the retrying live check) and adds miner-perf's --tuning / --no-tuning
with the carry-over of consensus.override and tuning from the current manifest. One --override case, one parser.
2026-10-04 21:31:26 +00:00
igneum-labs
1def4d9306 bugs.md: the OTA memo row
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 21:29:19 +00:00
igneum-labs
038ab9389b Merge remote-tracking branch 'origin/app-ui' into release-0.3.5
# Conflicts:
#	app/igneum-app/ui/app.css
2026-10-04 21:28:59 +00:00
igneum-labs
df61a116ad Console: the last OTA state per machine and app run is remembered (console_ota_memo) and shown when the upload's 256 KiB tail no longer holds it
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 21:27:59 +00:00
igneum-labs
15e3fccebd Console: the app log's parsed tail is 400 KB so a stuck update's lines stay on the card (PC 1's 'installing' scrolled out of 60 KB in 30 min)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 21:26:05 +00:00
igneum-labs
c008cc5ed2 Merge remote-tracking branch 'origin/miner-eff' into release-0.3.5 2026-10-04 21:25:44 +00:00
igneum-labs
02f3226ec8 OTA (Windows): start the update helper with CREATE_NO_WINDOW only; DETACHED_PROCESS killed PowerShell before the script ran
The first Windows update over the air (0.3.3 to 0.3.4) sat on 'the installer is starting' with no helper log on
PC 2. The helper launched by a remote job with the same arguments ran at once. Fix in 0.3.5; the Windows machines
take 0.3.5 by hand once more.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 21:22:31 +00:00
igneum-labs
d4480ff6e2 READMEs: the console's Machines card as it is now (stale, stopped, OTA state, vendors), the parser tests, autosync's restart key and check mode, the observer's dependence on the app's node for proving
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 21:14:45 +00:00
igneum-labs
d98ce834d0 bugs.md: Sam's Mac incident closed with the helper evidence
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 21:13:52 +00:00
igneum-labs
d96821933d Bench log: the fairness re-check of the variant race (jobs 0.17 to 2.8 s during a race, 36 s before)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 21:12:40 +00:00
igneum-labs
8ecffce20c bugs.md: build-info worktree commit fix (fork branch), node provenance and observer EVM leads
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 21:12:29 +00:00
igneum-labs
a990cc41c5 Merge branch 'master' of https://github.com/igneum-network/igneum 2026-10-04 20:59:33 +00:00
igneum-labs
e8921eb751 Site: polish merged (one header and footer from partials, litepaper router, self-hosted fonts, 404, cache headers); light client derives the vote key hash when the feed omits it
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 20:59:28 +00:00
igneum-labs
382643826b bugs.md: Sam's Mac 0.3.4 incident (open), the helper's getcwd warning, the 0.3.3 plist
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 20:58:21 +00:00
igneum-labs
a9aa37d1c0 Site polish: one header and footer from partials on every page, litepaper section router fixed, self-hosted fonts, 404 page, live page idle cost
Header: site/partials/nav.html, head.html, footer.html, injected by site/build.mjs between markers in every page (the bench template too) with the active link marked; the master mark in its black square, the wordmark, Litepaper, Live devnet, Engineering log, Evidence, GitHub and the miner button, in that order everywhere; one menu script (closes on a link, a tap outside, Escape with focus back on the button, a resize past 900 px); a skip link; one focus ring and one reduced-motion rule.

Litepaper: the hash routed by a click delegate and popstate instead of the browser's fragment jump. Root cause of the tabs fault: show() scrolled to the top of the article, never to the section; in whole-paper mode the fragment jump landed on the section and the smooth scroll then dragged the reader back to the Abstract; in one-section mode a deep link scrolled while the section was still display:none and landed on the cover. Now: every section and all 29 subsection headings reachable by URL in both modes, scroll-margin from the measured bar height (nav, plus the contents row on a phone), focus moved to the heading, a re-aim after a late font batch, mode buttons stacked in the sidebar.

Pages: homepage headline capped at 9cqw so it is two lines at 390 and 1440 (was four with "fire." alone), journey inlined by the build (no fetch, no shift), dates as "4 Oct 2026"; live page legend no longer forces 420 px of width at 390, the hash-rate unit as small mono, idle redraw at 30/s with a 1.5x backing store (0.7 to 1.2% of one core idle in Chrome for Testing, taken under load), the proving line wraps on a phone; evidence sort headings are buttons, chips carry aria-pressed, a scroll hint under 1,140 px; bench contents in a sticky scroll box, og.png?v=3; 404.html; sitemap with /evidence; vercel.json caches fonts a year and images a day.

Fonts: eight latin woff2 files in site/fonts (139 KB for all, 118 KB a typical page), preloaded first-paint faces, fallback faces with size-adjust and ascent overrides from the font tables; every page lost its render-blocking fonts.googleapis.com stylesheet and the gstatic origin.

HTML per page before to after (gzip): / 17,265 to 21,810 B; /litepaper 20,556 to 24,957; /live 15,640 to 17,777; /evidence 18,899 to 22,493; /bench 94,723 to 98,289. Third-party requests before to after: 3 to 1 (jsdelivr, light client), 1 to 0, 3 to 0, 1 to 0, 1 to 0. Lighthouse before and after is queued under the measure lock (held by reliability runs since 19:16Z, load average 258) and recorded in docs/design/site-polish-2026-10-04.md when it runs.

Checks: node site/build.mjs, tools/ci/link-check.mjs (246 links, 0 broken), identity grep, and a Chrome for Testing run over every page at 390, 768 and 1440 (no overflow, no console errors, menu, router in both modes, deep links on reload, keyboard).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 20:57:20 +00:00
igneum-labs
3ec7ea063d bugs.md: the stopped detector fired live on Sam's Mac's update quit
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 20:48:52 +00:00
igneum-labs
62845c024f Console: OTA version captured as major.minor.patch in every update line (the installing line carried a colon)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 20:47:28 +00:00
igneum-labs
be0ac8f5b7 Console: every update line the app logs sets the OTA state, newest wins (the Mac's card said '0.3.3 is current' with 0.3.4 staged); test
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 20:46:17 +00:00
igneum-labs
fadd3dbd8f Console: a finished update shows as the OTA state ('update check: X is current'), not 'none' (PC 2 on 0.3.4); test
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 20:43:51 +00:00
igneum-labs
3993d23fd8 Miner efficiency sweep: hash per watt per NVIDIA card (lever 3)
src/sweep.rs (new): the cap steps 100% to 50% in 10% steps clamped to the card's limits, per-step rows (mean draw
from nvidia-smi power.draw, mean worker interval rate), the choice (best MH/W, ties to the higher rate then the lower
cap), the nvidia-smi power parser, a state machine on an explicit clock (15 s settle, 60 s hold, 30 s cap readback
limit), the elevated helper scripts (one administrator prompt per sweep: a command file polled by one elevated
process, self-restoring after 20 idle minutes), the unsupported reasons (Apple silicon, AMD). 9 unit tests with
PC 1's recorded RTX 5090 numbers (575 W default, 460 W cap, 290 W draw, memory temperature [N/A]).

Engine: scheduler (once after install, then weekly; one card at a time; only while the card mines, after 120 s
steady, never under a remote job hold, a pause, or inside 600 s of the hour boundary), the cap-mode probe (direct
when the engine runs elevated, else the helper), abort on any fault (card leaves mining, worker error, GPU 90 C,
job, pause, quit) with the cap restored, the chosen cap held and recorded, SWEEP table lines in the app log,
--sweep mode (sweep every supported card, print the table on stdout, leave the caps, quit). Cap floor 50% (was 60).
A readback that matches the asked cap now counts as applied (PC 1 showed "cap NOT applied" for hours at 460 W).

Dashboard: live eff MH/W on each tile, the sweep line (phase, last result, or why unsupported), Sweep now / Stop /
Unpin, "pinned" and "chosen by the sweep" on the cap line, the Settings toggle, the cards-page note, slider min 50.
A cap moved by hand pins the card: the sweep records but does not change it.

PC 1 measurement: relay/playbooks/sweep-5090.ps1 (a run job, elevated, miners stopped; a second engine with --sweep
in a scratch data folder, RESULT SWEEP lines) and docs/plans/miner-eff.md with the publish command. Not published.
Untested on a card.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 20:38:07 +00:00
igneum-labs
ee26e882aa Variant race: bench-log entry (Metal on the M5 Max, 14 variants, two programs, serve check), the base-only short-circuit, the PC 1 zip's hash in the plan
Under emulation (or --race with no other name) the race no longer times base alone: emu/test.sh passes again
(9 source checks, the serve protocol with prepare, swap and self-heal, 17 sampled hashes equal to igneum-pow).
Mac table: g256 (256 threads per threadgroup) +17.3% and +21.2% over the shipped 32-thread groups on two
programs, with the live app's worker sharing the GPU; the serve check found the unfair mutex (fixed in 0845279).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 20:37:27 +00:00
igneum-labs
def1a27cd3 bugs.md: restart proof for the observer diagnostic; Sam's Mac second silence is not a quit
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 20:31:44 +00:00