feat: add parent-only disclaimer and report link to session cost
The Visible Context panel's Session Cost only reflects the parent session. Add "(parent only · view full cost)" label that links to the Session Report where parent + subagent costs are shown. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
33b63b46a5
commit
db9a676680
4 changed files with 25 additions and 0 deletions
|
|
@ -64,6 +64,7 @@ export const ChatHistory = ({ tabId }: ChatHistoryProps): JSX.Element => {
|
|||
syncSearchMatchesWithRendered,
|
||||
selectSearchMatch,
|
||||
setTabVisibleAIGroup,
|
||||
openSessionReport,
|
||||
} = useStore(
|
||||
useShallow((s) => ({
|
||||
searchQuery: s.searchQuery,
|
||||
|
|
@ -76,6 +77,7 @@ export const ChatHistory = ({ tabId }: ChatHistoryProps): JSX.Element => {
|
|||
syncSearchMatchesWithRendered: s.syncSearchMatchesWithRendered,
|
||||
selectSearchMatch: s.selectSearchMatch,
|
||||
setTabVisibleAIGroup: s.setTabVisibleAIGroup,
|
||||
openSessionReport: s.openSessionReport,
|
||||
}))
|
||||
);
|
||||
|
||||
|
|
@ -872,6 +874,7 @@ export const ChatHistory = ({ tabId }: ChatHistoryProps): JSX.Element => {
|
|||
onNavigateToUserGroup={handleNavigateToUserGroup}
|
||||
totalSessionTokens={lastAiGroupTotalTokens}
|
||||
sessionMetrics={sessionDetail?.metrics}
|
||||
onViewReport={effectiveTabId ? () => openSessionReport(effectiveTabId) : undefined}
|
||||
phaseInfo={sessionPhaseInfo ?? undefined}
|
||||
selectedPhase={selectedContextPhase}
|
||||
onPhaseChange={setSelectedContextPhase}
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ interface SessionContextHeaderProps {
|
|||
totalSessionTokens?: number;
|
||||
sessionMetrics?: SessionMetrics;
|
||||
onClose?: () => void;
|
||||
onViewReport?: () => void;
|
||||
phaseInfo?: ContextPhaseInfo;
|
||||
selectedPhase: number | null;
|
||||
onPhaseChange: (phase: number | null) => void;
|
||||
|
|
@ -42,6 +43,7 @@ export const SessionContextHeader = ({
|
|||
totalSessionTokens,
|
||||
sessionMetrics,
|
||||
onClose,
|
||||
onViewReport,
|
||||
phaseInfo,
|
||||
selectedPhase,
|
||||
onPhaseChange,
|
||||
|
|
@ -132,6 +134,22 @@ export const SessionContextHeader = ({
|
|||
<span className="font-medium tabular-nums" style={{ color: COLOR_TEXT_SECONDARY }}>
|
||||
{formatCostUsd(sessionMetrics.costUsd)}
|
||||
</span>
|
||||
<span style={{ color: COLOR_TEXT_MUTED }}> (parent only</span>
|
||||
{onViewReport ? (
|
||||
<span>
|
||||
<span style={{ color: COLOR_TEXT_MUTED }}> · </span>
|
||||
<button
|
||||
onClick={onViewReport}
|
||||
className="underline"
|
||||
style={{ color: COLOR_TEXT_SECONDARY }}
|
||||
>
|
||||
view full cost
|
||||
</button>
|
||||
<span style={{ color: COLOR_TEXT_MUTED }}>)</span>
|
||||
</span>
|
||||
) : (
|
||||
<span style={{ color: COLOR_TEXT_MUTED }}>)</span>
|
||||
)}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@ export const SessionContextPanel = ({
|
|||
onNavigateToUserGroup,
|
||||
totalSessionTokens,
|
||||
sessionMetrics,
|
||||
onViewReport,
|
||||
phaseInfo,
|
||||
selectedPhase,
|
||||
onPhaseChange,
|
||||
|
|
@ -193,6 +194,7 @@ export const SessionContextPanel = ({
|
|||
totalSessionTokens={totalSessionTokens}
|
||||
sessionMetrics={sessionMetrics}
|
||||
onClose={onClose}
|
||||
onViewReport={onViewReport}
|
||||
phaseInfo={phaseInfo}
|
||||
selectedPhase={selectedPhase}
|
||||
onPhaseChange={onPhaseChange}
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@ export interface SessionContextPanelProps {
|
|||
totalSessionTokens?: number;
|
||||
/** Full session metrics (input, output, cache tokens, cost) */
|
||||
sessionMetrics?: SessionMetrics;
|
||||
/** Open the Session Report to see full cost breakdown */
|
||||
onViewReport?: () => void;
|
||||
/** Phase information for phase selector */
|
||||
phaseInfo?: ContextPhaseInfo;
|
||||
/** Currently selected phase (null = current/latest) */
|
||||
|
|
|
|||
Loading…
Reference in a new issue