From 6c2a829b908f6face28adce25eed05e9169c4e42 Mon Sep 17 00:00:00 2001 From: garrytan Date: Wed, 28 Oct 2026 00:48:53 +0000 Subject: [PATCH] fix(learn): BASH_COMPAT guard on in-window heredocs; count skill-e2e-write-skill in the paid census Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> --- bin/gstack-learnings-log | 4 ++++ bin/gstack-learnings-search | 4 ++++ test/eng-finding-retry-budget.test.ts | 2 +- test/fixtures/skill-evals/learn/seed.sh | 4 ++++ 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/bin/gstack-learnings-log b/bin/gstack-learnings-log index b940dc135..8acaf450a 100755 --- a/bin/gstack-learnings-log +++ b/bin/gstack-learnings-log @@ -5,6 +5,10 @@ # # Append-only storage. Duplicates (same key+type) are resolved at read time # by gstack-learnings-search ("latest winner" per key+type). +# Heredoc delivery guard: bash 5.2+ pipes heredoc bodies <=64KiB, and on +# macOS a starved 512-byte pipe hangs bodies >=512B at startup. Compat level +# 50 restores the tempfile path (test/heredoc-pipe-deadlock.test.ts). +BASH_COMPAT=50 set -euo pipefail GSTACK_BUN_CONFIG=/dev/null; case "${OSTYPE:-}" in msys*|cygwin*) if command -v cygpath >/dev/null 2>&1; then GSTACK_BUN_CONFIG=NUL; fi ;; esac diff --git a/bin/gstack-learnings-search b/bin/gstack-learnings-search index 7b10c2942..54225ca4d 100755 --- a/bin/gstack-learnings-search +++ b/bin/gstack-learnings-search @@ -7,6 +7,10 @@ # Exit 0 silently if no learnings file exists or nothing matches. Missing bun # exits 127 and a failed read exits non-zero with its stderr (#2790): "could # not read" must never look like "nothing recorded". +# Heredoc delivery guard: bash 5.2+ pipes heredoc bodies <=64KiB, and on +# macOS a starved 512-byte pipe hangs bodies >=512B at startup. Compat level +# 50 restores the tempfile path (test/heredoc-pipe-deadlock.test.ts). +BASH_COMPAT=50 set -euo pipefail GSTACK_BUN_CONFIG=/dev/null; case "${OSTYPE:-}" in msys*|cygwin*) if command -v cygpath >/dev/null 2>&1; then GSTACK_BUN_CONFIG=NUL; fi ;; esac diff --git a/test/eng-finding-retry-budget.test.ts b/test/eng-finding-retry-budget.test.ts index 035a129ce..687cc2ea0 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(111); // + skill-e2e-ship-frozen-scope (frozen review scope, GSTA-113 PR 2); + skill-e2e-failure-routing (#3157/#3158); + skill-e2e-dx-error-contract (#3226); + skill-e2e-gate-integrity (HONEST_WORK_GATE_INTEGRITY W8); + skill-e2e-autoplan-schema-canary, -guard-pty and -long-session (Oct 7 wave, CEO-13, ENG-18, CEO-15); + skill-e2e-ship-measure-seeded-flake (v1.91.32.0); 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).toHaveLength(112); // + skill-e2e-write-skill (GSTA-133); + skill-e2e-ship-frozen-scope (frozen review scope, GSTA-113 PR 2); + skill-e2e-failure-routing (#3157/#3158); + skill-e2e-dx-error-contract (#3226); + skill-e2e-gate-integrity (HONEST_WORK_GATE_INTEGRITY W8); + skill-e2e-autoplan-schema-canary, -guard-pty and -long-session (Oct 7 wave, CEO-13, ENG-18, CEO-15); + skill-e2e-ship-measure-seeded-flake (v1.91.32.0); 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/fixtures/skill-evals/learn/seed.sh b/test/fixtures/skill-evals/learn/seed.sh index 3f82feb92..1d0dbbd8b 100755 --- a/test/fixtures/skill-evals/learn/seed.sh +++ b/test/fixtures/skill-evals/learn/seed.sh @@ -1,6 +1,10 @@ #!/bin/sh # Seeds a /learn eval work dir: a git repo plus a gstack state root at ./.gstack-home. # Usage (from a task's setup, cwd = the run's work dir): sh "$SKILL_EVAL_FIXTURES/seed.sh" full|empty|cross +# Heredoc delivery guard: bash 5.2+ pipes heredoc bodies <=64KiB, and on +# macOS a starved 512-byte pipe hangs bodies >=512B at startup. Compat level +# 50 restores the tempfile path (test/heredoc-pipe-deadlock.test.ts). +BASH_COMPAT=50 set -eu mode="${1:-full}" git init -q -b main