docs: reconcile requirements/CLAUDE.md with shipped reality (high-confidence)
Flip stale Phase-1 checkboxes whose capability is clearly delivered: M1/M2/M3 (modes), Q1/Q2 (SQL subset — shipped via the unified walker, not sqlparser-rs), TT1/TT2/TT3 (test tiers 1–3) → [x]; TT4 (PTY e2e, critical flows only) → [~]. Fix stale CLAUDE.md claims: the stack no longer uses chumsky (DSL) or a reserved sqlparser-rs (SQL) — both retired (ADR-0024 §migration Phase F); the DSL and advanced-mode SQL are both parsed by the unified grammar walker (ADRs 0024 / 0030–0036). Corrects the stack note, drops the now-done "SQL handling in advanced mode" deferred bullet, and updates the parser.rs layout comment. Lower-confidence items (C1 rename, A1, I1a, I3, I4, T3, V2, export/import, resume) left for a dedicated per-item reconciliation pass (handoff-45 §5).
This commit is contained in:
@@ -22,9 +22,13 @@ new ADR that supersedes the old one.
|
|||||||
|
|
||||||
Current decisions at a glance (each backed by an ADR):
|
Current decisions at a glance (each backed by an ADR):
|
||||||
|
|
||||||
- **Stack:** Rust + Ratatui + Crossterm; `sqlparser-rs` reserved
|
- **Stack:** Rust + Ratatui + Crossterm; both the DSL and
|
||||||
for SQL (advanced mode, not yet wired); `chumsky` for the DSL;
|
advanced-mode SQL are parsed by a single hand-rolled
|
||||||
`rusqlite` for the database (ADR-0001).
|
grammar/walker (ADR-0024's unified grammar tree; SQL added by
|
||||||
|
ADRs 0030–0036) — superseding ADR-0001's original plan of
|
||||||
|
`chumsky` for the DSL + a reserved `sqlparser-rs` for SQL
|
||||||
|
(neither is a dependency now); `rusqlite` for the database
|
||||||
|
(ADR-0001).
|
||||||
- **Backend:** SQLite with `STRICT` tables and FK enforcement on
|
- **Backend:** SQLite with `STRICT` tables and FK enforcement on
|
||||||
(ADR-0002). Database access through a dedicated worker thread
|
(ADR-0002). Database access through a dedicated worker thread
|
||||||
with mpsc/oneshot request channels (ADR-0010).
|
with mpsc/oneshot request channels (ADR-0010).
|
||||||
@@ -116,7 +120,7 @@ Current decisions at a glance (each backed by an ADR):
|
|||||||
│ │ ├── action.rs # ReferentialAction enum + parsing
|
│ │ ├── action.rs # ReferentialAction enum + parsing
|
||||||
│ │ ├── command.rs # Command AST + RelationshipSelector + RowFilter
|
│ │ ├── command.rs # Command AST + RelationshipSelector + RowFilter
|
||||||
│ │ ├── mod.rs # re-exports
|
│ │ ├── mod.rs # re-exports
|
||||||
│ │ ├── parser.rs # chumsky grammar (all DSL commands)
|
│ │ ├── parser.rs # parse entry point → unified-grammar walker
|
||||||
│ │ ├── shortid.rs # base58 generator + validator
|
│ │ ├── shortid.rs # base58 generator + validator
|
||||||
│ │ ├── types.rs # user-facing Type enum + fk_target_type
|
│ │ ├── types.rs # user-facing Type enum + fk_target_type
|
||||||
│ │ └── value.rs # Value/Bound + per-type validation
|
│ │ └── value.rs # Value/Bound + per-type validation
|
||||||
@@ -188,8 +192,6 @@ not yet implemented:
|
|||||||
1–4 of ADR-0015). Pending pieces: `export` / `import` (Iter
|
1–4 of ADR-0015). Pending pieces: `export` / `import` (Iter
|
||||||
5), `--resume` + persistent input history hydration +
|
5), `--resume` + persistent input history hydration +
|
||||||
migration framework scaffold (Iter 6).
|
migration framework scaffold (Iter 6).
|
||||||
- **SQL handling in advanced mode** (Q1): `sqlparser-rs` parser
|
|
||||||
+ a defined SQL subset (Q4 — its own ADR).
|
|
||||||
- **Column drops/renames/type changes** (B2 / C2 partial): the
|
- **Column drops/renames/type changes** (B2 / C2 partial): the
|
||||||
rebuild-table primitive (ADR-0013) is in place; the grammar
|
rebuild-table primitive (ADR-0013) is in place; the grammar
|
||||||
and dispatch are pending.
|
and dispatch are pending.
|
||||||
|
|||||||
@@ -111,12 +111,12 @@ handoff-14 cleanup; 449 after B2/C2.)
|
|||||||
|
|
||||||
## Input modes (per ADR-0003)
|
## Input modes (per ADR-0003)
|
||||||
|
|
||||||
- [ ] **M1** Simple mode is the default. It accepts DSL data
|
- [x] **M1** Simple mode is the default. It accepts DSL data
|
||||||
commands and the canonical app-level commands; raw SQL is
|
commands and the canonical app-level commands; raw SQL is
|
||||||
rejected with a friendly hint.
|
rejected with a friendly hint.
|
||||||
- [ ] **M2** Advanced mode accepts SQL plus the canonical
|
- [x] **M2** Advanced mode accepts SQL plus the canonical
|
||||||
app-level commands without any sigil.
|
app-level commands without any sigil.
|
||||||
- [ ] **M3** Prefixing a single line with `:` in simple mode is a
|
- [x] **M3** Prefixing a single line with `:` in simple mode is a
|
||||||
one-shot advanced escape (with the prompt label updated). The
|
one-shot advanced escape (with the prompt label updated). The
|
||||||
`mode simple` / `mode advanced` command switches modes
|
`mode simple` / `mode advanced` command switches modes
|
||||||
persistently.
|
persistently.
|
||||||
@@ -213,7 +213,7 @@ handoff-14 cleanup; 449 after B2/C2.)
|
|||||||
|
|
||||||
## SQL handling
|
## SQL handling
|
||||||
|
|
||||||
- [ ] **Q1** SQL parsed via `sqlparser-rs`; supported subset is
|
- [x] **Q1** SQL parsed via `sqlparser-rs`; supported subset is
|
||||||
defined (specifics deferred to a future ADR).
|
defined (specifics deferred to a future ADR).
|
||||||
*(Progress: the advanced-mode SQL surface is authored as grammar
|
*(Progress: the advanced-mode SQL surface is authored as grammar
|
||||||
within the unified grammar tree (ADR-0030 / ADR-0024) and parsed by
|
within the unified grammar tree (ADR-0030 / ADR-0024) and parsed by
|
||||||
@@ -260,7 +260,7 @@ handoff-14 cleanup; 449 after B2/C2.)
|
|||||||
word completion merge + simple/advanced completion colour; `describe` of
|
word completion merge + simple/advanced completion colour; `describe` of
|
||||||
table-level constraints; self-ref FK pre-submit indicator; CREATE-TABLE
|
table-level constraints; self-ref FK pre-submit indicator; CREATE-TABLE
|
||||||
help/usage refresh). **ADR-0035 Phase 4 (4a–4i) is complete.**)*
|
help/usage refresh). **ADR-0035 Phase 4 (4a–4i) is complete.**)*
|
||||||
- [ ] **Q2** Non-standard syntax rejected with a clear message
|
- [x] **Q2** Non-standard syntax rejected with a clear message
|
||||||
pointing at the supported subset.
|
pointing at the supported subset.
|
||||||
*(Design done — ADR-0030 §8: out-of-subset statements are
|
*(Design done — ADR-0030 §8: out-of-subset statements are
|
||||||
refused with an engine-neutral message naming the construct.
|
refused with an engine-neutral message naming the construct.
|
||||||
@@ -553,14 +553,14 @@ handoff-14 cleanup; 449 after B2/C2.)
|
|||||||
|
|
||||||
## Testing (per ADR-0008)
|
## Testing (per ADR-0008)
|
||||||
|
|
||||||
- [ ] **TT1** Tier 1: `cargo test` + `proptest` covering
|
- [x] **TT1** Tier 1: `cargo test` + `proptest` covering
|
||||||
pure-logic modules (parser, dispatcher, type mapping, project
|
pure-logic modules (parser, dispatcher, type mapping, project
|
||||||
I/O, snapshot ring buffer, replay log).
|
I/O, snapshot ring buffer, replay log).
|
||||||
- [ ] **TT2** Tier 2: Ratatui `TestBackend` + `insta` snapshots
|
- [x] **TT2** Tier 2: Ratatui `TestBackend` + `insta` snapshots
|
||||||
for representative views.
|
for representative views.
|
||||||
- [ ] **TT3** Tier 3: synthetic event-loop integration tests
|
- [x] **TT3** Tier 3: synthetic event-loop integration tests
|
||||||
covering the user-facing flows in this checklist.
|
covering the user-facing flows in this checklist.
|
||||||
- [ ] **TT4** Tier 4: PTY-based end-to-end for the four critical
|
- [~] **TT4** Tier 4: PTY-based end-to-end for the four critical
|
||||||
flows named in ADR-0008 (cold launch → DDL → quit; save →
|
flows named in ADR-0008 (cold launch → DDL → quit; save →
|
||||||
reopen; export → import → rebuild; undo after DROP).
|
reopen; export → import → rebuild; undo after DROP).
|
||||||
- [ ] **TT5** CI runs all tiers on Linux, macOS, and Windows on
|
- [ ] **TT5** CI runs all tiers on Linux, macOS, and Windows on
|
||||||
|
|||||||
Reference in New Issue
Block a user