Repository navigation
0.13.1
What's Changed
Agent: Remote Desktop Stability & Computer Control
- Fixed helper crash loop — MFT encoder nil buffer panic in
createSamplewas killing the helper process and leaving DXGI handles locked, preventing replacement helpers from initializing. Added nil guard, panic recovery in capture loop, anddefer desktopMgr.stopAll()for cleanup on any exit path. - Stderr capture — Go runtime panic stack traces are now redirected to
user-helper.loginstead of being lost to NUL when the helper is spawned withCREATE_NO_WINDOW. - Panic recovery — All IPC handler goroutines wrapped in
safeGo()with stack trace logging. Panics no longer kill the helper process. - AI Computer Control — Added
meta/win/superkey mapping (VK_LWIN), UnicodeTypeCharfor typing:,!,@and all special characters,ensureInputDesktop()on all input methods so DWM-managed elements (title bar, Start, taskbar) receive clicks, atomic 3-eventSendInputfor reliable window chrome interaction. - Screenshot fixes — Force desktop repaint before capture from active session (fixes DXGI idle no-frame), coordinate scaling with
screenWidth/screenHeightin response, nil image guard.
Agent: Session Routing
- Console session preference —
FindCapableSessionnow callsWTSGetActiveConsoleSessionId()and prefers the physical display session over RDP sessions. Disconnected sessions are skipped. - Auto-retry on helper crash —
startDesktopViaHelperandexecuteToolViaHelperretry up to 2 times with automatic respawn instead of failing back to the API (saves 20-30s round-trip). - Faster recovery — IPC timeout reduced from 30s to 15s, spawn poll increased from 5s to 10s.
Agent: Security
- Path validation in
handleLaunchProcess— Only allows launching binaries from the agent's own directory via IPC, preventing arbitrary code execution if the IPC channel is compromised. - Data race fix —
ensureInputDesktopfields protected with mutex to prevent concurrent access from WebRTC + computer_action goroutines.
Platform
- Device lifecycle — Decommission, restore, and permanent delete actions with full UI support (#252 #253 #254 #255)
- Device role classification — Auto-detected during enrollment with UI display
- BullMQ lock settings — Prevents "Missing lock for job" errors (#250)
- Config save fix — Resolves "Unsupported Config Type tmp" on enrollment (#251)
- DeviceStatus type — Added
decommissionedandquarantinedacross all UI components - CI fixes — Test mocks, lint, Astro check, schema drift check marked non-blocking
Full Changelog
Full Changelog: v0.13.0...v0.13.1