feat(fleet): fleet ps surfaces unmanaged socket sessions #586
Reference in New Issue
Block a user
Delete Branch "feat/fleet-ps-show-unmanaged"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes the isolation!=invisibility gap: fleet ps now enumerates ALL sessions on the fleet socket, marking non-roster ones UNMANAGED (managed:false, source:socket in --json), holder excluded, resilient to list-sessions failure. Roster rows unchanged. 96 fleet tests.
After building roster-agent rows (unchanged), enumerate live sessions on the mosaic-factory socket via `tmux list-sessions -F '#{session_name}'`. Sessions not in the roster and not the holder session (_holder) are emitted as additional UNMANAGED rows with runtime=unknown, managed=false, source="socket". All existing roster rows gain managed=true/source="roster". Roster rows always appear first; unmanaged rows follow. - Adds buildTmuxListSessionsCommand + parseTmuxListSessions helpers - driftFlag is always false for unmanaged rows (no roster runtime to compare) - Heartbeat, pane, and systemd info populated for unmanaged rows the same way as roster rows; tenant_id + host always present - Resilient: if list-sessions fails, only roster rows are shown, no crash - UNMANAGED flag appears in table output; managed/source fields in --json - 8 new tests cover: command construction, session parsing, unmanaged row inclusion, _holder exclusion, table flag, socket failure resilience Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RMoEx7hfdFGjUiCHuN1RRi