refactor(dashboard): extract SW4RM domain from tabs.js into swarm.js
tabs.js shrinks from 1651 to 457 lines. swarm.js is a new 1217-line module that owns the containers/selection-bar/peer-hives domain: - Container-state apply handlers (applyContainerStateChanged/Removed) - Rebuild-queue sync + apply (syncRebuildQueueFromSnapshot, applyRebuildQueueChanged) - Transient-state sync + apply (syncTransientsFromSnapshot, applyTransientSet/Cleared) - renderContainersFromState (re-render from cached snapshot) - Per-agent context menu (buildAgentMenu, agentMenuPost, closeAllAgentMenus) - Topology tree builder (buildAgentTree, treePrefixDom) - Container row (containerRowFingerprint, buildContainerLi, renderContainers) - Selection bar (renderSelectionBar, addMoveActions, validReparentCandidates, addBulkButton) - Peer hives section (renderPeerHives) - Status-age ticker (30s setInterval for .status-age[data-set-at] spans) - CTX_WARN/CTX_CAUTION constants - Selection event listeners (Esc to clear, click on selection-clear) - Agent-menu event listeners (click outside to close, Esc to close) tabs.js (coordinator) retains: - notifyDeltas + seenApprovals/seenQuestions/seededNotify - bindAsyncForms - Cross-domain ticker (approval request-age + reminder/schedule due-at) - refreshState, pollTimer, operatorIsTyping, snapshotOpenDetails - MUTATION_HANDLERS dispatch + bindDashboardStream - activateTab, createTabStrip, initCall, refreshTabCounts, setTabCount Behaviour-preserving code-move. Build verified.
This commit is contained in:
parent
6267bf56d0
commit
9b607e2857
2 changed files with 1234 additions and 1211 deletions
1217
frontend/packages/dashboard/src/swarm.js
Normal file
1217
frontend/packages/dashboard/src/swarm.js
Normal file
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue