diff --git a/CHANGELOG.md b/CHANGELOG.md index 17e5ed851..5c190e5a7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## [1.94.18.0] - 2026-11-03 + +**The Windows-safe test subset is green again on current main.** `test/qa-report-dir.test.ts` expected `ENOTDIR` when `.gstack` is a file, but Windows reports `ENOENT` for the same mistake, so the test failed on every Windows run (windows-free-tests run 41607809007 at f6d6215). The test now accepts either code on Windows and still requires `ENOTDIR` everywhere else. With Windows checks now running by path, a red subset test would block any pull request that touches it. + ## [1.94.17.0] - 2026-11-03 - A pregate guard whose exact command already passed at this tree no longer runs again (GST-1186). When the base branch's `ship_lanes_from` maps the command, it is carried from the verified CI run through the same `gstack-evidence record-ci` path /ship lanes use (`GUARD: carried runs=…`); otherwise a counted local ledger pass of that command at the same working tree stands (CI rows count only through a live `record-ci` check) (`GUARD: reused …`, and the new read-only `gstack-evidence passed -- `). Repos whose suites are guards, like founderstar, stop rerunning about six minutes of suites per /ship. See docs/pregate.md#guard-carry. diff --git a/VERSION b/VERSION index 54c4aa075..ce198dd4a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.94.17.0 +1.94.18.0 diff --git a/agents-digest/gstack-AGENTS.md b/agents-digest/gstack-AGENTS.md index be1ec0e3d..c591dfe8a 100644 --- a/agents-digest/gstack-AGENTS.md +++ b/agents-digest/gstack-AGENTS.md @@ -1,4 +1,4 @@ -# gstack digest v1.94.17.0 — regenerate/re-copy after upgrading gstack +# gstack digest v1.94.18.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 64d469b2b..1ca02c0a8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gstack", - "version": "1.94.17", + "version": "1.94.18", "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/qa-report-dir.test.ts b/test/qa-report-dir.test.ts index 97a121703..afc6f600b 100644 --- a/test/qa-report-dir.test.ts +++ b/test/qa-report-dir.test.ts @@ -84,7 +84,7 @@ test('report-dir names the filesystem cause when .gstack is not a directory', () fs.writeFileSync(path.join(f.root, '.gstack'), 'not a directory\n'); const r = f.tool('gstack-qa-evidence', 'report-dir'); expect(r.status).toBe(2); - expect(r.stderr).toContain('report-dir failed: ENOTDIR'); + expect(r.stderr).toMatch(process.platform === 'win32' ? /report-dir failed: (ENOTDIR|ENOENT)/ : /report-dir failed: ENOTDIR/); }); test('report-dir refuses outside a git work tree instead of guessing a location', () => {