- Commands now run in goroutines, message loop never blocked
- WebSocket writes protected with mutex for concurrency safety
- Max 5 concurrent commands with semaphore limiting
- Long-running commands (npm install, large downloads) no longer freeze agent
- agent.ps1: ID format changed from hostname-random to pc-XXXX (pure digits)
- agent.ps1: Device ID display reformatted for easier copy
- agent.exe: rebuilt with dev-XXXX numeric ID generation
- Split auth into agent-token (public) and controller-token (secret)
- Agent token in scripts can't be used to control devices
- Add agent.html: step-by-step guide for customers (Win/Mac/Linux)
- Update agent binaries with new token defaults