Summary
Follow-up to #1778 / PR #1788, which format-gated clients/web's server/ + top-level configs and the root scripts/**. A review of #1788 surfaced that the same class of first-party TS/JS is still ungated by prettier elsewhere. Running the repo's pinned prettier (3.8.1) over the rest of the first-party surface currently reports 11 dirty files:
[warn] clients/cli/eslint.config.js
[warn] clients/cli/tsup.config.ts
[warn] clients/cli/vitest.config.ts
[warn] clients/launcher/eslint.config.js
[warn] clients/launcher/vitest.config.ts
[warn] clients/tui/eslint.config.js
[warn] clients/tui/tsup.config.ts
[warn] test-servers/src/modern-tasks.ts
[warn] test-servers/src/test-server-fixtures.ts
[warn] test-servers/src/test-server-http.ts
[warn] vitest.shared.mts
Why each is currently ungated:
This was deliberately out of #1778's letter (that issue enumerated exactly the three things #1788 fixed), but the motivating lesson — the ungated set silently grows and style gets matched by hand — applies here too.
Proposal
Mirror the #1788 approach:
- Widen
clients/cli, clients/tui, clients/launcher format / format:check to include their top-level configs (a quoted "*.{ts,js}" glob, as clients/web now does).
- Add a root
format:shared / format:check:shared covering test-servers/src/**/*.ts and the root vitest.shared.mts, wired into the root format and into validate:core.
- Run
prettier --write once over the newly-covered files, then confirm npm run validate / npm run ci stays green.
Notes
Additional file (surfaced in the PR #1788 round-2 review): the repo-root eslint.config.js is also ungated — format:check:core covers core/**, format:check:scripts covers scripts/**, and each client's prettier is scoped to its own dir, so nothing reaches it. It does not appear in the --list-different list above only because it is prettier-clean today, which is exactly how a file becomes the next straggler. Fold it into the proposed root format:shared / format:check:shared scope alongside test-servers/src/** and vitest.shared.mts.
Summary
Follow-up to #1778 / PR #1788, which format-gated
clients/web'sserver/+ top-level configs and the rootscripts/**. A review of #1788 surfaced that the same class of first-party TS/JS is still ungated by prettier elsewhere. Running the repo's pinned prettier (3.8.1) over the rest of the first-party surface currently reports 11 dirty files:Why each is currently ungated:
formatscopes aresrc __tests__(cli, launcher) andsrc __tests__ index.ts tui.tsx dev.ts(tui), sotsup.config.ts/vitest.config.ts/eslint.config.jsfall out — identically to how web'svite.config.tsdid before chore(web): format-gate the ungated first-party TS/JS (server/, vite.config.ts, scripts/) #1788.vitest.shared.mts— repo-root, imported by theclients/web/vite.config.tsthat chore(web): format-gate the ungated first-party TS/JS (server/, vite.config.ts, scripts/) #1788 just gated (vitestSharedPaths(dirname));format:check:scriptsisscripts/**, so it doesn't reach it.test-servers/src/**— first-party TS with nopackage.json, so no client's scope reaches it and the root's doesn't either.This was deliberately out of #1778's letter (that issue enumerated exactly the three things #1788 fixed), but the motivating lesson — the ungated set silently grows and style gets matched by hand — applies here too.
Proposal
Mirror the #1788 approach:
clients/cli,clients/tui,clients/launcherformat/format:checkto include their top-level configs (a quoted"*.{ts,js}"glob, asclients/webnow does).format:shared/format:check:sharedcoveringtest-servers/src/**/*.tsand the rootvitest.shared.mts, wired into the rootformatand intovalidate:core.prettier --writeonce over the newly-covered files, then confirmnpm run validate/npm run cistays green.Notes
^3.8.1); unpinnednpx prettier@3shows unrelated newer-3.x drift under already-gatedclients/web/src.Additional file (surfaced in the PR #1788 round-2 review): the repo-root
eslint.config.jsis also ungated —format:check:corecoverscore/**,format:check:scriptscoversscripts/**, and each client's prettier is scoped to its own dir, so nothing reaches it. It does not appear in the--list-differentlist above only because it is prettier-clean today, which is exactly how a file becomes the next straggler. Fold it into the proposed rootformat:shared/format:check:sharedscope alongsidetest-servers/src/**andvitest.shared.mts.