mirror of
https://github.com/garrytan/gstack.git
synced 2026-11-11 19:20:26 +01:00
review/ship: use main's post-expiry smoke sentence; v1.91.24.0
GSTA-23's measurement on the review workflow judge: main's 'Post-expiry smoke rechecks are not-run.' passed 10/10; the C2 wording passed 6/10 and the '..., even in 4c.' variant failed in PR run 37248650879. qa-probe-gates pins main's sentence before step 4c.
This commit is contained in:
1 parent
f3d8d6115a
commit
061bb9b00c
12 files changed
+17
-17
No files matched your search
+2
-2
@@ -1,6 +1,6 @@
|
||||
# Changelog
|
||||
|
||||
## [1.91.23.0] - 2026-10-05
|
||||
## [1.91.24.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.23.0 |
|
||||
| Check | v1.91.19.0 | v1.91.24.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 <rev>` |
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
## NEXT PRIORITY
|
||||
|
||||
### P2/P3: reliability follow-ups deferrals (filed 2026-10-04, v1.91.23.0)
|
||||
### P2/P3: reliability follow-ups deferrals (filed 2026-10-04, v1.91.24.0)
|
||||
|
||||
Deferred from the approved reliability follow-ups plan (docs/designs/RELIABILITY_FOLLOWUPS_2026_10.md), each with its reason.
|
||||
|
||||
@@ -95,7 +95,7 @@ Deferred from the approved reliability follow-ups plan (docs/designs/RELIABILITY
|
||||
|
||||
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.23.0: setup refuses Bun below 1.3.3 and warns below 1.4.0; 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.24.0: setup refuses Bun below 1.3.3 and warns below 1.4.0; 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
|
||||
@@ -109,12 +109,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.23.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.24.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.23.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.24.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.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# gstack digest v1.91.23.0 — regenerate/re-copy after upgrading gstack
|
||||
# gstack digest v1.91.24.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.23",
|
||||
"version": "1.91.24",
|
||||
"description": "Garry's Stack — Claude Code skills + fast headless browser. One repo, one install, entire AI engineering workflow.",
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
|
||||
+1
-1
@@ -798,7 +798,7 @@ Never install, import cookies or bootstrap tests. Functional-only skips browser
|
||||
|
||||
**3. Run smoke and plan checks.**
|
||||
Follow the shared Probe loop for smoke checks and replays until the smoke limit.
|
||||
Then run required plan checks and revalidation, even after smoke expires, using the same procedure but no smoke guard; never reset the clock. Their checkpoints sit beside DEADLINE_FILE; they skip `DEADLINE_TOOL status DEADLINE_FILE` and use `--timeout-ms`, not `--deadline DEADLINE_FILE`. Post-expiry smoke rechecks are not-run, even in 4c.
|
||||
Then run required plan checks and revalidation, even after smoke expires, using the same procedure but no smoke guard; never reset the clock. Their checkpoints sit beside DEADLINE_FILE; they skip `DEADLINE_TOOL status DEADLINE_FILE` and use `--timeout-ms`, not `--deadline DEADLINE_FILE`. Post-expiry smoke rechecks are not-run.
|
||||
Use finite command timeouts, capped at the caller's remaining time if it has a deadline. /review sets none; only an invoker-supplied EARLIER_UTC counts.
|
||||
Await clock/guard results before acting. When the caller's deadline expires, mark unfinished checks not-run.
|
||||
|
||||
|
||||
@@ -263,7 +263,7 @@ Never install, import cookies or bootstrap tests. Functional-only skips browser
|
||||
|
||||
**3. Run smoke and plan checks.**
|
||||
Follow the shared Probe loop for smoke checks and replays until the smoke limit.
|
||||
Then run required plan checks and revalidation, even after smoke expires, using the same procedure but no smoke guard; never reset the clock. Their checkpoints sit beside DEADLINE_FILE; they skip \`DEADLINE_TOOL status DEADLINE_FILE\` and use \`--timeout-ms\`, not \`--deadline DEADLINE_FILE\`. Post-expiry smoke rechecks are not-run, even in 4c.
|
||||
Then run required plan checks and revalidation, even after smoke expires, using the same procedure but no smoke guard; never reset the clock. Their checkpoints sit beside DEADLINE_FILE; they skip \`DEADLINE_TOOL status DEADLINE_FILE\` and use \`--timeout-ms\`, not \`--deadline DEADLINE_FILE\`. Post-expiry smoke rechecks are not-run.
|
||||
Use finite command timeouts, capped at the caller's remaining time if it has a deadline.${ship ? '' : ' /review sets none; only an invoker-supplied EARLIER_UTC counts.'}
|
||||
Await clock/guard results before acting. When the caller's deadline expires, mark unfinished checks not-run.
|
||||
|
||||
|
||||
@@ -503,7 +503,7 @@ Run the shared preflight; start its smoke guard once. Guard every smoke probe. F
|
||||
|
||||
**3. Run smoke and plan checks.**
|
||||
Follow the shared Probe loop for smoke checks and replays until the smoke limit.
|
||||
Then run required plan checks and revalidation, even after smoke expires, using the same procedure but no smoke guard; never reset the clock. Their checkpoints sit beside DEADLINE_FILE; they skip `DEADLINE_TOOL status DEADLINE_FILE` and use `--timeout-ms`, not `--deadline DEADLINE_FILE`. Post-expiry smoke rechecks are not-run, even in 4c.
|
||||
Then run required plan checks and revalidation, even after smoke expires, using the same procedure but no smoke guard; never reset the clock. Their checkpoints sit beside DEADLINE_FILE; they skip `DEADLINE_TOOL status DEADLINE_FILE` and use `--timeout-ms`, not `--deadline DEADLINE_FILE`. Post-expiry smoke rechecks are not-run.
|
||||
Use finite command timeouts, capped at the caller's remaining time if it has a deadline.
|
||||
Await clock/guard results before acting. When the caller's deadline expires, mark unfinished checks not-run.
|
||||
|
||||
|
||||
@@ -139,7 +139,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(117); // + codex-e2e-multiblock-live and skill-e2e-design-model-smoke (v1.91.23.0)
|
||||
expect(files).toHaveLength(117); // + codex-e2e-multiblock-live and skill-e2e-design-model-smoke (v1.91.24.0)
|
||||
expect(files).toContain('test/skill-e2e-ship-skip.test.ts');
|
||||
const m = livePlan(files);
|
||||
expect(livePlan([...files].reverse())).toEqual(m);
|
||||
|
||||
@@ -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.23.0 Bun floor (E1) pinned the install hint to the tested Bun.
|
||||
// The v1.91.24.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.0"', 'BUN_VERSION="1.3.10"'],
|
||||
|
||||
@@ -229,7 +229,7 @@ test('detached PR fallback and release commands cover their actual default worke
|
||||
)) / 1000 * 1.05));
|
||||
}
|
||||
const detachedReleaseWall = Number(scripts['eval:bg:release'].match(/--timeout (\d+)/)?.[1]) * 1000;
|
||||
// + codex-multiblock-live and design-model-smoke (periodic, v1.91.23.0): one more 2-worker batch.
|
||||
// + codex-multiblock-live and design-model-smoke (periodic, v1.91.24.0): one more 2-worker batch.
|
||||
expect(releaseFloors).toEqual([22_355, 37_632]);
|
||||
expect(releaseFloors.reduce((total, floor) => total + floor, 0)).toBe(59_987);
|
||||
expect(detachedReleaseWall).toBe(116_700_000);
|
||||
|
||||
@@ -325,10 +325,10 @@ describe('judge-named QA workflow gaps (C2)', () => {
|
||||
}
|
||||
});
|
||||
|
||||
test('/review and /ship: step 4c revalidation does not rerun smoke checks after smoke expiry', () => {
|
||||
test('/review and /ship: smoke rechecks after smoke expiry are not-run, before step 4c revalidation', () => {
|
||||
for (const skillName of ['review', 'ship']) {
|
||||
const text = generateQAReview(ctx(skillName));
|
||||
const rule = text.indexOf('Post-expiry smoke rechecks are not-run, even in 4c.');
|
||||
const rule = text.indexOf('Post-expiry smoke rechecks are not-run.');
|
||||
expect(rule).toBeGreaterThan(-1);
|
||||
expect(rule).toBeLessThan(text.indexOf('c. Re-review changed or uncertain coverage and repeat step 3 for affected checks.'));
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user