Skip to content

net (10/12): Migrate CLI summaries, diagnostics and current node info - #767

Merged
Patrick W. Healy (phealy) merged 2 commits into
phealy/lightweight-status-dashboard-controlsfrom
phealy/lightweight-status-cli-transport
Sep 23, 2026
Merged

Patrick W. Healy (phealy) merged 2 commits into
phealy/lightweight-status-dashboard-controlsfrom
phealy/lightweight-status-cli-transport

Conversation

@phealy

@phealy Patrick W. Healy (phealy) commented Sep 16, 2026 •

Copy link
Copy Markdown
Contributor

Consolidated lightweight-status stack: 10/12

Based on #766. This existing draft PR is reused for the user-approved consolidation, replacing unnecessarily fragmented PRs rather than creating another set.

Scope

Complete CLI summary list/watch, explicit named-node show/refresh, authenticated aggregated diagnostic transport, polling, correlation, and expiry. Folds code/tests from independent fixes 1643e7d49723173eedb84b89eea997a248ecb7d3 and 55c62ff8d60d9cdb01188524d59f1da767d39501: controller status-json preserves raw summary fields/unknown metadata and projects legacy nodes without diagnostic arrays; node show INFO uses current overview health/metadata without changing raw diagnostic content or TTL. Both fixes' documentation belongs to layer 12. Includes final decoder allocation fix 31878a7c5b08c151a26e119ec399467a7ed916c7, which prevents summary metadata from retaining the full legacy diagnostic object.

Original work represented: #767, #768, #769, #785, #795. Cross-cutting originals may also be represented by adjacent functional layers.

Size

+1,790 / -172 = 1,962 non-generated changed lines, measured against the immediate parent. Generated changes: 0 lines, excluded from the approved 2,000-line ceiling. About 1,000 is a guideline, not a requirement to split coherent functionality.

Validation

  • Scoped make fmt (tmp/layer10-fmt.log, tmp/layer10-cli-fix-fmt.log, tmp/layer10-info-fix-fmt.log)
  • go test ./cmd/kubectl-unbounded/app/net (tmp/layer10-net-tests.log)
  • go test -race ./cmd/kubectl-unbounded/app/net after each independent fix integration (tmp/layer10-cli-fix-race.log, tmp/layer10-info-fix-race.log)
  • go build -o bin/kubectl-unbounded ./cmd/kubectl-unbounded
  • Final decoder fix scoped make fmt and CLI race tests (tmp/layer10-allocation-fix-fmt.log, tmp/layer10-allocation-fix-race.log)

The final stack preserves the validated implementation and all three CLI corrections exactly; its only additional tracked difference is the requested AGENTS.md approval/size policy. No PR is merged into main.

Approved 12-PR draft stack

Base: #745. Each PR targets its preceding layer.

#746 -> #812 -> #760 -> #762 -> #755 -> #757 -> #774 -> #764 -> #766 -> #767 -> #788 -> #748

Validation caveat: broader CLI install tests require rendered operator manifests absent from the isolated worktree. The changed net CLI package tests/race suite and complete plugin build pass.

This was referenced Sep 16, 2026

Copilot AI 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.

Copilot review overview

🟡 Changes recommended

Unresolved critical transport/watch failures and moderate summary rendering, delta, and retry issues remain.

Get a fresh assessment by requesting another Copilot review.

Review effort: Lite
Findings: 2 High severity · 2 Medium severity

Open (4)
What changed in this PR

Migrates the net CLI to lightweight summaries for list/watch and adds authenticated named-node diagnostic retrieval with legacy compatibility.

Changes:

  • Adds summary decoding, polling, delta merging, and legacy projection.
  • Adds detail polling, expiry handling, and aggregated transport.
  • Updates status JSON compatibility and expands CLI/controller tests.
File Review summary
cmd/​kubectl-unbounded/​app/​net/​watch.go Summary watch and delta processing. Critical (1 vote): initial subscriptions can remain blank without a full summary. Moderate: preserve cleared delta fields (2 votes), copy legacy sequence numbers (3 votes), and keep transient polling/retry failures non-fatal (1 vote each, three findings).
cmd/​kubectl-unbounded/​app/​net/​summary_types.go Summary metadata models and compatibility adapters; no final comments.
cmd/​kubectl-unbounded/​app/​net/​summary_poll_test.go Summary compatibility and polling tests; no final comments.
cmd/​kubectl-unbounded/​app/​net/​node.go Summary list/show integration. Moderate: normalize summary tones for list/watch (1 vote), preserve network fields (1 vote), and align legacy projection status semantics (1 vote).
cmd/​kubectl-unbounded/​app/​net/​node_render.go Summary-based node rendering. Moderate: normalize controller tones before colorization (1 vote).
cmd/​kubectl-unbounded/​app/​net/​node_detail_command_test.go Named-node command coverage; no final comments.
cmd/​kubectl-unbounded/​app/​net/​detail_poll_test.go Diagnostic polling and expiry tests; no final comments.
cmd/​kubectl-unbounded/​app/​net/​detail_client.go Diagnostic transport. Critical: non-2xx aggregated responses can suppress the port-forward fallback; distinguish unavailable routes from controller failures (2 votes).
cmd/​kubectl-unbounded/​app/​net/​detail_client_test.go Aggregated transport tests; no final comments.
cmd/​kubectl-unbounded/​app/​net/​controller.go Summary-preserving status JSON export; no final comments.
cmd/​kubectl-unbounded/​app/​net/​controller_test.go Controller output compatibility tests; no final comments.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread cmd/kubectl-unbounded/app/net/detail_client.go
Comment thread cmd/kubectl-unbounded/app/net/watch.go
Comment thread cmd/kubectl-unbounded/app/net/watch.go
Comment thread cmd/kubectl-unbounded/app/net/watch.go
@phealy
Patrick W. Healy (phealy) force-pushed the phealy/lightweight-status-cli-transport branch from 6926278 to b2cbe28 Compare September 22, 2026 17:32
@phealy
Patrick W. Healy (phealy) force-pushed the phealy/lightweight-status-cli-transport branch 2 times, most recently from 829cd66 to f4c6230 Compare September 22, 2026 18:03
@phealy
Patrick W. Healy (phealy) marked this pull request as ready for review September 22, 2026 18:06
@phealy
Patrick W. Healy (phealy) requested a review from a team September 22, 2026 18:06
@phealy
Patrick W. Healy (phealy) force-pushed the phealy/lightweight-status-cli-transport branch from f4c6230 to a6fc242 Compare September 22, 2026 19:06
@cchildress
Cameron Childress (cchildress) force-pushed the phealy/lightweight-status-cli-transport branch from a6fc242 to 44ed520 Compare September 22, 2026 19:39
@phealy
Patrick W. Healy (phealy) force-pushed the phealy/lightweight-status-cli-transport branch 3 times, most recently from 8a81b28 to 03830f5 Compare September 23, 2026 16:03
…stics

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d2243398-6c36-4c3d-969e-7ed7bfb5b459
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: d2243398-6c36-4c3d-969e-7ed7bfb5b459
@phealy
Patrick W. Healy (phealy) added this pull request to the merge queue Sep 23, 2026
Merged via the queue into main with commit c51ff9a Sep 23, 2026
31 checks passed
@phealy
Patrick W. Healy (phealy) deleted the phealy/lightweight-status-cli-transport branch September 23, 2026 17:34
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.

3 participants