ci: run every package's tests, not five of them - #108
Merged
Conversation
turbo.json declared `test` for five task names, one of which — `opencode#test` — stopped matching anything at the rename. The main package and the TUI have not run in CI since: a regression I shipped in #96 broke three TUI tests and nothing noticed until I ran them by hand. Declare the task once so every package that has a test script runs it, and raise the job timeout to match the new scope. Claude-Session: https://claude.ai/code/session_01U29Yk1UscZJ5ZVBXV1Sn8b
The turbo `test` task was declared for five names, one of which — `opencode#test` — stopped matching anything at the rename, so the main package and the TUI have not run in CI since. Declaring it once covers all 30 suites. Turning them on surfaced two real defects, both mine: - mise detection matched any `mise/installs` path, so a machine whose Bun comes from mise called every install mise-managed; - a source-text assertion pinned the exact shape of the worker's `env` literal and broke when #103 added a key, while saying nothing about whether the environment still reaches the worker. Keep `^build` only on the four tasks that already had it: the generic task made every test run build the release binaries. Claude-Session: https://claude.ai/code/session_01U29Yk1UscZJ5ZVBXV1Sn8b
This comment has been minimized.
This comment has been minimized.
- `redcode run`: #98 made an unknown finish continue the turn instead of ending it in silence, which is the recovery we want; the two tests still pinned the old shape. They now assert the recovery and what must not change with it. - `httpapi-codegen`: expectations pinned "/" separators and read a fixture directory through `URL.pathname`, which is "/C:/..." on Windows. Neither had ever run there. Claude-Session: https://claude.ai/code/session_01U29Yk1UscZJ5ZVBXV1Sn8b
…et Linux box Everything here failed for a reason unrelated to what the test was checking: - TUI frame captures gave up after 125 ms and command registration after 250 ms, so the whole-suite run read a blank frame as a broken component; - `tool.write` asserted 0644, which is only what a umask of 022 produces — forcing the mode would be worse than the bug, so the test now follows umask; - the codegen fixture compared bytes across a CRLF checkout; - the webfetch converter test builds 10,000 nested divs on purpose and the embedded-server suite boots a server per test, both against a 5 s default. Claude-Session: https://claude.ai/code/session_01U29Yk1UscZJ5ZVBXV1Sn8b
…e_modules `packages/client/node_modules` does not exist on the Windows runner — the installer hoists to the workspace root — so the file threw at import time and the whole suite failed before a test ran. Claude-Session: https://claude.ai/code/session_01U29Yk1UscZJ5ZVBXV1Sn8b
Both tests build paths with `path`, and both asserted the result with a hard-coded "/". They described a POSIX machine, which is the only kind they had ever run on. Claude-Session: https://claude.ai/code/session_01U29Yk1UscZJ5ZVBXV1Sn8b
…e way PowerShell needs - `@reddb-io/redcode#test` spawns the real CLI, which reads generated SDK sources; without `^build` it read a file that had not been generated yet. - One shell test built a quoted command without the call operator that the helper beside it already applies, so PowerShell parsed the path as a string and the first flag as a syntax error. Claude-Session: https://claude.ai/code/session_01U29Yk1UscZJ5ZVBXV1Sn8b
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What was happening
turbo.jsondeclared thetesttask for exactly five names:opencode#testhas matched nothing since the rename, sobun turbo test— the entire unit job —never ran
packages/redcodeorpackages/tui, the two largest suites in the repo. That isnot a hypothetical: the projection regression I shipped in #96 broke three TUI tests and CI stayed
green; I found it by running them by hand.
The change
One
testtask declaration instead of five per-package ones, so every package with atestscriptis covered — 30 suites instead of 5 — and the job timeout goes to 35 minutes to match.
What to expect from this PR's own run
This is the first time most of these suites have run in this job, so CI is the arbiter here rather
than my machine. Running the whole workspace locally surfaced three failures, all of which look like
load artifacts of many suites running at once rather than broken code:
sdk-next— "embedded client uses the real router and handlers", timed out at 5074 ms against a5000 ms limit while booting an embedded server;
core— "WebFetchTool registration › returns an error result when HTML-to-Markdown conversionthrows", 8999 ms; the same suite passes 1143/1143 when run on its own;
app— "last-turn diff source requests session diff".If CI reproduces any of them they are real and get fixed here; if it does not, the suites go in as
they are. Either way the answer arrives from a machine that is not this one.
https://claude.ai/code/session_01U29Yk1UscZJ5ZVBXV1Sn8b
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.