github CrossPaste/crosspaste-desktop 2.0.0.2192

latest releases: 2.3.1.2781, 2.3.0.2767, 2.2.1.2706...
6 months ago

Release Notes - v2.0.0

๐Ÿงฉ Note on the Chrome Extension

The Chrome extension is now live on the Chrome Web Store: https://chromewebstore.google.com/detail/crosspaste/aajpcfbdbnaidaaljamjpmmjcfebhmlh

A few things to keep in mind about scope:

  • The extension is a lightweight companion, not a replacement for the native desktop app. It is not feature-complete and is not intended to cover every workflow the desktop client supports.
  • Supported: using the extension as a lightweight in-browser clipboard manager, and pairing it with the native desktop app to sync clipboard content across devices.
  • Not supported: extension-to-extension cross-device pairing. Two browsers running only the extension cannot sync directly with each other โ€” at least one peer in the mesh must be a native CrossPaste desktop (or mobile) instance.

If you need the full cross-device experience, install the native desktop app on at least one of your devices and pair the extension to it.

Highlights ๐ŸŒŸ

  • ๐Ÿงฉ Chrome Extension โ€” A Brand New Platform
    CrossPaste now runs as a first-class Chrome Extension, bringing clipboard sync directly to the browser. Includes WebSocket-based file pulling, Native Messaging to pause the extension when the desktop app is running, and full SyncState parity with desktop (#4152 #4157 #4158 #4164 #4168 #4176).

  • ๐Ÿ” SAS-Based v2 Pairing Protocol
    Pairing now uses a Short Authentication String (SAS) to prevent MITM attacks, with a showPairingCode endpoint and a remote access toggle for safer device onboarding (#4088 #4096 #4098).

  • ๐Ÿ”„ WebSocket Sync Protocol
    A new bidirectional, real-time WebSocket sync channel replaces polling for many flows, enabling instant cross-device updates, batch pulls, and live liveness probes (#4112 #4120 #4223).

  • ๐Ÿ–ฅ๏ธ Redesigned Devices Screen
    The devices screen has been rebuilt with offline grouping, a current-device dialog, and a refined add-device flow โ€” a cleaner, faster way to manage your mesh (#4207).

  • ๐Ÿท๏ธ Namespaced App Source Icons
    App source icons are now namespaced by appInstanceId, eliminating cross-device collisions and enabling correct icon rendering across heterogeneous meshes (#4191 #4193 #4197).

Bug Fixes ๐Ÿ›

  • Fix notification close button intercepted by native title bar buttons on Windows (#4039)
  • Fix image side preview crop fill and blurry decode size (#4041)
  • Fix color hex format in MarketingPasteData from ARGB to RGBA (#4043)
  • Fix missing libtesseract.so in Linux builds since 1.2.6 (#4049)
  • Fix ToStartView showing on open and not appearing when scrolled (#4052)
  • Fix HTML/RTF search content returning raw markup (#4062)
  • Fix Sparkle crash on macOS by disabling redundant scheduled check (#4086)
  • Fix SegmentedControlSettingsRow layout in twoLine mode (#4136)
  • Deprioritize virtual network interfaces in auto-selection (#4138)
  • Fix incorrect MCP SSE endpoint URL in configuration command (#4146)
  • Skip sync for remote clipboard data to prevent duplication (#4148)
  • Fix ConnectCodeUtils to use KMP-compatible concatToString (#4154)
  • Restore ESC key binding for hide_window and display it in shortcuts UI (#4183)
  • Fail fast when crosspaste-version.properties is missing the version key (#4277)

New Features โœจ

  • โœจ Add loading indicator for pasteboard lazy loading and fix throttle stall (#4054)
  • โœจ Add Portuguese (pt) language support (#4076)
  • โœจ Add mobile app promotion guide in desktop devices view (#4083)
  • โœจ Add user-configurable JVM system-property override file (#4267)

UI Improvements ๐Ÿ’„

  • ๐Ÿ’„ Replace custom CountBadgeAuto with Material 3 Badge and add image count badge (#4143)
  • ๐Ÿ’„ Simplify DesktopPromoteGuide to single download button (#4156)
  • ๐ŸŽจ Align add-device button style with current-device button (#4273)

Multiplatform ยท Refactor ยท Code Style ๐Ÿ”จ

  • ๐Ÿ”จ Extract core module and deduplicate shared/app code (#4060)
  • ๐ŸŽจ Add Compose stability configuration for core module types (#4064)
  • ๐Ÿ”จ Remove getSearchContent/getSummary from PasteItem, introduce PasteItemReader and PasteDataHelper (#4067)
  • โž– Remove unused material-kolor dependency (#4081)
  • ๐Ÿ”จ Convert withTimeout/withTimeoutOrNull Long overloads to Duration (#4094)
  • ๐Ÿ”จ Abstract TrustDeviceView in DeviceScope for platform-specific pairing (#4098)
  • โž– Remove duplicate exception classes from app module (#4100)
  • ๐Ÿ”จ Refactor SyncResolver to unified single-pass connection flow (#4104)
  • ๐Ÿ”จ Refactor searchPasteData pasteType to pasteTypeList for multi-type filtering (#4122)
  • ๐Ÿ”จ Refactor getCrossPasteWebUrl to use remote locale config from meta.json (#4124)
  • ๐Ÿ”จ Reduce default shortcut key bindings to show_main and show_search only (#4127)
  • ๐Ÿ”จ Migrate promote.json to web API and update data model (#4150)
  • ๐Ÿ”จ Refactor addSyncTask to accept targetAppInstanceIds as Set<String> (#4181)
  • ๐Ÿ”จ Add identity parameter to loadRepresentation for mobile platform support (#4185)
  • ๐Ÿ”จ Refactor targetAppInstanceIds to nullable Set<String>? for explicit no-sync semantics (#4188)
  • ๐Ÿ”จ Unify coroutine scopes via namedScope helper (#4216)

Performance โšก

  • โšก Improve device reconnection with fast-then-slow telnet probe strategy (#4108)
  • โšก Skip icon pull when local icon file already exists (#4195)

Dependencies โฌ†๏ธ

  • โฌ†๏ธ Kotlin 2.3.10 โ†’ 2.3.20 (#4069)
  • โฌ†๏ธ Compose Multiplatform 1.10.1 โ†’ 1.10.3 (#4055 #4068)
  • โฌ†๏ธ Compose Hot-Reload 1.1.0-alpha05 โ†’ 1.1.0-rc01 (#4208)
  • โฌ†๏ธ Ktor 3.4.0 โ†’ 3.4.2 (#4073 #4128)
  • โฌ†๏ธ Koin 4.1.1 โ†’ 4.2.1 (#4115 #4159)
  • โฌ†๏ธ SQLDelight 2.2.1 โ†’ 2.3.2 (#4114)
  • โฌ†๏ธ Cryptography 0.5.0 โ†’ 0.6.0 (#4132)
  • โฌ†๏ธ MCP Kotlin SDK Server 0.8.4 โ†’ 0.11.0 (#4024 #4113 #4162)
  • โฌ†๏ธ Jewel 0.33.0 โ†’ 0.34.0 (#4056 #4129)
  • โฌ†๏ธ Lifecycle 2.9.6 โ†’ 2.10.0 (#4070)
  • โฌ†๏ธ Conveyor 1.13 โ†’ 2.0 (#4071)
  • โฌ†๏ธ Ktlint 14.0.1 โ†’ 14.2.0 (#4072)
  • โฌ†๏ธ Okio 3.16.4 โ†’ 3.17.0 (#4133)
  • โฌ†๏ธ Logback Classic 1.5.31 โ†’ 1.5.32 (#4134)
  • โฌ†๏ธ Kotlin Logging 7.0.14 โ†’ 8.0.01 (#4160)
  • โฌ†๏ธ ComposeNativeTray 1.1.0 โ†’ 1.3.0 (#4209)
  • โฌ†๏ธ Coil 3.3.0 โ†’ 3.4.0 (#4210)

Build & Tooling ๐Ÿ‘ท

  • ๐Ÿ‘ท Split CI into app-build and web-build with path filters (#4239)
  • ๐Ÿ”– Bump version to 2.0.0 (#4243)
  • ๐Ÿ‘ท Tighten CI path filters and unify Node version in build-release (#4279)

Contributors โœจ

  • @Fldicoahkiin use imageFlavor instead of javaFileListFlavor for single-image clipboard writes (#4302)

Full Changelog: 1.2.9.2059...2.0.0.2192

Don't miss a new crosspaste-desktop release

NewReleases is sending notifications on new releases.