Improve incremental review output and fix todo tracker race (#529)

* improve incremental review output and fix todo tracker race

- reviewed changes section: summarize at logical-change level with
  past-tense verbs, not per-file enumerations
- add TodoTracker.completeAll() to mark all non-cancelled items as
  completed before snapshotting the collapsible in review/progress posts

Made-with: Cursor

* completeAll -> completeInProgress: only mark in-progress items as completed

Pending items that were genuinely skipped stay as-is in the collapsible,
so the task list honestly reflects what the agent actually did.

Made-with: Cursor
This commit is contained in:
Colin McDonnell
2026-04-10 20:15:34 +00:00
committed by pullfrog[bot]
parent 9ee9731c67
commit b282e8b599
5 changed files with 19 additions and 2 deletions
+8
View File
@@ -56,6 +56,8 @@ export type TodoTracker = {
cancel: () => void;
/** resolves when any in-flight onUpdate call completes */
settled: () => Promise<void>;
/** mark in-progress items as completed (for final snapshot before review/progress post) */
completeInProgress: () => void;
renderCollapsible: () => string;
readonly enabled: boolean;
/** true after the tracker has successfully called onUpdate at least once */
@@ -135,6 +137,12 @@ export function createTodoTracker(onUpdate: (body: string) => Promise<void>): To
await inflightPromise;
},
completeInProgress() {
for (const item of state.values()) {
if (item.status === "in_progress") item.status = "completed";
}
},
renderCollapsible(): string {
if (state.size === 0) return "";
const todos = Array.from(state.values());