checklist: the run is finished

41 of the 56 run, 15 voided with the projects feature. Three defects found and fixed —
the chat cwd picker (f5d3024), dashboards losing the selection on edit and an abandoned
edit following you to the next one (4970e7e) — plus the layout shift on every link click
(9b9012d), which turned up while testing rather than from the list.

D12-edit on mobile stays broken by decision, recorded in the file with its cause.

Folds docs/nav-test-remaining.md back in: it existed to hand the last six checks over to
be run separately, and they were run together instead, so keeping two files that disagree
would be worse than one.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-30 08:25:19 +00:00
co-authored by Claude Opus 5
parent 5a1e3d7e0b
commit 71c32b8044
2 changed files with 11 additions and 76 deletions
+11 -9
View File
@@ -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).
-67
View File
@@ -1,67 +0,0 @@
# Remaining tests — run these yourself
**6 checks left: X1X3 and R1R3.** 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/<id>` and `/jobs/<id>`.
---
## 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`.