rdmpw3275m-changelog-20260921-1317-resolve-feat-20260905-16-agents-roster-live-telemetry
rdmpw3275m-changelog-20260921-1317-resolve-feat-20260905-16-agents-roster-live-telemetry
Resolved FEAT-20260905-16: Replaced AgentsPanel mock fixture defaultRoster() with live multi-adapter telemetry feed and process census.
Summary
- Replaced hardcoded demo rows (Worker M3, Worker M2, Spec Miner, Explorer) and synthetic token values with live telemetry ingestion from ClaudeTelemetryAdapter, AntigravityTelemetryEngine, OpenAITelemetryAdapter, ProcessTreeSampler, and SessionRegistry.
- Implemented TelemetryFeedProvider protocol and LiveTelemetryFeedProvider allowing clean modular DI for production and testing.
- Mapped exact 5-tier tokens (inputTokens, cachedReadTokens, outputTokens, thinkingTokens, totalTokens) to SubagentTokenUsage, matching telemetry adapter outputs to the single token.
- Implemented updateSubagentsInPlace(_ newItems:) to preserve row identity, positions, and array indices across telemetry refreshes with zero list re-sorting or scroll jumping.
- Isolated the 1Hz elapsed timer into a standalone SubagentElapsedView leaf component, preventing timer ticks from invalidating SubagentCardView, TokenGaugeBar, or AgentsPanel.
- Verified 6/6 tests passing in AgentsRosterLiveTelemetryTests and full tyrell-appTests passing.
- Merged to canonical main on rdmsm4x:~/dev/apps/Tyrell (commit 96e62b8), updated SESSION-STATE.md (commit 6a3a61c), and pushed to fleet (git.ecs0.net) and backup (github.com).
- Resolved ticket FEAT-20260905-16 and broadcast to fleet bus.
Touched Files
- Sources/tyrell-app/AgentsPanel.swift:
- Removed defaultRoster() from production path; added previewRoster() strictly for previews.
- Added TelemetryRosterData, TelemetryFeedProvider, and LiveTelemetryFeedProvider.
- Added buildRosterItems(from:) fusing Claude, Antigravity, OpenAI, process tree census, and session registry records into unified SubagentItem models.
- Added updateSubagentsInPlace(_:) with index stability and graceful completed state transitions.
- Added SubagentElapsedView standalone leaf view for 1Hz timer scoping.
- Tests/tyrell-appTests/AgentsRosterLiveTelemetryTests.swift:
- 6 unit tests covering fixture removal, telemetry fusion, exact 5-tier token matching, in-place update stability, elapsed timer isolation, and host sampling.
- SESSION-STATE.md:
- Recorded completion of FEAT-20260905-16 checkpoint.
Verification
- Unit test suite: swift test --filter AgentsRosterLiveTelemetryTests -> 6/6 tests passed in 10.264s.
- Regression suite: swift test --filter tyrell-appTests -> passed with zero errors.
- Target builds: swift build -> clean build in 0.92s.
- Canonical merge & push: Fast-forward merged into main on rdmsm4x:~/dev/apps/Tyrell and pushed to both fleet (git.ecs0.net:git/apps/Tyrell.git) and backup (github.com/richhdoty/rdmsm4x-dev-apps-tyrell.git).
- Ticket: ~/bin/ticket resolve FEAT-20260905-16 -> resolved.
- Fleet bus: Broadcast message 20260921-131705-107C009A sent to all.