Verified
Description
Problem: Currently neither the TUI nor the web/desktop UI show how long each tool call takes or how much time the current conversation turn has consumed. When debugging slow tools or tracking productivity, users have no visibility into timing.
Data is already available: The backend already stores ime.start / ime.end on every tool part state and ime.created / ime.completed on every message. No server/protocol changes needed - this is purely a frontend rendering change.
Proposed scope (4 files, ~100 lines):
- TUI (packages/tui): show duration text next to each tool row in InlineTool, plus a live elapsed timer in the prompt input area while a turn is running
- Session-UI (packages/session-ui): show duration in BasicTool component (covers most tools), pass timing through to all registered tool renderers, and surface turn duration in the assistant text part footer
The i18n keys (ui.message.duration.seconds / minutesSeconds) already exist in all supported languages.
Benefits: Users can identify slow tools at a glance, estimate remaining wait time, and benchmark prompts across models - all without changing workflow. The change is additive (no existing UI removed or restructured).
Verified
Description
Problem: Currently neither the TUI nor the web/desktop UI show how long each tool call takes or how much time the current conversation turn has consumed. When debugging slow tools or tracking productivity, users have no visibility into timing.
Data is already available: The backend already stores ime.start / ime.end on every tool part state and ime.created / ime.completed on every message. No server/protocol changes needed - this is purely a frontend rendering change.
Proposed scope (4 files, ~100 lines):
The i18n keys (ui.message.duration.seconds / minutesSeconds) already exist in all supported languages.
Benefits: Users can identify slow tools at a glance, estimate remaining wait time, and benchmark prompts across models - all without changing workflow. The change is additive (no existing UI removed or restructured).