Link support codes to agent sessions
- Server: Accept support_code param in WebSocket connection - Server: Link code to session when agent connects, mark as connected - Server: Mark code as completed when agent disconnects - Agent: Accept support code from command line argument - Agent: Send hostname and support_code in WebSocket params - Portal: Trigger agent download with code in filename - Portal: Show code reminder in download instructions - Dashboard: Add machines list fetching (Access tab) - Add TODO.md for feature tracking 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -29,15 +29,35 @@ pub struct WebSocketTransport {
|
||||
|
||||
impl WebSocketTransport {
|
||||
/// Connect to the server
|
||||
pub async fn connect(url: &str, agent_id: &str, api_key: &str) -> Result<Self> {
|
||||
// Append agent_id and API key as query parameters
|
||||
pub async fn connect(
|
||||
url: &str,
|
||||
agent_id: &str,
|
||||
api_key: &str,
|
||||
hostname: Option<&str>,
|
||||
support_code: Option<&str>,
|
||||
) -> Result<Self> {
|
||||
// Build query parameters
|
||||
let mut params = format!("agent_id={}&api_key={}", agent_id, api_key);
|
||||
|
||||
if let Some(hostname) = hostname {
|
||||
params.push_str(&format!("&hostname={}", urlencoding::encode(hostname)));
|
||||
}
|
||||
|
||||
if let Some(code) = support_code {
|
||||
params.push_str(&format!("&support_code={}", code));
|
||||
}
|
||||
|
||||
// Append parameters to URL
|
||||
let url_with_params = if url.contains('?') {
|
||||
format!("{}&agent_id={}&api_key={}", url, agent_id, api_key)
|
||||
format!("{}&{}", url, params)
|
||||
} else {
|
||||
format!("{}?agent_id={}&api_key={}", url, agent_id, api_key)
|
||||
format!("{}?{}", url, params)
|
||||
};
|
||||
|
||||
tracing::info!("Connecting to {} as agent {}", url, agent_id);
|
||||
if let Some(code) = support_code {
|
||||
tracing::info!("Using support code: {}", code);
|
||||
}
|
||||
|
||||
let (ws_stream, response) = connect_async(&url_with_params)
|
||||
.await
|
||||
|
||||
Reference in New Issue
Block a user