From 39b92a75588074e8dda1e14410191a58271f40f9 Mon Sep 17 00:00:00 2001 From: "claude@clouddev1" Date: Tue, 19 May 2026 08:45:45 +0000 Subject: [PATCH] =?UTF-8?q?docs:=20handoff=2018=20=E2=80=94=20record=20the?= =?UTF-8?q?=20post-ADR-0027=20manual-testing=20pass?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The multi-form usage-template fix (151ed08) and the reviewed `add index` syntax decision (kept as-is), so the next agent does not re-flag a settled question. --- docs/handoff/20260519-handoff-18.md | 39 ++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/docs/handoff/20260519-handoff-18.md b/docs/handoff/20260519-handoff-18.md index 2add782..76ae9c3 100644 --- a/docs/handoff/20260519-handoff-18.md +++ b/docs/handoff/20260519-handoff-18.md @@ -18,12 +18,13 @@ run. `S6` and `C5a` are both satisfied; nothing from ADRs ## State at handoff -**Branch:** `main`. Working tree clean. **11 commits** since +**Branch:** `main`. Working tree clean. **12 commits** since handoff-16 (`ac41938`), all local — push asynchronously, not blocking. handoff-17 (`dfd3c51`) is mid-chain; it documents the ADR-0026 landing and is superseded by this file. ``` +151ed08 hint: show the matching usage template for multi-form commands a326849 ADR-0027: existing-cases sweep + docs (step F) 9e10997 runtime: debounce the validity indicator (ADR-0027 step E) 1a9d950 ui: validity indicator rendering + warning theme colour (ADR-0027 step D) @@ -37,7 +38,7 @@ f75f71b WHERE expressions: wire into update/delete/show data + SQL gen (ADR-0026 f0b2043 walker: add Subgrammar node + recursion-depth cap (ADR-0026 step 1) ``` -**Tests:** **1099 passing, 0 failing, 1 ignored** (`cargo +**Tests:** **1100 passing, 0 failing, 1 ignored** (`cargo test` — up from 1039 at handoff-16). The ignored test is the long-standing `` ```ignore `` doc-test in `src/friendly/mod.rs`. Typing-surface matrix: **161 cells**. @@ -91,6 +92,38 @@ Six steps, one commit each (`e22f933`..`a326849`): - **F — sweep + docs.** `input_verdict` tests confirm the schema check fires across the identifier-taking commands. +## §2a. Post-ADR-0027 — a manual-testing pass + +After ADR-0027 landed, a round of manual testing surfaced +three things; all are resolved. + +- **Bug, fixed (`151ed08`).** A parse error in `add index …` + showed the `add column` usage. `add` / `drop` are + multi-form commands and both the ambient hint and the + submit-time usage block picked the *first* form + unconditionally. New `grammar::usage_key_for_input` + disambiguates by the form word after the entry keyword; + the hint shows the committed form, `render_usage_block` + too (bare `add` / `drop` still shows the whole family). +- **`add index` syntax — reviewed, deliberately kept.** The + inconsistency is real: `add column [to] [table] : + ()` vs `add index [as ] on ()`. It + was weighed and **left as-is** — `add index … on + ()` is intentionally SQL-idiomatic + (`CREATE INDEX … ON t (cols)`), the colon shape was built + for "one column *with a type*" and an index has neither. + A future agent should **not** re-flag this as a bug; if + the owner later wants the entity-command separators + unified, that is a deliberate ADR-0025 amendment / design + pass, not a drive-by fix. +- **No index parameters / no `unique` — by design.** ADR-0025 + scoped `add index` to plain non-unique indexes; there is + no `unique`-index syntax and no constraint syntax at all + (`NOT NULL` / `UNIQUE` / `CHECK` / `DEFAULT` are the + pending `C3`). ADR-0018's `unique` handling only + *detects + displays* an existing constraint — nothing + creates one. Not a gap in the help; the help is accurate. + ## §3. Architectural delta (vs. handoff-17) ### Diagnostics @@ -171,7 +204,7 @@ Prioritisation is a user product decision — ask. especially its "As-built notes" (post-walk diagnostics, the pre-rendered message, the `timeout` debounce, coarse spans, the deferred highlight/hint wiring). -4. **Run `cargo test`** — 1099 passing, 0 failing, 1 ignored. +4. **Run `cargo test`** — 1100 passing, 0 failing, 1 ignored. 5. **Run `cargo clippy --all-targets -- -D warnings`** — clean. 6. **Pick the next work from §5** — ADR-0028 is the natural pick; prioritisation is a user decision, so ask.