The all-sessions coverage GET dies: the per-session block is the coverage surface

Extraction-UX close-out interlude (master dispatch 2026-09-24, off UI's
ff1ec7a confirmation): nothing client-side consumes GET /api/graph/coverage
— the sidebar block and the chat-bar ring both read GET /api/chats/[id]'s
coverage block. The dead route (app/api/graph/coverage/route.ts) is
deleted; the manual-extract front door (POST /api/graph/coverage/extract)
stays by design.

No server helper was orphaned — the route was composition-only over
shared seams (chatStore, extractionStatuses, stores, coverageOf). The
sessionCoverage doc + the chats/[id] route comment now point at the
per-session block as THE coverage surface.

Pin (tests/coverage.test.ts): the route file's absence (prompt-overrides'
structural-pin precedent) + the Extract POST's survival — a merge cannot
resurrect the dead surface silently.
This commit is contained in:
amosblomqvist
2026-09-24 15:29:01 +03:00
parent bc1f668e2a
commit 3327309e8b
4 changed files with 22 additions and 47 deletions
+5 -4
View File
@@ -114,10 +114,11 @@ export async function deleteChatSession(chatId: string, mode: ChatDeleteMode): P
}
/** One session's coverage read (extraction-UX redesign, owner dispatch
* 2026-09-24): the chat view's ring meter + popover data — the same
* derivation the all-sessions list serves (/api/graph/coverage), scoped
* to one chat. "Uncovered" stays DERIVED per request (fingerprint the
* transcript, diff the coverage ledger — never dual-tracked).
* 2026-09-24): the chat view's ring meter + popover data, scoped to one
* chat (the all-sessions GET died with this redesign — nothing consumed
* it once the sidebar and ring read here; the Extract POST stays).
* Uncovered stays DERIVED per request (fingerprint the transcript,
* diff the coverage ledger — never dual-tracked).
*
* lastFoldedAt: the newest coverage row's fold timestamp — a cheap single
* pass over the chat's ledger rows (the ring popover's "last extraction"