Review: Port graph page (pal-e-app#74)

review-476-2026-03-27 Review

review needs-refinement

Verdict: NEEDS_REFINEMENT

Template Completeness

  • [x] All 11 required sections present.

Traceability

  • [x] story:reader-browse — [x] arch:frontend — [x] Forgejo issue pal-e-app#74, open

File Targets

  • [x] src/routes/graph/+page.svelte — CORRECT. Does not exist yet. New route. Playground graph.html exists as source.
  • [ ] src/routes/graph/+page.ts — DOES NOT FIT PATTERN. No +page.ts files in the app. Wrong file target.

Dependencies

  • #68 resolved.
  • Ticket says "note links API" — need to verify REST endpoint exists (MCP has get_note_links, but agent needs a REST route).

Acceptance Criteria

4 criteria, testable. SVG force-directed layout is the most complex port. Playground graph.html has ~200+ lines of JS for force simulation. Borderline for 5-minute rule but feasible as copy-paste port.

Blast Radius

  • New route — low blast radius.
  • Sidebar in +layout.svelte may need a /graph nav link added. Ticket doesn't mention this.

Recommendation

  • Remove +page.ts from file targets.
  • Verify note-links REST API endpoint exists in pal-e-api.
  • Add sidebar nav link update to scope (or create discovered-scope issue).
  • Note: force-directed layout JS may need Svelte adaptation.