Igneum: the GPU-mined zkEVM L1. Node, miner, app, spec and site.
Find a file
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
.claude/agents Igneum: design docs, Metal lottery-hash prototype, CUDA test pack, finality simulation 2026-10-03 15:06:01 +00:00
.github/workflows Bug hunt: console cards for other/intel workers and a stale mark on old STATUS lines (relay/lib/parse.mjs + test in CI); publish-jobs verifies the live file with retries and named reasons, a verify command, a failed deploy stops, a collect command without $_ is refused; the dl token masked in printed URLs; docs/bugs.md 2026-10-04 19:15:05 +00:00
app Igneum Miner jobs: WSL as root by default, the shipped wsl2\bin prover run fixture by fixture (no cargo, no setup), account context logged at every job start, dashboard note when the app runs elevated or as another account 2026-10-04 17:14:00 +00:00
brand Share images: the master mark replaces the ringed coin on every og image; og.png (was a 404) added; ?v=2 cache bust 2026-10-04 17:39:05 +00:00
docs Site polish: one header and footer from partials on every page, litepaper section router fixed, self-hosted fonts, 404 page, live page idle cost 2026-10-04 20:57:20 +00:00
igneum-census Lottery hash: generator version 2 (16 load slots, fresh sources, acceptance rule), every vector re-cut, packs regenerated, three workers re-checked, 20,000-program census 2026-10-04 07:52:40 +00:00
igneum-pow Lottery hash: generator version 2 (16 load slots, fresh sources, acceptance rule), every vector re-cut, packs regenerated, three workers re-checked, 20,000-program census 2026-10-04 07:52:40 +00:00
infra Difficulty v2: Hetzner rehearsal passed (12 nodes, one chain through N + 600), binaries for every platform, the devnet rollout plan 2026-10-04 15:19:31 +00:00
packaging Bug hunt: console cards for other/intel workers and a stale mark on old STATUS lines (relay/lib/parse.mjs + test in CI); publish-jobs verifies the live file with retries and named reasons, a verify command, a failed deploy stops, a collect command without $_ is refused; the dl token masked in printed URLs; docs/bugs.md 2026-10-04 19:15:05 +00:00
proto-cuda Workers answer a job they have no pair for with a need line; the miner prepares the current pair (PC 2 stuck on the previous epoch) 2026-10-04 13:32:58 +00:00
proto-metal Workers: compile-ahead hot swap in the CUDA, OpenCL and Metal hosts, generator v2 port in the Metal host; windows-miner one worker per card; site bench and journey regenerated 2026-10-04 07:55:50 +00:00
proto-opencl Workers answer a job they have no pair for with a need line; the miner prepares the current pair (PC 2 stuck on the previous epoch) 2026-10-04 13:32:58 +00:00
proto-vdf proto-vdf: Wesolowski VDF between the certified checkpoint and the program seed 2026-10-03 16:39:01 +00:00
proving Jobs reader: the app's closing report counts as final and error lines are collected; prove-shard.sh fails the job when a stage fails 2026-10-04 18:59:13 +00:00
relay Bug hunt: console cards for other/intel workers and a stale mark on old STATUS lines (relay/lib/parse.mjs + test in CI); publish-jobs verifies the live file with retries and named reasons, a verify command, a failed deploy stops, a collect command without $_ is refused; the dl token masked in printed URLs; docs/bugs.md 2026-10-04 19:15:05 +00:00
sim CI identity grep: .log files get the generic scrub too; the 4 October difficulty record carried a home path (every master run red since 088b943) 2026-10-04 19:09:09 +00:00
site Site polish: one header and footer from partials on every page, litepaper section router fixed, self-hosted fonts, 404 page, live page idle cost 2026-10-04 20:57:20 +00:00
tools Bug hunt: console cards for other/intel workers and a stale mark on old STATUS lines (relay/lib/parse.mjs + test in CI); publish-jobs verifies the live file with retries and named reasons, a verify command, a failed deploy stops, a collect command without $_ is refused; the dl token masked in printed URLs; docs/bugs.md 2026-10-04 19:15:05 +00:00
.gitignore Bench log: the gfx1036 worker fault, the two Apple OpenCL soaks (no reproduction, no leak) and the injected-fault check; ignore the soak outputs 2026-10-04 11:04:54 +00:00
.vercelignore Commit identity rule and a deploy ignore file 2026-10-03 17:33:46 +00:00
CLAUDE.md Igneum: design docs, Metal lottery-hash prototype, CUDA test pack, finality simulation 2026-10-03 15:06:01 +00:00