23 lines
1.6 KiB
Markdown
23 lines
1.6 KiB
Markdown
Summary of Changes (6 files, +36/-19 lines)
|
|
Root Cause
|
|
The token-economics commit (00969cf) correctly added subagent token aggregation to the DB write path (drone-session.ts), but the in-memory and frontend paths only used master-only values. This meant:
|
|
-
|
|
During a session: UI showed lower token counts than reality
|
|
-
|
|
After page refresh: numbers jumped up (DB values loaded)
|
|
-
|
|
Session toolCallCount missed subagent tool calls entirely
|
|
Fixes
|
|
1. packages/api/src/messages/drone.ts — Extended IWorkOrderCompleteStats with optional aggregate fields (totalInputTokens?, totalOutputTokens?, totalToolCallCount?)
|
|
2. gadget-code/src/lib/drone-session.ts — Now computes totalToolCallCount (master + subagent tool calls) alongside existing token aggregates, passes enrichedStats (with aggregate fields populated) to codeSession.onWorkOrderComplete()
|
|
3. gadget-code/src/lib/code-session.ts — In-memory session stats use stats.totalInputTokens ?? stats.masterInputTokens (aggregate when available, master fallback)
|
|
4. gadget-code/frontend/src/lib/api.ts — Frontend type matches the shared interface
|
|
5. gadget-code/frontend/src/pages/ChatSessionView.tsx — Frontend session stats update uses aggregate values; also now correctly increments toolCallCount (was previously missing)
|
|
6. gadget-drone/src/services/agent.ts — Three fixes:
|
|
-
|
|
Removed local IWorkOrderCompleteStats redefinition, now imports from @gadget/api
|
|
-
|
|
Master loop token accumulation uses optional chaining (response.stats?.tokenCounts?.input ?? 0) matching the subagent loop
|
|
-
|
|
agent:complete emit now includes stats field from subagent data
|