Skip to content

test(ssh): assert the fork ignores a t3 already on the remote PATH - #21

Merged
matheustimbo merged 1 commit into
fork-mainfrom
t3code/fix-ci-pipeline-failures
Sep 12, 2026
Merged

matheustimbo merged 1 commit into
fork-mainfrom
t3code/fix-ci-pipeline-failures

Conversation

@matheustimbo

Copy link
Copy Markdown
Owner

Fork CI has been red on fork-main since the gate landed. The only real failure is remote runner install diagnostics > handles 'npx'/'existing-cli' and its npm twin in packages/ssh/src/runnerProcess.test.ts, expecting exit 0 and getting 1. The other three counts in vp run: 4 failed are siblings the parallel run killed.

The fork's feat(fork): add independent update channel removed the command -v t3 short-circuit from the remote runner script in packages/ssh/src/tunnel.ts. That removal is correct: this fork ships its own server package, and exec'ing whatever t3 happens to sit on the remote PATH would launch someone else's build instead of the pinned one. tunnel.test.ts:115 already asserts the shortcut is gone. The process-level existing-cli case was never updated, so it kept asserting upstream behavior. It stayed invisible until #17 gave the fork a CI gate that actually runs the suite.

Rather than delete the case, this turns it into a guard for the fork's own invariant, renamed ignores-path-cli. bin/t3 becomes a decoy script printing a different argv instead of a symlink to the installed CLI, so the assertions can tell which binary ran, and the installer call is now expected rather than forbidden.

Verification

All 19 tests in packages/ssh/src/runnerProcess.test.ts pass, and tsc --noEmit on the package is clean. To confirm the case is not passing for the wrong reason, I temporarily re-added the short-circuit to tunnel.ts and it failed as intended:

AssertionError: expected [ 'path-cli' ] to deeply equal [ 'serve', 'a path with spaces' ]
 × handles 'npx'/'ignores-path-cli'
 × handles 'npm'/'ignores-path-cli'

No production code changes; tunnel.ts is untouched in this diff.

Model: Claude Opus 5 (1M context), harness: Claude Code in T3 Code.

🤖 Generated with Claude Code

`feat(fork): add independent update channel` dropped the `command -v t3`
short-circuit from the remote runner script, because this fork ships its own
server package and exec'ing whatever `t3` sits on the remote PATH would launch
someone else's build. `tunnel.test.ts` pins that removal, but the process-level
`existing-cli` case in `runnerProcess.test.ts` still asserted the upstream
behavior. It went unnoticed until PR #17 gave the fork a CI gate that actually
runs the suite, and it has been the only real failure in `Fork CI` since.

Rather than delete the case, this turns it into a guard for the fork's own
invariant. `bin/t3` is now a decoy that prints a different argv instead of a
symlink to the installed CLI, so the assertions distinguish which binary ran,
and the installer call is expected rather than forbidden. Re-adding the
short-circuit to `tunnel.ts` fails the case with `expected [ 'path-cli' ] to
deeply equal [ 'serve', 'a path with spaces' ]`.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:S labels Sep 12, 2026
@matheustimbo
matheustimbo merged commit 4aa3c2a into fork-main Sep 12, 2026
12 checks passed
@matheustimbo
matheustimbo deleted the t3code/fix-ci-pipeline-failures branch September 12, 2026 07:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant