feat: include compaction messages and handle new summary message types (#756)

This commit is contained in:
jnjpng
2026-01-30 18:19:51 -08:00
committed by GitHub
parent bb6ce1f2c8
commit 37a237ad0f
10 changed files with 497 additions and 27 deletions

View File

@@ -117,6 +117,7 @@ import { ConversationSelector } from "./components/ConversationSelector";
import { colors } from "./components/colors";
// EnterPlanModeDialog removed - now using InlineEnterPlanModeApproval
import { ErrorMessage } from "./components/ErrorMessageRich";
import { EventMessage } from "./components/EventMessage";
import { FeedbackDialog } from "./components/FeedbackDialog";
import { HelpDialog } from "./components/HelpDialog";
import { HooksManager } from "./components/HooksManager";
@@ -1473,6 +1474,12 @@ export default function App({
newlyCommitted.push({ ...ln });
continue;
}
// Events only commit when finished (they have running/finished phases)
if (ln.kind === "event" && ln.phase === "finished") {
emittedIdsRef.current.add(id);
newlyCommitted.push({ ...ln });
continue;
}
// Commands with phase should only commit when finished
if (ln.kind === "command" || ln.kind === "bash_command") {
if (!ln.phase || ln.phase === "finished") {
@@ -9394,6 +9401,10 @@ Plan file path: ${planFilePath}`;
// Always show other tool calls in progress
return ln.phase !== "finished";
}
// Events (like compaction) show while running
if (ln.kind === "event") {
return ln.phase === "running";
}
if (!tokenStreamingEnabled && ln.phase === "streaming") return false;
return ln.phase === "streaming";
});
@@ -9577,6 +9588,8 @@ Plan file path: ${planFilePath}`;
<ErrorMessage line={item} />
) : item.kind === "status" ? (
<StatusMessage line={item} />
) : item.kind === "event" ? (
<EventMessage line={item} />
) : item.kind === "separator" ? (
<Box marginTop={1}>
<Text dimColor>{"─".repeat(columns)}</Text>
@@ -9722,6 +9735,8 @@ Plan file path: ${planFilePath}`;
<ErrorMessage line={ln} />
) : ln.kind === "status" ? (
<StatusMessage line={ln} />
) : ln.kind === "event" ? (
<EventMessage line={ln} />
) : ln.kind === "command" ? (
<CommandMessage line={ln} />
) : ln.kind === "bash_command" ? (