--- id: RREG-WP-0011 type: workplan title: "Dependency Graph Exploration Polish" domain: capabilities repo: repo-scoping status: done owner: codex topic_slug: foerster-capabilities created: "2026-05-04" updated: "2026-05-04" state_hub_workstream_id: "b36e365e-e09f-4910-8d92-7d0ee7909db4" --- # Dependency Graph Exploration Polish This workplan follows RREG-WP-0010 and tightens the dependency graph for daily curation use. The first visualization pass added layered metadata, display states, manual overrides, view profiles, and filtering. This follow-up focuses on graph legibility, saved-profile ergonomics, review-state filtering, hover inspection, and reducing redundant document-derived nodes. ## Review State Filtering ```task id: RREG-WP-0011-T01 status: done priority: high state_hub_task_id: "8cca41a1-ddf2-4136-9707-70c7b8481a48" ``` Add filters for accepted versus candidate graph state. Acceptance criteria: - Graph nodes and edges expose a stable review state where applicable, including at least `accepted` and `candidate`. - Filter rules can match review state for nodes and edges. - The UI exposes structured controls for accepted/candidate filtering without requiring raw JSON. - API tests cover review-state filtering and confirm existing approved graph behavior remains backward compatible. ## Blurred Node Edge Treatment ```task id: RREG-WP-0011-T02 status: done priority: medium state_hub_task_id: "3759013b-8a78-45fb-afa5-5ff1f6644070" ``` Make edges connected to blurred nodes visually recede. Acceptance criteria: - Edges connected to one or more blurred nodes receive a derived display hint or class. - The Cytoscape style renders those edges as very light gray with reduced opacity. - Selected or hovered blurred-context edges remain inspectable. - Tests or contract assertions cover the derived edge state. ## Confidence And Strength-Based Sizing ```task id: RREG-WP-0011-T03 status: done priority: medium state_hub_task_id: "087a550f-a9f7-403c-9853-a04f5847211d" ``` Scale node size and edge width based on confidence or strength. Acceptance criteria: - Nodes with confidence metadata derive a bounded visual size from confidence. - Edges derive width from strength while preserving same-layer and stale/change styling. - Missing confidence or unknown strength falls back to stable defaults. - The UI remains readable on dense graphs and mobile widths. ## Hover Detail Popups ```task id: RREG-WP-0011-T04 status: done priority: medium state_hub_task_id: "eac6ccd7-7c99-46f9-bf12-c3916b03f041" ``` Show a compact detail popup when hovering over graph nodes or edges. Acceptance criteria: - Hovering a node shows its kind, layer, name, display state, confidence, freshness, ownership, and primary source path when available. - Hovering an edge shows dependency type, strength, source, same-layer flag, and source/target names. - The popup follows or anchors near the hovered element without obscuring the cursor target. - Keyboard selection and the existing side panel remain available for full detail inspection. ## Last Saved Profile Default ```task id: RREG-WP-0011-T05 status: done priority: high state_hub_task_id: "d63489fc-5c08-486c-addc-53af84218028" ``` Apply the most recently saved profile automatically when opening the dependency graph for a repository. Acceptance criteria: - When no `profile_id` URL parameter is present, the graph endpoint and UI load the repository's most recently updated profile if one exists. - Explicit `profile_id` URL parameters continue to take precedence. - Users can still return to an unsaved full exploration state from the UI. - API and UI tests cover repositories with no profiles, one profile, multiple profiles, and explicit profile selection. ## Document Node De-Duplication ```task id: RREG-WP-0011-T06 status: done priority: high state_hub_task_id: "5477cfdd-7bd4-428f-a329-6255c4c58803" ``` Remove or merge unnecessary duplicate document-derived nodes, especially `README.md` and `SCOPE.md` cases. Acceptance criteria: - The graph builder identifies why duplicate README/SCOPE-like nodes are being emitted. - Derived `SCOPE.md` context is not shown as an independent fact node when it only restates generated scope. - README-derived facts are merged or represented once when they point to the same document-level evidence. - Regression tests cover repositories with README and SCOPE documents and assert no unnecessary duplicate document nodes appear.