Refinements to the dependency exploration ui

This commit is contained in:
2026-05-04 12:17:48 +02:00
parent 07c9a95efc
commit 356c0026ef
8 changed files with 408 additions and 36 deletions

View File

@@ -26,6 +26,10 @@ CLI command. Evidence should point directly to a capability when it supports the
capability as a whole and no narrower feature target is known. Facts can observe
evidence and features; evidence can support features or capabilities.
Document-level facts are normalized for graph readability. Derived `SCOPE.md`
facts are suppressed when they only restate generated scope, and README/SCOPE
document facts that describe the same file-level support are represented once.
## Display States
Each active graph element receives a `displayState`:
@@ -38,15 +42,17 @@ Each active graph element receives a `displayState`:
Rule precedence is deterministic: later rules override earlier rules, then
manual overrides win last. If a node is hidden, connected edges are hidden too.
If a node is blurred, connected edges receive a muted context hint so the
surrounding dependency path remains visible without competing for attention.
Manual overrides are stored by stable graph key and orphaned keys are surfaced
when a profile references nodes or edges that no longer exist.
## Filter Rules
Rules are JSON objects with an `action` of `show`, `blur`, or `hide`, plus a
`match` object. Common match fields include `kind`, `layer`, `primaryClass`,
`attributes`, `confidence`, `freshnessState`, `ownership`, `dependencyType`,
`strength`, `sameLayer`, `path`, and `text`.
`match` object. Common match fields include `kind`, `layer`, `reviewState`,
`primaryClass`, `attributes`, `confidence`, `freshnessState`, `ownership`,
`dependencyType`, `strength`, `sameLayer`, `path`, and `text`.
Example:
@@ -64,6 +70,10 @@ View profiles are repository-scoped saved graph perspectives. The profile API
supports create, list, load, update, duplicate, and delete operations under
`/repos/{repository_id}/dependency-graph/profiles`.
When a graph is opened without an explicit `profile_id`, the most recently saved
repository profile is applied by default. API clients can pass
`use_latest_profile=false` to request an unsaved full graph view.
Profiles store:
- name and optional description
@@ -84,3 +94,7 @@ Example profiles:
Hiding evidence can make a graph appear cleaner while also removing the reason a
capability is trusted. Prefer blurring evidence when reviewing scope impact so
the support chain remains visible as context.
Nodes scale within a bounded size range when confidence is available. Edge width
is derived from dependency strength. Hovering a graph element shows a compact
popup; selecting it still opens the full side-panel detail.