feat(dashboard): command + response/error preview on timeline hover (#514) - #578
Merged
Conversation
…514) Hovering a timeline bar now shows three lines: Header: Trigger type, status, duration (unchanged) Cmd: first 80 chars of the originating message Out: first 80 chars of the response (success) — OR — Error: first 80 chars of activity.error (failure) Pipeline: - Backend: task_execution_service writes details.response_preview (sanitized_resp[:200]) on the success-completion merge into the chat_start activity row. Failed activities already populate activity.error via complete_activity(error=...). - Store: network.js maps details.message_preview / details.response_preview / activity.error onto each timeline event. - Component: ReplayTimeline.vue threads the new fields through agentActivityMap and bars, then renders them in the existing SVG <title> element. previewLine() collapses whitespace and truncates to 80 chars + ellipsis; whitespace-only previews are silently skipped so the tooltip stays compact when there's nothing useful to show. Note: SVG <title> is the same primitive the schedule-marker tooltip already uses, so multi-line behavior is consistent across the timeline. Mobile devices that don't dispatch hover degrade to the existing click → execution detail page. Verified end-to-end: backend write → /api/activities/timeline → store mapping. Visual rendering of the new tooltip lines should be eyeballed in the Trinity dashboard timeline view. Closes #514. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Contributor
Author
vybe
approved these changes
Apr 29, 2026
vybe
left a comment
Contributor
There was a problem hiding this comment.
LGTM — data pipeline verified (message_preview at task_execution_service.py:324,349). Please do a quick hover-check on the timeline before calling it done.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
Timeline bars on the dashboard now surface a preview on hover so it's possible to scan executions without clicking each one. Tooltip is three lines:
Pipeline
services/task_execution_service.py): on success completion, mergedetails.response_preview = sanitized_resp[:200]into thechat_startactivity row. Failed activities already populateactivity.errorvia the existingcomplete_activity(error=...)calls.stores/network.js): timeline mapper now exposescommand_preview(fromdetails.message_preview, already populated at start),response_preview, and the existingerroron every event.components/ReplayTimeline.vue): threads the new fields throughagentActivityMapandbars.getBarTooltiprenders the new lines viapreviewLine()— collapses whitespace, truncates to 80 chars with an ellipsis, drops the line entirely when input is empty so the tooltip stays compact.Uses the existing SVG
<title>primitive (same as the schedule-marker tooltip), so newline rendering is consistent. No new API round-trip — the preview data piggybacks on/api/activities/timelinevia the existingdetailsJSON field.Acceptance criteria
Error: …in place ofOut: ….task_execution_service.execute_task.…; whitespace collapsed.<title>is hover-only; tap on a bar still opens the execution detail page (existing behaviour).Test plan
details.response_previewpresent after my change (synthetic preview rendered for visual smoke, then cleaned up).GET /api/activities/timelinereturnsdetails.response_previewin the activity payload.vite buildclean).\\nnewlines.Notes for reviewer
I exercised the data pipeline end-to-end against the running stack. The visual tooltip rendering itself wasn't browser-tested in this session — the SVG
<title>newline pattern is already proven by the schedule-marker tooltip in the same component, and the build is clean, but please give it a 5-second eyeball before merging.Closes #514.
🤖 Generated with Claude Code