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
+14 -1
View File
@@ -1,5 +1,6 @@
import assert from "node:assert/strict";
import { describe, it } from "node:test";
import * as fs from "node:fs";
import type { UIMessage } from "ai";
import {
@@ -156,4 +157,16 @@ describe("batchTag — deterministic, ref-stable, mutation-sensitive", () => {
const mutated = coverageSlots([user("m1", "aaaa!"), user("m2", "bbbb")]);
assert.notEqual(batchTag(slots), batchTag(mutated));
});
});
});
describe("the all-sessions coverage GET is dead (extraction-UX close-out, 2026-09-24)", () => {
it("the route file is gone — the only coverage endpoint is the Extract POST", () => {
// UI confirmation (ff1ec7a): nothing client-side consumes the
// all-sessions list anymore — the sidebar block and the ring both
// read GET /api/chats/[id]'s coverage block. This pin guards against
// a merge resurrecting the dead surface.
assert.equal(fs.existsSync("app/api/graph/coverage/route.ts"), false, "the all-sessions GET route is deleted");
// stays by design: the manual-extract front door (sidebar block's
// Extract affordance) lives on.
assert.equal(fs.existsSync("app/api/graph/coverage/extract/route.ts"), true, "the Extract POST survives");
});
});