Skip to content

feat(ui): the stack page shows its port world as a graph (ADR-0082) - #397

Merged
7schmiede merged 1 commit into
mainfrom
feat/port-graph
Oct 30, 2026
Merged

7schmiede merged 1 commit into
mainfrom
feat/port-graph

Conversation

@7schmiede

Copy link
Copy Markdown
Member

The second of three pull requests for review card C (ADR-0082; the card and its approval of 2026-10-30 are in #396). This one builds point 2.

  • Ports card on the stack page:
    • one band per lane, main first: the ports leading to the lane (the main slot's fixed ports sit with the lane serving them), the lane, and its services and containers with their ports
    • a lane on a node with the ports forwarded from that node
    • a port another stack uses too is red, and a list under the graph names that stack
    • instance ports hide behind a toggle; lanes without ports fold into one line; not listening is dashed; hover or focus highlights a port's path; a lane opens on click
    • below 560 px card width it becomes a grouped list (a container query)
  • Data: the daemon's /v1/ports and the hub's /hub/ports, loaded on open, when the lanes or the main slot change, and every 10 s while the page is shown. A stopped stack shows its declared ports.
  • Mock: stable instance ports; review-cart runs on build-server.
  • Docs: ADR-0082's Built section, the changelog.

Decided by the agent alone:

  • Fixed ports sit in the band of the lane they lead to, so the connectors never cross.
  • Node forwards sit on the left, captioned with the node.
  • A red list repeats the overlaps, so they show without hovering.
  • The instance toggle is not persisted.
  • A failed read keeps the last data.

Tests: typecheck, npm test (126; new: the graph model and the overlap rendering), npm run build. The owner looked at the page in the mock (screenshot in the conversation); the connectors are not drawn in happy-dom.

🤖 Generated with Claude Code

The second step of review card C. A Ports card on the stack page: per
lane, main first, the fixed ports that lead to it (the main slot's go to
the lane serving them), the lane, and its services and containers with
their ports; a lane on a node with the ports forwarded from there. A port
another stack uses too is red and names it. Instance ports hide behind a
toggle, lanes without ports fold into one line, a port nothing listens on
is dashed, hovering a port shows its path. Below 560 px the card is a
grouped list. Fed by the daemon's /v1/ports and the hub's /hub/ports.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@7schmiede
7schmiede merged commit 50bd293 into main Oct 30, 2026
9 checks passed
@7schmiede
7schmiede deleted the feat/port-graph branch October 30, 2026 23:33
@7schmiede 7schmiede mentioned this pull request Oct 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant