diff --git a/CHANGELOG.md b/CHANGELOG.md index d6f17456a..1b4eacc9f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## [1.91.28.0] - 2026-10-05 +## [1.91.30.0] - 2026-10-05 **A failed eval now says what happened, with the evidence and the next command.** **Bun is checked before anything installs, and make-pdf and /review work in Codex.** @@ -11,7 +11,7 @@ This release follows up on the severe fix wave. Its eight census runs had 21 red Each row is a regression test on this release that fails on v1.91.19.0, or a measurement from the 2026-10-03/04 census artifacts named in the row. -| Check | v1.91.19.0 | v1.91.28.0 | +| Check | v1.91.19.0 | v1.91.30.0 | |---|---|---| | make-pdf blocks on Codex that use `$P` without finding it | 7 of 8 | 0 | | /review with a read-only `.git` (Codex's sandbox) | prints nothing, "Nothing to review" | reviews against the local base, says `stale at ` | diff --git a/TODOS.md b/TODOS.md index 9820fe1e6..71c3ba7a1 100644 --- a/TODOS.md +++ b/TODOS.md @@ -2,7 +2,7 @@ ## NEXT PRIORITY -### P2/P3: reliability follow-ups deferrals (filed 2026-10-04, v1.91.28.0) +### P2/P3: reliability follow-ups deferrals (filed 2026-10-04, v1.91.30.0) Deferred from the approved reliability follow-ups plan (docs/designs/RELIABILITY_FOLLOWUPS_2026_10.md), each with its reason. @@ -125,7 +125,7 @@ From the approved 2026-10 test/eval/CI audit plan; the audit PR files these. Deferred from the approved severe fix wave (docs/designs/SEVERE_FIX_WAVE_2026_10.md), each with its reason. -- ~~**Enforce the Bun floor at setup (#2815)**~~ — done in v1.91.28.0: setup refuses Bun below 1.3.3 and warns below 1.4.2; auto-update and /gstack-upgrade check the incoming floor before moving the checkout. Original note: — `engines.bun` is now `>=1.4.0` +- ~~**Enforce the Bun floor at setup (#2815)**~~ — done in v1.91.30.0: setup refuses Bun below 1.3.3 and warns below 1.4.2; auto-update and /gstack-upgrade check the incoming floor before moving the checkout. Original note: — `engines.bun` is now `>=1.4.0` (the CI pin), but Bun does not enforce `engines` and setup never checks the version. Bun older than 1.3.3 silently ignores `--no-compile-autoload-dotenv` and `--no-env-file` (verified with 1.3.2), so D0's protection against a @@ -139,12 +139,12 @@ Deferred from the approved severe fix wave (docs/designs/SEVERE_FIX_WAVE_2026_10 - **C8 router wording behind a routing panel** — disabled skills now leave the router, but the "When in doubt, invoke the skill" wording change (Tier 3) was not run through a routing eval panel. **Effort:** S. **Priority:** P3. -- ~~**Cross-block variables on fresh-shell hosts: make-pdf `$P`**~~ — done in v1.91.28.0: env-var hosts re-derive `$P` in every block (MAKE_PDF_BIN honored). Original note: — make-pdf +- ~~**Cross-block variables on fresh-shell hosts: make-pdf `$P`**~~ — done in v1.91.30.0: env-var hosts re-derive `$P` in every block (MAKE_PDF_BIN honored). Original note: — make-pdf "exports" `$P` for later blocks, which Codex and the other env-var hosts lose between blocks (same class as `$B`/`$D`, which the shared prelude now re-derives). Add `P` to the runtime prelude or resolve it per block. **Effort:** S. **Priority:** P2. -- ~~**#2709's recorded-Chromium reap never runs on Playwright 1.62**~~ — done in v1.91.28.0: the owned headless launch records the browser PID over CDP `SystemInfo.getProcessInfo`. Original note: — Playwright +- ~~**#2709's recorded-Chromium reap never runs on Playwright 1.62**~~ — done in v1.91.30.0: the owned headless launch records the browser PID over CDP `SystemInfo.getProcessInfo`. Original note: — Playwright 1.62's `Browser` has no `process()`, so `chromiumProcInfo` is always null and the cleanup is a no-op (verified by probe). Record the PID another way (CDP `SystemInfo.getProcessInfo` or the launch server). **Effort:** S. **Priority:** P2. diff --git a/VERSION b/VERSION index 85d6fee55..4609f2bd2 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.91.28.0 +1.91.30.0 diff --git a/agents-digest/gstack-AGENTS.md b/agents-digest/gstack-AGENTS.md index 30031fbe1..aa4dfe875 100644 --- a/agents-digest/gstack-AGENTS.md +++ b/agents-digest/gstack-AGENTS.md @@ -1,4 +1,4 @@ -# gstack digest v1.91.28.0 — regenerate/re-copy after upgrading gstack +# gstack digest v1.91.30.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, diff --git a/package.json b/package.json index 91dbd0c6f..bb50eb2d7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gstack", - "version": "1.91.28", + "version": "1.91.30", "description": "Garry's Stack — Claude Code skills + fast headless browser. One repo, one install, entire AI engineering workflow.", "license": "MIT", "type": "module", diff --git a/test/eng-finding-retry-budget.test.ts b/test/eng-finding-retry-budget.test.ts index 1abbbe7ca..5b0598f04 100644 --- a/test/eng-finding-retry-budget.test.ts +++ b/test/eng-finding-retry-budget.test.ts @@ -141,7 +141,7 @@ test('live periodic census fits the declared CI wall including setup', () => { test('registered allocation is deterministic and preserves every discovered file', () => { const files = collectPaidTestFiles(); - expect(files).toHaveLength(103); // W5a: 15 carve wrappers became one case-sharded file; + codex-e2e-multiblock-live and skill-e2e-design-model-smoke (v1.91.28.0); + expect(files).toHaveLength(103); // W5a: 15 carve wrappers became one case-sharded file; + codex-e2e-multiblock-live and skill-e2e-design-model-smoke (v1.91.30.0); expect(files).toContain('test/skill-e2e-ship-skip.test.ts'); const m = livePlan(files); expect(livePlan([...files].reverse())).toEqual(m); diff --git a/test/helpers/manual-judge-review-fixture.ts b/test/helpers/manual-judge-review-fixture.ts index 7f0d3a982..7ad0f9732 100644 --- a/test/helpers/manual-judge-review-fixture.ts +++ b/test/helpers/manual-judge-review-fixture.ts @@ -26,7 +26,7 @@ const LATER_PREAMBLE_EDITS: Array<[string, string]> = [ // The v1.91.19.0 generated-bash lint (INV-3) gave the shared Bun-install block a // ${TMPDIR:-/tmp} mktemp template; same line, different bytes. -// The v1.91.28.0 Bun floor (E1) pinned the install hint to the tested Bun. +// The v1.91.30.0 Bun floor (E1) pinned the install hint to the tested Bun. const LATER_WAVE_EDITS: Array<[string, string]> = [ ['tmpfile=$(mktemp "${TMPDIR:-/tmp}/bun-install.XXXXXX")', 'tmpfile=$(mktemp)'], ['BUN_VERSION="1.4.2"', 'BUN_VERSION="1.3.10"'],