Problem
home-tsc treats TsConfig.validate diagnostics as a fatal preflight error. Native TypeScript 7 attaches these option diagnostics to the Program instead, so project discovery and the selected command mode still run.
Pinned differential using TypeScript 7.0.2 and upstream fixture projectOption/DefaultExcludeOnlyNodeModules (target: es5):
--noEmit --listFiles: TS7 prints TS5108, lists the library/source graph (includinga.ts), and exits 1; Home prints TS5108 only and exits 2.--noEmit --listFilesOnly: same TS7 behavior; Home exits before discovery.--showConfig: TS7 prints resolved config and exits 0; Home prints TS5108 and exits 2.- normal emit: TS7 emits
dist/a.jsand exits 2 (DiagnosticsPresent_OutputsGenerated). --build --dry: TS7 prints only the dry-build status; Home leaks TS5108 from dry status calculation.
Root cause
packages/ts_cli/src/tsc_main.zig calls printConfigValidationDiagnostics immediately after parsing and exits before root discovery. The same validator is also invoked from dry-build status calculation.
Required behavior
- Carry config-option diagnostics into normal Program reporting without aborting discovery.
- Preserve TypeScript's output-sensitive exit statuses: 1 when output is skipped, 2 when output is generated in the presence of diagnostics.
- Let
--listFilesand--listFilesOnlyreport the discovered graph. - Keep
--showConfigand dry-build status free of Program option diagnostics. - Preserve fatal config-read/parse/no-input failures.
- Add focused unit/conformance coverage and differential verification against pinned TS7.