Commit Graph

33 Commits

Author SHA1 Message Date
Butterfly Dev
2da0c62f8f docs: add progress.md with architecture diagram and phase checklist 2026-04-07 03:22:37 +00:00
Butterfly Dev
bae17ae444 server: fix pong bytes reference — backend now compiles cleanly (only dead_code warnings for future-use types) 2026-04-07 03:21:47 +00:00
Butterfly Dev
2e55d5c832 server: add .gitignore, fix compile errors — static paths, CORS !Clone, ws handler, route vs service, Debug derives, unused imports, remove target/ 2026-04-07 03:19:52 +00:00
Butterfly Dev
fb5027b667 server: fix all compile errors — main.rs static paths, CORS !Clone, ws handler API, route vs service, Debug derives, unused imports 2026-04-07 03:17:14 +00:00
Butterfly Dev
b2f4f7ffa6 server: fix Cargo.toml dependency versions — actix-ws 0.4, remove rustls/multipart features 2026-04-07 03:14:04 +00:00
Butterfly Dev
bb9b7582b5 server: fix unused imports in ws/handler.rs and api/sessions.rs 2026-04-07 03:13:27 +00:00
Butterfly Dev
0c35db1746 server: main.rs — Actix-web entry point with CORS, compression, static serving, SPA fallback; placeholder static/index.html 2026-04-07 03:12:35 +00:00
Butterfly Dev
a0b834ed15 server: stream/ — StreamStats tracker for display/audio frame counting, byte relay stats 2026-04-07 03:11:44 +00:00
Butterfly Dev
74591a45ab server: ws/handler.rs — full WebSocket handler: agent/viewer connect, display/audio frame relay, HUD forwarding, heartbeat timeout 2026-04-07 03:10:46 +00:00
Butterfly Dev
e00fbf43ff server: ws/mod.rs — WebSocket route /ws/{session_id} 2026-04-07 03:09:51 +00:00
Butterfly Dev
94a992d72a server: api/sessions.rs — CRUD endpoints + HUD command forwarding 2026-04-07 03:09:32 +00:00
Butterfly Dev
40bf516264 server: api/health.rs — GET /api/health returns uptime, session/agent counts 2026-04-07 03:09:08 +00:00
Butterfly Dev
843c7bbbf2 server: api/mod.rs — route scope /api with health + session endpoints 2026-04-07 03:08:57 +00:00
Butterfly Dev
ff476f12dc server: state.rs — AppState with DashMap sessions/agents, FrameBuffer ring for late-joiners 2026-04-07 03:08:36 +00:00
Butterfly Dev
fdde57c7e2 server: config.rs — env-based configuration with BUTTERFLY_ prefix defaults 2026-04-07 03:08:03 +00:00
Butterfly Dev
5c8f84848f server: models.rs — Session, Agent, WsMessage types, API response helpers 2026-04-07 03:07:22 +00:00
Butterfly Dev
bf8e9f79f8 server: Cargo.toml — full dependency list for Actix 4, WebSocket, CORS, DashMap, etc. 2026-04-07 03:06:45 +00:00
Butterfly Dev
578a6bde90 init: scaffold Rust server with cargo init 2026-04-07 03:06:12 +00:00
Butterfly Dev
bbfeabc6da Clean slate - prepare for Butterfly project 2026-04-07 03:05:59 +00:00
28bb0ad1e2 rm old 2026-04-06 16:06:22 -07:00
Z User
01b72bc3c1 Clean slate — content moved to dedicated repos 2026-04-06 22:32:13 +00:00
Z User
7b758ebe01 Add standalone RustDesk web client (reverse-engineered)
Complete browser-based remote desktop client built from protocol analysis:
- Protobuf message definitions (75+ message types, 10 enums)
- NaCl encryption (Ed25519 + Curve25519 ECDH + XSalsa20-Poly1305)
- WebSocket signaling (hbbs) + relay (hbbr) connection lifecycle
- VP8/VP9/AV1 video decoding via ogvjs WASM + yuv-canvas WebGL
- Opus audio decoding via libopus WASM + Web Audio API
- Full mouse/keyboard input forwarding to protobuf events
- Connection dialog, status bar, toolbar, log panel UI

Also tracked web_deps (codec libraries) in rustdesk-as-ref/
2026-04-06 21:11:21 +00:00
04d0eac748 move dep 2026-04-06 12:58:23 -07:00
6218245549 add web deps 2026-04-06 12:54:40 -07:00
Z User
3f0893cdf7 refactor: switch from sidecar IPC to webview-based RustDesk integration
Previous approach used Tauri sidecar binary with IPC commands. New approach
uses the RustDesk web architecture correctly:

- RustDesk server runs as native binary in --server mode (ports 21115-21119)
- RustDesk web client (Flutter web build) loaded in a Tauri webview window
- Web client communicates with server via WebSocket (21118/21119)

Backend changes:
- main.rs: Simplified IPC - start/stop server + open webview window
- Removed tokio dependency (no longer needed)
- Removed sidecar bundle config from tauri.conf.json

Frontend changes:
- RemoteDesktop.js: Toggle server on/off, launch web client webview
- New UI with server control section + web client launcher
- Updated CSS for the new layout
- Updated HTML with server URL input and launch button

Documentation:
- Updated binaries/README.md with full build pipeline:
  1. Build RustDesk native binary
  2. Build Flutter web client
  3. WASM bridge dependency note
  4. Server ports reference
2026-04-06 19:35:50 +00:00
Z User
f88e2c8fb4 feat: integrate RustDesk remote desktop into Shelled OS
- Add hbb_common as git submodule (was missing)
- Add Tauri sidecar configuration for RustDesk binary
- Implement Rust backend IPC commands:
  - start_rustdesk: Launch RustDesk sidecar process
  - stop_rustdesk: Kill running RustDesk process
  - get_rustdesk_status: Check if RustDesk is running
  - connect_to_peer: Connect to a remote peer by ID
- Create RemoteDesktop JS component with:
  - Peer ID input and connect/disconnect buttons
  - Real-time status indicator (disconnected/connecting/connected/error)
  - Recent connections list with quick reconnect
  - Tauri event listener for backend status updates
- Add Remote Desktop taskbar button (remote_login icon)
- Add full CSS styling with glassmorphism design
- Create binaries/ directory with build instructions
- Update capabilities with shell:allow-spawn permission
- Add tokio dependency for async runtime
2026-04-06 19:16:19 +00:00
e0b6c5d245 add ref tmp 2026-04-06 12:04:19 -07:00
Z User
d9622d07a8 fix: generate proper BMP-based ICO for Windows RC compiler
RC.EXE doesn't accept PNG-in-ICO format. Created a valid ICO with
multiple sizes (16, 32, 48, 256) using proper BMP DIB format.
2026-04-06 18:32:07 +00:00
Z User
a56a4f230f fix: replace invalid .ico with proper ICO format file
The previous icon.ico was a renamed PNG which caused RC2175 error
on Windows. Generated a valid ICO file with proper header structure.
2026-04-06 18:24:24 +00:00
Z User
c08b4a9863 fix: resolve Tauri 2.0 build issues
- Add missing build.rs (required by tauri_build crate)
- Add capabilities/default.json (Tauri 2 mandatory permissions system)
- Add default app icons (32x32, 128x128, 128x128@2x, ico, png)
- Upgrade from pre-release 2.0.0-rc to stable Tauri 2.x
- Fix tauri.conf.json: use frontendDist instead of deprecated devPath/distDir
- Add tauri script to package.json
2026-04-06 18:06:04 +00:00
701c6be0d3 add shelled-ui 2026-04-06 10:45:18 -07:00
c161af5f04 move files 2026-04-05 17:30:07 -07:00
9ddfcd647b Initial commit 2026-03-29 13:13:48 -07:00