Highlights ๐
-
๐ Faster, more reliable reconnection
This release focuses on the connection between your devices. When you
switch Wi-Fi networks, your network address changes, or your computer
wakes from sleep, CrossPaste now rediscovers your other devices and
reconnects much faster โ no more being stuck "offline" for a long
time. Even when a device's IP address changes, it reconnects reliably
(#4506 #4510 #4515 #4519 #4521 #4527 #4529). -
๐ In-app changelog and upgrade reminder
You can now see what each update brings right inside the app. When a
new version is available, a small dot appears in the left menu to
remind you to upgrade (#4525). -
โฌ๏ธ Windows (portable zip): update from within the app
The Windows portable (zip) build can now update itself. When a new
version is available, CrossPaste downloads and verifies it, then swaps
in the new build and restarts โ no more manually downloading and
extracting a fresh zip (#4537). -
๐ฑ๏ธ Fixed an endless paste loop
Fixed an issue where pressing Cmd/Ctrl+V could trigger an endless
paste loop in some situations. Pasting is now more reliable (#4501
#4502). -
โจ Smoother device list
The device list no longer flickers while re-checking offline devices,
so it stays steady (#4508).
Bug Fixes ๐
- ๐ Gate
/sync/telnetaddress-push to already-paired peers (#4529) - ๐ Harden network discovery: non-blocking mDNS teardown, debounced rebuild, offline gate (#4515)
- ๐ Stop device list flicker when re-probing offline devices (#4508)
- ๐ Decouple device identity from IP for reliable reconnection (#4506)
- ๐ Suppress shortcut recognition during simulated paste (#4502)
- ๐ Stop swallowing CancellationException in sync resolve loop (#4504)
- ๐ Prevent infinite paste loop from Cmd+V shortcut binding (#4501)
- ๐ Round drag preview corners on web paste cards (#4485)
- ๐ Fix CLI native build after
appInstanceIdmoved out ofAppConfig(#4482)
New Features โจ
- โจ In-app self-update for the Windows portable-zip distribution (#4537)
- โจ Discovery-driven fast reconnect for paired peers (#4527)
- โจ In-app What's New changelog screen with upgrade badge (#4525)
- โจ Push subnet-matched address on steady-state heartbeat (#4521)
- โจ Push subnet-matched address on
/sync/telnetto cut mDNS reconnection latency (#4519) - โจ Self-heal mDNS discovery on OS network changes (#4510)
Multiplatform ยท Refactor ยท Code Style ๐จ
- ๐จ Remove Jewel dependency in favor of native Compose Window (#4489)
- ๐จ Reduce SyncResolver connection-polling log noise (#4523)
Build & CI ๐ท
- ๐ท Regenerate web version and translation artifacts (#4487)
- ๐ท Upgrade GitHub Actions to Node.js 24 runtime (#4480)
Documentation ๐
- ๐ Default to Chinese for developer interaction in CLAUDE.md (#4512)
Dependencies โฌ๏ธ
- โฌ๏ธ composenativetray-jvm bump (#4535)
- โฌ๏ธ logback-classic 1.5.32 โ 1.5.34 (#4497 #4534)
- โฌ๏ธ web build deps rollup / postcss security bump (#4533)
- โฌ๏ธ Kotlin 2.3.21 โ 2.4.0 (#4513)
- โฌ๏ธ Compose Multiplatform 1.11.0 โ 1.11.1 (#4511)
- โฌ๏ธ MCP Kotlin SDK Server bump (#4517)
- โฌ๏ธ JNA 5.18.1 โ 5.19.0 (#4516)
- โฌ๏ธ ph-css 8.1.1 โ 8.2.1 (#4498)
- โฌ๏ธ Gradle Wrapper 9.5.0 โ 9.5.1 (#4491)
- โฌ๏ธ kotlin-logging 8.0.03 โ 8.0.4 (#4492)
- โฌ๏ธ MockK 1.14.9 โ 1.14.11 (#4493)
- โฌ๏ธ Caffeine bump (#4494)
- โฌ๏ธ atomicfu 0.32.1 โ 0.33.0 (#4495)
Full Changelog: 2.1.3.2297...2.1.4.2340