@@ -5473,6 +5473,7 @@ export function ProjectView({
54735473 events: message.events,
54745474 producedFileCount: produced.length,
54755475 traceObjectFileCount: traceObjectFiles.length,
5476+ artifactCount: status.artifactCount,
54765477 persistenceSucceeded: artifactPersistenceSucceeded,
54775478 persistenceFailed: artifactPersistenceError !== undefined,
54785479 });
@@ -5564,6 +5565,7 @@ export function ProjectView({
55645565 let liveHtml = '';
55655566 let replayedContent = needsFullReplay ? '' : message.content;
55665567 let replayedEvents: AgentEvent[] = needsFullReplay ? [] : [...(message.events ?? [])];
5568+ let daemonArtifactCount = status.artifactCount;
55675569 let latestReattachRunStatus: ChatMessage['runStatus'] = status.status;
55685570 let authoritativeReattachArtifactPaths = status.artifactPaths;
55695571 const applyContentDelta = (delta: string) => {
@@ -5666,6 +5668,9 @@ export function ProjectView({
56665668 replayedEvents = appendCoalescedAgentEvent(replayedEvents, ev);
56675669 textBuffer.appendEvent(ev);
56685670 },
5671+ onArtifactCount: (count) => {
5672+ daemonArtifactCount = count;
5673+ },
56695674 onDone: async () => {
56705675 // A reattached run interrupted by a "send now" still receives a
56715676 // late onDone from the daemon. Decide ownership first, then bail
@@ -5821,6 +5826,7 @@ export function ProjectView({
58215826 events: deliveryEvents,
58225827 producedFileCount: produced.length,
58235828 traceObjectFileCount: traceObjectFiles.length,
5829+ artifactCount: daemonArtifactCount,
58245830 persistenceSucceeded: artifactPersistenceSucceeded,
58255831 persistenceFailed: artifactPersistenceError !== undefined,
58265832 });
@@ -6907,6 +6913,7 @@ export function ProjectView({
69076913 // that just failed in the current session (the daemon status fetch is only
69086914 // needed on reload, not for runs that are already known to have failed).
69096915 let currentRunId: string | undefined = undefined;
6916+ let daemonArtifactCount: number | undefined;
69106917 const updateConversationLatestRun = (
69116918 status: NonNullable<ChatMessage['runStatus']>,
69126919 endedAt?: number,
@@ -7351,6 +7358,9 @@ export function ProjectView({
73517358 else if (ev.kind === 'thinking') textBuffer.appendEvent(ev);
73527359 else pushEvent(ev);
73537360 },
7361+ onArtifactCount: (count: number) => {
7362+ daemonArtifactCount = count;
7363+ },
73547364 onToolInputDelta: (id: string, name: string, delta: string) => {
73557365 setLiveToolInput((prev) => ({
73567366 ...prev,
@@ -7593,6 +7603,7 @@ export function ProjectView({
75937603 events: deliveryCandidate.events,
75947604 producedFileCount: produced.length,
75957605 traceObjectFileCount: traceObjectFiles.length,
7606+ artifactCount: daemonArtifactCount,
75967607 persistenceSucceeded: artifactPersistenceSucceeded,
75977608 persistenceFailed: artifactPersistenceError !== undefined,
75987609 });
0 commit comments