Compare commits

..

1 Commits

Author SHA1 Message Date
Jarvis
363baf0c81 feat(fleet): fleet ps surfaces unmanaged socket sessions
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
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
2026-06-21 17:19:47 -05:00

View File

@@ -1,6 +1,6 @@
{ {
"name": "@mosaicstack/mosaic", "name": "@mosaicstack/mosaic",
"version": "0.0.37", "version": "0.0.36",
"repository": { "repository": {
"type": "git", "type": "git",
"url": "https://git.mosaicstack.dev/mosaicstack/stack.git", "url": "https://git.mosaicstack.dev/mosaicstack/stack.git",