Skip to content

Latest commit

Β 

History

History
592 lines (477 loc) Β· 50.3 KB

CHANGELOG.md

File metadata and controls

592 lines (477 loc) Β· 50.3 KB

Changelog

All notable changes to this project will be documented in this file.

[1.1.0] - 2024-12-20

Bug Fixes

  • πŸ› Resolve custom encryption related bugs
  • πŸ› Resolve incorrect deletion of folder pasteboard
  • πŸ› Fix bugs related to multi-file and multi-image pasteboard handling
  • πŸ› Fix commonMain implementation to support iOS compilation
  • πŸ› Avoid circular reference between fileUtils and CodecsUtils
  • πŸ› Fix code style issues
  • πŸ› Fix PasteTaskExtraInfo serialization issue on iOS
  • πŸ› Use class instead of object for serialization to prevent iOS crashes
  • πŸ› Disable encryption on error response
  • πŸ› Fix FileInfoTree serialization issue on iOS
  • πŸ› Fix storage migration error where multi-language conversion was incorrect
  • πŸ› Display AdaptiveTextButton correctly on Android

New Features

  • ✨ Implement custom encryption protocol to replace signal
  • ✨ Add click-to-copy feature for pasteboard
  • ✨ Add toggle switch for sound effects
  • ✨ Support Beta AppEnv to enable mobile beta version public testing
  • ✨ Abstract application launch states
  • ✨ Implement RealmManagerFactory for custom database storage across platforms
  • ✨ Add placeholder and leadingIcon to DefaultTextField

UI Improvements

  • πŸ’„ Auto-scroll pasteboard list to latest item
  • πŸ’„ Enhance UI contrast in device and settings screen
  • πŸ’„ Enhance UI components visibility and theming
  • πŸ’„ Add padding to Counter component UI

Multiplatform & Refactor & Code Style

  • πŸ”¨ Optimize urlBuilder related interfaces to simplify usage
  • πŸ”¨ Move ExceptionHandler to commonMain for multiplatform support
  • πŸ”¨ Remove accidentally committed debug logs
  • πŸ”¨ Refactor single file and image view
  • πŸ”¨ Migrate FileIcon to Material 3 icon
  • πŸ”¨ Move file hash algorithm to commonMain for multiplatform reuse
  • πŸ”¨ Remove unused Base64 MIME encode/decode functions
  • πŸ”¨ Move SHA256 algorithm to commonMain for multiplatform reuse
  • πŸ”¨ Replace manual path separator with Okio Path API
  • πŸ”¨ Make FileInfoTree creation multiplatform compatible
  • πŸ”¨ Replace javaClass comparison with platform-independent implementation in equals method
  • πŸ”¨ Abstract common logic into CacheManager interface
  • πŸ”¨ Base64 implementation using kotlin.io, better multiplatform equivalent implementation
  • πŸ”¨ Add Server interface for better iOS SwiftUI integration
  • πŸ”¨ Migrate state variables to StateFlow in DeviceManager
  • πŸ”¨ Optimize app sync api compatibility check
  • πŸ”¨ Refactor Data Communication Layer to Avoid Direct Realm Object Serialization
  • πŸ”¨ Make PasteServer extensible for mobile platforms
  • πŸ”¨ Implement multiplatform dateUtils for reusability
  • πŸ”¨ Convert RealmInstant utils to extension functions
  • πŸ”¨ Make launch function suspendable
  • ⚑ Optimize heartbeat performance by caching sync information

Dependencies

  • ⬆️ Bump coil from 3.0.0-rc02 to 3.0.2
  • ⬆️ Bump org.jmdns:jmdns from 3.5.12 to 3.6.0
  • ⬆️ Bump ktor from 2.3.12 to 3.0.1
  • ⬆️ Bump lifecycle from 2.8.3 to 2.8.4
  • ⬆️ Bump coil from 3.0.2 to 3.0.3
  • ⬆️ Bump compose-plugin from 1.7.0 to 1.7.1
  • ⬆️ Bump io.github.oshai:kotlin-logging from 7.0.0 to 7.0.3
  • ⬆️ Bump org.jlleitschuh.gradle.ktlint from 12.1.1 to 12.1.2
  • ⬆️ Bump coil from 3.0.3 to 3.0.4
  • ⬆️ Bump org.jsoup:jsoup from 1.18.1 to 1.18.3
  • ⬆️ Bump ktor from 3.0.1 to 3.0.2
  • ⬆️ Bump compose from 1.7.5 to 1.7.6

Documentation

  • πŸ“ Add tech blog links to README
  • πŸ“ Remove signal documentation
  • πŸ”– Update version to 1.1.0

Full Changelog: https://github.com/CrossPaste/crosspaste-desktop/compare/1.0.13.1121...1.1.0.1184

[1.0.13] - 2024-11-6

Bug Fixes

  • πŸ› Initialize copywriter and notificationManager in configManager by @guiyanakuang in #2115
  • πŸ› Correct image cropping and centering on Android platform by @guiyanakuang in #2144
  • πŸ› Improve color format parsing and add conversion tests by @guiyanakuang in #2153
  • πŸ› Actively close Realm database when exiting the app to ensure data persistence by @guiyanakuang in #2170
  • πŸ› Fix regression issue with image type pasteboard display by @guiyanakuang in #2176

New Features

  • ✨ Enable ThemeDetector to get current ColorScheme by @guiyanakuang in #2107
  • ✨ Enhance QR code generation and parsing by @guiyanakuang in #2133
  • ✨ Support auto-filling verification token from cache by @guiyanakuang in #2140
  • ✨ Add NoneTransferData to handle invalid data by @guiyanakuang in #2147
  • ✨ Support for color data in pasteboard by @guiyanakuang in #2151
  • ✨ Add support for updating color palette by @guiyanakuang in #2155

UI Improvements

  • πŸ’„ Add About item to main settings menu by @guiyanakuang in #2105
  • 🎨 Wrap DeviceConnectView inside Column for better layout isolation by @guiyanakuang in #2111
  • πŸ’„ Define QR code scanning interface for mobile by @guiyanakuang in #2129
  • ⚑ Improve pasteboard loading logic by @guiyanakuang in #2159
  • ⚑ Improve search window state management by @guiyanakuang in #2161

Multiplatform & Refactor & Code Style

  • πŸ”¨ Make AppTokenService multiplatform reusable by @guiyanakuang in #2109
  • πŸ”¨ Move EndpointInfoFactory to commonMain for multiplatform reuse by @guiyanakuang in #2113
  • πŸ”¨ Move common pasteboard consumption logic to TransferableConsumer for multiplatform reuse by @guiyanakuang in #2117
  • πŸ”¨ Extract remote pasteboard listening service to common interface by @guiyanakuang in #2120
  • πŸ”¨ Refactor QR code UI for multiplatform reuse by @guiyanakuang in #2126
  • πŸ”¨ Restructure notification component for multiplatform reuse by @guiyanakuang in #2131
  • πŸ”¨ Optimize SyncManager implementation by @guiyanakuang in #2138
  • πŸ”¨ Extract PasteMenuService interface for multiplatform reuse by @guiyanakuang in #2142
  • πŸ”¨ Migrate pasteboard process plugin to common module for multiplatform support by @guiyanakuang in #2149
  • πŸ”¨ Move shared utils implementation to commonMain by @guiyanakuang in #2157
  • πŸ”¨ Refactor search input into separate component by @guiyanakuang in #2163
  • πŸ”¨ enhance pastetype from object to data class by @guiyanakuang in #2172

Dependencies

  • ⬆️ Bump ch.qos.logback:logback-classic from 1.5.8 to 1.5.12 by @dependabot in #2136
  • ⬆️ Bump dev.hydraulic.conveyor from 1.11 to 1.12 by @dependabot in #2135
  • ⬆️ Bump coil from 3.0.0-rc01 to 3.0.0-rc02 by @dependabot in #2164
  • ⬆️ Bump androidx.compose.material3:material3 from 1.3.0 to 1.3.1 by @dependabot in #2167
  • ⬆️ Bump compose from 1.7.4 to 1.7.5 by @dependabot in #2166

Documentation

  • πŸ“ Update changelog / download to 1.0.12 by @guiyanakuang in #2122
  • πŸ“ Add QR code scanner and token SVG support by @guiyanakuang in #2124
  • πŸ“ Update SortPlugin.kt reference by @emmanuel-ferdman in #2150
  • πŸ“ Update version to 1.0.13 by @guiyanakuang in #2174

New Contributors

  • @emmanuel-ferdman made their first contribution in #2150

Full Changelog: https://github.com/CrossPaste/crosspaste-desktop/compare/1.0.12.1084...1.0.13.1121

[1.0.12] - 2024-10-19

Bug Fixes

  • πŸ› Fix issue where clicking on the main interface causes hidden windows to be hidden by @guiyanakuang in #2035
  • πŸ› Fix simple code smells by @guiyanakuang in #2066
  • πŸ› Fix the path for referencing resource files in conveyor by @guiyanakuang in #2088
  • πŸ› Fix icon path error issue on Linux by @guiyanakuang in #2102

New Features

  • ✨ Enhance desktop plugin class implementation by @guiyanakuang in #2044
  • ✨ Store only image type when copying browser images, remove HTML type by @guiyanakuang in #2046
  • ✨ Add separate right-click menu for pasteboard by @guiyanakuang in #2047
  • ✨ Add support for RTF format pasteboard data by @guiyanakuang in #2052

UI Improvements

  • ⚑ Enhance Transparency Checkerboard for improved image background by @guiyanakuang in #2057
  • ⚑ Improve device sync logic by @guiyanakuang in #2090
  • πŸ’„ Implement backspace functionality in DeviceVerifyView token input by @guiyanakuang in #2092

Refactor & Code Style

  • πŸ”¨ Fix issues found by code inspection by @guiyanakuang in #2031
  • πŸ”¨ Modify HtmlRenderingService API to support asynchronous HTML rendering by @guiyanakuang in #2037
  • 🎨 Modify plugin interface to add pasteboard source parameter by @guiyanakuang in #2042
  • πŸ”¨ Improve screen routing implementation by @guiyanakuang in #2049
  • πŸ”¨ Move getPasteTitle api to PasteItem interface by @guiyanakuang in #2055
  • πŸ“ Implement ReadWriteConfig to decouple services from specific configurations, facilitating the creation of unit tests by @guiyanakuang in #2074
  • πŸ”₯ Remove theme listener interface as it's unnecessary; Compose UI will automatically recompose based on state by @guiyanakuang in #2076
  • πŸ”¨ Implement DialogService in commonMain for multi-platform reuse by @guiyanakuang in #2078
  • πŸ”¨ Refactor theme implementation by @guiyanakuang in #2080
  • πŸ”¨ Improve UI Reusability and multiplatform Compatibility by @guiyanakuang in #2082
  • πŸ”¨ Optimize code style by @guiyanakuang in #2084

Dependencies

  • ⬆️ Bump realm from 2.3.0 to 3.0.0 by @dependabot in #2028
  • ⬆️ Bump compose from 1.7.2 to 1.7.3 by @dependabot in #2026
  • ⬆️ Bump kotlin from 2.0.20 to 2.0.21 by @dependabot in #2061
  • ⬆️ Bump imageio from 3.11.0 to 3.12.0 by @dependabot in #2060
  • ⬆️ Bump coil from 3.0.0-alpha10 to 3.0.0-rc01 by @dependabot in #2058
  • ⬆️ Bump compose plugin to 1.7.0-rc01 by @guiyanakuang in #2068
  • ⬆️ Bump compose from 1.7.3 to 1.7.4 by @dependabot in #2096
  • ⬆️ Bump lifecycle from 2.8.2 to 2.8.3 by @dependabot in #2095
  • ⬆️ Bump io.mockk:mockk from 1.13.12 to 1.13.13 by @dependabot in #2094
  • ⬆️ Bump compose-plugin from 1.7.0-rc01 to 1.7.0 by @guiyanakuang in #2098

Documentation

  • πŸ“ Update pasteboard concept, add RTF type support by @guiyanakuang in #2054
  • πŸ“ Update the current roadmap by @guiyanakuang in #2072

Full Changelog: https://github.com/CrossPaste/crosspaste-desktop/compare/1.0.11.1046...1.0.12.1084

[1.0.11] - 2024-10-04

Bug Fixes

  • πŸ› Improve network interface handling and error management by @guiyanakuang in #1956
  • πŸ› Fix repeated reading of ImageBitmap by @guiyanakuang in #1965
  • πŸ› Fix issue with appSourceFetcher retrieving application icons by @guiyanakuang in #1974
  • πŸ› Fix alignment of HTML preview pasteboard by @guiyanakuang in #1976
  • πŸ› Fix UI issue where the bottom bar was not displayed in the search window by @guiyanakuang in #2014
  • πŸ› Fix issue where shortcut key order affects simulated paste by @guiyanakuang in #2025

New Features

  • ✨ implement voice prompt functionality by @guiyanakuang in #1945
  • ✨ Add support for debug mode by @guiyanakuang in #1954
  • ✨ Add support for unassigned shortcuts by @guiyanakuang in #1961
  • ✨ Support cross-application paste by double-clicking pasteboard item in main window by @guiyanakuang in #2021

Performance & UI Improvements

  • βž• Support lifecycle for better control of memory and resource usage by @guiyanakuang in #1959
  • ⚑ Use Coil for asynchronous image loading by @guiyanakuang in #1967
  • πŸ’„ Unified Divider Style by @guiyanakuang in #2009
  • πŸ’„ Add proper padding when displaying text due to HTML rendering failure by @guiyanakuang in #2020

Refactor & Code Style

  • πŸ”¨ Refactor routing impl for early returns and reduced nesting by @guiyanakuang in #1953
  • πŸ”¨ Refactor pasteboard preview UI using ViewModel by @guiyanakuang in #1963
  • πŸ”¨ Refactor application window implementation by @guiyanakuang in #1972
  • πŸ”¨ Replace desktop click methods with pointerInput for multiplatform support by @guiyanakuang in #1980
  • πŸ”¨ Refactor PlatformContext retrieval for multi-platform compatibility by @guiyanakuang in #1982
  • πŸ”¨ Use official method to load drawable resources for multiplatform reuse by @guiyanakuang in #1984
  • πŸ”¨ Use expect/actual for FileSystem to support multiple platforms by @guiyanakuang in #1986
  • πŸ”¨ Fix UI multiplatform reuse issues by @guiyanakuang in #1988
  • πŸ”¨ Use official method to load fonts for multiplatform reuse by @guiyanakuang in #1990
  • πŸ”¨ Refactor Coil implementation and introduce dependency injection by @guiyanakuang in #1992
  • πŸ”¨ Refactor UI components, move desktop-related component UI abstractions to desktopMain by @guiyanakuang in #1994
  • πŸ”¨ Use dependency injection to obtain LocaleUtils, facilitating multiplatform implementation by @guiyanakuang in #1996
  • πŸ”¨ Abstract PasteShimmer to allow independent impl of shimmer effects on different platforms by @guiyanakuang in #1998
  • πŸ”¨ Provide AppEnvUtils to allow multiple platforms to impl equivalent functionality by @guiyanakuang in #2000
  • πŸ”¨ Replace unnecessary BoxWithConstraints with Box by @guiyanakuang in #2002
  • πŸ”¨ Refactor commonMain for multiplatform compatibility by @guiyanakuang in #2011
  • πŸ”¨ Abstract AbstractFaviconLoader and AbstractThumbnailLoader to allow maximum reuse across multiple platforms by @guiyanakuang in #2016
  • πŸ”¨ Use direct import instead of referencing through package by @guiyanakuang in #2018
  • πŸ”¨ Rename ChromeService to HtmlRenderingService by @guiyanakuang in #2023

Dependencies

  • ⬆️ Bump org.jetbrains.kotlinx:kotlinx-serialization-json from 1.7.2 to 1.7.3 by @dependabot in #1950
  • ⬆️ Bump io.insert-koin:koin-compose from 4.0.0-RC2 to 4.0.0 by @dependabot in #1949
  • ⬆️ Bump io.insert-koin:koin-core from 3.5.6 to 4.0.0 by @dependabot in #1946
  • ⬆️ Bump compose from 1.7.1 to 1.7.2 by @dependabot in #1948
  • ⬆️ Bump org.seleniumhq.selenium:selenium-manager from 4.24.0 to 4.25.0 by @dependabot in #1947
  • ⬆️ Bump com.google.guava:guava from 33.3.0-jre to 33.3.1-jre by @dependabot in #1969

Build System

  • πŸ‘· Remove the task for extracting selenium-manager, as it is no longer used by @guiyanakuang in #1978

Documentation

  • πŸ“ Update changelog / download to 1.0.10 by @guiyanakuang in #1939
  • πŸ“ Commit Message Guide with Emojis by @guiyanakuang in #1944

Testing

  • βœ… Add unit tests for NetworkUtils by @guiyanakuang in #1941

Full Changelog: https://github.com/CrossPaste/crosspaste-desktop/compare/1.0.10.1001...1.0.11.1037 Full Changelog: https://github.com/CrossPaste/crosspaste-desktop/compare/1.0.11.1037...1.0.11.1046

[1.0.10] - 2024-09-21

Bug Fixes

  • πŸ› [Mac] Skip listening to initial pasteboard change by @guiyanakuang in #1905
  • πŸ› Use chrome-headless-shell for HTML rendering without window creation by @guiyanakuang in #1925
  • πŸ› Fix bug in verifying if proxy is working by @guiyanakuang in #1929
  • πŸ› Fix the issue where the hover effect of the search button on the main UI is affected by TokenView by @guiyanakuang in #1931
  • πŸ› Relax restrictions on private IP addresses by @guiyanakuang in #1927

New Features

  • ✨ Integrate MurmurHash3 source code and add StreamingMurmurHash3 by @guiyanakuang in #1901
  • ✨ Implement native macOS API for thumbnail generation by @guiyanakuang in #1907

UI Improvements

  • πŸ’„ Upgrade UI to Material 3 for reuse on mobile platforms by @guiyanakuang in #1915

Refactor & Code Style

  • πŸ”¨ Merge FileExtUtils into FileUtils by @guiyanakuang in #1889
  • πŸ”¨ Constants in PasteTypePlugin are now uniformly recorded within the default companion object by @guiyanakuang in #1891
  • πŸ”¨ Fix typos throughout the project by @guiyanakuang in #1897
  • πŸ”¨ Refactor ImageWriter into a generic interface for reuse on mobile platforms by @guiyanakuang in #1899
  • πŸ”¨ Refactor toByteArray to be platform-independent in commonMain by @guiyanakuang in #1909
  • πŸ”¨ Allow null ext in createRandomFileName for multi-platform reuse by @guiyanakuang in #1914
  • πŸ”¨ Implement expect/actual pattern for main UI screens by @guiyanakuang in #1921
  • πŸ”¨ Optimize NetUtils and DeviceUtils by @guiyanakuang in #1933
  • πŸ”¨ Move font file to the resource folder in desktopMain by @guiyanakuang in #1936

Dependencies

  • ⬆️ Bump jna from 5.14.0 to 5.15.0 by @dependabot in #1893
  • ⬆️ Bump compose from 1.7.0 to 1.7.1 by @dependabot in #1892
  • ⬆️ Bump com.squareup.okio:okio from 3.9.0 to 3.9.1 by @dependabot in #1894
  • ⬆️ Bump kotlinx-coroutines from 1.8.1 to 1.9.0 by @dependabot in #1895
  • ⬆️ Bump realm from 2.1.0 to 2.3.0 by @dependabot in #1902
  • ⬆️ Bump kotlin from 2.0.10 to 2.0.20 by @dependabot in #1728

Build System

  • πŸ‘· Enable expect/actual classes in JVM target with "-Xexpect-actual-classes" flag by @guiyanakuang in #1911

Full Changelog: https://github.com/CrossPaste/crosspaste-desktop/compare/1.0.9.974...1.0.10.1001

[1.0.9] - 2024-09-13

Extensive refactoring has been done to make commonMain reusable across multiple platforms, preparing for mobile implementation

Bug Fixes

  • πŸ› [Win] Fix mouse cursor displacement to bottom-right when invoking search window by @guiyanakuang in #1816
  • πŸ› Fix bug where app reads pasteboard on first launch to get CrossPaste source by @guiyanakuang in #1875
  • πŸ› Failure to copy images exceeding backup file threshold by @guiyanakuang in #1879

New Features

  • ✨ Add a switch to control whether to read pasteboard content set before application startup by @guiyanakuang in #1877

UI Improvements

  • πŸ’„ Hide tray immediately on application exit by @guiyanakuang in #1810

Optimizations

  • ⚑ Prioritize matching pasteboard when searching and pasting by @guiyanakuang in #1815

Refactor & Code Style

  • πŸ”¨ Refactor atomic operations for cross-platform reuse by @guiyanakuang in #1796
  • πŸ”¨ Remove endpoint package and refactor code by @guiyanakuang in #1798
  • πŸ”¨ Internationalize project by converting Chinese comments to English by @guiyanakuang in #1800
  • πŸ”¨ Move Realm storage initialization to commonMain by @guiyanakuang in #1802
  • πŸ”¨ refactor UserDataPathProvider: use cross-platform APIs by @guiyanakuang in #1804
  • πŸ”¨ standardize logger creation within respective classes by @guiyanakuang in #1806
Click to expand detailed Refactor & Code Style notes
  • πŸ”¨ Refactor TxtRecordUtils for multi-platform support by @guiyanakuang in #1809
  • πŸ”¨ Refactor Ktor plugin and client code for multi-platform support by @guiyanakuang in #1812
  • πŸ”¨ Extract cross-platform logic into BaseSyncRouting for iOS/Android reuse by @guiyanakuang in #1818
  • πŸ”¨ Move PasteRouting and PullRouting to commonMain for code reuse by @guiyanakuang in #1820
  • πŸ”¨ Move AppPathProvider interface to desktopMain for desktop-specific impl by @guiyanakuang in #1824
  • πŸ”¨ Merge os package into platform package and rename currentPlatform to getPlatform by @guiyanakuang in #1826
  • πŸ”¨ Refactor file persistence to multiplatform impl by @guiyanakuang in #1828
  • πŸ”¨ Refactor DesktopDeviceManager to DeviceManager for multi-platform support by @guiyanakuang in #1832
  • πŸ”¨ Refactor SyncManager and SyncHandler for multi-platform reuse in iOS and Android by @guiyanakuang in #1834
  • πŸ”¨ Refactor DesktopPasteServer for multi-platform support by @guiyanakuang in #1836
  • πŸ”¨ Refactor QR code generation to support multiplatform by @guiyanakuang in #1847
  • πŸ”¨ Refactor task module for multi-platform impl by @guiyanakuang in #1849
  • πŸ”¨ Convert TaskUtils to multiplatform impl by @guiyanakuang in #1851
  • πŸ”¨ Move Realm query impl to commonMain by @guiyanakuang in #1853
  • πŸ”¨ Migrate clientApi impl to commonMain by @guiyanakuang in #1855
  • πŸ”¨ Migrate SyncInfoFactory to commonMain by @guiyanakuang in #1859
  • πŸ”¨ Adopt Ktor's multiplatform concurrent map by @guiyanakuang in #1857
  • πŸ”¨ Abstract AbstractFileExtImageLoader for multi-platform reuse by @guiyanakuang in #1864
  • πŸ”¨ Categorize and sort dependency injection items by @guiyanakuang in #1865
  • πŸ”¨ Rename PlatformUtils to DispatcherUtils for better accuracy by @guiyanakuang in #1867
  • πŸ”¨ Refactor DesktopPasteSyncProcessManager to commonMain for multi-platform reuse by @guiyanakuang in #1869
  • πŸ”¨ Optimize lock usage and replace AtomicLock by @guiyanakuang in #1871
  • πŸ”¨ Refactor Compose dependency injection to use official Koin methods by @guiyanakuang in #1873
  • πŸ”¨ Remove unused implementation of PasteResourceLoader by @guiyanakuang in #1882
  • πŸ”¨ Standardize using 'get' method to obtain utils classes by @guiyanakuang in #1884
  • πŸ”¨ Merge two interfaces of NotificationManager, no need for repetition by @guiyanakuang in #1886

Documentation

  • πŸ“ Add Frequently Asked Questions (FAQ) document by @guiyanakuang in #1794

Dependencies

  • ⬆️ Bump ch.qos.logback:logback-classic from 1.5.7 to 1.5.8 by @dependabot in #1840
  • ⬆️ Bump dev.hydraulic.conveyor from 1.10 to 1.11 by @dependabot in #1839
  • ⬆️ Bump compose from 1.6.8 to 1.7.0 by @dependabot in #1837

New Contributors

  • @sunxiang0918 Thanks for providing multiple detailed bug reproduction processes

Full Changelog: https://github.com/CrossPaste/crosspaste-desktop/compare/1.0.8.925...1.0.9.974

[1.0.8] - 2024-09-04

Bug Fixes

  • πŸ› Resolve bug in application version check by @guiyanakuang in #1726
  • πŸ› Fix hash encoding and refactor it to implement as cross-platform code by @guiyanakuang in #1754
  • πŸ› Application crash on system tray icon click sigsegv error by @guiyanakuang in #1756
  • πŸ› [Linux] Fix main window display position by @guiyanakuang in #1758
  • πŸ› Use IPv4 and disable IPv6 addresses by @guiyanakuang in #1772
  • πŸ› Fix pasteboard sync bugs by @guiyanakuang in #1773
  • πŸ› Update trusted device info based on listeners by @guiyanakuang in #1785
  • πŸ› Set ChromeServiceModule files as executable before execution by @guiyanakuang in #1789

New Features

  • ✨ Add manual IP and port input for connection by @guiyanakuang in #1731
  • ✨ Support direct modification of text pasteboard content by @guiyanakuang in #1732
  • ✨ Add shortcut key for pasting primary type by @guiyanakuang in #1752
  • ✨ Detect and notify API compatibility when different client versions connect by @guiyanakuang in #1769
  • ✨ Support active refreshing of device connections by @guiyanakuang in #1777

UI Improvements

  • πŸ’„ Enhance device connection refresh interaction by @guiyanakuang in #1783

Optimizations

  • ⚑ Replace MD5 with Murmur3 128-bit hash for improved large file performance by @guiyanakuang in #1745

Refactor & Code Style

  • πŸ”¨ Move logic for binding desktop UI in AppWindowManager from commonMain to desktopMain by @guiyanakuang in #1735
  • πŸ”¨ Move cross platform utility methods to commonmain by @guiyanakuang in #1739
  • πŸ”¨ Refactor file operations using okio for cross-platform compatibility and add desktop unit tests by @guiyanakuang in #1743
  • πŸ”¨ Move PasteRealm from desktopMain to commonMain by @guiyanakuang in #1748
  • ✏️ Correct the spelling mistakes in the list of methods. by @sunxiang0918 in #1737

Documentation

  • πŸ“ Remove description of first-time chromeDriver / chrome-headless-shell download from README by @guiyanakuang in #1760
  • πŸ“ Move doc to separate directory to reduce clutter in main source folder by @guiyanakuang in #1775

Dependencies

  • ⬆️ Bump org.jetbrains.kotlinx:kotlinx-datetime from 0.6.0 to 0.6.1 by @dependabot in #1727
  • ⬆️ Bump org.jmdns:jmdns from 3.5.11 to 3.5.12 by @dependabot in #1729
  • ⬆️ Bump org.seleniumhq.selenium:selenium-manager from 4.23.1 to 4.24.0 by @dependabot in #1767
  • ⬆️ Bump org.jetbrains.kotlinx:kotlinx-serialization-json from 1.7.1 to 1.7.2 by @dependabot in #1766
  • ⬆️ Bump org.yaml:snakeyaml from 2.2 to 2.3 by @dependabot in #1768

New Contributors

  • @sunxiang0918 made their first contribution in #1737

Full Changelog: https://github.com/CrossPaste/crosspaste-desktop/compare/1.0.7.891...1.0.8.925

[1.0.7] - 2024-08-23

πŸ“¦ Reduced installation package size by 50% through optimizations

Bug Fixes

  • πŸ› Fix pasteboard listener and sync encryption UI refresh by @guiyanakuang in #1679
  • πŸ› Fix DesktopSyncManager exit exception issue by @guiyanakuang in #1683
  • πŸ› Prevent Dev/Test version from modifying boot startup flag by @guiyanakuang in #1684
  • πŸ› Reimplemented opening file copies in temporary directory by @guiyanakuang in #1685
  • πŸ› Correctly detect user proxy settings by @guiyanakuang in #1703
  • πŸ› Add missing listener for backtick (`) key by @guiyanakuang in #1704
  • πŸ› Accurately obtain local ip address by @guiyanakuang in #1705

New Features

  • ✨ Implement automatic UI display on first app launch by @guiyanakuang in #1680
  • πŸ’„ Add support for displaying creation time in pasteboard details by @guiyanakuang in #1691
  • Add Ctrl+N and Ctrl+P shortcuts to search window by @Blushyes in #1706

UI Improvements

  • πŸ’„ Token and QR code refresh to add progress bar by @guiyanakuang in #1688

Documentation

  • πŸ“ Optimize feature descriptions in README by @guiyanakuang in #1678
  • πŸ“ Create project roadmap document by @guiyanakuang in #1687
  • πŸ“ Add badges for technology stack and project information by @guiyanakuang in #1690
  • πŸ“ Add official website link to README by @guiyanakuang in #1700

Dependencies

  • ⬆️ Bump selenium from 4.23.0 to 4.23.1 by @dependabot in #1669
  • ⬆️ Bump ch.qos.logback:logback-classic from 1.5.6 to 1.5.7 by @dependabot in #1710
  • ⬆️ Bump com.valentinilk.shimmer:compose-shimmer from 1.3.0 to 1.3.1 by @dependabot in #1709
  • ⬆️ Bump com.google.guava:guava from 33.2.1-jre to 33.3.0-jre by @dependabot in #1708

Optimizations

  • πŸš€ Optimize package size: Avoid bundling chrome-driver and chrome-headless-shell by @guiyanakuang in #1698
  • πŸ“ˆ [win] Prevent exceptions from URL checks printing by @guiyanakuang in #1722

New Contributors

  • @Blushyes made their first contribution in #1706

Full Changelog: https://github.com/CrossPaste/crosspaste-desktop/compare/1.0.6.862...1.0.7.891

[1.0.6] - 2024-08-11

Bug Fixes

  • πŸ› Resolve delayed PrevAppName refresh in search UI by @guiyanakuang in #1649
  • πŸ› Correct previous app info retrieval by @guiyanakuang in #1651
  • πŸ› Fix check-metadata-url address for version checking by @guiyanakuang in #1667

New Features

  • ✨ Add default configuration to limit auto-backup file size by @guiyanakuang in #1629
  • ✨ Add default configuration to limit file size for auto-sync across devices by @guiyanakuang in #1630
  • ✨ Support customizable pasteboard storage path by @guiyanakuang in #1633
  • ✨ Add shortcut for pasting plain text by @guiyanakuang in #1640
  • ✨ Add double-click quick copy feature by @guiyanakuang in #1642
  • ✨ Add one-click clear clipboard feature excluding favorites by @guiyanakuang in #1643

UI Improvements

  • πŸ’„ Add UI configuration to modify maxBackupFileSize, enabledSyncFileSizeLimit, and maxSyncFileSize by @guiyanakuang in #1639
  • πŸ’„ Resolve text overflow in DialogButtonsView buttons by @guiyanakuang in #1652

Dependencies

  • ⬆️ Bump org.jmdns:jmdns from 3.5.9 to 3.5.11 by @dependabot in #1636
  • ⬆️ Bump kotlin from 2.0.0 to 2.0.10 by @dependabot in #1634

Refactoring and Code Quality

  • ♻️ Abstract SettingItemView component by @guiyanakuang in #1653
  • βœ… Rename test classes to follow naming conventions by @guiyanakuang in #1659
  • πŸ”¨ Decouple dependency injection from koinApplication by @guiyanakuang in #1661

Full Changelog: https://github.com/CrossPaste/crosspaste-desktop/compare/1.0.5.838...1.0.6.862

[1.0.5] - 2024-08-05

Bug Fixes

  • πŸ› [Microsoft Store] Fix bug preventing control over startup settings for apps installed from Microsoft Store by @guiyanakuang in #1604
  • πŸ› [Microsoft Store] Fix logic error in determining if the application was installed from the Microsoft Store by @guiyanakuang in #1610
  • πŸ› [Mac] Fix memory leak issue in MacosApi by @guiyanakuang in #1619
  • πŸ› [Linux] Fix clipboard detection and memory leak in pasteboard service by @guiyanakuang in #1621

New Features

  • ⚑ Get current app's tray icon position using Mac API by @guiyanakuang in #1612

Improvements

  • πŸ‘· Calculate checksum for the built release files by @guiyanakuang in #1602
  • πŸ‘· Improve Gradle task for Swift compilation by @guiyanakuang in #1614

Documents

  • πŸ“ Add badge to readme by @guiyanakuang in #1608
  • πŸ“ Enhance conceptual documentation by @guiyanakuang in #1616

Full Changelog: https://github.com/CrossPaste/crosspaste-desktop/compare/v1.0.2...v1.0.5

[1.0.2] - 2024-08-01

Bug Fixes

  • πŸ› On Linux, We Should Retrieve the Distribution Version Instead of the Kernel Version by @guiyanakuang in #1548
  • πŸ› Fixed issue with duplicate unActive main window by @guiyanakuang in #1575
  • πŸ› Fix bug in adjusting the cleanupPercentage control spinner by @guiyanakuang in #1589
  • πŸ› Fix issue where right-clicking to activate the menu on Mac causes a light spot to appear in the top left corner of the desktop by @guiyanakuang in #1593
  • πŸ› Fix issue where modifying one configuration resets other modified configurations to their default values by @guiyanakuang in #1595
  • πŸ› Fix logic for hiding the tutorial button by @guiyanakuang in #1598
  • πŸ› Fix issue where menu does not display on Mac by @guiyanakuang in #1600

New Features

  • πŸ’„ First time user guide by @guiyanakuang in #1596
  • ✨ Support for identifying whether the installation source is from the microsoft store by @guiyanakuang in #1554
  • ✨ Choose between toast and system notification based on the main UI by @guiyanakuang in #1560
  • ✨ Implement linux notifications using JNA and libnotify by @guiyanakuang in #1562
  • ✨ Support search based on pasteboard source by @guiyanakuang in #1585

Improvements

  • πŸ’„ Providing i18n for search placeholder by @guiyanakuang in #1552
  • πŸ”¨ Remove Notification References from commonMain by @guiyanakuang in #1558
  • πŸ”¨ Modify the implementation to check the availability of the new version by @guiyanakuang in #1564
  • πŸ’„ Prompt the user through the UI when a new version is available by @guiyanakuang in #1566
  • πŸ’„ Unified system and desktop icons for Windows and Linux by @guiyanakuang in #1568
  • πŸ’„ Applied theme color to default icons by @guiyanakuang in #1571
  • πŸ”¨ Extracted redirect URLs into configuration by @guiyanakuang in #1573
  • πŸ’„ Adjusted pasteboard menu and tooltip positions by @guiyanakuang in #1577
  • πŸ’„ Added tooltip to show source and type when hovering over pasteboard icon by @guiyanakuang in #1579
  • ♻️ Rename Html type to Html Rich Text by @guiyanakuang in #1587
  • πŸ’„ Optimize the UI of the spinner control by @guiyanakuang in #1591

Dependency Upgrades

  • ⬆️ Bump org.signal:libsignal-client from 0.52.5 to 0.54.0 by @dependabot in #1570

Full Changelog: https://github.com/CrossPaste/crosspaste-desktop/compare/v1.0.1...v1.0.2

[1.0.1] - 2024-07-24

Bug Fixes

  • πŸ› Fix the issue in build-release.yml where the Alibaba Cloud OSS version path was not set correctly by @guiyanakuang in #1491
  • πŸ› Fix the issue where the transparent background did not adapt to the theme by @guiyanakuang in #1493
  • πŸ› Fix the issue that FaviconLoader does not support concurrent loading by @guiyanakuang in #1497
  • πŸ› Fix the issue of failing to retrieve the paste shortcut key by @guiyanakuang in #1502
  • πŸ› Fix the bug of getting the wrong resolution of images by @guiyanakuang in #1517
  • πŸ› Fix incorrect image annotation icon by @guiyanakuang in #1519
  • πŸ› Avoid adding file type icons to the pasteboard by @guiyanakuang in #1523
  • πŸ› Avoid writing to the clipboard on the main thread by @guiyanakuang in #1525

New Features

  • ✨ Implement Thumbnail Loader by @guiyanakuang in #1509
  • πŸ’„ get the icon for the current file type by @guiyanakuang in #1500

Improvements

  • βž• Add imageio-core / imageio-jpeg for accelerated image loading by @guiyanakuang in #1529
  • πŸ”¨ Refactoring ConcurrentLoader and adding UT by @guiyanakuang in #1499
  • πŸ”¨ Refactor image loading implementation for better clarity, easier understanding, and improved extensibility by @guiyanakuang in #1511
  • πŸ’„ Use CircularProgressIndicator as the image loading screen by @guiyanakuang in #1513
  • πŸ’„ Modifying cursor state when copying pasteboards by @guiyanakuang in #1527
  • πŸ’„ Avoid that the background of the pasteboard menu affects the recognition of the icons by @guiyanakuang in #1506

Dependency Upgrades

  • ⬆️ Bump selenium from 4.22.0 to 4.23.0 by @dependabot in #1514
  • ⬆️ Bump io.mockk:mockk from 1.13.11 to 1.13.12 by @dependabot in #1516
  • ⬆️ Bump org.signal:libsignal-client from 0.52.2 to 0.52.5 by @dependabot in #1515

Full Changelog: https://github.com/CrossPaste/crosspaste-desktop/compare/v1.0.0...v1.0.1

[1.0.0] - 2024-07-12

Release Notes

CrossPaste is a cross-platform pasteboard synchronization tool that supports macOS, Windows, and Linux. This tool provides seamless pasteboard sharing between different devices and operating systems, ensuring immediate data updates and consistency. Since the inception of the project, we have made over 700 commits, dedicated to creating a secure, efficient, and user-friendly pasteboard tool.

Core Features

  • πŸ–₯️ Multi-OS Support: Seamless operation across Mac, Windows, and Linux β€” for a truly universal pasteboard.
  • πŸ”„ Real-Time Sync: Automatically syncs your pasteboard in real time across devices, even between different OS like Mac and Windows.
  • πŸ”’ End-to-End Encryption: Utilizes Signal’s end-to-end encryption protocol to keep your data secure and private.
  • πŸ“‹ Rich pasteboard Types: Supports a wide variety of pasteboard content including text, URLs, rich text, HTML, images, and files.
  • 🧹 Automatic Cleanup: Features various automatic cleanup options to efficiently manage pasteboard space without manual effort.
  • πŸ”Œ Software Compatibility: Supports pasteboard formats of mainstream software, such as Microsoft Office, Apple iWork, and LibreOffice.

Future Outlook

We will continue to develop new features and optimize existing functionalities to meet user needs and expectations. Stay tuned for updates and improvements in subsequent versions.