Skip to content

feat(tui): navigable device IPs + VLANs#29

Merged
lance0 merged 1 commit into
masterfrom
feat-nav-device-ips-vlans
Jun 21, 2026
Merged

feat(tui): navigable device IPs + VLANs#29
lance0 merged 1 commit into
masterfrom
feat-nav-device-ips-vlans

Conversation

@lance0

@lance0 lance0 commented Jun 21, 2026

Copy link
Copy Markdown
Owner

Second of four cross-object navigation slices.

Change

The device detail's IP-address (p) and VLAN (v) tabs are now navigable — Enter opens that IP/VLAN, b/Esc walks back — using the same DetailRow mechanism as the prefix/VRF views.

  • Interfaces, cables, and services stay plain text (not standalone object kinds).
  • IpRow gains an id, #[serde(skip_serializing)] so the nbox device JSON output (and its golden) is unchanged. VlanRow already carried an id.
  • load_device_detail attaches navigable rows to the p/v tabs from the id-bearing rows.

Contract safety

The IP id is skip-serialized, so the device JSON contract + golden are untouched. CLI/MCP device output unchanged.

Test

  • New device_ip_and_vlan_rows_are_navigable: asserts (IpAddress, id) / (Vlan, id) targets and row text. Updated the tests/support/fixtures.rs IpRow to set the new id.
  • Gate green: fmt, both clippy passes, cargo test --all-features (748 lib tests).

Make the device detail's IP-address (p) and VLAN (v) tabs navigable, so
Enter drills into that IP/VLAN and b/Esc walks back — the same DetailRow
mechanism as the prefix/VRF views. Interfaces, cables, and services stay
plain text (not standalone object kinds).

IpRow gains an id (skip-serialized, so the nbox device JSON contract is
unchanged); VlanRow already carried one. load_device_detail attaches
navigable rows to the p/v tabs from the id-bearing rows.

Second of four cross-object-navigation slices (vlan, site/rack to follow).
@lance0 lance0 merged commit 59eea1f into master Jun 21, 2026
4 checks passed
@lance0 lance0 deleted the feat-nav-device-ips-vlans branch June 21, 2026 14:28
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