mirror of
https://github.com/garrytan/gstack.git
synced 2026-10-31 14:06:50 +01:00
v1.91.147.0 test(seed): refresh the free-suite duration seeds (#3289)
* test(seed): refresh the free-suite duration seeds from the weekly recording * test(seed): allowlist brain-sync and setup-codex-scope with the split todo; drop host-renders-prune The 2026-10-19 weekly recording put test/brain-sync.test.ts at 89s (#3254's case-collision suite) and test/setup-codex-scope.test.ts at 64s, over the 60s ceiling; test/host-renders-prune.test.ts fell to 57s, so its entry is stale. Both new entries carry the existing TODOS.md split todo. Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * test(seed): classify the seed allowlist as free-only so editing it selects no paid case Only test/free-seed-ratchet.test.ts reads scripts/free-test-seed-allowlist.json, but eval selection derived all 246 gate cases from it, so #3289's allowlist repair paid for a full gate. The new free-fixtures case shows seed data and the allowlist select nothing, with a negative control: design/src/evolve.ts still selects its derived dependents. Non-behavioral HARNESS_VERSION decision. Gate integrity: scripts/test-pr-profile.ts FREE_ONLY_PR_FILES gains one entry. Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * chore: stamp v1.91.147.0 Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: garrytan <garrytan@gmail.com> Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
This commit is contained in:
11 files changed
+2042
-2001
No files matched your search
@@ -1,5 +1,13 @@
|
||||
# Changelog
|
||||
|
||||
## [1.91.147.0] - 2026-10-19
|
||||
|
||||
**The free-suite duration seeds are current again.** This is the first refresh from the weekly recorder. It adds 14 Linux and 6 Windows test files that the shard packers had been placing at the 99th-percentile estimate.
|
||||
|
||||
### Changed
|
||||
- **Seed allowlist:** `test/brain-sync.test.ts` (89 s) and `test/setup-codex-scope.test.ts` (64 s) are allowlisted with the existing split todo. `test/host-renders-prune.test.ts` (now 57 s) leaves the allowlist.
|
||||
- **Editing the seed allowlist no longer selects paid evals.** Only the free seed ratchet reads `scripts/free-test-seed-allowlist.json`, but an edit to it used to pull in all 246 dependent gate cases. It is now classified free-only, like the two seeds.
|
||||
|
||||
## [1.91.146.0] - 2026-10-19
|
||||
|
||||
**`gstack-ship-queue` can run merge trains: several READY PRs share one full gate, merge one by one only while main's tree matches the prefix that gate tested, and a red train is bisected on its red cases alone.** The surface is off unless the base revision's `.gstack/ship-policy.json` declares a `train` block. Without one, `ready --pr <n>` prints exactly the block it prints today. gstack's own policy does not turn trains on yet: that waits for the workflow side (the train-nonce record, the `cases` and `prefix_shas` inputs and the dispatched screen) and one dry-run train. Walkthrough: [docs/ship-policy.md#run-a-merge-train](docs/ship-policy.md#run-a-merge-train). Plan GSTA-49, lane T1.
|
||||
|
||||
@@ -5471,10 +5471,11 @@ Garry for each; revisit 2026-10-29 unless a date says otherwise.
|
||||
16-worker duration recording on 2026-10-15 the event had not landed
|
||||
(`['paste', 'enter', 'end_turn']`). Wait for the CLI's own write instead of a
|
||||
timer (docs/TESTING_INTERNALS.md#flake-ledger). **Effort:** S. **Priority:** P2.
|
||||
- **Split the free files the 2026-10-15 seed put over 60 s** —
|
||||
`test/setup-install-registry.test.ts` (82 s), `test/host-renders-prune.test.ts`
|
||||
(64 s) and `test/setup-codex-scope.test.ts` (60.4 s) are allowlisted with this
|
||||
todo in `scripts/free-test-seed-allowlist.json`; `test/brain-sync.test.ts`
|
||||
(57 s) and `test/setup-codex-scope-namespaces.test.ts` (57 s) are next. Split
|
||||
- **Split the free files the weekly seed puts over 60 s** —
|
||||
`test/setup-install-registry.test.ts` (84 s), `test/brain-sync.test.ts` (89 s)
|
||||
and `test/setup-codex-scope.test.ts` (64 s) are allowlisted with this todo in
|
||||
`scripts/free-test-seed-allowlist.json` (2026-10-19 recording);
|
||||
`test/host-renders-prune.test.ts` (57 s) and
|
||||
`test/setup-codex-scope-namespaces.test.ts` are next. Split
|
||||
each by describe block, rerun `bun run test:ubicloud --record-durations` and
|
||||
delete the entries. **Effort:** S each. **Priority:** P2.
|
||||
@@ -1,4 +1,4 @@
|
||||
# gstack digest v1.91.146.0 — regenerate/re-copy after upgrading gstack
|
||||
# gstack digest v1.91.147.0 — regenerate/re-copy after upgrading gstack
|
||||
|
||||
Behavioral rules from gstack (https://github.com/garrytan/gstack), compressed
|
||||
for agent hosts without a full skill install. The full skills add workflows,
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "gstack",
|
||||
"version": "1.91.146",
|
||||
"version": "1.91.147",
|
||||
"description": "Garry's Stack — Claude Code skills + fast headless browser. One repo, one install, entire AI engineering workflow.",
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
+1269
-1255
File diff suppressed because it is too large.
Load diff
@@ -3,6 +3,7 @@
|
||||
{"file": "test/host-conformance.test.ts", "reason": "real ./setup per host and layout; the time is setup's own skill-linking loop, not fixture copies (shared fixture landed in W6c)"},
|
||||
{"file": "test/shared-libs-stage-actor.test.ts", "reason": "re-runs the paid shared-libs runner body against git fixture repos per test; owned by the paid-harness value-bar review"},
|
||||
{"file": "test/setup-install-registry.test.ts", "reason": "82s in the 2026-10-15 recording (58s on 2026-10-04): 11 cases each run the real ./setup, gstack-relink, gstack-config and gstack-uninstall against throwaway checkouts", "todo": "split by describe block so the packer can balance it, then rerun bun run test:ubicloud --record-durations (TODOS.md, fix wave 2 follow-ups)"},
|
||||
{"file": "test/host-renders-prune.test.ts", "reason": "64s in the 2026-10-15 recording (unseeded before): every case runs a real ./setup or the gstack-upgrade migration over host render dirs", "todo": "split by describe block so the packer can balance it, then rerun bun run test:ubicloud --record-durations (TODOS.md, fix wave 2 follow-ups)"}
|
||||
{"file": "test/brain-sync.test.ts", "reason": "89s in the 2026-10-19 weekly recording (58s on 2026-10-15): #3254 added the case-collision suite, and every case drains a real gstack-brain-sync against a local bare remote", "todo": "split by describe block so the packer can balance it, then rerun bun run test:ubicloud --record-durations (TODOS.md, fix wave 2 follow-ups)"},
|
||||
{"file": "test/setup-codex-scope.test.ts", "reason": "64s in the 2026-10-19 weekly recording (59s on 2026-10-15): each case runs the real ./setup twice against a Codex install fixture", "todo": "split by describe block so the packer can balance it, then rerun bun run test:ubicloud --record-durations (TODOS.md, fix wave 2 follow-ups)"}
|
||||
]
|
||||
}
|
||||
@@ -16,7 +16,7 @@
|
||||
"scripts/lib/published-text.ts": {"blob":"3f2e4d616b5dd0204035710c66b64d49055c5714","since":6},
|
||||
"scripts/lib/shard-engine.ts": {"blob":"3cd0b1aaa84018b00bf9ea0ce48093f3c8492f66","since":6},
|
||||
"scripts/test-paid-shards.ts": {"blob":"8ddee5f11ed7856876135520dd8025ab989e2db9","since":6},
|
||||
"scripts/test-pr-profile.ts": {"blob":"2029a89e14f511866cc91bebfee00b4fe9e7cf63","since":6},
|
||||
"scripts/test-pr-profile.ts": {"blob":"579ca1bbd590f709c1ea3d6f28fa6c629688c79f","since":6,"nonBehavioral":"Classifies scripts/free-test-seed-allowlist.json as free-only; only the free seed ratchet reads it, so no verdict can change"},
|
||||
"scripts/test-strict-output.ts": {"blob":"01185d20dc9761b04b9b2f751ec98664fe0eaf93","since":6},
|
||||
"test/helpers/agent-sdk-runner.ts": {"blob":"210bba92d241a90df578b2c7fc943ac5755d0025","since":6},
|
||||
"test/helpers/auq-substance-panel.ts": {"blob":"4881260ef793668e4963a062db6d06a5e1f7a40f","since":6},
|
||||
|
||||
@@ -231,6 +231,7 @@ export const FREE_ONLY_PR_FILES = [
|
||||
'test/helpers/auq-parallel-worker.ts',
|
||||
'test/helpers/stored-zip.ts', // Read only by the free test-health report tests.
|
||||
'scripts/free-test-durations.json',
|
||||
'scripts/free-test-seed-allowlist.json', // Read only by the free seed ratchet (test/free-seed-ratchet.test.ts).
|
||||
'scripts/paid-test-durations.json',
|
||||
'scripts/ubicloud/**',
|
||||
'capy/skill/**', // The vendored Capy skill (Drive bootstrapper): run by Capy agents, read by no paid case; test/capy-skill-wrapper.test.ts covers it.
|
||||
|
||||
@@ -107,6 +107,16 @@ describe('PR selection over the W1a single-file fallbacks', () => {
|
||||
}
|
||||
});
|
||||
|
||||
test('seed data and the seed allowlist select no paid case; a derived paid-surface file still selects its dependents (#3289)', () => {
|
||||
// #3289: the allowlist edit derived 246 gate cases, though only test/free-seed-ratchet.test.ts reads it.
|
||||
const seed = select(['scripts/free-test-seed-allowlist.json', 'scripts/free-test-durations.json', 'scripts/free-test-durations-windows.json']);
|
||||
expect({ mode: seed.mode, unknown: seed.unknownFiles, derived: seed.derivedFiles, e2e: seed.e2e, judges: seed.judges })
|
||||
.toEqual({ mode: 'pr', unknown: [], derived: [], e2e: [], judges: [] });
|
||||
const paid = select(['design/src/evolve.ts']);
|
||||
expect(paid.derivedFiles.map(entry => entry.file)).toEqual(['design/src/evolve.ts']);
|
||||
expect(paid.e2e.length).toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
test('the paid workflow itself still restores the full gate (36493452542)', () => {
|
||||
const result = select(['.github/workflows/evals.yml']);
|
||||
expect(result.mode).toBe('full-fallback');
|
||||
|
||||
Reference in new issue
Block a user