Skip to content

feat(graph): phase 3 graph view — Slice 6 (drawer pivots + axe ratchet + docs) - #587

Merged
CybotTM merged 7 commits into
mainfrom
feat/phase-3-graph-slice-6
Apr 25, 2026
Merged

feat(graph): phase 3 graph view — Slice 6 (drawer pivots + axe ratchet + docs)#587
CybotTM merged 7 commits into
mainfrom
feat/phase-3-graph-slice-6

Conversation

@CybotTM

@CybotTM CybotTM commented Apr 25, 2026

Copy link
Copy Markdown
Member

Summary

Final slice of the Phase 3 relationship graph view. Adds the drawer entry point, the axe-core a11y ratchet, and the README conformance statement.

Plan: docs/superpowers/plans/2026-04-24-phase-3-graph-view.md Tasks 35-40. Slices 1-5 already on main (#581 / #582 / #584 / #585 / #586).

What ships

  • "View relationships" drawer pivot on user, group, and computer drawers (Tasks 35-36). Inserted as the second pivot after "Open full page", with a new iconGraph SVG (4 nodes connected as a square). Links to /graph?entity=<DN>.
  • internal/e2e/axe_graph_test.go (Task 37) — runs axe-core against /graph?entity=<seeded-DN>&depth=2, /users?view=graph, /groups?view=graph, /computers?view=graph. Uses the WCAG 2.2 AA ruleset (graph view's stated conformance level — the AAA login ratchet stays in place separately). Each subtest waits for svg#graph-canvas so axe sees the JS-mutated DOM.
  • README accessibility section updated (Task 39) — adds a sentence about the graph view's WCAG 2.2 AA conformance and the AAA-equivalent flat edge table fallback.

Deferred

  • Task 38 (tab-order snapshot): plan called for adding graph pages to a "tab-order snapshot suite" — but no such suite exists in the codebase. Building one from scratch for just three pages is a separate a11y-tooling effort. Deferred — file as a future enhancement.

Tests

  • All Slice 1-5 tests still pass.
  • New axe-core ratchet runs in CI under the e2e build tag.

Test plan

  • go build ./... — clean
  • go build -tags e2e ./internal/e2e/... — clean
  • go test ./... -count=1 — all packages pass
  • golangci-lint run ./... — 0 issues
  • CI verification on push (unit + integration + e2e)
  • Manual smoke (after merge): open a user drawer → click "View relationships" → confirm graph renders → use the List | Graph toggle to switch back

Phase 3 complete

This PR closes out the Phase 3 relationship graph view per spec docs/superpowers/specs/2026-04-24-phase-3-graph-view-design.md. With this merged:

  • BuildGraph(focusDN, depth) + BuildListGraph(users, computers) in-memory builders (Slice 1, Slice 5)
  • /api/graph.json?entity=…&depth=… JSON endpoint with ETag/304/RFC 7232 (Slice 2)
  • /graph HTML page with SSR SVG + edge table (Slice 3)
  • v2-graph.js interactive client: pan/zoom, keyboard nav, click-to-pivot, click-to-expand, depth slider auto-submit, ARIA live announce (Slice 4)
  • ?view=graph list-page mode for users/groups/computers with List | Graph segmented toggle (Slice 5)
  • "View relationships" drawer pivot + axe-core ratchet + README conformance (this PR)

CybotTM added 3 commits April 25, 2026 10:38
Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
Copilot AI review requested due to automatic review settings April 25, 2026 10:04
@github-actions

github-actions Bot commented Apr 25, 2026

Copy link
Copy Markdown
Contributor

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@github-actions github-actions Bot added documentation Improvements or additions to documentation tests frontend labels Apr 25, 2026
github-actions[bot]
github-actions Bot previously approved these changes Apr 25, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval for maintainer PR

All automated quality gates passed. See SECURITY_CONTROLS.md for compensating controls.

@codecov

codecov Bot commented Apr 25, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 69.26%. Comparing base (a90bf02) to head (85910cb).
⚠️ Report is 8 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #587   +/-   ##
=======================================
  Coverage   69.26%   69.26%           
=======================================
  Files          32       32           
  Lines        3254     3254           
=======================================
  Hits         2254     2254           
  Misses        844      844           
  Partials      156      156           
Flag Coverage Δ
e2e 58.99% <ø> (ø)
unittests 69.72% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a relationship graph view and integrates "View relationships" links into the user, group, and computer drawers. It also updates the documentation to reflect WCAG 2.2 Level AA compliance and adds a new E2E test suite using axe-core for accessibility verification. Feedback suggests renaming the test function to accurately reflect the AA compliance level and adjusting the graph icon's SVG properties to maintain visual consistency with existing project icons.

Comment thread internal/e2e/axe_graph_test.go Outdated
Comment thread internal/web/templates/icons.templ Outdated

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Completes the final slice of the Phase 3 relationship graph view by adding a “View relationships” entry point in entity drawers, introducing a dedicated axe-core E2E accessibility ratchet for graph pages, and documenting the graph view’s WCAG conformance in the README.

Changes:

  • Adds a “View relationships” drawer pivot for users, groups, and computers that links to /graph?entity=<DN>.
  • Introduces a new iconGraph SVG for the drawer pivot.
  • Adds an E2E axe-core test covering /graph and list-page ?view=graph routes, and updates README accessibility documentation accordingly.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
internal/web/templates/users_v2.templ Adds the “View relationships” drawer pivot for user drawers.
internal/web/templates/groups_v2.templ Adds the “View relationships” drawer pivot for group drawers.
internal/web/templates/computers_v2.templ Adds the “View relationships” drawer pivot for computer drawers.
internal/web/templates/icons.templ Adds the new iconGraph() glyph used by the drawer pivots.
internal/e2e/axe_graph_test.go Adds an axe-core E2E ratchet covering graph pages and graph list modes.
README.md Documents WCAG 2.2 AA conformance for the graph view and references the new ratchet.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread internal/e2e/axe_graph_test.go
Comment thread internal/web/templates/users_v2.templ Outdated
Comment thread internal/web/templates/users_v2.templ Outdated
Comment thread internal/web/templates/groups_v2.templ Outdated
Comment thread internal/web/templates/computers_v2.templ Outdated
Comment thread internal/e2e/axe_graph_test.go Outdated
Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
github-actions[bot]
github-actions Bot previously approved these changes Apr 25, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval for maintainer PR

All automated quality gates passed. See SECURITY_CONTROLS.md for compensating controls.

…e nested-interactive

Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
github-actions[bot]
github-actions Bot previously approved these changes Apr 25, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval for maintainer PR

All automated quality gates passed. See SECURITY_CONTROLS.md for compensating controls.

Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
github-actions[bot]
github-actions Bot previously approved these changes Apr 25, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval for maintainer PR

All automated quality gates passed. See SECURITY_CONTROLS.md for compensating controls.

- iconGraph: use 16-viewBox + 1.5 stroke (matches project icon spec)
- View relationships pivots: drop redundant aria-label that didn't
  match the visible text; rely on the visible "View relationships"
  span as the accessible name
- users_v2 pivot: use vm.User.DN() (consistent with rest of file),
  not vm.User.User.DN()
- TestAxeAAA_GraphPages -> TestAxeAA_GraphPages (matches the AA-only
  ruleset; AAA login ratchet stays separate in axe_test.go)

Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval for maintainer PR

All automated quality gates passed. See SECURITY_CONTROLS.md for compensating controls.

@CybotTM
CybotTM merged commit f3e3f79 into main Apr 25, 2026
25 checks passed
@CybotTM
CybotTM deleted the feat/phase-3-graph-slice-6 branch April 25, 2026 10:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation frontend tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants