gstack/scripts
Garry Tan 41160a14ed
test: free runner — strict output, parallel execution, stable shard indices
Three coupled changes to scripts/test-free-shards.ts:

1. STRICT OUTPUT: runFreeShard streams through the paid runner's
   BunTestOutputClassifier — exit 0 without bun's 'Ran N tests across M
   files' summary, with (fail) lines, or with a wrong file count is a
   FAILURE (anti-truncation backstop at the runner layer), plus an
   external wall-clock timeout that SIGKILLs the process group
   (timed-out distinct from failed; exit 124 vs 1). Also fixes a latent
   shard-bleed: file selectors now use exactTestFileSelectors (relative
   paths were substring filters that matched sibling roots).

2. PARALLEL: full-suite mode is one 'bun test --parallel' invocation
   (Bun 1.3.13). Measured semantics recorded in the header: per-file
   worker isolation, standard summary, and mid-suite process.exit
   surfaces as a crashed-worker FAIL with exit 1 — strictly safer than
   serial, where the same exit truncates silently. No static weight
   lists; --shards M --shard i keeps deterministic hash partitioning for
   CI matrices (native --shard rejected: round-robin renumbers when
   files land). Spawned shards get throwaway GSTACK_HOME/TMPDIR so
   parallel shards can't contend on real state. Per-shard epilogue
   prints files/seconds/status every run.

3. Stable indices: assignFilesToShards no longer drops empty shards, so
   a shard's index depends only on the file hash and requested count —
   an empty CI matrix slot is a fast no-op success, not a renumbering.

package.json 'test' now delegates to the runner (TEST_ROOTS becomes the
single source of truth for roots; slop:diff tail preserved; the runner
inherits the 30s per-test timeout the old glob passed inline).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-15 08:22:44 -07:00
..
app
…
host-adapters
…
resolvers v1.64.0.0 fix wave: full tracker audit — 90 fixes, 52 issues closed, ~50 community PRs absorbed (#2571) 2026-08-14 22:02:07 -07:00
analytics.ts
…
archetypes.ts
…
brain-cache-spec.ts
…
build-app.sh
…
build.sh
…
capture-baseline.ts
…
compare-pr-version.ts
…
declared-annotation.ts
…
detect-bump.ts
…
dev-skill.ts
…
discover-skills.ts
…
eval-compare.ts v1.63.0.0 feat: GStack 2 fork port wave — egress receipts, context-bill, sharded gate, /health fix (#2541) 2026-08-14 09:28:56 -07:00
eval-list.ts v1.63.0.0 feat: GStack 2 fork port wave — egress receipts, context-bill, sharded gate, /health fix (#2541) 2026-08-14 09:28:56 -07:00
eval-select.ts
…
eval-summary.ts v1.63.0.0 feat: GStack 2 fork port wave — egress receipts, context-bill, sharded gate, /health fix (#2541) 2026-08-14 09:28:56 -07:00
eval-watch.ts
…
garry-output-comparison.ts
…
gen-llms-txt.ts
…
gen-skill-docs.ts v1.64.0.0 fix wave: full tracker audit — 90 fixes, 52 issues closed, ~50 community PRs absorbed (#2571) 2026-08-14 22:02:07 -07:00
gstack-schema-pack.ts
…
host-config-export.ts
…
host-config.ts
…
jargon-list.json
…
models.ts v1.64.0.0 fix wave: full tracker audit — 90 fixes, 52 issues closed, ~50 community PRs absorbed (#2571) 2026-08-14 22:02:07 -07:00
one-way-doors.ts v1.61.0.0 fix wave: guards failing open / silent failures (9 fixes, 4 community PRs absorbed) (#2472) 2026-08-08 09:28:45 -07:00
preflight-agent-sdk.ts
…
proactive-suggestions.json v1.64.0.0 fix wave: full tracker audit — 90 fixes, 52 issues closed, ~50 community PRs absorbed (#2571) 2026-08-14 22:02:07 -07:00
psychographic-signals.ts
…
question-registry.ts
…
setup-scc.sh
…
skill-check.ts
…
slop-diff.ts
…
task-emission-schema.ts
…
test-free-shards.ts test: free runner — strict output, parallel execution, stable shard indices 2026-08-15 08:22:44 -07:00
test-paid-shards.ts evals: preflight ping once in the sharded parent, not per shard 2026-08-15 08:13:30 -07:00
test-strict-output.ts test: free runner — strict output, parallel execution, stable shard indices 2026-08-15 08:22:44 -07:00
update-readme-throughput.ts
…
write-version-files.sh
…