Skip to content

Release v0.2.6

Choose a tag to compare

@github-actions github-actions released this 29 Jun 18:22

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_active always false due to pending_offer consumed in chronodesk_accept() before Connected event — now uses explicit is_host flag
  • 🔧 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)
  • ▶️ SendMessage transport command for sending input/data channel messages from FFI
  • 📡 ICE candidate forwarding from WebRTC to signaling client via signaling_tx channel
  • 📦 ffi Dart package dependency for calloc/NativeUtf8 helpers

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 xcap with 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 enigo for 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 via flutter_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-next as optional feature
  • [lib] target as cdylib+staticlib for Flutter FFI
  • signaling-server binary target
  • Release profile with LTO and single codegen unit

For a full list of commits, see the GitHub commit log.