1.5 KiB
1.5 KiB
Decisions
Implementation decisions not spelled out in memory-bank/implementation-plan.md. Design decisions from plan §0.5 are logged here as they are implemented.
Step 1.1
- Repo lives on an NTFS drive (
C:\Projects\...). The original location (G:) is exFAT, which cannot hold symlinks, so pnpm could not link workspace packages. Do not move the repo back to an exFAT drive. - TypeScript is pinned to
~6.0. TypeScript 7 is the latest release, buttypescript-eslint(needed in Step 1.2) only supports<6.1. Upgrade once typescript-eslint supports 7. - Packages export TypeScript source directly (
main/typespoint atsrc/index.ts). There is no build step for internal packages; Vite, Vitest and the server's TS runner consume the source. The base config usesmoduleResolution: "Bundler"andnoEmit. - Node 24 is the required runtime (
engines+.nvmrc). - Line endings are LF everywhere (
.gitattributes), overriding the machine's globalcore.autocrlf, to match Prettier and the Linux CI runner.
Step 1.2
- ESLint 10 flat config with
typescript-eslintrecommended (not type-aware, to keep lint fast) andeslint-config-prettier.pnpm lintruns ESLint thenprettier --check. - Purity rule for
packages/simandpackages/content:no-restricted-propertiesbansMath.randomandDate.now;no-restricted-syntaxbansnew Date()with no arguments (new Date(x)is allowed). - Prettier skips
memory-bank/so tooling never rewrites the design docs.