The packages/app build uses electron-vite/esbuild, which strips TypeScript types without checking them. The only renderer typecheck is tsc --noEmit -p packages/app/tsconfig.renderer.json, and it is not in check.yml. (Note: -p tsconfig.json checks nothing — files:[] + project refs need tsc -b.)
This is how #53 shipped: ProjectFull.paths was typed string[] but core's toFull omits paths for path-less projects → unguarded .length → blank app.
Running the renderer tsc today reports 2 pre-existing errors:
packages/app/src/renderer/components/RegisterProjectDialog.tsx:161 — TypeSelectValue not assignable to the type-select state setter.
packages/app/src/renderer/components/tabs/OverviewTab.tsx:55 — source_inspection does not exist on ProjectBrief.
Do: clear the two errors, then add a renderer-tsc step to check.yml. This is also the graduation path for the projection-optionality PROSE invariant (INVARIANTS.md → Contracts).
Found during /close after #53.
The
packages/appbuild uses electron-vite/esbuild, which strips TypeScript types without checking them. The only renderer typecheck istsc --noEmit -p packages/app/tsconfig.renderer.json, and it is not incheck.yml. (Note:-p tsconfig.jsonchecks nothing —files:[]+ project refs needtsc -b.)This is how #53 shipped:
ProjectFull.pathswas typedstring[]but core'stoFullomitspathsfor path-less projects → unguarded.length→ blank app.Running the renderer tsc today reports 2 pre-existing errors:
packages/app/src/renderer/components/RegisterProjectDialog.tsx:161—TypeSelectValuenot assignable to the type-select state setter.packages/app/src/renderer/components/tabs/OverviewTab.tsx:55—source_inspectiondoes not exist onProjectBrief.Do: clear the two errors, then add a renderer-tsc step to
check.yml. This is also the graduation path for the projection-optionality PROSE invariant (INVARIANTS.md → Contracts).Found during /close after #53.