diff --git a/.agents/memory/ts-only-files-and-imports.md b/.agents/memory/ts-only-files-and-imports.md index e4711f8..9d099e8 100644 --- a/.agents/memory/ts-only-files-and-imports.md +++ b/.agents/memory/ts-only-files-and-imports.md @@ -6,16 +6,17 @@ The user's rule, from the Deno days and restated for Node (2026-10-12): "No JS, not even JSX/TSX, only TS." Source, scripts, tests, and configs are all plain `.ts`. Build output in a gitignored folder is the only JS. -`tsconfig.json`: no `allowJs`, no `jsx`, and exactly this strictness set -(user decision, 2026-10-18): `strict` (written out), `noUncheckedIndexedAccess`, +`tsconfig.json`: no `allowJs`, no `jsx`, and exactly this strictness set (user +decision, 2026-10-18): `strict` (written out), `noUncheckedIndexedAccess`, `noPropertyAccessFromIndexSignature`, `noImplicitReturns`, `noUnusedLocals`, `noUnusedParameters`, `noImplicitOverride`, `noFallthroughCasesInSwitch`, -`erasableSyntaxOnly`, plus the mechanical `verbatimModuleSyntax`, -`allowImportingTsExtensions`, and `noEmit` (packages also keep `declaration` -and `isolatedDeclarations`). `exactOptionalPropertyTypes` is off everywhere: -write `{ key: maybeUndefined }` rather than leaving the key out to please it. -If a tool or framework seems to need a JS or TSX file, stop and flag it -instead of adding one. +`erasableSyntaxOnly`, and `allowUnreachableCode: false` plus +`allowUnusedLabels: false` (user decision, 2026-10-18; on in the Deno setup), +plus the mechanical `verbatimModuleSyntax`, `allowImportingTsExtensions`, and +`noEmit` (packages also keep `declaration` and `isolatedDeclarations`). +`exactOptionalPropertyTypes` is off everywhere: write `{ key: maybeUndefined }` +rather than leaving the key out to please it. If a tool or framework seems to +need a JS or TSX file, stop and flag it instead of adding one. ## No asset imports (2026-10-14, widened 2026-10-16 and 2026-10-17) diff --git a/tsconfig.json b/tsconfig.json index e858ef7..e42050a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -15,6 +15,8 @@ "noImplicitReturns": true, "noFallthroughCasesInSwitch": true, "noUnusedLocals": true, - "noUnusedParameters": true + "noUnusedParameters": true, + "allowUnreachableCode": false, + "allowUnusedLabels": false } }