docs(#262): accept ADR-0002 — incremental strict TypeScript; reaffirm no-framework (ADR-0001 addendum)#263
Merged
Conversation
…only) Re-evaluated the no-framework decision at the dashboard milestone: ADR-0001 gains an addendum — the decision stands, and the vague re-evaluation trigger is replaced by three concrete conditions (plugin ecosystem, virtualized large lists, rising invalidation-bug rate). ADR-0002 sets the TypeScript path: tsc --noEmit joins the gate, files convert leaf-up one at a time, persisted types are generated from the canonical JSON Schemas; esbuild and the artifact are untouched. Phase 0 is #262; roadmap #68 reconciled. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Docs-only PR recording two architecture decisions taken at the dashboard milestone:
docs/ADR-0002-static-typing.md(Accepted) — incremental strict TypeScript, dev-time only:tsc --noEmitjoins the test gate (likecheck:schemas), files convert leaf-up one at a time (seams →state.js→core/→net/→editor/→ui/), persisted-data types are generated from the canonical JSON-Schema graph. esbuild strips TS natively, so the build stays single-tool and the artifact/runtime deps are untouched (hard rule 4 intact). Implementation phase 0 is ADR-0002 phase 0: TypeScript gate — tsconfig, tsc --noEmit in the test gate, typed seam interfaces #262.CHANGELOG.md[Unreleased]entry; roadmap Roadmap to 1.0.0 #68 already reconciled (Architecture section + Cross-cutting item for ADR-0002 phase 0: TypeScript gate — tsconfig, tsc --noEmit in the test gate, typed seam interfaces #262).Why
The codebase grew from a 50 KB query executor to a ~26 k-LOC workbench heading toward full dashboarding. The coverage gate catches behavioral regressions but is blind to cross-module contract drift; the JSON-Schema validator pipeline already answered that need at the persistence boundary — ADR-0002 extends the same static layer to in-memory contracts without touching the runtime.
Verification
Docs-only change — no code, no tests, no build surface affected. Live issue bodies (#262, #68) diffed against local sources after push.
🤖 Generated with Claude Code