feat(orbit): Enhance SDLC map graph explorer
What does this MR do and why?
Stacks on !233343 (merged) to ship the SDLC map graph explorer, the 2D/3D rendering utils, and the renderer that lights up orbit_* tool calls inside Duo agentic chat. !233343 (merged) lands first for the shell and Rails wiring, then this MR adds the explorer surface on top.
Together with !233343 (merged), this replaces the original !230181 review.
- Explorer surface:
graph_explorer,graph_canvas,graph_filter_bar,graph_legend, plus updates to the existing explorer panels and node detail overlay - 2D/3D split for the canvas:
three_graph_2d,three_graph_3d,three_edges_2d,three_edges_3d,three_interaction_2d,three_interaction_3d, with the sharedthree_*utils refactored to feed both modes - Duo agentic chat: new
MessageOrbitToolVue component, registered throughduo_agentic_chat_state_manager - Cleanup: removes the legacy
configuration_page,explorer_graph_toolbar,explorer_hero_banner,explorer_tab_bar,onboarding, schema cards/page, andtool_card, plus their stale specs - Tests: 132 jest tests across 12 spec files covering every new and refactored unit
Why ship the frontend fetchGraphStatus call ahead of the Rails endpoint?
The endpoint is blocked on orbit/knowledge-graph#175. The frontend call ships now and short-circuits until the RPC lands; the Rails route follows in a separate MR.
References
- Prerequisite: !233343 (merged) (dashboard shell and Rails wiring)
- Original MR: !230181
- Related: orbit/knowledge-graph#474, the admin index detail UI consumes this map
- Style reference: #591396
How to set up and validate locally
-
Apply !233343 (merged) first so the shell is in place, then bring up the GKG stack per the local development doc. Enable
knowledge_graphand turn Orbit on for at least one root group. -
Verify:
| Step | Expected |
|---|---|
Visit /dashboard/orbit |
SDLC map renders. Network tab shows one batched neighbors call for Group capped at 500 rows |
| Toggle 2D and 3D | Both modes render edges and nodes without console errors |
| Schema tab → Show in Map on an entity | Router pushes ?panel=map&entity=<EntityType> and the explorer auto-runs a search |
| Double-click a node | Neighbor expansion fires with limit: 50 |
| Duo chat with the Orbit agent: "List all merge requests" | orbit_query_graph renders via MessageOrbitTool, not the generic tool message |
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.