docs: session handoff 47 + M4 update — DSL→SQL echo Phase 1 (Bucket A) done

This commit is contained in:
claude@clouddev1
2026-05-28 07:03:46 +00:00
parent 90479cb879
commit c60026c7f6
2 changed files with 268 additions and 13 deletions
+23 -13
View File
@@ -120,19 +120,29 @@ handoff-14 cleanup; 449 after B2/C2.)
one-shot advanced escape (with the prompt label updated). The
`mode simple` / `mode advanced` command switches modes
persistently.
- [~] **M4** Execution-time mode side-channel — deferred, awaiting
its own ADR (ADR-0033 Amendment 3). Every command should know, at
execution time, which of three modes it ran under — `simple`,
`advanced`, or `advanced-one-shot` (the `:` escape) — so execution
can adjust *output* without changing command *identity* (e.g. a
simple-mode `create table` echoing the generated SQL when run in
advanced mode, silent in simple). Today only the *rendering*
side-channel exists (`OutputLine.mode_at_submission`); the `Mode`
enum is two-way, the one-shot distinction is collapsed at
submission, and neither `Action::ExecuteDsl` nor the worker carries
any mode. The work widens `Mode` to three-way and threads it
through the `Action` → worker interface. Not required for Phase 3
dispatch correctness; tracked here so it is not lost.
- [x] **M4** Execution-time mode side-channel — **implemented** via
ADR-0037 (the channel) and its motivating consumer ADR-0038 (the
DSL → SQL teaching echo). Every command knows, at execution time,
which of three modes it ran under — the three-way
`EffectiveMode` { `Simple`, `AdvancedPersistent`,
`AdvancedOneShot` } resolves at submit time and threads through
`Action::ExecuteDsl` → runtime; the persistent `Mode` enum stays
two-way (the transient one-shot `:` lives on the channel where it
belongs, not in persistent state). The runtime gates the
ADR-0030 §10 teaching echo on it: a DSL-form command run in
advanced/one-shot mode renders the equivalent advanced-mode SQL
beneath `[ok]`; simple-mode and SQL-entered submissions stay
silent. Echo coverage progress: **Bucket A complete** (Phase 1 —
single-statement DDL + `show data` + `--all-rows` fall-throughs,
every row round-tripped per ADR-0038 §1; handoff-47);
**Bucket B** (resolved-name + multi-line echoes — `add index`,
relationship add/drop, `drop column --cascade`,
`add relationship --create-fk`) and **category-3 prose**
(`shortid` generation, type-conversion transforms,
`change column --dont-convert` caveat) are deferred to Phase
2 / Phase 3 per ADR-0038 §8. The de-emphasised styled-runs
rendering polish (ADR-0038 §4 / ADR-0028) is also still pending —
the echo currently surfaces as a plain `[system]` line.
## App-level commands (per ADR-0003)