feat: redesign activity panel UX with grouped timeline and verb-based labels

Replace the flat, repetitive 'Agent used X' activity list with a
structured narrative timeline:

- Group consecutive same-tool calls into collapsible rows with context
  (e.g. 'Viewed 4 files' with file names listed below)
- Use verb-based labels with arguments: 'Viewed ChatPane.tsx:148-250',
  'Searched for tool-call', 'Edited runTimeline.ts'
- Promote report_intent events to phase dividers that segment the
  timeline into labeled stages of work
- Show latest intent text in the collapsed header summary
- Use category-specific icons (Eye, Search, Pencil, Terminal, etc.)
  instead of the universal wrench
- Render thinking steps as quoted blocks with 'N more' toggle for
  consecutive groups

All data was already available in RunTimelineEventRecord.toolArguments;
this change surfaces it prominently instead of hiding it behind
expandable detail panels.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
David Kaya
2026-04-08 09:51:34 +02:00
co-authored by Copilot
parent 6d698ca233
commit 3e71de98e8
8 changed files with 964 additions and 80 deletions
+13 -1
View File
@@ -663,6 +663,17 @@ body {
animation: turn-activity-row-in 0.15s cubic-bezier(0.16, 1, 0.3, 1) both;
}
@keyframes intent-divider-in {
from {
opacity: 0;
transform: scaleX(0.7);
}
}
.turn-activity-row[role="separator"] {
animation: intent-divider-in 0.2s cubic-bezier(0.16, 1, 0.3, 1) both;
}
/* ── Respect reduced motion ──────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
@@ -677,7 +688,8 @@ body {
.banner-slide-enter,
.update-banner-enter,
.turn-activity-enter,
.turn-activity-row {
.turn-activity-row,
.turn-activity-row[role="separator"] {
animation: none;
}
}