ci: run vscode + dashboard vitest unit suites in CI#993
Merged
Conversation
amrmelsayed
added a commit
that referenced
this pull request
Jun 5, 2026
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.
PIR Review: Run vscode + dashboard vitest unit suites in CI
Fixes #967
Summary
The
Testsworkflow (.github/workflows/test.yml) only ran thepackages/coreandpackages/codevvitest suites, so thepackages/dashboardandpackages/vscodeunit suites (which exist and pass locally) had zero CI coverage: a regression in either would pass CI unnoticed. This PR adds those two suites to the existingunitjob, plus the one prerequisite they need (building@cluesmith/codev-types). It is a CI-configuration-only change: no source or test code was modified, and both suites already pass on the current tree.Files Changed
.github/workflows/test.yml(+12 / -0)Supporting artifacts (not product code):
codev/plans/967-ci-run-vscode-dashboard-vitest.md(plan)codev/reviews/967-ci-run-vscode-dashboard-vitest.md(this file)codev/state/pir-967_thread.md(builder thread)Commits
8dfdac77[PIR ci: run vscode + dashboard vitest unit suites in CI (only codev runs today) #967] Run vscode + dashboard vitest unit suites in CIc1574f7f[PIR ci: run vscode + dashboard vitest unit suites in CI (only codev runs today) #967] Plan draft166913b1[PIR ci: run vscode + dashboard vitest unit suites in CI (only codev runs today) #967] Thread: implement phase(plus porch phase-transition bookkeeping commits)
Test Results
porch donechecks:build✓,tests✓pnpm test: 317 passed, 1 skipped (31 files), exit 0pnpm test:unit: 284 passed (22 files), exit 0act(real GitHub Actions container, fresh checkout,catthehacker/ubuntu:act-latest): the entireunitjob succeeded (🏁 Job succeeded). All 11 steps green, including the three new ones (Build types package,Run dashboard unit tests,Run vscode unit tests). This exercised the change under genuine CI conditions: cleanpnpm installfrom scratch, no pre-existingdist/, correct step ordering.Architecture Updates
No arch changes. This is a CI-config change that adds existing test suites to an existing job; it introduces no new module, boundary, or pattern.
codev/resources/arch.mdis unaffected.Lessons Learned Updates
One durable lesson worth recording (captured here for the next MAINTAIN run to fold into
codev/resources/lessons-learned.md, consistent with how that file is curated from reviews):@cluesmith/codev-typesrequires that package to be built (dist/index.js) before it runs, even though a Vite-based suite in the same monorepo does not. The types package export map is{ "types": "./src/index.ts", "default": "./dist/index.js" }. The vscode suite runs in vitest's plainnodeenvironment and resolves thedefaultcondition todist/index.js, so on a clean tree (nodist/) it fails withFailed to resolve entry for package "@cluesmith/codev-types". The dashboard suite resolves the same dependency from source (./src/index.ts) because Vite's react plugin transforms.tson the fly, so it needs no build. Takeaway for adding any future cross-package suite to CI: build the workspacedist/of any dependency the suite resolves at runtime in a node environment, do not assume the Vite-style source resolution applies.Things to Look At During PR Review
Build types packagestep. It sits after the core build and before the two new suites. This ordering is load-bearing for the vscode suite (verified by a negative test: removingpackages/types/distreproduces the twoFailed to resolve entryfailures; rebuilding fixes them). It also runs in theunitjob specifically, which is where the suites that need it live.unitjob rather than separate jobs. Both suites are sub-7s; standing up new jobs would each repeatpnpm install(~90s in the act run) and a core build for a few seconds of tests. The plan documents this tradeoff and the rejected alternatives (separate jobs, adding the dashboard unit suite to the schedule-onlydashboard-e2e.yml).coreships without one by design) and no forks-pool tee/grep teardown shim (both suites exit 0 cleanly, unlikecodev). Adding either would have been cargo-culting.scrollController.test.ts > ... > warns on unexpected scroll-to-topwas replaced upstream byaccepts scroll-to-top without auto-correcting or warning (Issue #630); the file passes 45/45. Nothing was quarantined..skip, unrelated to this change, and was left untouched.How to Test Locally
For reviewers pulling the branch:
act+ Docker):packages/types/dist, run the vscode suite, observe the 2 resolution failures, rebuild types, observe them pass.