diff --git a/.gitattributes b/.gitattributes index 565a0287996..68936114729 100644 --- a/.gitattributes +++ b/.gitattributes @@ -12,3 +12,6 @@ /src/cli/bundled-skill-guides.ts text eol=lf # Bundled plugin trees are byte-hashed; CRLF checkout would break the pinned hash. /resources/plugins/** text eol=lf +# LF-only batch files hit the Windows parser's 512-byte boundary bug; -text keeps +# the stored bytes CRLF so no checkout or blob reader can see them as LF-only. +/tests/e2e/fixtures/golden-stub-agent/*.cmd -text whitespace=cr-at-eol diff --git a/.github/workflows/release-cut.yml b/.github/workflows/release-cut.yml index 7febc90fa88..d1eebcf4097 100644 --- a/.github/workflows/release-cut.yml +++ b/.github/workflows/release-cut.yml @@ -784,6 +784,7 @@ jobs: echo "## Release E2E Signal" echo "" echo "- Platform golden E2E is release-blocking: terminal rendering, restrictive-umask profile writes, and agent TUI launch on Linux/macOS, plus fresh startup on Windows." + echo "- Exception: every golden except terminal rendering runs with \`--if-present\`, so it is skipped (not failed) on older tags that predate its script." echo "- Full E2E runs separately after publication and cannot change the release result." echo "- Terminal rendering release evidence is diagnostic/non-blocking." echo "" diff --git a/tests/e2e/fixtures/golden-stub-agent/codex.cmd b/tests/e2e/fixtures/golden-stub-agent/codex.cmd index 894a9216aa2..430f2982bef 100644 --- a/tests/e2e/fixtures/golden-stub-agent/codex.cmd +++ b/tests/e2e/fixtures/golden-stub-agent/codex.cmd @@ -1,2 +1,2 @@ -@echo off -call "%~dp0golden-stub-agent.cmd" %* +@echo off +call "%~dp0golden-stub-agent.cmd" %* diff --git a/tests/e2e/fixtures/golden-stub-agent/golden-stub-agent.cmd b/tests/e2e/fixtures/golden-stub-agent/golden-stub-agent.cmd index ccf5ced005e..77ef2f9a04d 100644 --- a/tests/e2e/fixtures/golden-stub-agent/golden-stub-agent.cmd +++ b/tests/e2e/fixtures/golden-stub-agent/golden-stub-agent.cmd @@ -1,2 +1,2 @@ -@echo off -node "%~dp0golden-stub-agent.js" %* +@echo off +node "%~dp0golden-stub-agent.js" %* diff --git a/tests/e2e/fixtures/golden-stub-agent/golden-stub-agent.js b/tests/e2e/fixtures/golden-stub-agent/golden-stub-agent.js index 95e8d109559..642229649af 100755 --- a/tests/e2e/fixtures/golden-stub-agent/golden-stub-agent.js +++ b/tests/e2e/fixtures/golden-stub-agent/golden-stub-agent.js @@ -83,7 +83,8 @@ function consumeInput() { pendingInput = pendingInput.slice(1) if (char === '\r' || char === '\n') { submit() - } else if (char === '\x04') { + } else if (char === '\x04' || char === '\x03') { + // Raw mode delivers Ctrl+C as \x03 instead of raising SIGINT. exitCleanly() } else if (char === '\x7f' || char === '\b') { composer = composer.slice(0, -1)