Gap
The Tests workflow (.github/workflows/test.yml) and the e2e workflows only run packages/codev vitest (unit / integration / cli). The only other package exercised in CI is the dashboard, and dashboard-e2e.yml runs Playwright e2e only — not its vitest unit suite.
As of #961, packages/core was added to the unit job (it had no suite before). That leaves two unit suites with no CI coverage at all:
| Package |
Suite |
Runs in CI? |
packages/codev |
vitest (unit + vitest.e2e.config.ts + vitest.cli.config.ts) |
✅ test.yml, e2e.yml |
packages/core |
vitest run |
✅ test.yml (added in #961) |
packages/dashboard |
vitest unit (__tests__/*.test.ts(x)) |
❌ local only |
packages/dashboard |
Playwright e2e |
✅ dashboard-e2e.yml |
packages/vscode |
test:unit (vitest run, ~222 tests) + vscode-test |
❌ local only |
Why it matters
These suites cover real behavior — e.g. the dashboard Terminal.reconnect.test.tsx and the vscode terminal-adapter.test.ts close-loop. A regression in either passes CI today. #961 touched both of those suites; the edits only ran on the builder's machine, never in CI.
Proposed work
Add CI steps (jobs or steps in test.yml) that run:
packages/vscode → pnpm test:unit (vitest)
packages/dashboard → its vitest unit suite (separate from the Playwright e2e job)
Worth deciding while doing it:
Context
Discovered during #961 (extract transport-agnostic reconnect policy), which added the packages/core unit step and made the single-package CI coverage visible.
Gap
The
Testsworkflow (.github/workflows/test.yml) and the e2e workflows only runpackages/codevvitest (unit / integration / cli). The only other package exercised in CI is the dashboard, anddashboard-e2e.ymlruns Playwright e2e only — not its vitest unit suite.As of #961,
packages/corewas added to the unit job (it had no suite before). That leaves two unit suites with no CI coverage at all:packages/codevvitest(unit +vitest.e2e.config.ts+vitest.cli.config.ts)test.yml,e2e.ymlpackages/corevitest runtest.yml(added in #961)packages/dashboardvitestunit (__tests__/*.test.ts(x))packages/dashboarddashboard-e2e.ymlpackages/vscodetest:unit(vitest run, ~222 tests) +vscode-testWhy it matters
These suites cover real behavior — e.g. the dashboard
Terminal.reconnect.test.tsxand the vscodeterminal-adapter.test.tsclose-loop. A regression in either passes CI today. #961 touched both of those suites; the edits only ran on the builder's machine, never in CI.Proposed work
Add CI steps (jobs or steps in
test.yml) that run:packages/vscode→pnpm test:unit(vitest)packages/dashboard→ its vitest unit suite (separate from the Playwright e2e job)Worth deciding while doing it:
unitjob or give each its own job (parallelism vs. setup cost).vitest runexit code suffices.__tests__/scrollController.test.ts > ScrollController > onScroll handler > warns on unexpected scroll-to-top(fails on a clean tree, unrelated to core: extract transport-agnostic reconnect policy; adopt in vscode + dashboard terminals + tunnel client #961).Context
Discovered during #961 (extract transport-agnostic reconnect policy), which added the
packages/coreunit step and made the single-package CI coverage visible.