Skip to content

Conversation

@faranjit
Copy link
Contributor

This PR implements the core visual "Orchestrator Graph" feature and fixes several critical bugs in the "List" view. It also introduces a major type-safety refactor to stabilize the codebase.

  1. New: Orchestrator Graph View
  • Implements the new "Graph" view, completing our primary visualization feature.
  • Adds @xyflow/react for rendering and dagre for auto-layout.
  • Creates graphLayout.ts to transform the span forest into a DAG.
  • Adds custom, styled and components.
  • Adds a "List" / "Graph" toggle to App.tsx.
  1. Fixes: This PR fixes two major visual bugs:
  • Fixed Graph Layout (Orphan Bug)
  • Fixed List Hierarchy (Indentation Bug)
  1. Core Refactor: AppTracerEvent
  • Introduces a hard type-safe boundary for the entire app.
  • AppTracerEvent is now the canonical internal type.
  • normalizeEvent.ts is a new gatekeeper function that cleans/validates all raw TracerEvent data coming from files or live streams.
  • SpanEventStatus now officially includes "streaming".
  • All components, hooks, and utils (buildSpanTree, eventFilters, etc.) are refactored to use AppTracerEvent, eliminating all any casts.
  1. Tests & Docs
  • All existing tests are refactored to use the normalizeEvent helper.
  • Adds new tests for normalizeEvent, graphLayout, and the App view toggle.
  • Updates README.md with new screenshots.

…-safety

Implements the Orchestrator Graph view with Dagre auto-layout and custom nodes.

Fixes the visual hierarchy bug in the List view by correctly applying indentation to child spans and events.

Refactors the entire app to use a type-safe `AppTracerEvent` boundary, using `normalizeEvent` to clean all incoming data. Updates all tests to align with this new, safer architecture.
@faranjit faranjit merged commit fe490cf into main Nov 12, 2025
1 check passed
@faranjit faranjit deleted the feature/orchestrator-graph branch November 12, 2025 22:38
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.

2 participants