Add disconnect/uninstall for persistent sessions
- Server: Add DELETE /api/sessions/:id endpoint to disconnect agents - Server: SessionManager.disconnect_session() sends Disconnect message - Agent: Handle ADMIN_DISCONNECT to trigger uninstall - Agent: Add startup::uninstall() to remove from startup and schedule exe deletion - Dashboard: Add Disconnect button in Access tab machine details - Dashboard: Add Chat button for persistent sessions 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -340,10 +340,14 @@ impl SessionManager {
|
||||
|
||||
Some(message::Payload::Disconnect(disc)) => {
|
||||
tracing::info!("Disconnect requested: {}", disc.reason);
|
||||
// Check if this is a cancellation
|
||||
// Check if this is a cancellation (support session)
|
||||
if disc.reason.contains("cancelled") {
|
||||
return Err(anyhow::anyhow!("SESSION_CANCELLED: {}", disc.reason));
|
||||
}
|
||||
// Check if this is an admin disconnect (persistent session)
|
||||
if disc.reason.contains("administrator") || disc.reason.contains("Disconnected") {
|
||||
return Err(anyhow::anyhow!("ADMIN_DISCONNECT: {}", disc.reason));
|
||||
}
|
||||
return Err(anyhow::anyhow!("Disconnect: {}", disc.reason));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user