igneum/tools/ci
2026-10-07 21:43:06 +01:00
..
fixtures Kill by exact command line or pid file, never by a name: tools/ci/kill-by-name-check.sh in the gate; the 36 pgrep/pkill literals in the tree fixed 2026-10-06 23:10:31 +01:00
windows 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 2026-10-07 19:39:50 +01:00
bash-body-check.sh CI: bash bodies in PowerShell jobs pass bash -n (the lost-quote class) 2026-10-05 21:38:41 +00:00
box-locks-check.sh Gate: the box lock self-tests read the same on an idle box and on one at load 120 (private lock directories, no pinning in the fixture, file-driven waits, a 3 s settle, a quiet that outlives the slot settle); the check runs them one at a time with one retry each (the horizon lane, 7 Oct 2026: one red on a full gate, green a minute later) 2026-10-07 16:05:56 +01:00
build-kind-default-check.sh Merge remote-tracking branch 'box/master' into scrub 2026-10-07 20:16:14 +01:00
check-workflow-shell.mjs Public-testnet readiness: fee floors and pgas table analysis, testnet identity doc, G14 rewrite plan with dry run, G13 signed build inputs, testnet terms, MetaMask page 2026-10-04 22:54:56 +00:00
ci-state.mjs 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 2026-10-07 17:37:13 +01:00
commit-string-check.sh Fleet: the class v4 rehearsal tooling (CUDA worker wrapper, generator-4 worker, pack re-export), the standing-fleet rule (supervisor, library, page block, gpu-fleet.md), the 0.3.15 publish script, the Devnet 2 script's ports and bps knobs, the collector's seed knobs 2026-10-06 20:46:32 +01:00
copied-sources-check.sh Merge origin/master into ca3-coord: Counter ASIC 3.0 complete (every gate green, P2 green, P1 written); the drive-ref check skips single-quoted here-strings and the copied-sources check reads code lines only (master's CI red on 0dc4392); main's decisions and the close in the status file 2026-10-06 19:05:54 +01:00
defaults-line-check.sh cross-remote.sh: the default cross-build runs again (a trailing comment had swallowed the defaults line); the class gets a CI check 2026-10-06 21:55:44 +01:00
docs-only-check.sh CI queue: a second self-hosted runner (igneum-build-2 joins the pool label), docs-only pushes skip the compile jobs, the red watcher pinned to the box that posts 2026-10-07 14:20:18 +01:00
engine-check.sh 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 2026-10-07 17:59:28 +01:00
export-exclude.txt Export exclusion: docs/analysis/mission is internal research (the last mission's five lanes and the closed list), outside the public export list 2026-10-07 09:22:09 +01:00
forbidden-strings.txt 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 2026-10-07 20:12:04 +01:00
founder-strings-check.sh 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 2026-10-07 19:56:08 +01:00
founder-strings.b64 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 2026-10-07 19:56:08 +01:00
glibc-ceiling-check.sh glibc ceilings per artefact class: hive and rig 2.31, seed and linux 2.35, native unchecked; proven in ubuntu:20.04 and 22.04 on the box 2026-10-07 01:35:18 +01:00
identity-check.sh CI hardening: one gate script for the hook and CI, the research exclusion list, the Windows paths check, the red watcher, the box runner switch, the failure classification 2026-10-06 21:58:54 +01:00
inline-rm-check.sh 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 2026-10-07 21:38:41 +01:00
install-hooks.sh CI hardening: one gate script for the hook and CI, the research exclusion list, the Windows paths check, the red watcher, the box runner switch, the failure classification 2026-10-06 21:58:54 +01:00
kill-by-name-check.sh Kill by exact command line or pid file, never by a name: tools/ci/kill-by-name-check.sh in the gate; the 36 pgrep/pkill literals in the tree fixed 2026-10-06 23:10:31 +01:00
kit-path-check.sh CI: run jobs test their fetched kit before use (the wiped-jobs-folder class) 2026-10-05 22:37:29 +00:00
launch-gates-check.mjs 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
ledger-text-check.mjs 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?") 2026-10-07 17:34:12 +01:00
link-check.mjs Explorer pages: /explorer, /block/<hash|number>, /address/<addr>, the search router, a local preview server, CI 2026-10-05 20:35:40 +01:00
merge-to-master.sh Merge remote-tracking branch 'box/master' into scrub 2026-10-07 20:16:14 +01:00
mirror-reset-check.sh Stale-overlay class closes with its check: tools/ci/mirror-reset-check.sh in the pre-push gate 2026-10-06 23:47:16 +01:00
no-conflict-markers.sh ci: no conflict markers in tracked files (check + pre-push hook that also builds the site) 2026-10-05 17:45:09 +01:00
no-foreign-tree-writes.sh CI hardening: one gate script for the hook and CI, the research exclusion list, the Windows paths check, the red watcher, the box runner switch, the failure classification 2026-10-06 21:58:54 +01:00
no-secrets-check.sh Key custody: inventory, encrypted backup and restore, no-secrets CI check 2026-10-05 18:01:01 +01:00
overlap-check.mjs overlap-check: a text sliver at a scroll pane's edge is scrolled away, not covered (the miner's Earnings ladder under the closed log drawer's 1 px bar at 3dc0832a read as covered); the clean fixture now carries that shape (7 October 2026, 16:1x UK) 2026-10-07 15:03:28 +01:00
override-json-check.sh Counter ASIC 3.0 gates (node): class v4 = mx8+sh256x27 through the stack (igneum-pow ProgramClass::V4, V4_CLASS, generator 4, program_id(4, seed, attempt), the era composed as v3's; program.h and program.json class v4; packcheck, packfile.h, the CUDA and OpenCL identity rule and the Metal worker accept generator 4 and the class=v4 token, the Metal worker takes v4 from the prepared pack only; v2 and v3 byte-identical, the pinned packs diffed); the G4 harness class-v4.mjs (two switches, the never case); override-60x.json: the v4 field at never, the duplicated proving v1 block removed, the four 0.3.12/0.3.13 fields added; CI check override-json-check.sh (no duplicate key in any override file) 2026-10-06 16:58:49 +01:00
padding-check.mjs 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 2026-10-07 19:39:50 +01:00
pinned-guests-check.sh ci: the pinned-guests check ignores comment lines 2026-10-05 14:01:38 +01:00
playbook-quit-check.sh Merge release-0.3.14: Igneum Miner 0.3.14 (exec-sync deep-reorg reload, miner-ui-3, ember-tune), publish 1 on the thirteen-field object 2026-10-06 19:18:17 +01:00
pre-push.sh Merge site-land-dn3 d968cbb3 into master on the box mirror (the site reads Devnet 3 from master; repository links on the git host) 2026-10-07 21:43:06 +01:00
prover-socket-check.sh Kill by exact command line or pid file, never by a name: tools/ci/kill-by-name-check.sh in the gate; the 36 pgrep/pkill literals in the tree fixed 2026-10-06 23:10:31 +01:00
ps-drive-ref-check.sh Merge origin/master into ca3-coord: Counter ASIC 3.0 complete (every gate green, P2 green, P1 written); the drive-ref check skips single-quoted here-strings and the copied-sources check reads code lines only (master's CI red on 0dc4392); main's decisions and the close in the status file 2026-10-06 19:05:54 +01:00
public-api-check.mjs Public stats API: /api/stats and /api/supply, documented with live examples, contract test and a live check 2026-10-05 20:35:40 +01:00
publish-jobs-check.sh 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 2026-10-07 19:10:18 +01:00
README.md 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 2026-10-07 21:38:41 +01:00
red-watch.mjs Merge remote-tracking branch 'box/master' into scrub 2026-10-07 20:16:14 +01:00
release-version-check.sh 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 2026-10-07 21:35:17 +01:00
retry-once.sh 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 2026-10-07 17:37:13 +01:00
route-spill-check.sh Merge remote-tracking branch 'box/master' into scrub 2026-10-07 20:16:14 +01:00
scratch-spare-check.sh build server: the remote checkout's clean spares a lane's scratch (AP-H1, the lost-scratch class) 2026-10-07 09:24:07 +01:00
scroll-width-check.mjs 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 2026-10-07 20:52:55 +01:00
second-engine-check.sh A card never shows 0 MH/s without a reason word (Josh, 6 October 2026, watching PC 1 during the table run): the Mine row reads 'tuning: step k of n · measuring W W' with the live rate, 'held for a remote job: <title>' while a job holds the miners, and the Tuned line at the end; the big button reads 'Tuning, mining again in about N min'; the strip carries one tune line; a measurement engine prints a TUNE progress line every 10 s and the playbook forwards it (and TUNE chosen as done) to the installed app's POST /api/tune-progress, a post of state, never quit, pause or resume; the rule in ember-tune.md 6a; UI tests for the three states 2026-10-06 16:36:07 +01:00
signer-pipe-check.sh C4 fix: certificate-driven reorg written into spec 3.5, 3.2 C4, 3.10 C4 and F1/F2, 3.11.7; ledger C4 fix paragraph, F16 note (the honest-partition row for option B is gone), O-3.6 narrowed; bench-log "the C4 fix" with every harness row; c4.mjs v2 mode, WINDOW knob, forced reconnect at the heal (addPeer, nodes on --unsaferpc), adopted-lock count; two tooling classes fixed: the signer piped into head (SIGPIPE panic under pipefail, four scripts, tools/ci/signer-pipe-check.sh in CI) and the one shared build-inputs.zip (build-job.mjs names every job's zip, push-build-inputs.sh --name and pruning) 2026-10-05 19:17:36 +01:00
sims-branch-check.sh CI and boxes: the simulators job runs on master and release-* pushes and pull requests into them only (a feature-branch code push runs the igneum-pow tests alone; tools/ci/sims-branch-check.sh); the box lock self-tests run in parallel in one ssh; build-2 and build-3 join the runner pool bounded to 32 cores; the 0.3.20 first-wave script (seeds, hands, RPC-filter lift; dry run by default) 2026-10-07 14:46:42 +01:00
site-contrast-check.mjs Site UI 3: one design system, the live DAG module, the home page as one screen, the litepaper as a paper, every page on the shared tokens 2026-10-06 20:27:47 +01:00
site-nav-check.mjs 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 2026-10-07 20:12:04 +01:00
site-orphan-check.mjs Site UI 3: one design system, the live DAG module, the home page as one screen, the litepaper as a paper, every page on the shared tokens 2026-10-06 20:27:47 +01:00
whole-body-check.sh fast time: the three-node fork-gate harness, its six-case runner and a box wrapper for harness runs (mission item 4) 2026-10-07 13:26:38 +01:00
windows-paths-check.sh CI hardening: one gate script for the hook and CI, the research exclusion list, the Windows paths check, the red watcher, the box runner switch, the failure classification 2026-10-06 21:58:54 +01:00
windows-spawn-check.mjs app: every elevated launch through one hidden-console builder; CI check for Windows spawns; PC 1 console watchers 2026-10-06 09:21:46 +01:00
workflow-timeouts-check.sh 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 2026-10-07 17:37:13 +01:00

CI checks

Check What it fails Since
no text overlaps (overlap-check.mjs) A served page, or a miner or wallet screen (behind IGNEUM_OVERLAP_APPS=1), where a visible run of text is covered by another element (a pill over a caption, a label over a value, a card over its neighbour, text under the header at rest), clipped by an overflow-hidden ancestor, or past the viewport; a page that scrolls sideways. Five widths, light and dark, the home hero at rest and at each step. A fixture with one deliberate overlap of each kind must be flagged first (--self-test). Needs a headless Chromium: CI installs Playwright; the Mac ships the pages to build-2 (infra/build-server/overlap-browser.sh). 7 October 2026: the hero's step pill sat on the caption's second line ("Two thirds of the weight sign. The checkpoint locks.") at every desktop width, found by Josh on the live site

| kill by exact command or pid file (owed as a check) | 6 October 2026, 21:09Z: a Mac-side pkill -f <log file name> matched nothing (the log name was a redirect, not part of the command line), the roll-everything script lived on and wiped a box it had been told to hold. Rule: a job is stopped by its pid file (tools/fleet/fleet-bg.sh start|stop <name>) or by a pattern anchored on its exact command line (^python3 -u /root/fleet/in/box-prover.py), never by a word that may or may not appear in it. The check that flags a pkill -f/pgrep -f whose literal is a path or a name that never starts a command line is owed to the CI lane |

No inline deletion in a shell string (7 October 2026)

The desktop app asks the founder to approve any shell command that carries rm inside an inline bash -c '...' or sh -c '...' string ("runs rm and could not be checked"). Rule for every lane: never an inline rm, rm -rf, find ... -delete or a redirect-truncate inside a bash -c / sh -c string. Put the script in a file under tools/ (or the lane's scratch directory) and run it by path; on the boxes, do deletions through the lease or job tooling, which the checker reads as a plain command. tools/ci/inline-rm-check.sh greps every tracked script for the shape (self-test first, known-failed shapes named) and runs in the gate.