Skip to content

feat(architecture): aggregate module-to-package dependency edges on the graph #507

Open

Description

@parthrohit22

Problem

On a real repository (PARTHA itself: 343 nodes, 13,834 relationships), 11,225 of the edges are module-to-package dependency edges. They dominate the graph and are the reason large repositories fall back to the limited-edge mode introduced in #502.

Idea

Represent dependencies at package level by default: one edge per (layer or module group, package) with a count, expandable to the individual modules on demand. An edge-type filter (hide or show dependency edges) would be a smaller first step.

Acceptance criteria

  • On the repository above, the default graph shows meaningfully fewer edges without hiding that dependencies exist.
  • Counts are accurate and traceable to the underlying relationships (the project does not guess).
  • Graphs under the threshold are unchanged unless the user opts in.
  • Unit tests for the aggregation; no regression in the existing Playwright specs.

Pointers

apps/frontend/src/features/architecture/layout.ts, components/ArchWorkspace.tsx, RelationshipPanel.tsx. Edge type values seen: dependency, import, calls, api-call.

Activity

  1. SHAURYAKSHARMA24 commented on Oct 8, 2026

    @SHAURYAKSHARMA24
    Collaborator

    F11 smaller first step implemented in PR #558: explicit canvas edge-type selection, all types preserved by default, full List View/relationship evidence retained. Ten layout tests cover mixed types and non-mutating parity; real Chromium operated the selector on an 88-node/640-import-edge fixture. This is the filter alternative described in the issue, not default package aggregation; default-count/aggregation acceptance criteria remain open. No automatic closing reference is used.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions