From 8f7491bfaab40d794821846fa505aea3850256a7 Mon Sep 17 00:00:00 2001 From: jay Date: Fri, 15 May 2026 05:13:40 +0200 Subject: [PATCH] feat: cache lastPreview in processOutputLine --- controller.ts | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/controller.ts b/controller.ts index 71c0540..8aa2f45 100644 --- a/controller.ts +++ b/controller.ts @@ -259,6 +259,12 @@ export class FanoutController { const msg = event.message as Message; if (msg.role === "assistant") { // Cache latest assistant text for live preview + for (const part of msg.content) { + if (part.type === "text") { + job.lastPreview = part.text.length > 500 ? part.text.slice(0, 500) + "…" : part.text; + break; + } + } job.usage.turns++; const usage = msg.usage; if (usage) { @@ -272,13 +278,6 @@ export class FanoutController { if (msg.stopReason) job.stopReason = msg.stopReason; if (msg.errorMessage) job.errorMessage = msg.errorMessage; - // Cache last assistant text output for live preview (capped to keep meta.json small) - for (const part of msg.content) { - if (part.type === "text") { - job.lastPreview = part.text.slice(0, 5000); - break; - } - } this.persist(job); } } @@ -288,7 +287,7 @@ export class FanoutController { if (msg.role === "assistant") { for (const part of msg.content) { if (part.type === "text") { - job.lastPreview = part.text.slice(0, 5000); + job.lastPreview = part.text.length > 500 ? part.text.slice(0, 500) + "…" : part.text; this.persist(job); break; }