What happened?
34 *.test.ts / *.test.tsx files under packages/ui/src/** are not executed by any CI job. Any contract drift in those tests goes undetected.
Which area seems affected?
CI, release, or developer tooling
How much does this affect you?
Breaks an important workflow
Steps to reproduce
- Push a PR with changes to any file under
packages/ui/src/
- CI completes all jobs green
- The corresponding
*.test.ts files are never run — no test output visible in any CI log
What did you expect to happen?
Tests under packages/ui/src/ should execute as part of CI and fail the build when they break.
Evidence
.github/workflows/ci.yml has three unit entry points:
unit-app: bun turbo test:ci --filter=@opencode-ai/app
unit-opencode: bun turbo test:ci --filter=opencode
unit-desktop: bun turbo test:ci --filter=@opencode-ai/desktop-electron
turbo.json does not define a @opencode-ai/ui#test:ci task, so turbo's dependency graph never propagates into ui tests.
The unit-ui-focused job only runs 5 token/theme/typography guard tests under packages/ui/test/. The 32 tests under packages/ui/src/components/ (markdown, scroll-view, picker, tool-contract, session-turn-*, etc.) plus 2 under packages/ui/src/util/, lib/, i18n/ are all silent.
Trigger
PR #861 (Slice 3 extracting TodoStatusMarker) added packages/ui/src/components/todo-status-marker.test.ts. The external reviewer noticed it falls into this black hole.
Diagnostics
See CI workflow and turbo.json for the current configuration.
Fix directions (to be evaluated)
A. Expand unit-ui-focused listing — explicitly list all src/*.test.ts files. Downside: every new test requires a ci.yml edit, and the labeler.yml auto-adds task label.
B. Add test:ci script in packages/ui/package.json and define @opencode-ai/ui#test:ci in turbo.json — aligns with how app/opencode/desktop do it, zero ci.yml changes, future tests auto-included. Recommended.
C. Run bun --cwd packages/ui test src/ in unit-ui-focused — downside: mixes with the fast-guard purpose and may slow CI.
Acceptance
- Any PR editing
packages/ui/src/** shows corresponding *.test.ts execution in CI logs
- Intentionally breaking a test under
packages/ui/src/ causes CI to fail
What happened?
34
*.test.ts/*.test.tsxfiles underpackages/ui/src/**are not executed by any CI job. Any contract drift in those tests goes undetected.Which area seems affected?
CI, release, or developer tooling
How much does this affect you?
Breaks an important workflow
Steps to reproduce
packages/ui/src/*.test.tsfiles are never run — no test output visible in any CI logWhat did you expect to happen?
Tests under
packages/ui/src/should execute as part of CI and fail the build when they break.Evidence
.github/workflows/ci.ymlhas three unit entry points:unit-app:bun turbo test:ci --filter=@opencode-ai/appunit-opencode:bun turbo test:ci --filter=opencodeunit-desktop:bun turbo test:ci --filter=@opencode-ai/desktop-electronturbo.jsondoes not define a@opencode-ai/ui#test:citask, so turbo's dependency graph never propagates into ui tests.The
unit-ui-focusedjob only runs 5 token/theme/typography guard tests underpackages/ui/test/. The 32 tests underpackages/ui/src/components/(markdown, scroll-view, picker, tool-contract, session-turn-*, etc.) plus 2 underpackages/ui/src/util/,lib/,i18n/are all silent.Trigger
PR #861 (Slice 3 extracting TodoStatusMarker) added
packages/ui/src/components/todo-status-marker.test.ts. The external reviewer noticed it falls into this black hole.Diagnostics
See CI workflow and
turbo.jsonfor the current configuration.Fix directions (to be evaluated)
A. Expand
unit-ui-focusedlisting — explicitly list allsrc/*.test.tsfiles. Downside: every new test requires a ci.yml edit, and the labeler.yml auto-addstasklabel.B. Add
test:ciscript inpackages/ui/package.jsonand define@opencode-ai/ui#test:ciin turbo.json — aligns with how app/opencode/desktop do it, zero ci.yml changes, future tests auto-included. Recommended.C. Run
bun --cwd packages/ui test src/inunit-ui-focused— downside: mixes with the fast-guard purpose and may slow CI.Acceptance
packages/ui/src/**shows corresponding*.test.tsexecution in CI logspackages/ui/src/causes CI to fail