Found during #925 watch verification on main e7a0b31 (Darwin arm64). These are separate static-checking gaps, not a failure of the package metadata watcher. Reference is local TypeScript 5.7.3; the freshly rebuilt Home binary was tested with the same source and options plus its --ignoreConfig flag.
Case A: package.json is {"type":"commonjs"}; main.ts is export const answer = 42;. With --noEmit --strict --skipLibCheck --module nodenext --moduleResolution nodenext --verbatimModuleSyntax --pretty false, TypeScript exits 2 with TS1287 at (1,1). Home exits 0 with no diagnostic.
Case B: the same package.json; dep.mts is export const answer = 42;, and main.ts imports { answer } from "./dep.mjs" then exports result = answer. With --noEmit --strict --skipLibCheck --module node16 --moduleResolution node16 --pretty false, TypeScript exits 2 with TS1479 at (1,24) and the ESM conversion hint. Home exits 0 with no diagnostic.
The checker already has package-format-aware helpers and virtual-section tests, but those do not prove these real-file CLI cases. Determine the actual cause of each missing diagnostic; add positive ESM-package controls and complete real-file regressions. Preserve TypeScript semantics rather than special-casing these filenames or suppressing diagnostics. Verify the affected checker, Program, and CLI suites. Refs #66 and #925.