Repository navigation
feat(web): readable architecture graph with a focus mode - #262
Open
jplanckeel wants to merge 1 commit into
Open
jplanckeel wants to merge 1 commit into
jplanckeel wants to merge 1 commit into
Conversation
The four layouts did not follow the dependencies (nodes grouped by their number of links overlapped, the force layout was random), edges were animated dashed steps, and each node carried two color codes. - One layered layout (dagre), left to right: A -> B reads A depends on B - Click or search a service to highlight what it depends on and what is impacted if it fails, directly or at all levels, with a side panel - Links from both declarations (dependenciesIn and dependenciesOut); links declared on one side only are dashed and counted, dependencies outside the catalog are dashed nodes - Plain nodes: name, platform icon, SLA dot with its label - Removed: the four layouts, node sizes, stats cards (one line instead, without double counting), SLA filter, legend card, list view - Services without dependencies are hidden unless asked for Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been 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
The Architecture page (
/catalog/dependencies) could not be read nor used to answer "what does X need, what breaks if X fails". Checked on a catalog of 35 services and 52 links:Math.random, moving on every render), "Grid" and "Circular" ignored the links.dependenciesInwas drawn: a link declared only independenciesOutwas missing; dependencies outside the catalog were dropped; "Total Dependencies" counted each link twice.New page
A → Breads "A depends on B". No overlap (checked: 0 overlapping nodes out of 32), same result on every render.stripe-api,smtp-relay) is a dashed node.Removed
The four layouts, node sizes, the three stats cards, the SLA filter (the SLA stays on each node), the legend card, the list view (duplicate of the catalog and of the service page), the "large dataset" warning and the duplicated icon / color / label helpers. The page goes from 1 274 to ~530 lines.
Also
lib/dependencyGraph.ts: graph model (merge of both declarations, one-sided links, nodes outside the catalog) and reachability (direct / transitive, cycles), with unit tests.@dagrejs/dagre3.1.1, loaded with the page chunk only (CatalogDependencies61 KB, 21 KB gzip). The 12 moderatenpm auditadvisories were already there without it.docs/CATALOG.mdanddocs/USER_GUIDE.mddescribe the new page.Checks
serv+web/dist, light and dark: overview, search + Enter selects and framespayment-api(9 dependencies includingstripe-api, 1 impacted), Direct / All levels, closing the panel, showing the services without dependencies, no JS error.build:check,build:static,npm test(33, including 6 new): OK.🤖 Generated with Claude Code