You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
apps/console/vitest.config.ts is type-checked by nothing, and tsconfig.node.json's include lists a file that doesn't exist #3476
Observation-class finding, tripped over while working #3384. Nothing a user hits today — recording it so it doesn't stay invisible.
1. apps/console/vitest.config.ts is in zero tsc programs
#3305 wired apps/console/tsconfig.node.json so the console's build config gets type-checked. vitest.config.ts sits right next to it and was not picked up by either console tsconfig:
type-check is turbo run type-check, i.e. per package — the root tsconfig.json (whose include does list apps) is the editor config and is not what CI runs. So no program contains the file. Measured on origin/main @ 2a9513d:
This is the same shape scripts/check-type-check-coverage.mjs was written to prevent one level up: the guard asks "does every package have a type-check script", not "does every checked-in .ts land in some program", so a config file adjacent to a covered one is a blind spot.
Impact today: nil — the file is 16 lines. The cost is that it is the one console config an agent can break without any gate noticing, and it merges two configs (rootConfig and viteConfig) whose shapes are exactly what a type-checker would catch drift in.
2. tsconfig.node.json includes vitest.setup.ts, which does not exist
$ ls apps/console/vitest.setup.ts
ls: cannot access 'vitest.setup.ts': No such file or directory
A literal (glob-less) include entry that matches nothing is silently ignored by TypeScript, so this is inert — but it reads as coverage that isn't there. Likely the intended file is the repo-root vitest.setup.dom.tsx that vitest.config.ts actually references.
Note for whoever picks this up
Adding vitest.config.ts to a checked program is not free: it imports ../../vitest.config.mts, and (once #3384 lands) ./vite.config.ts with an explicit extension, so the host tsconfig needs allowImportingTsExtensions plus one of noEmit / emitDeclarationOnly / rewriteRelativeImportExtensions. See PR #3475 for the measured details on that interaction.
Related: #3305 (wired the gate), #3384 / PR #3475 (found this). Not blocked by either — the gap is independent of how #3384 is resolved.
Activity
yinlianghui commentedon Aug 7, 2026
认领(PM 分诊晋级)— 会话
session_01GTRjn8xBqp75dk7kFupVRt,分支claude/issue-3476-console-vitest-tsc。分诊结论:两点都修 —— (1) 把
apps/console/vitest.config.ts纳入tsconfig.node.json的程序,按 issue 备注与 PR #3475 的实测处理allowImportingTsExtensions组合;(2) 幽灵条目vitest.setup.ts改指真实存在的 setup 文件或删除(以vitest.config.ts实际引用为准)。验证:--listFilesOnly前后对照(0→1)+ console 包 type-check 通过。文件面:
apps/console/tsconfig.node.json,必要时apps/console/vitest.config.ts(仅为类型可检所需的最小改动)。越界即停。Generated by Claude Code
ci(turbo): hash the root vitest config into the type-check cache key
yinlianghui commentedon Aug 7, 2026
验收:ACCEPT — PR #3513(含 A 裁定的 turbo.json 一行)。
核过 GitHub 实物:恰 2 文件 ——
apps/console/tsconfig.node.json(include 收口 + 把"为什么列这些、为什么删幽灵条目、allowJs 的 TS2578 地雷"写成了约束文档级的注释)、turbo.json(与既有scripts/vite-*.ts条目对称的一行)。裁定要点:configLoader: 'native'#3475。.turbo,跨并行 agent 的 worktree 共享 —— stale green 不止跨 CI run 存活,还会在同容器的 agent 之间传播。已由 PM 记入 guard: turbotype-check的手维护 inputs 名单已两次因"包程序越出包目录"失真 —— 评估从 tsconfig include 派生或加钉扎测试 #3514 作为 option C 的加重理由。PR 转 ready + auto-merge。#3514 保持 open,承载 C 方向(派生/钉住 inputs)。
Generated by Claude Code
ci(console): 把 vitest.config.ts 纳入 tsc program,并把根 vitest 配置算进 turbo …