Implement idle/active mode for scalable agent connections
- Add StartStream/StopStream/AgentStatus messages to protobuf - Agent now starts in idle mode (heartbeat only, no capture) - Agent enters streaming mode when viewer connects (StartStream) - Agent returns to idle when all viewers disconnect (StopStream) - Server tracks viewer IDs and sends start/stop commands - Heartbeat mechanism with 90 second timeout detection - Session API now includes streaming status and agent info This allows 2000+ agents to connect with minimal bandwidth. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -257,6 +257,27 @@ message Disconnect {
|
||||
string reason = 1;
|
||||
}
|
||||
|
||||
// Server commands agent to start streaming video
|
||||
message StartStream {
|
||||
string viewer_id = 1; // ID of viewer requesting stream
|
||||
int32 display_id = 2; // Which display to stream (0 = primary)
|
||||
}
|
||||
|
||||
// Server commands agent to stop streaming
|
||||
message StopStream {
|
||||
string viewer_id = 1; // Which viewer disconnected
|
||||
}
|
||||
|
||||
// Agent reports its status periodically when idle
|
||||
message AgentStatus {
|
||||
string hostname = 1;
|
||||
string os_version = 2;
|
||||
bool is_elevated = 3;
|
||||
int64 uptime_secs = 4;
|
||||
int32 display_count = 5;
|
||||
bool is_streaming = 6;
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// Top-Level Message Wrapper
|
||||
// ============================================================================
|
||||
@@ -293,6 +314,9 @@ message Message {
|
||||
Heartbeat heartbeat = 50;
|
||||
HeartbeatAck heartbeat_ack = 51;
|
||||
Disconnect disconnect = 52;
|
||||
StartStream start_stream = 53;
|
||||
StopStream stop_stream = 54;
|
||||
AgentStatus agent_status = 55;
|
||||
|
||||
// Chat
|
||||
ChatMessage chat_message = 60;
|
||||
|
||||
Reference in New Issue
Block a user