Commit graph

477 commits

Author SHA1 Message Date
igneum-josh
c5ad5f09f4 Merge site-land-dn3 4acb736a into master on the box mirror (the site reads Devnet 3 from master; repository links on the git host; the inline-rm gate) 2026-10-07 21:50:18 +01:00
igneum-labs
71f38aeec1 Merge scrub-3 7b54e8b6 into master (gate: green on 7b54e8b6, recorded by tools/ci/pre-push.sh; landed on the box mirror under the exception declared by main: main's ruling, 7 Oct 2026 19:5x UK: the GitHub account is suspended, lanes land on the box mirror's master, the box gate stamp is the verdict; GitHub gets the fast-forward when it answers) 2026-10-07 21:46:40 +01:00
igneum-josh
73b7fe9b64 Merge site-land-dn3 d968cbb3 into master on the box mirror (the site reads Devnet 3 from master; repository links on the git host)
# Conflicts:
#	tools/ci/pre-push.sh
2026-10-07 21:43:06 +01:00
igneum-labs
7b54e8b656 Scrub: the founder list leaves the repository in every encoding; the never-push founder check decodes base64, hex and .b64 blobs too (7 October 2026, 21:4x UK)
tools/ci/founder-strings.b64 was the founder check's pattern list base64-encoded: a grep could not read it, any reader of the public host could (git.igneum.network was public from 21:26 UK; read off at 21:36). The list now lives only in a private file (~/.config/igneum/founder-strings on the Mac, /srv/discord-hooks/founder-strings on build-1 for the Discord guard; $IGNEUM_FOUNDER_STRINGS overrides) and site/forbidden-strings.txt carries no encoded copy. Readers: founder-strings-check.sh (skips with a line where the file is absent; the Mac's hook is the guard), site/scrub.mjs and launch-gates-check.mjs (the private file's patterns added where it exists), discord-hooks.mjs (three locations; the test writes a fixture list and loads the module after it), fresh-repo.sh (the private file; drops tools/ci/founder-strings.b64 from every commit; rewrites the base64 of every list regex out of every blob and scans for it).

The check's second pass (main's addition): every base64 literal of 24 characters or more, every hex literal of 24 or more and every *.b64 file is decoded and scanned, so no encoding hides a term again; the self-test plants each fixture sample in plain text, in a .b64 file, as a base64 literal and as a hex literal, each caught and named, and a tree without the list skips with its line.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 21:40:36 +01:00
igneum-josh
4acb736a5c Site on master: live reads Devnet 3 (the live-dn3 edit, cherry-picked onto master so a master deploy carries it; main 7 Oct 2026 21:2x BST, every site deploy is master only from now) and every repository link flips from github.com/igneum-network to git.igneum.network/igneum-network (the public Forgejo host, by the founder word through main at 21:2x BST; GitHub is dark). Also: the runner pool classes in remote-run.sh (two founder-name comments reworded), infra/build-server/forgejo.sh (the git host stand-up), and the gate check tools/ci/inline-rm-check.sh (no deletion inside an inline bash -c / sh -c string; main 21:33 BST; known-failed self-test first, three proving-v1 lines allow-listed by name) with the rule in tools/ci/README.md
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 21:38:41 +01:00
igneum-josh
1b71978c20 rule 15 at six places; release 0.3.22: the 0.3.22 Windows take 2 fault and the skip, the version miss's second layer, the 0.3.23 pairs
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 21:35:17 +01:00
igneum-josh
af903c9b7b tools/ci/release-version-check.sh (rule 15): a release-0.3.N branch reads 0.3.N in Cargo.toml, Cargo.lock and version.h from its first commit; self-test on the 0.3.23 shape; wired into the pre-push gate
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 21:29:07 +01:00
igneum-labs
d3afc26681 scrub: the login's pre-rename spelling out of tools/site-deploy-from-mirror.sh (landed on the mirror after the sweep)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 20:58:41 +01:00
igneum-labs
310fa49f06 The founder-strings check is the third never-push class (every push, every branch, 7 s): a site lane's branch, green-stamped before the check existed, carried the founder's name onto the mirror's master in tools/ci/scroll-width-check.mjs at 20:3x UK; the word is fixed here
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 20:52:55 +01:00
igneum-labs
a31af42494 Merge remote-tracking branch 'box/master' into scrub-2 2026-10-07 20:52:43 +01:00
igneum-josh
285b4d3574 Merge build-server 6a71028f into master on the box mirror (GitHub suspended; the box gate stands in for CI)
# Conflicts:
#	infra/build-server/remote-run.sh
2026-10-07 20:49:37 +01:00
igneum-labs
bd5ff05911 fresh-repo.sh: the surname and full-name rules are case-insensitive (dry run 3 left lower-case surnames inside grep patterns and a regex on old branches)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 20:39:04 +01:00
igneum-labs
895f40a504 fresh-repo.sh: the standing and target addresses are excluded from the personal set as fixed strings (the + in a noreply address is a quantifier under grep -E; dry run 3 read the target's own address as personal)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 20:37:35 +01:00
igneum-labs
6b559451a7 fresh-repo.sh: two filter-repo passes (the text pass first; filter-repo skips --replace-text over blobs under a --file-info-callback: two dry runs on 7 October 2026 rewrote identities and dates and no text), the founder's names and second login from the encoded list as well as the history, the target address never personal, the drop list reduced to docs/review (the ledger and its fixes file are published, decision of 5 October 2026)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 20:32:56 +01:00
igneum-labs
6dd92ec6c6 Merge scrub b5ced6e2 into master (gate: green on b5ced6e2, recorded by tools/ci/pre-push.sh; landed on the box mirror under the exception declared by main: main's ruling, 7 Oct 2026 19:5x UK: the GitHub account is suspended, lanes land on the box mirror's master, the box gate stamp is the verdict; GitHub gets the fast-forward when it answers) 2026-10-07 20:28:40 +01:00
igneum-josh
9ab30a2163 Merge site-22 6886a4be into master (gate: green on 6886a4be, recorded by tools/ci/pre-push.sh; the full gate runs in CI on this merge) 2026-10-07 20:17:32 +01:00
igneum-labs
b5ced6e2a5 Merge remote-tracking branch 'box/master' into scrub
# Conflicts:
#	CLAUDE.md
#	docs/plans/counter-asic-3-status.md
#	docs/plans/release-0.3.21.md
#	docs/plans/release-0.3.22.md
#	tools/ci/merge-to-master.sh
#	tools/ci/pre-push.sh
#	tools/ci/red-watch.mjs
2026-10-07 20:16:14 +01:00
igneum-josh
a0e0c83ad2 Merge ci-steward-2 11167290 into master (gate: green on 11167290, recorded by tools/ci/pre-push.sh; landed on the box mirror under the exception declared by main: main's ruling, 7 Oct 2026 19:5x UK: the GitHub account is suspended, lanes land on the box mirror's master, the box gate stamp is the verdict; GitHub gets the fast-forward when it answers) 2026-10-07 20:14:28 +01:00
igneum-josh
6886a4be95 Site, 7 October 2026 evening (Josh's four asks through main, one landing): (1) the bar's nav to the right: the mark and the devnet pill on the left, Mine, Network, Learn and the controls right-aligned with the same gaps and sizes, each open panel anchored under its button (the script sets --panel-left) and a panel that would run past the container aligned to its button's right edge, the phone sheet unchanged; (2) no lateral scroll: tools/ci/scroll-width-check.mjs on the gate (scrollWidth equals clientWidth on every route at 390, 768, 1024, 1280 and 1440 in both themes; only a table, code or diagram scrolls inside its own overflow-x box; self-test with a 100vw plus 20 px fixture known-failed first); (3) LG-5, the launch text: the front page leads with the three wants (hardware that stays useful, income without a cliff, a fair supply) and the live network with finality is the second screen; the litepaper's regulatory note reads "Not legal advice." alone over its eight sentences from future.md 8.3 (Josh: counsel not yet; the string "counsel is engaged" is in both forbidden-strings lists and gone from the research heading), the pay sentence stays; the journey's phase line reads Devnet 3 live, testnet next; (4) LG-1, /income: docs/analysis/income-tiers.md published as a page by tools/launch/income-page.mjs (checked on the gate against the document), listed under Learn, labels on every number, no price of IGN anywhere
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 20:12:04 +01:00
igneum-labs
111672909b Merge remote-tracking branch 'box/master' into ci-steward-2
# Conflicts:
#	tools/ci/merge-to-master.sh
#	tools/ci/pre-push.sh
2026-10-07 19:57:47 +01:00
igneum-labs
3b4b6c6396 Pre-public scrub, second pass (7 October 2026, 20:0x UK, main's rulings 2 and 4): the public tree names igneum-labs only; the public ledger generated from the full ledger
Ruling 2: every tracked text mention of the login's pre-rename spelling becomes igneum-labs (29 files); the commit identity in the scripts becomes igneum-labs <337424239+igneum-labs@users.noreply.github.com> (the same noreply id); the three scripts that hand the stored gh keyring name to gh (register.sh, fetch-ci-artifacts.sh, ship-app.mjs) read it from ~/.config/igneum/gh-user (never in the repository), default igneum-labs; fresh-repo.sh reads the login to rewrite from the encoded list's row 10; the old spelling joins the founder-strings list, so no tracked file may spell it; CLAUDE.md's GitHub paragraph rewritten. The red watcher's self-test fixtures use a neutral author.

Ruling 4: docs/ledger-public.md, one row per ledger item (id, the claim in one line, status, what was done in one line, the evidence link or the evidence in words), generated by tools/ledger/export-public.mjs from docs/fud-ledger.md: no round or status-update sections, no commit ids, no time of day, no lane, agent or branch names. 190 items. The gate runs its self-test (a fixture with a commit id, a time, a lane and a branch name comes out clean; --check fails on drift) and its --check on every merge; the founder check reads the output like every tracked file.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 19:56:08 +01:00
igneum-josh
54677f4a7d Merge attack-pass: the internal attack pass F1 to F10 before the cryptanalysis freeze (every row PASS or FIXED-AND-PASSED; the ten records and harnesses; AP-F1-1, AP-F4-1, AP-F5-1, AP-F8-1/2/3 and the two operating hazards)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

# Conflicts:
#	docs/bench-log.md
#	docs/evidence.md
2026-10-07 19:54:22 +01:00
igneum-josh
cb6d72e3f1 merge-to-master --remote <name>: land on a box mirror's master while GitHub is unreachable (the box gate stamp as the verdict, the exception named in the merge message); the CI rule binds the GitHub remote only (main's ruling, 7 October 2026, 19:5x UK)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 19:50:20 +01:00
igneum-josh
700d5de146 Merge branch 'ci-steward' into ci-steward-2 2026-10-07 19:49:47 +01:00
igneum-josh
464eb77f84 Hook: the CI rule binds a GitHub remote; a box mirror remote or a declared IGNEUM_MASTER_EXCEPTION takes the local gate, printed with the push (main's ruling, 7 October 2026, 19:5x UK: the account suspended, lanes landing on the mirror's master)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 19:49:47 +01:00
igneum-josh
8f507f3403 Site: tools/site-deploy-from-mirror.sh deploys the public site from the box mirror's master by a git-less export (the Vercel team's commit-author check blocked a worktree deploy while the GitHub account is suspended, 7 Oct 2026 19:4x BST; a .git in the deploy directory refuses the run; the project's Root Directory is site)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 19:47:00 +01:00
igneum-josh
1d09d0f348 Merge remote-tracking branch 'box/master' into live-22
# Conflicts:
#	docs/plans/release-0.3.21.md
2026-10-07 19:41:19 +01:00
igneum-josh
9b8eb23a2e Pre-public scrub, the text pass (7 October 2026, 19:5x UK): no founder name, personal login, earlier business or personal address in any tracked text file, and a gate check that keeps it so
The sweep (main's item 1): 199 tracked text files, 783 lines. The founder's full name, first name and possessive become "the founder" (sentence starts capitalised); the lowercase operating-system user name in WSL paths and commands becomes <user>; the second owner login becomes "the second owner login"; the three earlier businesses and the two other brands become "the other business", "the earlier entity", "the earlier business" and "another brand"; the Chrome profile rule names the igneum.network profile, not the profile's label. The standing commit login igneum-josh is not a founder term here: the fresh-repository step renames it in the history (docs/plans/history-rewrite.md, tools/repo/fresh-repo.sh).

The patterns never appear in plain text in the tree (a plaintext list would be the hit): tools/ci/founder-strings.b64 (perl regex, tab, a sample per row) is read by tools/ci/founder-strings-check.sh (every tracked text file, perl, known-failed first: the self-test plants each row's sample in a fixture and the hit must name the file), by tools/community/discord-hooks.mjs (the guard's founder and business rows; the test takes its fixtures from the samples) and by tools/repo/fresh-repo.sh (the business names of the rewrite rules). site/forbidden-strings.txt carries the same patterns as b64: lines, decoded case-insensitive by site/scrub.mjs and tools/ci/launch-gates-check.mjs (whose fixture now plants an encoded made-up name). The check runs in the gate's tree checks on every merge.

Not in this commit, by main's word: the 105 commit messages and 40 personal-identity commits that need the history rewrite (listed, not run), and the secrets found by gitleaks over the history (reported with owners).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 19:39:50 +01:00
igneum-josh
eb88ac2864 merge-to-master: a landed master is pushed to both box mirrors (the stale-mirror class: build-2's /srv/igneum.git master sat at 15:27's a4bca198 while GitHub carried cf7d6ccb, 7 October 2026, 18:25 UTC; three branches were cut from the stale tip)
mirror_master runs after the push to origin: one fast-forward push per mirror in IGNEUM_MIRRORS (default: the two box files' hosts at /srv/igneum.git), best effort, a line per mirror, a down or diverged mirror never fails the landing. Self-test: a bare mirror behind master is fast-forwarded; a non-fast-forward push leaves it and is reported.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 19:30:15 +01:00
igneum-josh
7365eb5629 Build boxes to near max (Josh, 7 Oct 2026 19:4x BST): the bounded class is 88 of 96 cores with -j 88 (8 reserved for release builds, the seed and the observers), the jobs rule 88 alone / 44 shared, the spill line 80; checks updated. testnet-go.md: LG-2 waived by the owner, the new gate, the seeds held armed
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 19:23:14 +01:00
igneum-josh
ee3924bcae live-22: the gate script is master's own plus the legend, shard-words and leaderboard test files (the release branch's copy had carried a line for a file master does not hold)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 19:22:23 +01:00
igneum-josh
64d6be24c8 merge-to-master.sh takes MERGE_REMOTE (default origin): the box mirror's master while GitHub is suspended, 7 October 2026
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 19:19:47 +01:00
igneum-josh
2c56be7516 /live: the shard sentence from the block's facts and the leaderboard's top ten (7 October 2026). scene/live-dag.js 2.0.6 (IgneumDag.shardWords, the one shard sentence; legend 2.0.5) synced into site/live-dag.js; the /live inspector prints it per shard and as the count line (a planned shard with no prover reads awaiting a prover with the block's age; an empty plan reads loading, excluded, not yet ordered or off the selected chain, never one fixed sentence); the weight leaderboard shows the top 10 by default with a toggle under the table (Show top 20, then Show all N with the live count, then back), the viewer's own key pinned as an extra row below the ten when it sits outside them, the table in a box of fixed height so the page below never jumps, the tag line unchanged (site/leaderboard.js carries the row logic, site/lib/leaderboard.test.mjs on the gate); tools/site-serve.mjs answers /api/live from IGNEUM_LIVE_FIXTURE for captures and tests off the database; the scene tests bind each half where it lives (site on master, app on the release branches)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 19:13:23 +01:00
igneum-josh
5bd879144a Jobs publisher: a remove refuses a job the target's latest report shows running, and any job published with --installs-app, unless --force \"<reason>\" (7 Oct 2026 18:53 BST: a removal reached PC 2 one second after its job launched a silent installer over the running app; the runner's abort ended the process tree and the app went dark); tools/ci/publish-jobs-check.sh in the gate
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 19:10:18 +01:00
igneum-josh
543aa572bc merge-to-master: an unknown CI read is waited through inside the deadline, not refused at once (7 October 2026, 18:0x UK: 500s on pushes, a 404 on a live run id, then the account suspension; the rule refuses only a verdict, and a missing verdict only at the deadline)
ci_gate: unknown prints the reason and asks again until --ci-wait runs out (CI_WAIT_SECS for the self-test). master_gate: three reads
over a minute before an unknown counts; a lasting unknown still refuses (no verdict, no merge). Self-test: a blip (unknown, then
green) merges; a lasting unknown is refused at the deadline; the same two shapes for master's read.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 18:04:22 +01:00
igneum-josh
9189aea685 Engine gate: any igneum-pow*/src/ directory pairs (the fork pairs through a paths override that may name the tree igneum-pow-amend, the archive of 017e7037; the shipper, 7 Oct 2026), the matched name printed in the line; self-test with both names
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 17:59:28 +01:00
igneum-josh
cb448b5f6d Merge remote-tracking branch 'origin/master' into ci-steward 2026-10-07 17:57:56 +01:00
igneum-josh
df002ea541 Merge remote-tracking branch 'origin/master' into build-server 2026-10-07 17:56:30 +01:00
igneum-josh
fc8064a299 Build boxes: the engine gate (igneumd and igneum-miner fetched by build-remote must carry igneum-pow/src/ paths; a commit string alone does not prove the engine: the stub-engine 21d8f454 that rejected every block on the Devnet 3 hub, 7 Oct 2026); tools/ci/engine-check.sh with its self-test in the gate
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 17:55:43 +01:00
igneum-josh
cf7d6ccbbe Merge ca3-v4-amend 874e945d into master (gate: green on 874e945d, recorded by tools/ci/pre-push.sh; the full gate runs in CI on this merge) 2026-10-07 17:45:48 +01:00
igneum-josh
874e945df7 Merge origin/master ac8ed2f1 into ca3-v4-amend (igneum-pow kept byte-identical to the frozen 017e7037 per main's stop-the-line ruling; the ledger keeps both sides) 2026-10-07 17:40:29 +01:00
igneum-josh
2098581bb8 Merge remote-tracking branch 'origin/master' into site-ui-5 2026-10-07 17:37:57 +01:00
igneum-josh
18377b3b34 CI steward (7 October 2026, 17:3x UK): master takes only CI-passed commits; every job has a budget; the watcher reads cancelled and timed-out runs; box and network checks retry once
Thirteen failure emails between 15:26 and 16:53 UK. The classes and what closes them:
- the box-locks check on a hosted runner (10 runs): closed by c3271ac3 and fa5d4596 earlier
- windows-ci's stale payload-inputs pin (3 runs): closed on master by 6996ad3f; update-return's dispatches still carry e69e8a39
- three hosted site jobs on master hung in the tree gate for over two hours (no timeout-minutes): ci.yml now carries
  site 15, changes 10, pow 60, sims 45, the overlap sweep runs under a 10-minute wall clock where GNU timeout exists, and
  tools/ci/workflow-timeouts-check.sh fails a job without a budget (self-test: a job without the key, a wrong budget)
- a branch merged with no ci run of its own (era-vdf 0e2d6b1c, 16:31 UK): master's igneum-pow suite went red and five
  docs-only merges landed green over it because their runs skip the compile job. tools/ci/ci-state.mjs reads the runs
  API through gh (a commit's newest run, master's last COMPILED run, a branch's last red); merge-to-master.sh pushes an
  unrun branch for a run, waits for a queued one printing the clock, refuses a red one and refuses any merge onto a red
  master except the declared fix (--fixes-master); the pre-push hook refuses a push to master whose commit, or whose
  merge's branch parent, has no green run on that exact sha; a feature-branch push prints the branch's previous red
  first. Self-tests with a fake gh in all three.
- ci-red.yml fires on failure, cancelled and timed_out and hands the conclusion to red-watch.mjs, whose line names the
  kind (CI red, CI cancelled, CI timed out); the self-test reads the workflow file for the three conclusions
- tools/ci/retry-once.sh: one retry before red for the box-locks check, the scene parity check and the live public API
  check (each keeps its own skip line on a runner without the resource)

GitHub's branch protection cannot be applied: the organisation is on the free plan and the repository is private (the
API answers 403, "Upgrade to GitHub Pro or make this repository public"), so the two scripts are the enforcement; the
rule is one line in CLAUDE.md under the CI block.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 17:37:13 +01:00
igneum-josh
b34d19328f site: the chip claim launch-first in the four public places (Counter ASIC lane, docs/plans/counter-asic-3-public-text-2026-10-07.md sections 1 to 4, on Josh's "I thought we were making it 2.1 from launch?")
Home row 03, the litepaper's chip section at /litepaper#chip-model (paragraph and table; the class v3 row last, "never the launch
state"), the miner page's line and evidence.md row 17 in its eight columns: 2.1x to 3.9x under class v4 from the first block,
class v5 removing the stored-dataset chip as a category, the 5x to 9x only as the class v3 baseline, the devnet's activation
height as a devnet fact. The litepaper's abstract carried the same claim in the old form ("5x to 9x today; class v4, now on
the vote") and now reads launch-first too. tools/ci/ledger-text-check.mjs follows the sentences (X35 on the home page and the
litepaper). No disclosure prize anywhere.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 17:34:12 +01:00
igneum-josh
d79ed8120b Merge remote-tracking branch 'origin/master' into site-ui-5 2026-10-07 17:30:59 +01:00
igneum-josh
693a0e0ada site-ui-5: the padding and visuals sweep (7 October 2026, 17:xx UK): the /wallet band's padding, tools/ci/padding-check.mjs in the gate, every finding fixed in site.css, the eye pass
Josh: the ember band on /wallet had no vertical padding (the heading on the band's top edge, the button on its bottom), then
"run a full site sweep for padding and visuals".

- The band: .band .wrap carried the padding and the three bands use .container; both selectors now, 56 px (40 on phones), and
  24 px at the sides on phones.
- tools/ci/padding-check.mjs: renders every served page at 390, 768, 1024, 1440 and 1600 in both themes and flags TIGHT (text or
  a control under 24 px from the edge of the filled band, card or section that holds it; rows of radius 12 and under are the
  app's compact rows and keep their own padding; small filled things such as buttons, pills, badges, tabs, cells and the bar are
  never containers), SCALE (a section's vertical padding not 0 and not a multiple of 4 from 24), TOUCH (controls under 6 px
  apart outside segmented groups), OVERRUN (an image or canvas past its frame) and UNDER-BAR (a heading under the sticky bar on
  load, an anchor the bar would cover). --self-test builds the fixture from the site's own stylesheet and bar with the exact
  /wallet band with its padding lost, a touching pair, an image over its frame and a heading under the bar; each must fail,
  the clean twin must pass. A gate line runs it (self-test, then the built site); where no browser exists it says so.
- Findings fixed (first run 2,740, then 1,040, then 48, now 0 at 230 renders): page heroes 64/48 (were 65/45), the
  observatory head and the 404 the same, the footer's bottom 24, doc sections and the litepaper's 40 (were 42), .sec 72 at
  tablet (was 70), the 404 card 36, /live's motion block 24 (was 25), the scenes lab 48 (was 50); every card at 24 inside
  (download cards, home tiles, the live tiles and stats, the evidence labels, the wallet state cards, the journey phases, the
  live inspector and toolbar, the download card on phones).
- The eye pass over every page at 1440 and 390 dark: the journey's phases are cards now, so the old timeline rail and marker
  (drawn for an unboxed list, sitting on the card's top border) go and the when column keeps clear of the body; tables keep
  words whole (break-word, not anywhere: "regenerat es" on the litepaper) and give the label column 14ch (one word per line on
  /randomx); the litepaper's body paragraphs share one measure; the ledger's count-table chips stay on one line; orphan words
  go through text-wrap: pretty on body text (copy law 18, "measurement." alone on /claims); the dev-fee page lost its doubled
  gutter (a lifted section keeps its own .container) and its table clears the text above; /faucet and /metamask keep a gap
  between headline and lead, line their two cards up at the top and end 72 px above the footer; a heading after a card grid
  gets 40 px.
- The overlap sweep at the same five widths and both themes: 0 overlaps at 290 renders.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 17:30:58 +01:00
igneum-josh
8a977afc51 Site currency (currency-21's site side, for master tonight): site/money.js is the miner app's currency rules for the site (navigator.language picks the currency and the typical tariff, a saved switch wins, one Intl.NumberFormat call for every money figure, no exchange rate anywhere; tables generated from the app's View block, site/lib/money-regen.mjs rewrites them, site/lib/money.test.mjs fails on drift once the app side reaches master and waits until then); the card picker (yourcard.js on /miner and /app) shows the card's electricity a day at the typical tariff with a currency switch saved in localStorage igneum-currency, loading /money.js itself so no page was edited
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 17:30:22 +01:00
igneum-josh
0e34dc9931 Era VDF lane (7 October 2026): spec 04 sections 4.2, 4.4, 4.5 and 4.6 completed for the era path (the scheme byte and the hash-chain fallback, the cut rule under the O-4.3 reading, the day-of-blues input, the delay, the seed, the era constants as measured), spec 01 section 1.13.1 and era-layout.md section 8 updated, open items O-4.8 closed and O-4.10 to O-4.12 added, FUD ledger F11 updated, two decisions for Josh in ledger-decisions.md, the record docs/analysis/era-vdf-2026-10-07.md (what was built, the parameters and measured rates, the harness gate with both runs, the cut rule for the finality lane, the verify gate, the tiers), the F7 re-roll harness against the real era cut (tools/era-vdf/reroll.mjs: --vdf off fires 6 of 6, --vdf on silent 0 of 6; the adversary evaluates asynchronously with the node's own code and is found by the node's own log line), the fast-time file's era fields 2026-10-07 16:24:22 +01:00
igneum-josh
a1c83f3495 Merge bench-5060ti c9d161e2 into master (gate: green on c9d161e2, recorded by tools/ci/pre-push.sh; the full gate runs in CI on this merge) 2026-10-07 16:17:18 +01:00
igneum-josh
fa5d4596a9 Merge build-server 32fd127f into master (gate: green on 32fd127f, recorded by tools/ci/pre-push.sh; the full gate runs in CI on this merge) 2026-10-07 16:16:36 +01:00