ciregenz
0d826b5daa
[eric] build: drop foreign-arch native prebuilds from the app, with a release gate to keep them out
2026-07-31 00:05:54 -07:00
ciregenz
243207e9b9
[eric] build: per-arch bundled python-env; x64 DMG shipped arm64 python, bricking Intel Macs
2026-07-06 14:52:26 -07:00
ciregenz
6c916e633d
[eric] build: ship mac en.lproj locale pak + blocking verify gate (passkey suicide fix)
2026-07-02 00:45:27 -07:00
ciregenz
04faff315a
[eric] ci: fix mcp-bundles node path and whitelist wheel sboms in host-leakage
2026-06-01 15:01:13 -07:00
ciregenz
e7991f138b
[eric] ci: run signtool verify /pa unconditionally when authenticode status isnt Valid
2026-05-29 15:53:10 -07:00
ciregenz
af24590b5f
[eric] ci: verify-signature accepts Azure Trusted Signing via signtool /pa cross-check
2026-05-29 15:37:59 -07:00
Eric
99f1e56497
[eric] installer: skip Defender prewarm on silent installs to fix the install hang
...
- the customInstall macro runs `OpenSwarm.exe --prewarm` via nsExec::Exec,
which is synchronous with no upper time bound. On a clean box the silent
install launches the freshly-extracted, not-yet-signed binaries, provoking a
cold Windows Defender scan that stalls for minutes - this hung the CI
installer-verification step (no output for ~3m, then cancelled)
- both CI verification and production auto-updates run the installer with /S,
so this same stall could hang a real user's auto-update
- gate the prewarm behind ${If} ${Silent} ... ${Else}: interactive first-time
installs (where the cold-start win lands) still prewarm; silent installs skip
it and finish promptly
- verify-installer: keep the blocking spawnSync (it must wait for the registry
uninstall entry the gate checks) but add a 300s timeout so any future
synchronous stall fails the gate in minutes instead of hanging the job
2026-05-28 23:39:41 -07:00
Eric
77ad8333c9
[eric] ci: stop host-leakage flagging the generic CI runner account
...
- skip the bare /Users/runner and /home/runner homes and the literal
"runner" username: they collide with third-party embedded paths and the
english word "runner" everywhere, burying real leaks in noise
- the precise /Users/runner/work + D:\a\openswarm work-dir patterns still
catch a genuine leak from those accounts
2026-05-28 23:14:02 -07:00
Eric
d6e6f9e9e0
[eric] ci: drop macOS legs and gate the packaged-app build on artifact paths
...
- e2e + dogfood matrices are now windows-latest only: GitHub's scarce mac
runners left the macos legs perpetually queued/starved and they surfaced
mac-only failures untriageable from the Windows dev box, so the whole
matrix read red
- remove the now-dead macOS build steps; re-add macos-14/macos-13 (matrix
edit + workflow_dispatch) when a Mac maintainer can own them
- gate the expensive build on artifact-affecting paths only (electron,
frontend, backend, e2e, build+ci scripts) plus PRs to main + dispatch;
cheap hermetic gates still run on every push
- verify-release-readiness defaults to --require win32 so the removed darwin
leg does not block every v* tag forever
2026-05-28 23:14:01 -07:00
Eric
f1a3ec2598
[eric] electron: fix the electron 42 windows build - electronLanguages en to en-US so the renderer gets a non-empty --lang (electron 42 renamed en.pak to en-US.pak; empty locale crashed blink LCIDFromLocaleInternal with 0xC0000005), bump electron-builder 25.1.8 to 26.8.1 + migrate win.sign to signtoolOptions, after-pack hook restores the 9router node_modules eb26 drops from extraResources so the subscription service stops hanging, and verify-locale-paks + verify-router-deps gate both in verify-all
2026-05-28 21:41:01 -07:00
Eric
d8c4aeb137
[eric] e2e+ci: addInitScript in launchApp setting __OPENSWARM_E2E__=true before bundle.js parses so the production-build store-on-window gate fires for specs that drive Redux directly, plus chain selftest-pairwise into verify-all and the e2e workflow so the covering-array math is validated on every CI push
2026-05-28 09:35:27 -07:00
Eric
27b31c80f1
[eric] ci: add selftest-pairwise that vendors the pairwise generator and asserts every-pair-covered, deterministic, bounded, and isCovering correctly fails on incomplete row sets, catching a future regression that drops the all-pairs guarantee before any e2e spec runs
2026-05-28 09:35:15 -07:00
Eric
b0b3bff91d
[eric] ci: add dogfood-aggregator that walks the rolling manifest, computes per-platform per-check warn/fail rates, emits preflight-tunings.json with a demote list when a check exceeds 2x the false-positive tolerance, and writes a release-readiness block the v* gate reads; preflight.js loadTunings/applyTunings honors the demote list at runtime so a chronically-noisy check gets silently downgraded to warn on subsequent boots
2026-05-28 09:17:15 -07:00
Eric
db6419fe7e
[eric] ci: add verify-dogfood that launches the packaged app, parses the [preflight2] line, INDEPENDENTLY verifies boot evidence (provenance==HEAD, perf marks ordered, health 200, no renderer-gone), and fails red when verdict and reality disagree, recording every run to dogfood-manifest.jsonl for the aggregator
2026-05-28 09:17:07 -07:00
Eric
d5491ff15e
[eric] ci: add verify-packaging-parity that pulls every $STAGING_DIR/<x> from build-app.sh and every Join-Path $Staging '<x>' from build-app-win.ps1 then asserts both stage the same set of dirs and that every extraResources from in electron/package.json is staged by both, with webapp-template-node-modules as the one documented mac-only exception
2026-05-28 02:49:22 -07:00
Eric
c7a195198a
[eric] ci: extend selftest-gate with cross-gate preflight mutation tests so a regression that turns withTimeout into fail-on-hang or readCache into stale-version-passes makes the boot-pipeline gate selftest also go red
2026-05-28 02:49:16 -07:00
Eric
6fc7e23bbe
[eric] ci: chain the four new preflight verifiers (selftest, rigs, race, matrix) at the head of verify-all and add hostile-env legs to e2e.yml so network=blocked + appdata=readonly + lang=de-DE all run on every push
2026-05-28 02:13:21 -07:00
Eric
3faacf761c
[eric] ci: add verify-preflight Layer 5 matrix verifier that reads OPENSWARM_TEST_NETWORK/_APPDATA/_LANG and asserts the verdict matches the expected envelope per scenario, catching the false-positive class where network=blocked produces fail instead of warn
2026-05-28 02:13:09 -07:00
Eric
051ddf5cd7
[eric] ci: add verify-preflight-race Layer 4 that runs twenty parallel preflights asserting no cache contention, then writes a version-keyed token + corrupts it + asserts the next read returns null so mid-boot kill cannot poison a future boots cached verdict
2026-05-28 02:13:09 -07:00
Eric
ddcf2f08df
[eric] ci: add verify-preflight-rigs Layer 3 that spins up hanging http, 500 server, close-mid-handshake, EACCES writeFileSync, and a German pwsh stub then drives the WHOLE preflight against each rig asserting the failing-check name + no neighbor corruption + total runtime under budget
2026-05-28 02:13:00 -07:00
Eric
83182b0dfd
[eric] ci: add selftest-preflight Layer 1+2 with thirty-eight assertions covering happy paths plus every production failure branch (mips arch, German PowerShell output, statfs throws, dns module missing) and never-resolving fakes for hang fuzz
2026-05-28 02:13:00 -07:00
Eric
f9e596160c
[eric] ci: chain the five new gates (python-health, mcp-bundles, update-feed, 9router-functional, clean-profile) into verify-all so every leg now exercises bundled-python, mcp init handshake, update feed sha512, router functional routing, and the truly-empty-profile invariant
2026-05-28 01:25:14 -07:00
Eric
485ddaf86d
[eric] ci: extend selftest-gate with mutation tests for the new update-feed parser (good yaml passes, missing files[] returns zero) and confirm all twenty-eight discriminators still discriminate
2026-05-28 01:25:08 -07:00
Eric
739d73ac4c
[eric] ci: add verify-9router-functional that polls GET :20128/api/providers and asserts 200+JSON so a router that listens on the tcp port but 500s every real request fails red instead of being silently masked by the tcp-only probe in verify-network
2026-05-28 01:25:03 -07:00
Eric
f28c9afac9
[eric] ci: add verify-clean-profile (ci-only, gated on CI=true or OPENSWARM_E2E_WIPE=1) that wipes the user data dir, launches, and asserts the app boots+serves+populates backend.log/auth.token from a truly empty profile so first-time-user code paths cant assume prior state
2026-05-28 01:24:56 -07:00
Eric
806b4fba44
[eric] ci: add verify-artifact-manifest that sha256s every file in the packaged dist and either writes a baseline (--write) or diffs against the committed one, catching non-deterministic build steps that survive even fully-pinned dependencies
2026-05-28 01:24:51 -07:00
Eric
0b10fd9ba8
[eric] ci: add verify-update-feed that parses latest.yml/latest-mac*.yml without applying an update, asserts every advertised file exists on disk and its sha512+size match, so a release with a busted feed cant ship an update that bricks on apply
2026-05-28 01:24:45 -07:00
Eric
44233419e4
[eric] ci: add verify-mcp-bundles that spawns each vendored bundle (notion, reddit-buddy, softeria-ms365) under the bundled node and asserts an mcp initialize round-trip so a corrupted esbuild output cant ship green
2026-05-28 01:24:40 -07:00
Eric
41117d6185
[eric] ci: add verify-python-health that execs the bundled interpreter, asserts python 3.13+, and imports the heaviest backend deps so a missing vcredist dll or half-extracted python-env fails the build red instead of giving users a renderer-up-but-backend-dead boot
2026-05-28 01:24:35 -07:00
Eric
32fb3091be
[eric] ci: chain deps-pinned and host-leakage first in verify-all so the cheap pure-logic gates fail fast before the build-launch gates spend minutes booting an already-doomed artifact
2026-05-28 00:56:04 -07:00
Eric
c5bfc00540
[eric] ci: extend selftest-gate with mutation tests for the new deps-pinned and host-leakage gates so a future weakening of either guard is caught before the build leg runs
2026-05-28 00:55:59 -07:00
Eric
d7b7128c6e
[eric] ci: add verify-deps-pinned that fails when backend/requirements.txt has any bare-name, floor (>=), or compat (~=) entry since pip would otherwise resolve those to latest-matching and two builds from the same git sha would ship different bytes
2026-05-28 00:55:50 -07:00
Eric
19ca4d81ae
[eric] ci: add verify-host-leakage that string-scans the packaged artifact (text files + app.asar) for the build hosts username and home dir, with PEP 610 dist-info metadata auto-allowed since it does not affect runtime
2026-05-28 00:55:45 -07:00
Eric
852b3bb232
[eric] refactor: trim the verifier and mcp comments to one line each per the updated convention
2026-05-27 19:11:12 -07:00
Eric
bb6006a896
[eric] test: add a boot-beacon and preflight check and fold it into the run-everything command
2026-05-27 19:11:12 -07:00
Eric
aa9d6acb4b
[eric] test: add an installer check that observes a real install safely, refuses to clobber it, and has a clean-machine destructive cycle
2026-05-27 19:11:12 -07:00
Eric
92f48db79b
[eric] docs: write up the gate red-team - what has teeth and the one auth gap we closed
2026-05-27 19:11:12 -07:00
Eric
8d06c7b7a3
[eric] test: harden the auth check to reject a wrong token, not just a missing one
2026-05-27 19:11:12 -07:00
Eric
aa0ace4363
[eric] test: make the boot checks mutation-testable and prove every guard fires on a break
2026-05-27 19:11:11 -07:00
Eric
5a1d0362ef
[eric] test: fold the agent-turn check into the run-everything command so it auto-skips unless opted in
2026-05-27 15:41:13 -07:00
Eric
5d8672b9a0
[eric] test: add a check that runs one real agent turn on your own login and proves a genuine reply
2026-05-27 15:41:13 -07:00
Eric
587a7d93d2
[eric] test: add one command that runs every packaged-app check and tallies the score
2026-05-27 15:35:08 -07:00
Eric
993d5391db
[eric] test: add a check that auth, 9router, and the update feed are actually wired up
2026-05-27 15:35:08 -07:00
Eric
df747893c3
[eric] test: add a check that the app shrugs off a busy port and a double-click
2026-05-27 15:35:08 -07:00
Eric
2ae8bce3d6
[eric] test: add a check that says whether the build is really signed or honestly admits it isnt
2026-05-27 15:35:08 -07:00
Eric
992d075cc0
[eric] test: pull the app-launch plumbing into a shared lib so each check stays tiny
2026-05-27 15:35:08 -07:00
Eric
0531f59fa6
[eric] test: add a script that launches the packaged app and confirms it boots, paints, and serves (no browser automation)
2026-05-27 15:01:22 -07:00
Eric
54a7cb96b4
[eric] ci: boot the packaged backend in ci + check its health and agent endpoints
2026-05-27 10:19:53 -07:00