feat: enhance member logs preview handling for lead users

- Improved the logic for displaying preview messages in the MemberLogsTab component.
- Added fallback mechanisms to show the last output preview when no preview chunks are available, specifically for lead users.
- Filtered out user messages for lead previews to focus on AI outputs, ensuring clarity in displayed results.
- Enhanced overall message retrieval logic to provide a more robust user experience in the logs tab.
This commit is contained in:
iliya 2026-03-15 21:34:48 +02:00
parent b14cef5f09
commit af54cea68d

View file

@ -266,9 +266,43 @@ export const MemberLogsTab = ({
}, [shouldShowPreview, showLeadPreview, showSubagentPreview, sortedLogs, taskOwner]);
const allPreviewMessages = useMemo((): SubagentPreviewMessage[] => {
if (!previewChunks || previewChunks.length === 0) return [];
return extractSubagentPreviewMessages(previewChunks);
}, [previewChunks]);
if (!previewChunks || previewChunks.length === 0) {
// For lead preview without chunks, fall back to lastOutputPreview from the log summary.
if (showLeadPreview && previewLog?.lastOutputPreview) {
return [
{
id: `${previewLog.sessionId}:lastOutput`,
timestamp: new Date(previewLog.startTime),
kind: 'output',
label: 'Output',
content: previewLog.lastOutputPreview,
},
];
}
return [];
}
const raw = extractSubagentPreviewMessages(previewChunks);
// For lead preview, user messages are system-generated prompts (not useful).
// Show only AI outputs — the actual work results.
// If no outputs found, fall back to lastOutputPreview from the log summary.
if (showLeadPreview) {
const outputs = raw.filter((m) => m.kind !== 'user');
if (outputs.length > 0) return outputs;
if (previewLog?.lastOutputPreview) {
return [
{
id: `${previewLog.sessionId}:lastOutput`,
timestamp: new Date(previewLog.startTime),
kind: 'output',
label: 'Output',
content: previewLog.lastOutputPreview,
},
];
}
return raw; // ultimate fallback: show everything including user messages
}
return raw;
}, [previewChunks, showLeadPreview, previewLog]);
const previewMessages = useMemo((): SubagentPreviewMessage[] => {
return allPreviewMessages.slice(0, previewVisibleCount);