diff --git a/progress.md b/progress.md index 8dc5a8c..13b1f16 100644 --- a/progress.md +++ b/progress.md @@ -14,7 +14,7 @@ A remote desktop environment with a Rust (Actix) backend and Angular 21 frontend ## Checklist -### Phase 1: Rust Backend ✅ (compiles) +### Phase 1: Rust Backend ✅ (builds & runs) - [x] `server/Cargo.toml` — Dependencies: actix-web 4, actix-ws 0.4, actix-cors, dashmap, parking_lot, serde, uuid, chrono - [x] `server/src/main.rs` — Actix HTTP server with CORS, compression, static file serving, SPA fallback - [x] `server/src/config.rs` — Env-based config (BUTTERFLY_HOST, BUTTERFLY_PORT, etc.) @@ -24,17 +24,22 @@ A remote desktop environment with a Rust (Actix) backend and Angular 21 frontend - [x] `server/src/ws/` — WebSocket handler: agent/viewer connect, display/audio frame relay, HUD forwarding, heartbeat timeout - [x] `server/src/stream/` — StreamStats tracker (frame count, byte relay, uptime) - [x] `server/static/index.html` — Placeholder loading page -- [x] Compiles with `cargo check` (warnings only for future-use types) +- [x] `cargo build` succeeds, `cargo check` clean (only dead_code warnings for future-use types) -### Phase 2: Angular 21 Frontend 🔲 (next) -- [ ] Project scaffold with Angular CLI -- [ ] Windows-like desktop shell (taskbar, start menu, window manager) -- [ ] Remote display component (WebSocket frame rendering) -- [ ] Audio playback component -- [ ] HUD overlay (mouse/keyboard forwarding) -- [ ] Built-in apps: File Explorer, Terminal, Settings, Text Editor, Browser +### Phase 2: Angular 21 Frontend ✅ (builds & serves) +- [x] Project scaffold with Angular CLI 21 +- [x] Windows-like desktop shell (taskbar, start menu, window manager) +- [x] Remote display component (WebSocket canvas frame rendering, FPS counter) +- [x] HUD overlay (mouse click/move/wheel, keyboard down/up forwarding) +- [x] Window Manager service (open, close, focus, minimize, maximize, drag, resize) +- [x] WebSocket service (typed message streams, heartbeat, auto-reconnect) +- [x] API service (health, sessions CRUD, HUD command forwarding) +- [x] Built-in apps: File Explorer, Terminal, Text Editor, Settings, Web Browser +- [x] Session picker dialog (create/connect to remote sessions) +- [x] Production build: 328KB total (85KB gzipped), output to `dist/browser/` +- [x] Dark theme with animated gradient desktop background -### Phase 3: VM Agent Executable 🔲 +### Phase 3: VM Agent Executable 🔲 (next) - [ ] Rust desktop agent that captures display and audio - [ ] Streams display frames (JPEG/PNG) and audio (Opus/PCM) via WebSocket - [ ] Receives HUD commands (mouse, keyboard, resize) @@ -48,17 +53,21 @@ A remote desktop environment with a Rust (Actix) backend and Angular 21 frontend - [ ] Performance optimization ## Recent Commits -- `bae17ae` server: fix pong bytes reference — backend compiles -- `2e55d5c` server: add .gitignore, fix compile errors -- `0c35db1` server: main.rs — Actix entry point -- `b2f4f7f` server: fix Cargo.toml dependency versions -- `94a992d` server: api/sessions.rs — CRUD endpoints -- `a0b834e` server: stream/ — StreamStats tracker -- `74591a4` server: ws/handler.rs — WebSocket handler -- `40bf516` server: api/health.rs -- `843c7bb` server: api/mod.rs -- `e00fbf4` server: ws/mod.rs -- `ff476f1` server: state.rs — AppState -- `fdde57c` server: config.rs -- `5c8f848` server: models.rs -- `bf8e9f7` server: Cargo.toml +- `dcfaceb` desktop: production build works (328KB, 85KB gzip) +- `f4b7e25` desktop: fix build errors (FormsModule, nativeWindow, provideHttpClient) +- `8a9429c` desktop: components/desktop — main shell +- `eea8197` desktop: components/apps/browser +- `6beb93b` desktop: components/apps/settings +- `0048eab` desktop: components/apps/file-explorer +- `283e53d` desktop: components/apps/text-editor +- `7496fbe` desktop: components/apps/terminal +- `6b4c641` desktop: components/remote-display +- `8ad129e` desktop: components/start-menu +- `490317b` desktop: components/taskbar +- `b5e23e1` desktop: components/window +- `9d8aaa5` desktop: services/window-manager.service +- `4041625` desktop: services/api.service +- `710560d` desktop: services/websocket.service +- `7991237` desktop: app root component +- `2b05373` desktop: scaffold Angular 21 project +- `bae17ae` server: fix pong bytes — backend compiles