Skip to content

Commit fa03799

Browse files
authored
Merge pull request #588 from rajbos/rajbos/displayname-extra-high
feat: display 'xhigh' reasoning effort as 'Extra High'
2 parents 2d27aaa + 269d1e3 commit fa03799

2 files changed

Lines changed: 25 additions & 5 deletions

File tree

vscode-extension/src/webview/logviewer/main.ts

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,14 @@ function escapeHtml(text: string): string {
9898
.replace(/'/g, ''');
9999
}
100100

101+
const EFFORT_DISPLAY_NAMES: Record<string, string> = {
102+
xhigh: 'Extra High',
103+
};
104+
105+
function getEffortDisplayName(level: string): string {
106+
return EFFORT_DISPLAY_NAMES[level] ?? level;
107+
}
108+
101109
function formatDate(isoString: string | null): string {
102110
if (!isoString) { return 'N/A'; }
103111
try {
@@ -504,7 +512,7 @@ function renderTurnCard(turn: ChatTurn): string {
504512
<span class="turn-number">#${turn.turnNumber}</span>
505513
<span class="turn-mode" style="background: ${getModeColor(turn.mode)};">${getModeIcon(turn.mode)} ${turn.mode}</span>
506514
${turn.model ? `<span class="turn-model">🎯 ${escapeHtml(turn.model)}</span>` : ''}
507-
${turn.thinkingEffort ? `<span class="turn-effort">💡 ${escapeHtml(turn.thinkingEffort)}</span>` : ''}
515+
${turn.thinkingEffort ? `<span class="turn-effort">💡 ${escapeHtml(getEffortDisplayName(turn.thinkingEffort))}</span>` : ''}
508516
<span class="turn-tokens">📊 ${formatCompact(totalTokens)} tokens (↑${turn.inputTokensEstimate}${turn.outputTokensEstimate})</span>
509517
${hasThinking ? `<span class="turn-tokens" style="color: #a78bfa;">🧠 ${formatCompact(turn.thinkingTokensEstimate)} thinking</span>` : ''}
510518
${hasActualUsage ? `<span class="turn-tokens" style="color: #22c55e;">✓ ${formatCompact(turn.actualUsage!.promptTokens + turn.actualUsage!.completionTokens)} actual</span>` : ''}
@@ -556,6 +564,11 @@ function renderLayout(data: SessionLogData): void {
556564
const usageContextTotal = getTotalContextRefs(usageContextRefs);
557565
const usageContextImplicit = getImplicitContextRefs(usageContextRefs);
558566
const usageContextExplicit = getExplicitContextRefs(usageContextRefs);
567+
const effortDefault = sessionEffort?.defaultEffort ?? (sessionEffort ? Object.keys(sessionEffort.byEffort)[0] : undefined);
568+
const effortDefaultLabel = effortDefault ? getEffortDisplayName(effortDefault) : '—';
569+
const effortSummary = sessionEffort
570+
? Object.entries(sessionEffort.byEffort).map(([k, v]) => `${getEffortDisplayName(k)}: ${v}`).join(', ')
571+
: '';
559572

560573
// Calculate actual usage totals across all turns
561574
const turnsWithActual = data.turns.filter(t => t.actualUsage);
@@ -648,8 +661,8 @@ function renderLayout(data: SessionLogData): void {
648661
</div>` : ''}
649662
${sessionEffort ? `<div class="summary-card">
650663
<div class="summary-label">💡 Thinking Effort</div>
651-
<div class="summary-value">${sessionEffort.defaultEffort ?? Object.keys(sessionEffort.byEffort)[0] ?? '—'}</div>
652-
<div class="summary-sub">${Object.entries(sessionEffort.byEffort).map(([k, v]) => `${k}: ${v}`).join(', ')}${sessionEffort.switchCount > 0 ? ` · ${sessionEffort.switchCount} switch${sessionEffort.switchCount !== 1 ? 'es' : ''}` : ''}</div>
664+
<div class="summary-value">${effortDefaultLabel}</div>
665+
<div class="summary-sub">${effortSummary}${sessionEffort.switchCount > 0 ? ` · ${sessionEffort.switchCount} switch${sessionEffort.switchCount !== 1 ? 'es' : ''}` : ''}</div>
653666
</div>` : ''}
654667
${totalSubAgentCalls > 0 ? `<div class="summary-card">
655668
<div class="summary-label">🤖 Sub-Agent Calls</div>

vscode-extension/src/webview/usage/main.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,14 @@ function escapeHtml(text: string): string {
160160
.replace(/'/g, '&#039;');
161161
}
162162

163+
const EFFORT_DISPLAY_NAMES: Record<string, string> = {
164+
xhigh: 'Extra High',
165+
};
166+
167+
function getEffortDisplayName(level: string): string {
168+
return EFFORT_DISPLAY_NAMES[level] ?? level;
169+
}
170+
163171
import toolNames from '../../toolNames.json';
164172
import automaticToolIds from '../../automaticTools.json';
165173

@@ -958,7 +966,7 @@ function renderLayout(stats: UsageAnalysisStats): void {
958966
const count = teu.byEffort[level] || 0;
959967
const pct = total > 0 ? Math.round((count / total) * 100) : 0;
960968
return `<div style="display: flex; align-items: center; gap: 8px; margin-bottom: 8px;">
961-
<span style="width: 56px; font-size: 12px; font-weight: 600; color: var(--text-primary); text-transform: capitalize;">${escapeHtml(level)}</span>
969+
<span style="width: 56px; font-size: 12px; font-weight: 600; color: var(--text-primary); text-transform: capitalize;">${escapeHtml(getEffortDisplayName(level))}</span>
962970
<div style="flex: 1; background: var(--bg-secondary); border-radius: 4px; height: 12px; overflow: hidden;">
963971
<div style="width: ${pct}%; background: var(--link-color); height: 100%; border-radius: 4px;"></div>
964972
</div>
@@ -2010,4 +2018,3 @@ async function bootstrap(): Promise<void> {
20102018
}
20112019

20122020
void bootstrap();
2013-

0 commit comments

Comments
 (0)