diff --git a/docs/nav-test-checklist.md b/docs/nav-test-checklist.md index 6d7fca70..e100406e 100644 --- a/docs/nav-test-checklist.md +++ b/docs/nav-test-checklist.md @@ -1,6 +1,8 @@ # Navigation refactor + sidecars — runtime test checklist -**56 checks.** Each line is a single yes/no. Reference them as "J3 works, D5 needs fix". +**Complete.** 41 checks run, 15 voided when Projects was removed. Three defects found and fixed: +C4 (`d8cf79b`), D7/D8 (`18e732f`), plus an unrelated layout bug found along the way (`1a5c6c8`). +One known issue left unfixed on purpose: D12-edit on mobile. Provenance: written by the session that did the navigation refactor (`eff24773`, last message 2026-07-30T06:21Z) and never saved before that session was lost. Recovered from its transcript. @@ -90,15 +92,15 @@ It had the same two defects Dashboards had — edit clearing `?selected=`, and a you to the next item — plus the same structure that caused them: the form reachable only through the empty state. None of it was worth repairing for a feature being retired. -## X — Chat lazy-load × sidecars — 0/3 +## X — Chat lazy-load × sidecars — 3/3 ✅ -- [ ] **X1** Open a long chat → **no** spurious "⚠️ some output could not be recovered" banner. -- [ ] **X2** Send a new turn → appends correctly below the loaded tail. -- [ ] **X3** Scroll up to load history, then send a turn / reconnect → prepended older messages are +- [x] **X1** Open a long chat → **no** spurious "⚠️ some output could not be recovered" banner. +- [x] **X2** Send a new turn → appends correctly below the loaded tail. +- [x] **X3** Scroll up to load history, then send a turn / reconnect → prepended older messages are **not** wiped. -## R — Quick regressions — 0/3 +## R — Quick regressions — 3/3 ✅ -- [ ] **R1** Search/filter boxes in Jobs / Dashboards / Projects still filter the list. -- [ ] **R2** No new console errors on `/jobs`, `/dashboards`, `/projects`, `/chat`. -- [ ] **R3** Browser back/forward moves between selections sensibly (selection is in the URL now). +- [x] **R1** Search/filter boxes in Jobs / Dashboards / Projects still filter the list. +- [x] **R2** No new console errors on `/jobs`, `/dashboards`, `/projects`, `/chat`. +- [x] **R3** Browser back/forward moves between selections sensibly (selection is in the URL now). diff --git a/docs/nav-test-remaining.md b/docs/nav-test-remaining.md deleted file mode 100644 index 5aa9f0a3..00000000 --- a/docs/nav-test-remaining.md +++ /dev/null @@ -1,67 +0,0 @@ -# Remaining tests — run these yourself - -**6 checks left: X1–X3 and R1–R3.** Everything else is done or dropped (see the tally at the bottom). -Each line is a single yes/no. Report as "X1 ok, R2 needs fix". - -**Pre-req:** running `master` at `18e732f` or later, `pm2 restart officer` done, browser hard-refreshed -(Ctrl/Cmd-Shift-R). A stale bundle looks exactly like a failure. - ---- - -## X — Chat lazy-load × sidecars (3) - -This block is why the two branches had to be merged before testing: it exercises the **lazy-loaded -transcript window** (navigation work) against the **sidecar-written durable event log** (sidecar work). -They meet at the `prevSeq` continuity check in `useChat.ts` — the client compares each durable message's -`prevSeq` against the cursor it holds, and shows a warning banner if they disagree. - -The risk is a **false alarm**: loading only the tail of a transcript means the client starts mid-chain, -and if that's mishandled it reports missing output that isn't actually missing. - -- [ ] **X1** — Open a long chat (this session, or `0aebeea6`). Expect **no** banner reading - "⚠️ Some output could not be recovered — part of this conversation is missing above." - *A banner here is a false positive: the events are on disk, the window just started mid-chain.* - -- [ ] **X2** — In that same chat, send a new message. The reply streams in and appends **below** the - loaded tail, in the right order. Nothing duplicated, nothing inserted mid-transcript. - -- [ ] **X3** — The nasty one. In a long chat: scroll up until older messages load, then send a new turn. - The older messages you just loaded must **still be there** — not wiped back to the tail window. - Variant worth trying: scroll up to load history, then `pm2 restart officer` to force a socket - reconnect and replay. Same expectation. - -## R — Quick regressions (3) - -- [ ] **R1** — Search/filter boxes still filter the list, on `/jobs` and `/dashboards`. - *(Projects is being removed — skip it there.)* - -- [ ] **R2** — No new console errors on `/jobs`, `/dashboards`, `/chat`. Open devtools, visit each, - click a couple of rows. Red errors are a fail; warnings are fine. - -- [ ] **R3** — Browser **back/forward** moves between selections sensibly now that selection is in the - URL. E.g. on `/dashboards`: click A, click B, press back → you should be on A with its preview. - Worth also checking back out of `/chat/` and `/jobs/`. - ---- - -## Tally - -| block | result | -|---|---| -| **C** — chat list & routing | **6/6** ✅ (C4 was broken → fixed, `d8cf79b`) | -| **L** — long-transcript lazy-load | **8/8** ✅ | -| **J** — jobs | **8/8** ✅ | -| **D** — dashboards | **12/13** ✅ (D7/D8 broken → fixed, `18e732f`; D12-edit on mobile not fixed, see below) | -| **P** — projects | **dropped** — feature being removed | -| **X** — lazy-load × sidecars | 0/3 — **yours to run** | -| **R** — regressions | 0/3 — **yours to run** | - -**34 verified, 6 remaining, 15 dropped with Projects.** - -### Known and deliberately not fixed - -- **D12 (mobile, edit)** — on a phone, tapping edit on a dashboard opens the form in a panel you can't - see. Select and New both work. Not fixed: mobile web is being discontinued in favour of the app. - If that ever changes, the cause is the same shape as the desktop bug fixed in `18e732f` — - `ProjectListScreen`/`DashboardsScreen` decide the mobile panel from `selected` (and `creating`), - but not from `editing`.