Skip to content

feat(client): replace LiveActivity/AgentTree with force-directed graph view#1

Merged
Postmodum37 merged 9 commits intomainfrom
rework-live-activity
Feb 8, 2026
Merged

feat(client): replace LiveActivity/AgentTree with force-directed graph view#1
Postmodum37 merged 9 commits intomainfrom
rework-live-activity

Conversation

@Postmodum37
Copy link
Copy Markdown
Owner

Summary

  • Replace static tree with interactive graph: Swap out LiveActivity and AgentTree components for a force-directed graph view (GraphView, AgentNode, AnimatedEdge) powered by d3-force with collision avoidance and animated edges
  • Remove legacy code: Delete LiveActivity.tsx, AgentTree.tsx, and their unit tests (~930 lines removed), wire GraphView as the primary activity panel in App.tsx
  • Polish and test updates: Default ActivityStream to collapsed to spotlight the graph, add CSS pulse/glow animations, add graph.spec.ts E2E suite, update smoke.spec.ts and sse.spec.ts selectors, clean lint warnings across touched files

Verification

All checks passed locally:

cd src/client && bun run lint      # ✅ 0 warnings, 0 errors
cd src/client && bun run build     # ✅ clean production build
cd src/client && bun run test:e2e  # ✅ 18/18 tests passed (with backend server running)

Notes

  • Legacy LiveActivity and AgentTree components are fully removed — the graph-based view is now the sole main panel
  • New graph components live in src/client/src/components/graph/ (AgentNode, AnimatedEdge, collide, useForceLayout, GraphView)
  • d3-force and d3-quadtree added as dependencies

Postmodum37 and others added 9 commits February 8, 2026 14:51
…h view

Migrate the main activity panel from a static tree to an interactive
force-directed graph powered by d3-force. Agent nodes show real-time
status with animated edges and collision avoidance. Remove legacy
LiveActivity and AgentTree components along with their tests.

- Add AgentNode, AnimatedEdge, useForceLayout, collide utilities
- Wire GraphView into App.tsx as the primary activity display
- Default ActivityStream to collapsed to spotlight the graph
- Add graph-specific E2E tests and update smoke/SSE specs
- Clean up lint warnings across touched client files

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-Claude)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Apply 17/19 review findings from 6 specialized agents:

- Extract helper functions to nodeHelpers.ts (fix react-refresh lint)
- Remove proOptions.hideAttribution (license compliance)
- Switch AnimatedEdge/index.ts to named exports
- Add NaN guard and drag reheat in useForceLayout
- Merge dual change-detection and collapse init logic
- Add runtime guard in AgentNode for invalid data
- O(1) parent lookup via Map in GraphView
- Stagger initial node positions instead of (0,0)
- Harden formatRelativeTime for null/undefined/invalid
- Extract GraphShell to DRY three render branches
- Fix collide.ts force.initialize signature
- Add unit tests for collide, nodeHelpers, formatRelativeTime
- Update client AGENTS.md for new graph/ structure
Remove tabs, agent filters, burst grouping, and swimlane view.
Show only agent spawns and completions as a clean chronological log.

Deleted: BurstRow, AgentSwimlane, ActivityRow, MilestoneRow,
burstGrouping utility, and all associated tests (-2,457 lines).
@Postmodum37 Postmodum37 merged commit 3af7002 into main Feb 8, 2026
@Postmodum37 Postmodum37 deleted the rework-live-activity branch February 8, 2026 20:40
Postmodum37 pushed a commit that referenced this pull request Mar 8, 2026
Co-authored-by: abien <254409+abien@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant