Skip to content

feat(web): inspect bounded repository graph views in a local browser #466

Description

@styler-ai

Why

ProjectAtlas already owns a typed, freshness-checked repository graph and a focused terminal view is planned, but humans also need a convenient browser-sized way to inspect a local neighborhood, backlinks, unresolved references, purposes, and exact source evidence. A bounded browser view can improve review and onboarding without creating a second graph product or source authority.

What Changes

  • Add a local read-only browser view over one captured ProjectAtlas generation.
  • Start from an explicit file, symbol, community, or purpose focus with a small hop depth and hard node, edge, byte, deadline, and cancellation budgets.
  • Reuse the existing service-owned traversal, typed relation filters, confidence, resolution, coverage, purposes, exact selectors, and continuation state.
  • Show directional backlinks, unresolved and no-candidate documentation states, boundary edges, truncation, and stale-generation status.
  • Prefer a generated single-session/static artifact or ephemeral loopback-only process; select the smaller safe option during OpenSpec.
  • Escape all repository content, use a restrictive content-security policy, avoid remote assets, and never execute source or document content.
  • Keep agent CLI/MCP navigation primary; the browser is an optional human projection.

Capabilities

  • bounded-local-graph-browser: focused repository graph inspection in a standard browser.
  • browser-to-exact-evidence: safe repository-relative selectors that route back to existing summary, relation, and slice commands.

Architecture Diagrams

Release Scope

Target v0.7.0 with useful architecture communities and the focused graph TUI. The browser view consumes the same service projection; it does not own partitioning, graph traversal, or persistence.

Non-Goals

  • Cloud hosting, remote access, collaboration, accounts, telemetry, or code upload.
  • A long-running project daemon, global cross-repository graph, second graph database, persisted layout authority, or generic graph query language.
  • A default whole-repository hairball, 3D visualization, source editor, wiki/vault export, or architecture-document replacement.
  • New semantic/similarity edges merely to make the display dense.
  • Active HTML from repository files, remote scripts/fonts/assets, or unrestricted file-system links.

Acceptance Criteria

  • The default view is focus-first, bounded, useful on representative large repositories, and explicit about omitted nodes/edges.
  • Browser and terminal/CLI/MCP views agree on generation, identities, direction, relation family, confidence, resolution, coverage, and exact selectors.
  • Unresolved references and proven no-candidate documentation state remain visible instead of appearing as successful empty data.
  • Output safely escapes adversarial labels and source snippets, uses no remote assets, and enforces a restrictive CSP.
  • Any serving mode binds loopback only, uses an unguessable per-session capability, has a short explicit lifecycle, and cannot browse arbitrary local files.
  • Empty, stale, wrong-root, missing-index, oversized, cancelled, and partial results are typed and visually distinct.
  • Windows, Linux, macOS arm64, and macOS x86-64 packaged E2E plus real browser visual/accessibility review pass.
  • Benchmarks cover projection latency, serialization bytes, browser load/layout time, CPU, RSS, cancellation, and retained-output limits.

Pre-Mortem

  • The browser becomes a second product surface: keep it a thin projection of the existing service contract.
  • A local server exposes source: prefer static output where sufficient; otherwise bind loopback, authorize one session, escape content, and terminate promptly.
  • Large repositories become unreadable: require explicit focus, small depth, filters, communities, and hard budgets.
  • Browser and agent results disagree: share one projection type and freeze generation/selector parity tests.
  • UI work delays graph correctness: make architecture communities and service projection prerequisites.

OpenSpec Tasks

OpenSpec change: to be created when this v0.7.0 capability is scheduled. No implementation task is authorized by this backlog issue.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions