compaction: not viewable — the dividers stay, inert (release polish 4)

Owner ruling (release polish round, 2026-10-06): the compaction
summary dialog is gone. The content is model-facing plumbing — anyone
who wants to inspect it reads their provider logs. Both dividers
survive as INERT markers: the moment divider's 'Context compacted'
note and the cut divider's 'HISTORY COMPACTED · 152k tok' seam chip
render as plain text; no button, no dialog, no state. The marker parts
and the server fold are untouched — this is a pure render-side
removal.

Pins: dividers render without <button> or cursor affordances, and the
marker's summary text never reaches the DOM. 1427 tests, tsc, lint,
build green.
This commit is contained in:
amosblomqvist
2026-10-06 14:18:05 +03:00
parent 0b2e4e03fb
commit 95ba9c8272
3 changed files with 51 additions and 123 deletions
+3 -18
View File
@@ -48,7 +48,6 @@ import { PhaseChip, PhaseDivider } from "@/components/phase-divider";
import {
CompactionCutDivider,
CompactionMomentDivider,
CompactionSummaryDialog,
type CompactionDividerData,
} from "@/components/compaction-divider";
import { CoverageRing } from "@/components/extraction-coverage";
@@ -630,9 +629,8 @@ export function Chat({
// Compaction (owner round 14): the RUNNING state — compaction-changed
// flips it; the send paths, canSend, and the docks gate on it (the
// server's registry mutex is the structural gate; this is the
// affordance). The summary dialog state rides with it.
// affordance).
const [compacting, setCompacting] = useState(initiallyCompacting);
const [compactionSummary, setCompactionSummary] = useState<CompactionDividerData | null>(null);
const canSend =
(text.trim().length > 0 || dictation.active) && !pending && !activeProblem && !compacting;
@@ -1290,21 +1288,9 @@ export function Chat({
case "data-graph-context":
return <GraphContextCard key={pi} data={part.data as GraphContextData} />;
case "data-compaction":
return (
<CompactionMomentDivider
key={pi}
data={part.data as CompactionDividerData}
onOpen={() => setCompactionSummary(part.data as CompactionDividerData)}
/>
);
return <CompactionMomentDivider key={pi} data={part.data as CompactionDividerData} />;
case "data-compaction-cut":
return (
<CompactionCutDivider
key={pi}
data={part.data as CompactionDividerData}
onOpen={() => setCompactionSummary(part.data as CompactionDividerData)}
/>
);
return <CompactionCutDivider key={pi} data={part.data as CompactionDividerData} />;
case "data-practice-thinking":
return <ThinkingCard key={pi} data={part.data as PracticeThinkingData} />;
case "data-practice-next":
@@ -1600,7 +1586,6 @@ export function Chat({
)}
{planOpen && <PlanPopup messages={messages} onClose={() => setPlanOpen(false)} />}
<AbortTurnDialog mode={abortAsk} onClose={() => setAbortAsk(null)} onConfirm={confirmAbort} busy={busy} />
<CompactionSummaryDialog summary={compactionSummary} onClose={() => setCompactionSummary(null)} />
</div>
</div>
</div>