Follow-up to #1402 (PR #1443). Two related refinements to list-changed handling.
Implemented in PR #1445.
1. Apply the Auto Refresh setting live (no reconnect)
Today InspectorClient.getServerSettings() returns the settings captured at client construction, so toggling Auto Refresh on List Changed Notifications in Server Settings only takes effect on the next (re)connect (consistent with headers/timeouts/OAuth; only roots applies live).
Acceptance criteria
2. List-changed indicator behavior (auto-refresh off)
Originally specified as diff-aware: fetch on */list_changed, compare to the current list, and light the indicator only when it actually differs (to avoid the everything server's identical re-sends lighting it falsely). This was implemented — but on testing, the maintainer found the diff-aware peek issues a tools/list on every settled burst even with auto-refresh off, which is unwanted: auto-refresh off should mean no automatic network. Reverted to a blind indicator — a (debounced) */list_changed lights the indicator with no fetch; the user pulls the new list via Refresh.
Acceptance criteria (final, post-revert)
Accepted trade-off: with no fetch-to-compare, the indicator lights even when the server re-sent an identical list (the everything-server case). That's the cost of zero automatic network when auto-refresh is off; the diff-aware alternative was tried and rejected.
Added beyond the original scope (PR #1445)
- Debounce + coalesce
*/list_changed bursts — the everything server emits a rapid burst; the managed-list base debounces (default 250ms) so a burst collapses into a single indicator light (or one fetch in auto-refresh mode), with an in-flight guard coalescing a post-debounce notification that lands during a slow auto-refresh.
- Consolidation — the four per-primitive managers were extracted onto a generic
ManagedListState<T, M> base (−245 lines), addressing the triplication flagged in review.
Follow-up to #1402 (PR #1443). Two related refinements to list-changed handling.
Implemented in PR #1445.
1. Apply the Auto Refresh setting live (no reconnect)
Today
InspectorClient.getServerSettings()returns the settings captured at client construction, so toggling Auto Refresh on List Changed Notifications in Server Settings only takes effect on the next (re)connect (consistent with headers/timeouts/OAuth; onlyrootsapplies live).Acceptance criteria
InspectorClientgainssetServerSettings(settings)(onInspectorClientProtocol+ the fake), updating the in-memory settings the state managers read at notification time.*/list_changedhonors the new value without a reconnect.getServerSettings(); a state manager honors the new value after a live update.2. List-changed indicator behavior (auto-refresh off)
Originally specified as diff-aware: fetch on
*/list_changed, compare to the current list, and light the indicator only when it actually differs (to avoid the everything server's identical re-sends lighting it falsely). This was implemented — but on testing, the maintainer found the diff-aware peek issues atools/liston every settled burst even with auto-refresh off, which is unwanted: auto-refresh off should mean no automatic network. Reverted to a blind indicator — a (debounced)*/list_changedlights the indicator with no fetch; the user pulls the new list via Refresh.Acceptance criteria (final, post-revert)
*/list_changedlights the indicator with no list call; the displayed list is untouched.Accepted trade-off: with no fetch-to-compare, the indicator lights even when the server re-sent an identical list (the everything-server case). That's the cost of zero automatic network when auto-refresh is off; the diff-aware alternative was tried and rejected.
Added beyond the original scope (PR #1445)
*/list_changedbursts — the everything server emits a rapid burst; the managed-list base debounces (default 250ms) so a burst collapses into a single indicator light (or one fetch in auto-refresh mode), with an in-flight guard coalescing a post-debounce notification that lands during a slow auto-refresh.ManagedListState<T, M>base (−245 lines), addressing the triplication flagged in review.