diff --git a/docs/handoff/20260622-handoff-76.md b/docs/handoff/20260622-handoff-76.md index 766c509..b0f515e 100644 --- a/docs/handoff/20260622-handoff-76.md +++ b/docs/handoff/20260622-handoff-76.md @@ -7,18 +7,22 @@ binaries ship: **TT4** (Tier-4 PTY tests), **NFR verification**, and a ## §1. State -**Branch `main`.** Three commits this session: +**Branch `main`.** Commits this session (all on `main`, **not pushed** — push +is the user's step): - `65eab71` `fix(theme)` — WCAG-AA palette fix + contrast/ΔE2000 gates + `scripts/palette-preview.py`. - `fd63de3` `test(tt4)` — Tier-4 PTY end-to-end suite (`tests/e2e_pty.rs`). -- **(pending)** a docs commit — ADR-0008 Amendment 1, ADR-0057, README index, - `requirements.md`, `CHANGELOG.md`, this handoff, and the plan doc - `docs/plans/20260622-tt4-nfr-changelog.md`. *(Propose + confirm before - committing; not yet committed at time of writing.)* +- `88204f2` `docs(tt4,nfr)` — ADR-0008 Amendment 1, ADR-0057, README index, + `requirements.md`, `CHANGELOG.md`, handoff-76, plan doc. +- `1ffe11c` `fix(tt4)` — drop the dead `pid` helper (macOS-only dead-code + warning the Linux gate can't see; found via the user's macOS run). +- `35ca108` `docs(tt5)` — macOS Tier-4 confirmation + Windows verification + stance (and the §7 below was added in a follow-up docs commit). **Test baseline: 2519 passed / 0 failed / 1 ignored** (was 2509; +4 theme gates, +6 e2e_pty). `clippy --all-targets -D warnings` + `fmt --check` clean. -Full suite verified green 3× under parallel load. +Full suite verified green 3× under parallel load on Linux, and a full native +run on **macOS** (5 e2e_pty there — Linux-only RSS test cfg-skipped). ## §2. What shipped @@ -83,10 +87,10 @@ managers + TT4 are post-tag → Unreleased. - **TT5 remaining:** only a **Windows execution runner** now (macOS + Tier-4 gaps closed this session). First real CI run is the final confirmation that the PTY tests pass in the Gitea container (validated locally; very low risk). -- Untouched larger items from the "what's next" survey: hint/help issues - **#36/#37/#38**; the big features (V4 session journal, TU1 tutorial). The - CHANGELOG can later feed `--release-notes-url` into the CI winget job - (handoff-75 §6). +- **Next focus is the open issues — see §7** (user direction 2026-06-22: clear + the open issues before resuming feature work). Larger features (V4 session + journal, TU1 tutorial) come after. The CHANGELOG can later feed + `--release-notes-url` into the CI winget job (handoff-75 §6). ## §5. Process pins @@ -119,3 +123,28 @@ managers + TT4 are post-tag → Unreleased. note was reworded to say this plainly and welcomingly; it stays `[/]` by deliberate scope. (Virtualization options explored for a future runner are not recorded here — they hinge on host specifics rather than project constraints.) + +## §7. Next session — start with the open issues + +Per user direction (2026-06-22), the next session should **work the open Gitea +issues before resuming feature work** (V4 journal, TU1 tutorial, etc.). There +are **four open** (`tea issues list --state open --limit 100`; read a body with +`tea issue --fields body --output json < /dev/null | jq -r '.body'`, and +comments with `tea issue --comments < /dev/null`): + +| # | Label | One-line | This-session read on scope | +| --- | --- | --- | --- | +| **#36** | enhancement | `help ` shows no distinct content — the seven advanced-mode SQL nodes carry `help_id: None` (a dedup hack for the `help` list; `src/dsl/grammar/mod.rs:915-918`), so e.g. `help select` resolves to nothing. The parse-error/usage layer (ADR-0042/H1a) already distinguishes them; only the `help` command lags. | **Contained.** Good first pick — a real, bounded gap. Touches H3/`help`; an ADR amendment may apply. | +| **#37** | enhancement | Clause-concept hints — deeper teaching when the cursor sits inside a recognized *clause* (`on delete ⟨cascade\|set null\|restrict⟩`, the `create table` constraint slots, `with pk`, `1:n`/`m:n`), between tier-2's candidate list and the whole-form tier-3 block. Deferred extension of **ADR-0053** (H2). | **Medium scope, richest teaching value** — squarely on the pedagogy mission. Likely an ADR-0053 amendment. | +| **#38** | enhancement | Pre-submit-diagnostic F1 route + ~33 `diagnostic.*` tier-3 blocks. Needs a `class`/`message_key` field threaded through **every** diagnostic-creation site (walker + validators). Deferred from ADR-0053 Phase C. | **Broad mechanism change for the most marginal value** (tier-2 already surfaces these). The issue itself says so. **Decision needed:** do, defer, or close as wontfix — escalate to the user. | +| **#39** | bug | Simple-mode **Form-B insert** (`insert into T values (…)`) submitted faster than the post-DDL **schema-cache refresh** validates against stale schema → misparsed as SQL. Filed this session; repro + diagnosis (incl. `SchemaCache` at `src/completion.rs:53`, Form-B handling `src/dsl/walker/context.rs:155-157`) in the issue. | **Low impact** (no interactive-user hit; cast driver + tests pace). Fix is its own focused change (sequence the cache refresh with command execution, or validate against the authoritative schema). | + +**Suggested order (a recommendation, not a mandate — confirm with the user):** +#36 (contained warm-up) → #37 (highest on-mission value) → #39 (bug; size the fix +first) → #38 (get the user's do/defer/close call before investing in the broad +threading change). All four are hint/help/parse-adjacent except #39; reading +**ADR-0053** (the contextual-hint design) first will orient #37 and #38. + +No new labels needed (`bug`/`enhancement` cover them; ask the user before +creating any). Issue-tracker etiquette + `tea` gotchas are in the project +`CLAUDE.md` ("Issue tracking — Gitea via `tea`").