dashboard/src/vms.rs | 25 +- dashboard/vite.config.ts | 3 + dashboard/web/components/VMConsole.tsx | 258 ++++++++++++-- dashboard/web/pages/VMs.css | 3 + dashboard/web/types/novnc.d.ts | 16 +- guest/.gitignore | 1 + guest/DESIGN.md | 25 ++ guest/build.py | 36 ++ guest/cursor.c | 70 ++++ guest/cursor.h | 11 + guest/install.ps1 | 38 ++ guest/protocol.json | 14 + guest/test.py | 36 ++ guest/tests.c | 32 ++ guest/windows.c | 241 +++++++++++++ nixos/configuration.nix | 42 ++- readme.md | 189 ---------- service/shale/readme/readme.js | 74 +++- service/shale/service.pkl | 2 +- tools/dashboard-host.py | 15 +- tools/dashboard-vms-test.py | 8 +- tools/guest-channel-test.py | 30 ++ tools/release.py | 5 +- tools/vm-screen-test.py | 248 +++++++++++++ tools/vm-screen.py | 600 ++++++++++++++++++++++++++++++++ tools/vms.py | 33 +- 26 files changed, 1790 insertions(+), 265 deletions(-)