Commit graph

231 commits

Author SHA1 Message Date
igneum-labs
19b1ab6c5a Merge remote-tracking branch 'build/master' into class-v5 2026-10-08 13:49:16 +00:00
igneum-labs
a310b31811 The mirror fan-out skips the landed box by host, whichever URL form took the landing
mirror_master compared the landed remote's URL against the mirror entry's host:/path tail; the box remote is ssh://build@<ip>/srv/igneum.git, which never contains "<ip>:/srv", so the landed box took a second, harmless push on the 14:18 landing. The skip now matches the host alone; a self-test lands through the ssh:// form against a host:/path mirror entry.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 13:21:03 +00:00
igneum-labs
942aefdedc Merge ci-forgejo-master-guard f9ca7252 into master (gate: green on f9ca7252, 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-08 13:18:40 +00:00
igneum-labs
c7f89a916f Merge remote-tracking branch 'build/master' into class-v5 2026-10-08 13:18:20 +00:00
igneum-labs
f9ca7252c3 A landing on any remote fans master out to every other mirror, as a no-verify copy
merge-to-master.sh called mirror_master only after a GitHub landing (remote_is_github && ...), so every box landing under the suspension exception left the other mirrors where they were: build-3 and build-4 sat at 27801032 (7 October 15:27) while the box mirror carried b2ac5ea7, and lanes cut branches from the stale tip. The landing path now fans out for whichever remote took it, skipping that remote, and pushes with --no-verify: the sha is the landed remote's master read back, a copy of what the gate passed, not a landing (with the hook on, a stale mirror re-ran the full gate for six minutes per box). Self-tests: the landing line is pinned, and the mirror that took the landing is not pushed to again.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 13:12:07 +00:00
igneum-labs
f2b42a134f Merge ci-forgejo-master-guard afd7050b into master (gate: green on afd7050b, 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-08 13:04:31 +00:00
igneum-labs
afd7050bc9 The gate refuses a landing on the public host while the marker stands, binds every remote rule to the URL, and its manifest check survives GNU sed
While tools/ci/github-suspended stands the public host git.igneum.network holds a rewritten copy whose master is replaced at cut-over by the rewrite of the box mirror's final tip, so a landing there is lost: pre-push.sh (forgejo_master_frozen, hook mode) and merge-to-master.sh (forgejo_master_refusal) refuse one and name the box route; a branch pushed there for safekeeping passes.

The installed hook hands the gate "<remote name> <url>", and the remote rules read $2, the name: "origin" matched no *github.com*, so the GitHub refusal and the CI rule never bound a named push. Hook mode now resolves the URL ($3, else git remote get-url) and the self-test drives the hook by name through a fixture repository for the GitHub remote, the public host and a safekeeping branch. GATE_ROOT is the script's own repository, so the helpers are read from it wherever the hook is driven from.

gate-manifest-check.sh under pipefail piped names_in into grep -q; GNU sed took SIGPIPE when grep matched early and the check read it as a missing run line (a research lane's gate on build-3, 13:4x UK: forty names "missing", the Mac never saw it because BSD sed had finished writing). The names are matched through a here-string now, proved green five times on build-3; the same shape is removed from playbook-quit, pc1-step-budget and second-engine. mirror_master fast-forwards every box with a build-server file (build-3 and build-4 sat at 7 October 15:27).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 12:57:40 +00:00
igneum-labs
c9bdeb3b94 Merge remote-tracking branch 'build/master' into class-v5 2026-10-08 12:57:31 +00:00
igneum-labs
5f45de999f counter-asic-4 documents: the branch's text at 086411627 taken whole for the documents-only landing (what the replayed commits did not carry: the branch's merge resolutions) 2026-10-08 12:28:21 +00:00
igneum-labs
40be3175af Merge master 5fd703f6 into wallet-bridge (master moved 24 commits during the landing's gate)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 11:59:16 +00:00
igneum-labs
fc5a4de9d1 Merge remote-tracking branch 'build/master' into class-v5
# Conflicts:
#	site/ledger.html
2026-10-08 11:57:48 +00:00
igneum-labs
417275f439 Kill-proof gates (main's order, 8 October 2026, 12:5x UK): a unique process title and a pid file per gate and merge run; kills by pid file only, enforced by the kill-by-name check
Twice today a merge gate died to signal 15 from another lane's kill pattern (12:4x UK, and the three-node script's self-kill at 10:05 was the same class). The sender cannot be read after the fact (no process accounting on the Mac, nothing in the unified log, a trap sees no sender), so the class is closed by rule: tools/ci/pre-push.sh re-execs under the title igneum-gate:<pid>-<start> and writes "<pid> <start> <mode> <title>" to .git/igneum-gate.pid under the worktree (removed at exit); tools/ci/merge-to-master.sh the same with igneum-merge:<pid>-<start> and .git/igneum-merge.pid; a gate or a merge run is stopped by `kill "$(cut -d' ' -f1 <that file>)"` and never by a name. tools/ci/kill-by-name-check.sh rule 4 (in the gate on every push): killall with any pattern, and pkill/pgrep (with or without -f or -x, bracketed or not) on a generic tool or a gate's name (bash, sh, zsh, node, cargo, python, ssh, git, perl, gate, igneum, pre-push, merge-to-master, build-remote, remote-run, igneum-gate, igneum-merge) are red; pkill -F <pidfile>, pkill -P <pid> and a daemon's own binary under -x stay allowed. Known-failed first: eight new banned shapes and four allowed ones in the self-test; the gate's self-test holds a gate open and reads its title and pid file, then sees the file gone.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 11:39:01 +00:00
igneum-labs
7a1fb95cb5 Merge master into wallet-bridge (the wallet's line meets master for the landing of the page bridge)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

# Conflicts:
#	packaging/ota/publish-manifest.sh
#	site/index.html
#	site/wallet.html
2026-10-08 11:33:30 +00:00
igneum-labs
31ca4c4f2b Merge remote-tracking branch 'build/master' into class-v5
# Conflicts:
#	docs/ledger-public.md
#	infra/fast-time/override-60x.json
#	site/ledger.html
2026-10-08 11:33:12 +00:00
igneum-labs
1251475e7e Merge build/master 8d13005f into spec-accept-23 (the Network group's /light, /receipt and /oracle taken beside /economics in the nav check; the class v4 watts rerun complete with the A6000, 22 rows on 22 models, the 7 October fleet rows the only class v3 watts left and labelled; /economics carries the explorer lane's measured proving rows of 8 October 2026)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 11:22:55 +00:00
igneum-labs
7dc74bfe2d Merge build/master f839b75b into spec-accept-23 (the explorer's new pages taken into the page list beside /economics; class v4 watts rows 19 to 21: RTX 2060 12 GB on a cap, L40S uncapped, RTX 5070 Ti on a 69 MH/s board with the two memory populations noted; the site rebuilt)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 11:15:35 +00:00
igneum-labs
cb7bf85dd9 Merge build/master into reference-apps (checkpoint.mjs: master's dn3 default and ?index, the read service's exports kept; built pages rebuilt)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 11:15:05 +00:00
igneum-labs
aa3a23378c /income is a calculator; /economics is new; class v4 watts rows 13 to 18 (the founder's value-economics question through main, 8 October 2026)
/income (through its generator, tools/launch/income-page.mjs, so the page check holds): pick a card (every current bench row, stock and tuned apart, inlined by the build; a tuned row at its tune point's rate), set a kWh price (the region's tariff from money.js, GBP 0.25 named as the default), type an IGN price (no default; the field says "no market yet: enter a price to see the figure"), read the network hash rate and the newest block's DAA from /api/live and the block reward from the chain's own rule (site/lib/emission.mjs at that DAA, 80 percent to the miner), and see IGN a day, electricity a day and money a day at that price, with the line that devnet and testnet IGN have no value. The arithmetic is site/lib/income-calc.mjs; site/lib/income-calc.test.mjs holds the known-failed case first (an empty, zero, negative or non-numeric price gives no money figure) and runs in the gate. The testnet tier tables stay below, named as the testnet's.
/economics: the emission as the node encodes it (release-0.3.25-node at e0644958, confirmed by the node lane: CURRENT on Devnet 3 and mainnet, TESTNET_1 on the testnet, each field with its file and line), the 80/20 split and the inactive silent-block bonus, the fee routes as the executor has them (base fee burned, the tip 80/20 with unregistered shares burned, external jobs designed and not in the code), the proving-fee market, the switchable 1 percent client fee and the fund it fills, the decimals per network; no price, no projection; "Not legal advice." alone. In the Learn group, the sitemap, the nav check and the capture routes; every page's chrome re-injected.
Bench table: class v4 watts rows 13 to 18 (RTX 2070 Super 204.2 W, +23 percent; GTX 1080 Ti 202.7 W uncapped, +63 percent; A100 500 W SKU 489.3 W, +78 percent; H100 695.1 W on its cap, +52 percent; RTX A4000 135.2 W at its stock cap, no premium; a tuned 2080 Ti board 161.1 W, the rate as a range by board).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 11:08:38 +00:00
igneum-labs
9b1941f7aa Merge build/master into reference-apps (nav contract: the faucet route left master, the three reference-app routes stay; built pages rebuilt)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 11:07:05 +00:00
igneum-labs
91b64b809a Merge remote-tracking branch 'build/master' into explorer-dn3
# Conflicts:
#	site/build.mjs
2026-10-08 10:58:52 +00:00
igneum-labs
c49358ed94 Merge build-programme 8472843f into master (gate: green on 8472843f, recorded by tools/ci/pre-push.sh; landed on the build mirror) 2026-10-08 10:46:53 +00:00
igneum-labs
0defaba741 Merge spec-accept-23 ba08d6b8 into master (gate: green on ba08d6b8, recorded by tools/ci/pre-push.sh; landed on the box mirror) 2026-10-08 10:45:43 +00:00
igneum-labs
8472843f8b Merge build/master into build-programme: the swap page (dex-devnet3) joins the Build group in the nav, the footer, the sitemap and the nav check; /build links /swap
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 10:39:07 +00:00
igneum-labs
cb70a8fa60 Merge remote-tracking branch 'build/master' into explorer-dn3 2026-10-08 10:34:09 +00:00
igneum-labs
1fca12afbf Merge dex-devnet3 c64e809f into master (gate: green on c64e809f, recorded by tools/ci/pre-push.sh; landed on the build mirror) 2026-10-08 10:32:52 +00:00
igneum-labs
5d1044ca25 Litepaper (and /claims, /randomx from it): the RandomX record as lane A's history reads it (docs/analysis/class-v6/history.md 2.3, 8 October 2026): one chip shipped, Bitmain's Antminer X5 (September 2023) at 1.46x per joule over a desktop CPU on silicon believed mining privately from about 2021; RandomX v2 released 25 March 2026 with its mainnet activation pending; the X9 withdrawn in May 2026 with zero units (the X36 sentence stands); "no chip shipped" and "seven years without a shipped chip" gone from every served sentence; ledger X34 and C2 corrected, pins moved, the public ledger and the ledger page regenerated. Governance line beside the class v5 crossing sentence (main's wording): classes rotate on findings and at least yearly, a class change is a release activated by block height; class v6 named as the design in progress with its four layers, dated 8 October 2026
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 10:32:47 +00:00
igneum-labs
83a3542027 Reference apps (8 Oct 2026): the light wallet (/light), the payment receipt (/receipt) and the Sepolia state oracle page (/oracle), each on Devnet 3; site/light/core.js verifies certificate, header path, coinbase merkle inclusion, segment record (aggregator BLS) and the MPT account proof in the browser; the read service tools/reference-apps/light-service (behind rpc.devnet.igneum.network/light); the one-file offline receipt verifier (site/receipt/verify-receipt.js); /api/checkpoint?source=dn3; the negative cases in verify.test.mjs and /light/test; nav routes
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 10:26:55 +00:00
igneum-labs
cb2b8a2578 Builder programme (8 October 2026): /build, /grants, the Devnet 3 faucet on build-1, docs/build as the source
- site/build.html and site/grants.html rendered by site/build.mjs from docs/build/build.md and docs/build/grants.md (the gate's site-only copy keeps the committed pages, as for /bench); site-relative links in the markdown renderer
- the nav's fourth group, Build (/build, /faucet, /grants), in the partial, the sheet, the footer, the sitemap and tools/ci/site-nav-check.mjs; the faucet leaves the Mine panel
- site/faucet.html is the Devnet 3 faucet: 10 IGN per address per day, 500 a day, chain id 4463, no value, resets without notice; the page posts to https://faucet.igneum.network/api/faucet and shows the balance
- infra/build-server/faucet: faucet.mjs (zero dependencies, signs with site/lib/eth.mjs, limiter self-test known-failed first, 100 IGN cap on the amount), the unit, faucet.sh install/status; live on build-1 behind Caddy since 10:16Z, funded 2,000 IGN by the fleet's funder at 10:01Z; first drip 0x8620e9d8 at 10:17Z
- docs/build: README, first-contract.md with its test script and the PASS line (24 s end to end through the public RPC and faucet, Foundry 1.8.5, Counter deployed at block 27055), rpc.md read from the node (75 methods probed, served and not served), faucet.md, verify-a-block.md, grants.md
- .forgejo/issue_template/grant.md: the grant application template on git.igneum.network

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 10:24:07 +00:00
igneum-labs
960f081ad2 Devnet 3 explorer: transactions (/tx/<hash>), accounts (balance, nonce, code, 7 days of transactions), the proving view (/proving), the DAG picture and the verified badge (the covering certificate re-checked in the browser with site/verify) on /explorer and /block; class and lock state per block; /api/explorer gains ?tx, ?txs, ?proving, ?stats, ?dag; the dn3_ default for /api/explorer, /api/stats, /api/supply and /api/checkpoint (?index=N); replaced chain blocks read as such against the indexer
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 10:24:03 +00:00
igneum-labs
caa0071efc Site: the Devnet 3 swap page at /swap (MetaMask and any injected wallet by chain id 4463 and the public RPC; quotes, swaps, the faucets, add liquidity; every swap's block with its proof status from /api/live; Devnet 3, test tokens, no value on every view), Swap in the Mine panel and the sheet of every page
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 10:23:29 +00:00
igneum-labs
93e55f9d43 Class v6 research lane B: the hardware future, five years out (first cut and the full report in one file)
docs/analysis/class-v6/hardware-future.md: one table over PIM and PNM (HBM-PIM, AiM, LPDDR5X-PIM, UPMEM), HBM3E, HBM4 and the custom HBM4E base die, fine-grained DRAM on logic, LPDDR6, 3D DRAM, RLDRAM 3 and Folded Banks, FPGA with HBM2e, wafer-scale, CXL, optical I/O, chiplets and UCIe, and SRAM at N2: energy per dependent read, latency, cost per GB, availability to a non-hyperscaler, the k_read and shadow k bands, the edge per joule at zero shadow against the 5090 and the M5 Max, and the one layer of the four that blunts each with a number. The three findings: a 2 GiB SRAM full store on one N2 reticle is the strongest five-year chip (13x to 17x per joule, about USD 0.3 per MH/s) and no layer reaches it (layer 2 moves its capex, not its joules; the shadow at k = 0.5 holds 4.8x); per-bank PIM is blind (1.6 percent of reads in-bank at 2 GiB) and the custom HBM4E base die is the f = 1 chip with its controller in the stack (6.5x to 14x), untouched by layers 1 to 4; the denominator is the wrong card (the M5 Max at 0.78 microjoules halves to thirds every chip edge). Section 5 carries the k bands for the research lane's chip rows; section 7 the four decisions with defaults and deadlines; section 9 the sources with URLs and dates. tools/ci/export-exclude.txt: docs/analysis/class-v6 is research, not public export.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 10:17:50 +00:00
igneum-labs
0276128177 Merge live-shards-8 2c589122 into master (gate: green on 2c589122, recorded by tools/ci/pre-push.sh; landed on the box mirror) 2026-10-08 09:19:53 +00:00
igneum-labs
de6e5ae2e5 Merge build-server 103ceb0f into master on the box mirror: the site deploy checks (served links, the regrouped /miners count, the pipefail fixes) 2026-10-08 09:18:01 +00:00
igneum-labs
2c58912211 Live proving feed: the page says when its shard states are stale, and a chain block with an empty plan reads "no shards in this block" (8 October 2026, main's order: the project lead wants to watch proving and shards in real time; a stale snapshot must read as stale). Reading of the day: /api/live's proven and paid states come from the Devnet 3 observer's own node on igneum-build-1 (igneum-observer-node-dn3, EVM 26850), not from hub-1; that node stopped crediting payouts at 23:57Z on 7 October (paidShards frozen at 7,304 while blocks carried 8,457 proof records by 03:00Z and hub-1 counted 11,861 by 08:56Z), and the page kept showing the paid total as fresh. site/lib/proving-health.mjs (tests known-failed first: "Cannot find module", then 10 green on build-2): stale when the observer's last status read is over 60 s old (status_at, new in the observer's live_state.proving), when the node's tip trails the newest block by over 300 DAA, or when blocks carried proof records in the last 10 minutes and no shard moved to verified or paid for 10 minutes (the blind-to-records class); a quiet chain is not stale for lack of credits. /api/live carries stale, stale_reason, status_age_s, tip_lag_daa, records_10m and last_change_at on proving (two more indexed readings; scene/feed-contract.json lists the keys; the recorded fixture carries them). /live: the Proven tile's line reads "proving feed stale: ..." in ember, else "... last credit N s ago"; the inspector's count adds "feed stale". Scene 2.0.7: a chain block whose plan is known (block.number set, carried as plan on the normalised block) and empty reads "no shards in this block"; loading and late stay for an unread plan (shard-words test, known-failed on 2.0.6). Gate: the health test joins the site unit-test line.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 09:12:56 +00:00
igneum-labs
12f6f9a8cd Merge gh-igneum-dir 3d805feb into master (gate: green on 3d805feb, 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-08 08:57:37 +00:00
igneum-labs
36cb07830b Merge remote-tracking branch 'build/master' into class-v5 2026-10-08 08:52:16 +00:00
igneum-labs
3d805febb4 Every gate gh call reads Igneum's own gh directory, never the founder's (main's rule, 8 October 2026, 10:0x UK): tools/ci/gh-env.sh sets GH_CONFIG_DIR=~/.config/gh-igneum for the gate, the hook, the merge tool and the CI-state reader
At 09:46 UK the founder's gh had his other account active (his own work) and tools/ci/gh-account-check.sh refused every Igneum push from the Mac (the v5 lane's 56a50160 held local). The check now reads Igneum's directory: empty, it refuses naming the one step (the founder or main stores the Igneum token there with `GH_CONFIG_DIR=~/.config/gh-igneum gh auth login --with-token`; no lane does); another login, refused and named; the stored entry, passes; while tools/ci/github-suspended stands it skips with a line, because no gh call can succeed and the hook already refuses GitHub pushes, so the lanes land on the mirror meanwhile. Known-failed first: an empty directory, another login, the founder's directory never read (the fake gh records the directory it was given), the marker's skip, no gh. IGNEUM_GH_CONFIG_DIR overrides the path for the self-tests.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 08:51:55 +00:00
igneum-labs
f3d06b60fc OpenCL worker: on an Intel platform rotr_var is rewritten to the shift form before the build (the Intel rotate fold, the Arc B580 bisect of 7 October 2026)
Intel's compiler turns rotate(x, (0u - n) & 31u) into a rotate LEFT by n: lane 0's register trace on the B580 diverged
at instruction 6 of iteration 0 (rotr) and nowhere before, in both exchange modes, with every other family and the
dataset kernels bit-exact. proto-opencl/intel_rotr.h rewrites the one helper line when the device's vendor or
platform string holds Intel (host.c's buildProgram and the prepare path), no other vendor sees a change, no pack or
consensus text moves. proto-opencl/test_intel_rotr.c (the pre-push gate runs it) feeds the line through the rewrite
under Intel, AMD and NVIDIA strings and asserts the outputs.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
(cherry picked from commit 5f8abe10a6)
2026-10-08 08:44:23 +00:00
igneum-labs
3d059792d1 Merge remote-tracking branch 'build/master' into class-v5 2026-10-08 04:22:02 +00:00
igneum-labs
31d74d8f31 Merge github-suspended 51481b1c into master (gate: green on 51481b1c, 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-08 03:04:36 +00:00
igneum-labs
8905c8f992 Merge remote-tracking branch 'build/master' into class-v5 2026-10-08 03:03:39 +00:00
igneum-labs
b75bf7fd9b Merge ca3-v4-amend 639703e0 into master (gate: green on 639703e0, recorded by tools/ci/pre-push.sh; landed on the build mirror) 2026-10-08 03:02:03 +00:00
igneum-labs
51481b1cac merge-to-master self-test: the nested refusal call's exit is caught (under set -e a plain assignment of a failing substitution ended the script before any check ran)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 02:59:43 +00:00
igneum-labs
46261fb641 merge-to-master: the suspension refusal lets --self-test through to exercise the refusal itself (the first cut refused its own self-test under the real marker)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 02:58:49 +00:00
igneum-labs
639703e0d5 PC 1 measurement pass: the step budget keeps four minutes of the cap for the restore and sizes each step from the last rate read; a probe dev line answered in helper.log counts as the helper up when its heartbeat stays stale; the gate check pc1-step-budget-check.sh with the known-failed case (the third 5090 pass of 8 October, ended by its cap at the 300 MHz step with the card left locked)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 02:56:18 +00:00
igneum-labs
6f5067a47b No push, fetch or poll of GitHub while tools/ci/github-suspended stands (8 October 2026, 03:5x UK): merge-to-master.sh refuses a GitHub remote with the line and exit 2 before any gh or git call; the pre-push hook refuses any push to a GitHub remote
At 03:39 UK a lane's default-remote call of the merge tool polled GitHub's CI 21 times (403 each) before it was killed by pid and re-run with --remote box; the rule since the suspension (never touch GitHub) rested on every lane remembering the switch. The marker is tracked and dated; main removes it at the cut-over. Known-failed first in both self-tests: a GitHub remote under the marker is refused with the line naming --remote box (exit 2 in the tool), a mirror remote is not, and no marker means no refusal.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 02:52:31 +00:00
igneum-labs
685c2b280d Merge build/master (34168eb8) into crypto-engage: funding.md conflict resolved to the in-house pass with the pre-public scrub applied; in-house-pass.md scrubbed the same way
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 02:22:08 +00:00
igneum-labs
dcd1a044dd Merge remote-tracking branch 'build/master' into class-v5 2026-10-08 00:40:43 +00:00
igneum-labs
f7956ed06f identity-check: PC 2 is rewritten card-free as "the second Windows rig" (its cards are in dispute between lanes tonight; PC 1's verified list stays)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 22:58:53 +00:00
igneum-labs
99d3f3a847 spec-constants check: the (c'') window-cap literal is read from site_window_words (class v5 moved it out of distinct_ratio_pass); the self-test fixture follows
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 22:58:22 +00:00