Repository navigation
net (11/12): Unify controller reads and expire viewer diagnostics - #788
Merged
Patrick W. Healy (phealy) merged 2 commits intoSep 23, 2026
Conversation
This was referenced Sep 16, 2026
Patrick W. Healy (phealy)
force-pushed
the
phealy/lightweight-status-thin-cluster
branch
from
September 22, 2026 17:09
463927a to
fe858b8
Compare
Patrick W. Healy (phealy)
force-pushed
the
phealy/lightweight-status-thin-cluster
branch
from
September 22, 2026 17:22
fe858b8 to
a1c10dd
Compare
Contributor
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Unresolved compatibility, freshness, validation, and lifecycle issues remain.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 1
Open (1)
What changed in this PR
Unifies controller status reads around summary caching and a shared expiring detail lifecycle.
Changes:
- Adds summary-only cluster pulls and overview retention.
- Routes legacy and WebSocket detail requests through the shared request manager.
- Adds lifecycle, expiry, cancellation, and retention coverage.
| File | Description |
|---|---|
cmd/unbounded-net-controller/ws_summary_test.go |
Updates WebSocket subscription tests. |
cmd/unbounded-net-controller/websocket.go |
Removes automatic detail broadcasts and updates client lifecycle handling. |
cmd/unbounded-net-controller/websocket_details.go |
Adds TTL-aware detail watching; lifecycle updates and queued expiry handling need changes (moderate). |
cmd/unbounded-net-controller/websocket_details_test.go |
Tests detail expiry and observer cleanup. |
cmd/unbounded-net-controller/server.go |
Enables thin storage and summary responses. |
cmd/unbounded-net-controller/server_routes_test.go |
Updates legacy route tests. |
cmd/unbounded-net-controller/node_status.go |
Adds thin-cache lifecycle and generic fetching. |
cmd/unbounded-net-controller/node_overview.go |
Fetches and validates summaries; omitted diagnostic fields need presence validation (moderate). |
cmd/unbounded-net-controller/node_legacy.go |
Binds detail lifecycle and startup safeguards. |
cmd/unbounded-net-controller/node_legacy_test.go |
Tests cache lifecycle behavior. |
cmd/unbounded-net-controller/detail_wait.go |
Adds metadata-based waiting for legacy reads. |
cmd/unbounded-net-controller/detail_wait_test.go |
Tests shared legacy requests. |
cmd/unbounded-net-controller/detail_requests.go |
Adds update notifications and expiry handling. |
cmd/unbounded-net-controller/detail_legacy.go |
Invalidates requests on node replacement. |
cmd/unbounded-net-controller/detail_legacy_test.go |
Tests replacement cancellation. |
cmd/unbounded-net-controller/detail_api.go |
Routes legacy reads through the detail manager; cached pushes need refreshed receipt timestamps (moderate). |
cmd/unbounded-net-controller/cluster_status.go |
Uses summary-only background pulls. |
cmd/unbounded-net-controller/cluster_status_cache.go |
Retains overview metadata; normalization currently removes details needed by legacy clients (critical). |
cmd/unbounded-net-controller/cluster_retention_test.go |
Tests retention and summary pulls. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Patrick W. Healy (phealy)
force-pushed
the
phealy/lightweight-status-thin-cluster
branch
from
September 22, 2026 17:32
a1c10dd to
4c60435
Compare
Patrick W. Healy (phealy)
force-pushed
the
phealy/lightweight-status-thin-cluster
branch
from
September 22, 2026 17:58
4c60435 to
9846f53
Compare
Patrick W. Healy (phealy)
force-pushed
the
phealy/lightweight-status-thin-cluster
branch
from
September 22, 2026 18:03
9846f53 to
d787464
Compare
Patrick W. Healy (phealy)
marked this pull request as ready for review
September 22, 2026 18:06
Patrick W. Healy (phealy)
force-pushed
the
phealy/lightweight-status-thin-cluster
branch
from
September 22, 2026 19:06
d787464 to
03c0bce
Compare
Cameron Childress (cchildress)
force-pushed
the
phealy/lightweight-status-thin-cluster
branch
from
September 22, 2026 19:39
03c0bce to
b91b317
Compare
Patrick W. Healy (phealy)
force-pushed
the
phealy/lightweight-status-thin-cluster
branch
3 times, most recently
from
September 23, 2026 16:03
d5380ea to
3f6ce77
Compare
Cameron Childress (cchildress)
previously approved these changes
Sep 23, 2026
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d2243398-6c36-4c3d-969e-7ed7bfb5b459
Register every WebSocket client in summary mode and ignore the retired unsubscribe command so thin cluster state is never exposed as a misleading full-detail broadcast. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d2243398-6c36-4c3d-969e-7ed7bfb5b459
Patrick W. Healy (phealy)
force-pushed
the
phealy/lightweight-status-thin-cluster
branch
from
September 23, 2026 17:11
3f6ce77 to
b675745
Compare
Cameron Childress (cchildress)
approved these changes
Sep 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Consolidated lightweight-status stack: 11/12
Based on #767. This existing draft PR is reused for the user-approved consolidation, replacing unnecessarily fragmented PRs rather than creating another set.
Scope
Cluster overview retention and summary-only pulls, unified legacy per-node reads, expiring viewer detail writes and lifecycle observers. Obsolete per-node broadcast subscription calls are removed with their owner; routine legacy full broadcasts retire in this layer so clients receive summary snapshots and deltas only.
Original work represented: #788, #789, #791. Cross-cutting originals may also be represented by adjacent functional layers.
Size
+1,202 / -283 = 1,485 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
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