fix: progress ticker on tool-activity, last-line └, summary+description both shown

- Ensure progressTicker runs during tool-activity updates for time refresh
- Last activity line uses └ instead of ├
- Summary (📋) and description shown together when both present
- Description indented as sub-item under summary
This commit is contained in:
Eyejoker
2026-03-23 18:52:17 +09:00
parent 6268ee64ed
commit 5112af6741
2 changed files with 27 additions and 4 deletions

View File

@@ -555,12 +555,19 @@ async function runQuery(
const tp = message as Record<string, unknown>;
const summary = typeof tp.summary === 'string' ? tp.summary : '';
const description = typeof tp.description === 'string' ? tp.description : '';
const activityText = description || summary;
if (activityText) {
if (summary) {
writeOutput({
status: 'success',
phase: 'tool-activity',
result: activityText,
result: `📋 ${summary}`,
newSessionId,
});
}
if (description) {
writeOutput({
status: 'success',
phase: 'tool-activity',
result: description,
newSessionId,
});
}

View File

@@ -105,6 +105,11 @@ export class MessageTurnController {
}
if (result.phase === 'tool-activity') {
// Flush pending progress so the message exists for tool activity sub-lines
if (this.pendingProgressText && !this.progressMessageId) {
void this.sendProgressMessage(this.pendingProgressText);
this.pendingProgressText = null;
}
if (text) {
this.addToolActivity(text);
}
@@ -230,7 +235,17 @@ export class MessageTurnController {
const activityLines =
this.toolActivities.length > 0
? '\n' + this.toolActivities.map((a) => `${a}`).join('\n')
? '\n' +
this.toolActivities
.map((a, i) => {
const isLast = i === this.toolActivities.length - 1;
const connector = isLast ? '└' : '├';
const isSummary = a.startsWith('📋');
return isSummary
? `${connector} ${a}`
: `${connector} ${a}`;
})
.join('\n')
: '';
const suffix = `\n\n${elapsedParts.join(' ')}`;
const maxText =
@@ -287,6 +302,7 @@ export class MessageTurnController {
// Update the displayed progress message with tool activity sub-lines
if (this.latestProgressText && this.progressMessageId) {
void this.syncTrackedProgressMessage();
this.ensureProgressTicker();
}
}