Being retired, so it is deleted rather than fixed — it had both defects dashboards just had (edit dropping ?selected=, an abandoned edit following you onto the next item) and repairing them was work for something on its way out. Gone: the two screens and the panel apps, the three routes, the dock item and its entry in the default dock paths (client and the three server-side copies), the page-title rule, the app-registry entries, the barrel exports, the `projects` table with its queries and row types, and the proj-meta/proj-layout/proj-terminals/proj-host-terminals branches in the dashboards endpoint. The chat context and terminal state-key special cases for `proj-layout-` went with them. Deliberately kept: `getUserProjectsDir` in data-path.ts — the apps and dev-server routers resolve user apps under the same on-disk Projects/ directory and are unrelated to this feature. Nothing on disk is touched. Needs `bun db:push` to drop the table; the schema change is the only thing standing between the code and the database. One row was in it. tsgo clean, 56/56 tests, no references left in src. Not yet exercised at runtime — the restart is what will prove it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
3.4 KiB
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 officerto force a socket reconnect and replay. Same expectation.
R — Quick regressions (3)
-
R1 — Search/filter boxes still filter the list, on
/jobsand/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/DashboardsScreendecide the mobile panel fromselected(andcreating), but not fromediting.