From 2948e0558e5f746d67d941b577af023a5ae7cb77 Mon Sep 17 00:00:00 2001 From: "itarun.p" Date: Wed, 22 Jul 2026 04:12:57 +0700 Subject: [PATCH] ci: run the dashboard vitest suite inside ci:local MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #73. ci:local built the dashboard bundle but never ran its tests. The ~296 vitest tests (45 files) were reachable only via `npm --prefix dashboard run test`, which no gate invoked, so component-level React regressions were not a merge gate. Because vite does not resolve undefined JSX identifiers, a green ci:local proved only that a bundle was produced — not that the dashboard worked. That gap let broken dashboard states pass as "verified" on the local-only-remove-cloud branch. Both ci.yml (PR gate) and npm-publish.yml (post-merge test job) call `npm run ci:local` and already run `npm ci --prefix dashboard`, so editing the single ci:local script closes the gap for the PR gate, the publish gate, and local runs at once — no workflow YAML change needed. Placed right after dashboard:build so the dashboard steps stay together and a build failure still short-circuits first. Verified: full ci:local green on this branch off main — dashboard 296/296 (45 files) now inside the gate, root 821 + 4, all validators ok. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 18876c21..dd1ea838 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "access": "public" }, "scripts": { - "ci:local": "npm run dashboard:build && npm test && npm run validate:copy && npm run validate:ui-hardcode && npm run validate:guardrails && npm run docs:openwiki:check && node --test test/architecture-guardrails.test.js", + "ci:local": "npm run dashboard:build && npm --prefix dashboard run test && npm test && npm run validate:copy && npm run validate:ui-hardcode && npm run validate:guardrails && npm run docs:openwiki:check && node --test test/architecture-guardrails.test.js", "copy:pull": "node scripts/copy-sync.cjs pull", "copy:push": "node scripts/copy-sync.cjs push", "dashboard:build": "npm --prefix dashboard run build",