Skip to content

Roadmap to 1.0.0 #68

Description

@BorisTyshkevich

Meta/tracking issue + living build plan. Architecture is settled (#88 / ADR-0001); the phases below are ordered so each refactor lands on a stable base and the most-wanted features ship early. Check items off as they land.

Architecture (settled — #88, ADR-0001)

  • State: @preact/signals-core, migrated slice-by-slice. No UI framework (React/Preact/Solid). A Preact spike on the schema panel (spike/preact-schema, ADR-0001 addendum) confirmed a component model removes the in-place-mutation pain but buys a second render paradigm the roadmap doesn't justify.
  • Shape: signals (state) · pure logic in src/core/ · imperative adapters behind injected seams for the hard / third-party / high-frequency-pointer surfaces (editor, EXPLAIN + schema graphs, Chart.js, result grid). Extract a shared primitive (EditorPort, GraphSurface, a result-view registry, Drawer) on the second consumer — not speculatively (CLAUDE.md rule 5).

Build order

Phase 0 — baseline before refactors (cheap, do first)

Phase 1 — finish reactivity (#88)

Phase 2 — near-term wins (no CM6; ride on the textarea + the signals results pane)

Phase 3 — editor → CodeMirror 6 (#21, reopened)

  • introduce an EditorPort interface + a textarea-adapter (current editor behind it)
  • codemirror-adapter (@codemirror/lang-sql) behind the seam; SQL logic stays pure in core/; gated like app.js/Chart/dagre
  • migrate behind the port; delete the textarea adapter once Chromium/Firefox/WebKit e2e is green

Phase 4 — editor intelligence (on CM6)

Phase 5 — schema / data-flow graph

Cross-cutting

Release-blockers (1.0 must not ship without)

Nice-to-haves

Done

Parallelization (which issues can /ship concurrently)

Run parallel issues in separate git worktrees (claude --worktree <name> per session) — never two /ships in one working dir. Only parallelize dependency-independent issues; never run an issue against an unmerged dependency.

main now carries #89 + #90, so it's the clean base for everything downstream.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions