# GuruConnect Feature Tracking

## Status Legend
- [ ] Not started
- [~] In progress
- [x] Complete

---

## Phase 1: Core MVP

### Infrastructure
- [x] WebSocket relay server (Axum)
- [x] Agent WebSocket client
- [x] Protobuf message protocol
- [x] Agent authentication (agent_id, api_key)
- [x] Session management (create, join, leave)
- [x] Systemd service deployment
- [x] NPM proxy (connect.azcomputerguru.com)

### Support Codes
- [x] Generate 6-digit codes
- [x] Code validation API
- [x] Code status tracking (pending, connected, completed, cancelled)
- [~] Link support codes to agent sessions
- [ ] Code expiration (auto-expire after X minutes)
- [ ] Support code in agent download URL

### Dashboard
- [x] Technician login page
- [x] Support tab with code generation
- [x] Access tab with connected agents
- [ ] Session detail panel with tabs
- [ ] Screenshot thumbnails
- [ ] Join/Connect button

### Agent (Windows)
- [x] DXGI screen capture
- [x] GDI fallback capture
- [x] WebSocket connection
- [x] Config persistence (agent_id)
- [ ] Support code parameter
- [ ] Hostname/machine info reporting
- [ ] Screenshot-only mode (for thumbnails)

---

## Phase 2: Remote Control

### Screen Viewing
- [ ] Web-based viewer (canvas)
- [ ] Raw frame decoding
- [ ] Dirty rectangle optimization
- [ ] Frame rate adaptation

### Input Control
- [x] Mouse event handling (agent)
- [x] Keyboard event handling (agent)
- [ ] Input relay through server
- [ ] Multi-monitor support

### Encoding
- [ ] VP9 software encoding
- [ ] H.264 hardware encoding (NVENC/QSV)
- [ ] Adaptive quality based on bandwidth

---

## Phase 3: Backstage Tools (like ScreenConnect)

### Device Information
- [ ] OS version, hostname, domain
- [ ] Logged-in user
- [ ] Public/private IP addresses
- [ ] MAC address
- [ ] CPU, RAM, disk info
- [ ] Uptime

### Toolbox APIs
- [ ] Process list (name, PID, memory)
- [ ] Installed software list
- [ ] Windows services list
- [ ] Event log viewer
- [ ] Registry browser

### Remote Commands
- [ ] Run shell commands
- [ ] PowerShell execution
- [ ] Command output streaming
- [ ] Command history per session

### Chat/Messaging
- [ ] Technician → Client messages
- [ ] Client → Technician messages
- [ ] Message history

### File Transfer
- [ ] Upload files to remote
- [ ] Download files from remote
- [ ] Progress tracking
- [ ] Folder browsing

---

## Phase 4: Session Management

### Timeline/History
- [ ] Connection events
- [ ] Session duration tracking
- [ ] Guest connection history
- [ ] Activity log

### Session Recording
- [ ] Record session video
- [ ] Playback interface
- [ ] Storage management

### Notes
- [ ] Per-session notes
- [ ] Session tagging

---

## Phase 5: Access Mode (Unattended)

### Persistent Agent
- [ ] Windows service installation
- [ ] Auto-start on boot
- [ ] Silent/background mode
- [ ] Automatic reconnection

### Machine Groups
- [ ] Company/client organization
- [ ] Site/location grouping
- [ ] Custom tags
- [ ] Filtering/search

### Installer Builder
- [ ] Customized agent builds
- [ ] Pre-configured company/site
- [ ] Silent install options
- [ ] MSI packaging

---

## Phase 6: Security & Authentication

### Technician Auth
- [ ] User accounts
- [ ] Password hashing
- [ ] JWT tokens
- [ ] Session management

### MFA
- [ ] TOTP (Google Authenticator)
- [ ] Email verification

### Audit Logging
- [ ] Login attempts
- [ ] Session access
- [ ] Command execution
- [ ] File transfers

### Permissions
- [ ] Role-based access
- [ ] Per-client permissions
- [ ] Feature restrictions

---

## Phase 7: Integrations

### PSA Integration
- [ ] HaloPSA
- [ ] Autotask
- [ ] ConnectWise

### GuruRMM Integration
- [ ] Dashboard embedding
- [ ] Single sign-on
- [ ] Asset linking

---

## Phase 8: Polish

### Branding
- [ ] White-label support
- [ ] Custom logos
- [ ] Custom colors

### Mobile Support
- [ ] Responsive viewer
- [ ] Touch input handling

### Annotations
- [ ] Draw on screen
- [ ] Pointer highlighting
- [ ] Screenshot annotations

---

## Current Sprint

### In Progress
1. Link support codes to agent sessions
2. Show connected status in dashboard

### Next Up
1. Support code in agent download/config
2. Device info reporting from agent
3. Screenshot thumbnails

---

## Notes

### ScreenConnect Feature Reference (from screenshots)
- Support session list with idle times and connection bars
- Detail panel with tabbed interface:
  - Join/Screen (thumbnail, Join button)
  - Info (device details)
  - Timeline (connection history)
  - Chat (messaging)
  - Commands (shell execution)
  - Notes
  - Toolbox (processes, software, events, services)
  - File transfer
  - Logs
  - Settings
