Release v0.2.6
Changelog
All notable changes to CHRONODESK will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
[0.2.2] - 2026-06-28
Fixed
- ⬆️ Update download now shows progress bar (percentage + linear indicator)
- 📦 Fixed zip extraction — uses .NET ZipFile instead of unreliable PowerShell Expand-Archive
- 🔧 Update no longer silently fails on paths with spaces
- 🔁 App now properly restarts after update
[0.2.1] - 2026-06-28
Fixed
- 🐛 Host-side
capture_activealwaysfalsedue topending_offerconsumed inchronodesk_accept()beforeConnectedevent — now uses explicitis_hostflag - 🔧 Default signaling server address set to
144.24.201.196:21116(Oracle Cloud)
Added
- ⬆️ Auto-update checker — checks GitHub Releases on startup, prompts user to update
- 📦 Automatic update flow — downloads zip, extracts, restarts app silently
[0.2.0] - 2026-06-27
Added
- 🆔 Persistent 9-digit peer ID system (stored in
%APPDATA%/chronodesk/id) - 🎨 Single-screen AnyDesk-like Flutter UX — peer ID display, connect field, remote screen view
- 🔗 Raw C FFI bridge with event queue (JSON Rust→Flutter), RGBA frame buffer, accept/deny flow
- 📨 Connection request dialog (accept/deny incoming connections from Flutter)
- :frame_photo: Remote screen rendering via
ui.decodeImageFromPixels+RawImage(30 FPS polling) ▶️ SendMessagetransport command for sending input/data channel messages from FFI- 📡 ICE candidate forwarding from WebRTC to signaling client via
signaling_txchannel - 📦
ffiDart package dependency forcalloc/NativeUtf8helpers
Changed
- ♻️ Rewrote
src/ffi.rs— full integration of transport, signaling, capture, encoding in single event loop - ♻️ Rewrote
chronodesk_flutter/lib/src/screens/home_screen.dart— single-screen UX (replaces separate host/viewer screens) - ♻️ Rewrote
chronodesk_flutter/lib/src/ffi/native.dart— all 12 FFI functions bound - 🔧 Fixed
src/network/transport.rs— SDP routing to signaling client instead of internal loopback - 🔧 Simplified
chronodesk_flutter/lib/src/app.dart— single route - 📖 Updated README with new architecture diagram, FFI-based flow, updated project structure
[0.1.0] - 2026-06-26
Added
- 📡 WebSocket signaling server with peer registration, SDP relay, and ICE candidate forwarding
- 💻 Screen capture module using
xcapwith DXGI support on Windows, multi-monitor, and 64×64 tile dirty rectangle detection - 📶 WebRTC P2P transport with ICE/STUN, data channel communication, and signaling client integration
- 📹 Video encoding pipeline with JPEG (default) and optional H.264 via FFmpeg (NVENC/QSV/AMF)
- 🐭 Input injection module using
enigofor cross-platform mouse and keyboard simulation - 📦 Binary protocol for data channel messaging (video frames, input events, clipboard, ping/pong)
- 🔗 C FFI exports (
start_host,start_client) for Flutter integration viaflutter_rust_bridge - 🎨 Flutter UI scaffold with three screens: Home, Host (screen sharing), and Viewer (remote connection)
- 🏗️ Modular project structure with
src/capture,src/network,src/video,src/input, and more - ✅ CI pipeline with GitHub Actions (check, build, test on Ubuntu/Windows/macOS)
- 📄 Issue templates (bug report, feature request), PR template, and contributing guidelines
Build
- Cargo.toml with
ffmpeg-nextas optional feature [lib]target ascdylib+staticlibfor Flutter FFIsignaling-serverbinary target- Release profile with LTO and single codegen unit
For a full list of commits, see the GitHub commit log.