Extend tmux list-panes format to emit pane, window, and session activity timestamps while preserving the first three fields.
Derive idleSeconds from the first populated finite positive source, ordered pane_activity -> window_activity -> session_activity.
Clamp future activity epochs to 0 and keep idleSeconds null only when all sources are absent.
Why
On tmux 3.4, #{pane_activity} is empty in the mosaic-fleet socket while #{window_activity} is populated. Feeding window_activity restores the existing classifyReadiness idle/stuck path without changing classifier thresholds or rendering.
Tests
npx turbo build --filter=@mosaicstack/mosaic^...
pnpm typecheck
pnpm lint
pnpm format:check
pnpm --filter @mosaicstack/mosaic exec vitest run src/commands/fleet.spec.ts (176 tests)
## Summary
- Extend tmux list-panes format to emit pane, window, and session activity timestamps while preserving the first three fields.
- Derive idleSeconds from the first populated finite positive source, ordered pane_activity -> window_activity -> session_activity.
- Clamp future activity epochs to 0 and keep idleSeconds null only when all sources are absent.
## Why
On tmux 3.4, #{pane_activity} is empty in the mosaic-fleet socket while #{window_activity} is populated. Feeding window_activity restores the existing classifyReadiness idle/stuck path without changing classifier thresholds or rendering.
## Tests
- npx turbo build --filter=@mosaicstack/mosaic^...
- pnpm typecheck
- pnpm lint
- pnpm format:check
- pnpm --filter @mosaicstack/mosaic exec vitest run src/commands/fleet.spec.ts (176 tests)
## Review
- ~/.config/mosaic/tools/codex/codex-code-review.sh --uncommitted: approve, 0 findings
No self-merge: orchestrator/reviewer route.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Why
On tmux 3.4, #{pane_activity} is empty in the mosaic-fleet socket while #{window_activity} is populated. Feeding window_activity restores the existing classifyReadiness idle/stuck path without changing classifier thresholds or rendering.
Tests
Review
No self-merge: orchestrator/reviewer route.