Make the dashboard truthful: honest graph windows, real errors, and navigable exploration - #30
Merged
Merged
Conversation
…avigable exploration The graph canvas now receives a coherent window: nodes first, then only edges whose both endpoints are in the same response, ending years of edges pointing at nodes that were never fetched. Knowledge entities appear on the canvas for the first time, scoped correctly to their project through ABOUT targets with directory-boundary matching, after review caught the first attempt leaking every entity into every project. Embedding vectors are stripped from every dashboard payload. Search is debounced, aborts stale requests, and only the latest generation may write results; a failed request shows an error instead of silently clearing. The operations tab shows per-card error states with retry instead of rendering zeros when the API is down. Every dashboard route validates its numeric parameters with 400s. The explorer gains selection history with Back and Forward, keyboard shortcuts, and a project, file, symbol breadcrumb. Selecting a File shows its contained symbols, imports, importers, and linked knowledge through a new file-relationships endpoint. Selecting an off-canvas result adds the node to the canvas and pans to it, using canonical line-suffixed ids shared with the graph layer after review caught the mismatch. The legend derives from the shared label taxonomy and fails loudly on unknown labels. Eleven accessibility findings are fixed with measured contrast above 7 to 1, ARIA disclosure and pressed states, and a keyboard-reachable node list beside the canvas. Two adversarial review rounds and one final probe drove out four defects and three test-evidence gaps; every fix was re-verified against the reviewer's own attack scripts on fresh fixtures. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
CodeQL flagged the rootPath normalizer as polynomial on caller-supplied input with many slashes. A forward-only loop has identical semantics and linear cost. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This branch was previously deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this fixes
Batch four of the pre-launch audit: the dashboard. Eight verified defects, eleven accessibility findings, and the three requested explorer features.
Graph integrity
Reliability
Explorer features
Accessibility
All eleven findings fixed: accessible names on inputs and the canvas region, a keyboard-reachable node list, ARIA disclosure and pressed states, restored focus treatment, live regions for async results and errors, and small-text contrast measured above 7:1 in both themes.
Review process
Two adversarial rounds plus a final probe, run against ephemeral databases and live HTTP on the built API. Round one found the entity scope leak and the id mismatch plus three test-evidence gaps (including a test proving behavior for a payload the contract makes impossible, which turned out to guard dead code, now deleted). Every fix was re-verified against the reviewer's own attack scripts on fresh fixtures.
Verification
Ledger
🤖 Generated with Claude Code