Changelog for Octi
v1.0.0-beta1 - May 01, 2026
What’s Changed
Enhancements
- Rewrite UI from Fragments and XML to Jetpack Compose by @d4rken in #174
- Add theme color and contrast style settings by @d4rken in #176
- Add Compose previews to all major screens by @d4rken in #177
- Show upgrade prompt when tapping locked theme settings by @d4rken in #178
- Improve DataStore with deduplication, error resilience, and logging by @d4rken in #179
- Fix build warnings for AGP 9.0 and Kotlin K2 compiler by @d4rken in #180
- Improve debug recorder and contact support reliability by @d4rken in #187
- Require time on sponsors page before unlocking FOSS pro by @d4rken in #189
- Add configurable sync intervals by @d4rken in #192
- Use new round mascot image on onboarding and upgrade screens by @d4rken in #193
- Add sync status bar to dashboard by @d4rken in #194
- Migrate battery widget from RemoteViews to Glance by @d4rken in #196
- Improve upgrade card on dashboard with details and device limit hint by @d4rken in #195
- Replace dashboard module rows with visual tile grid and drag editor by @d4rken in #200
- Add instant sync with real-time notifications by @d4rken in #205
- Rename K-Server to Octi Server and add type-safe connector identification by @d4rken in #206
- Reduce Google Drive API calls with change detection and targeted sync by @d4rken in #208
- Add warning icon and red date for stale devices on dashboard by @d4rken in #210
- Add device reorder and card edit menu to dashboard by @d4rken in #211
- Skip directory traversal for event-driven Google Drive syncs by @d4rken in #212
- Show battery alert thresholds on dashboard progress bar by @d4rken in #213
- Improve clock skew detection accuracy and show offset direction by @d4rken in #217
- Show upgrade icon instead of toggle for pro-only pause sync by @d4rken in #218
- Improve apps tile to show full app name on its own line by @d4rken in #220
- Distinguish multiple sync accounts on dashboard by @d4rken in #222
- Show waiting indicator on device link host screen by @d4rken in #223
- Upgrade encryption to AES256-GCM-SIV with device compatibility detection by @d4rken in #226
- Show server device metadata on sync devices screen by @d4rken in #227
- Replace raw encryption type strings with typed enum by @d4rken in #228
- Add connector issue system for warnings and errors by @d4rken in #231
- Support adding multiple Google Drive accounts by @d4rken in #239
- Show warning details on sync connector and device screens by @d4rken in #240
- Improve sync performance and reduce redundant network operations by @d4rken in #243
- Modernize codebase and prepare for future multiplatform deployments by @d4rken in #244
- Add clipboard and network widgets by @d4rken in #242
- Choose which devices each widget shows by @d4rken in #248
- Polish file-sharing: storage UX, streaming uploads, server v2 sync by @d4rken in #252
- Surface auth-issue pause for unregistered OctiServer device by @d4rken in #255
- OctiServer: simpler create-account flow and clearer device warning by @d4rken in #256
- Fix cross-device file deletion and add delete confirmation by @d4rken in #259
- Show BETA chip in toolbar and fix Support issues link by @d4rken in #264
Bug fixes
- Force widget color configuration screen on placement by @d4rken in #173
- Point in-app changelog link to octi.darken.eu by @d4rken in #175
- Navigate to sync list after successful account creation by @d4rken in #190
- Fix stale share code when linking additional devices via KServer by @d4rken in #197
- Fix Live sync mode not showing on dashboard at startup by @d4rken in #221
- Fix transient sync error after linking a new device by @d4rken in #224
- Fix sync being cancelled when navigating between screens by @d4rken in #225
- Fix paused sync connector still showing activity by @d4rken in #229
- Fix foreground sync and WebSocket never activating by @d4rken in #230
- Fix duplicate meta module syncs every 10 seconds by @d4rken in #238
- Stop all activity on paused sync connectors by @d4rken in #246
- Read release type from version.properties by @d4rken in #247
- Fix crashes from uncaught errors in ViewModel background flows by @d4rken in #249
- Persist widget config in DataStore to survive reboot by @d4rken in #250
- Hide legacy encryption warning when modern connector reaches device by @d4rken in #260
Other changes
- Replace Moshi with kotlinx.serialization by @d4rken in #188
- Replace waitForState with asStateFlow + collectAsState by @d4rken in #183
- Update GitHub Actions to Node.js 24-compatible versions by @d4rken in #191
- Modularize dashboard UI and convert action dialogs to bottom sheets by @d4rken in #198
- Show per-module sync progress in dashboard status bar by @d4rken in #199
- Add Fastlane metadata length validation to CI by @d4rken in #201
- Upload R8 mapping files to Google Play for crash reporting by @d4rken in #202
- Remove mapping file references from Fastlane by @d4rken in #203
- Restrict GITHUB_TOKEN permissions to minimum required by @d4rken in #204
- Enable Quick Sync by default for pro users by @d4rken in #209
- Improve onboarding and add adaptive multi-column dashboard by @d4rken in #214
- Fix module data not syncing to server on idle or newly configured devices by @d4rken in #215
- Upgrade Tink API and align test dependency versions by @d4rken in #216
- Centralize experimental API opt-ins in Gradle compiler args by @d4rken in #219
- Replace battery optimization chip with reliability bottom sheet by @d4rken in #232
- Refactor sync to single-path writes with per-connector hash tracking by @d4rken in #235
- Fix last synced timestamp updating on failed or skipped sync by @d4rken in #233
- Modernize Google Drive authorization by @d4rken in #236
- Replace @file:UseSerializers with per-property annotations by @d4rken in #234
- Migrate Long milliseconds to kotlin.time.Duration by @d4rken in #245
- File sharing module by @d4rken in #185
- Migrate Pages to Actions deploy and fix changelog race by @d4rken in #251
- Upgrade addressable to 2.9.0 and json to 2.19.4 by @d4rken in #253
- Add cross-version regression test against v0.8.1 server by @d4rken in #254
- Fix dashboard issue device navigation by @d4rken in #257
- Limit free-tier file sharing to 1 file per device by @d4rken in #258
- Migrate release process to GitHub Actions by @d4rken in #261
- CI: Skip release bump-only workflow runs by @d4rken in #262
- Update translations from Crowdin by @d4rken in #263
v0.16.0-rc0 - February 18, 2026
What’s Changed
Enhancements
- Add widget color customization with presets and custom picker by @d4rken in #168
Bug fixes
- Use plurals for minutes quantity display by @d4rken in #166
Other changes
- Upgrade AGP from 9.0.0 to 9.0.1 by @d4rken in #165
- Extract missing translations from acknowledgements screen by @d4rken in #169
- Update translations by @d4rken in #170
v0.15.1-rc0 - February 13, 2026
What’s Changed
Bug fixes
- Auto-pause KServer connector on device auth failure by @d4rken in #164
v0.15.0-rc0 - February 10, 2026
What’s Changed
Enhancements
- Upgrade AGP from 8.13.2 to 9.0.0 by @d4rken in #150
- Add sort options to the apps list by @d4rken in #154
- Replace sync interval SeekBar with slider and text input dialog by @d4rken in #156
- Redesign battery widget with rounded bars and Material You colors by @d4rken in #158
- Add connectivity module with public IP, connection type, and network details by @d4rken in #159
- Add detail bottom sheets for all dashboard module rows by @d4rken in #161
- Add build type and git hash to user agent for dev builds by @d4rken in #162
Bug fixes
- Fix status bar color split in landscape mode on API 35+ by @d4rken in #147
- Fix crash when deleting device via Google Drive by @d4rken in #149
- Upgrade WorkManager from 2.7.1 to 2.11.0 by @d4rken in #151
- Fix SyncWorkerControl combine flow terminating on WorkManager exception by @d4rken in #153
- Fix system bar overlap and missing scroll on sync setup screens by @d4rken in #155
- Add Droidify and F-Droid Basic as recognized installers by @d4rken in #157
- Fix KT-73255 annotation default target warning by @d4rken in #160
Other changes
- Restructure Claude Code config into modular rule files by @d4rken in #148
- Narrow release APK glob to avoid duplicate uploads by @d4rken in #152
- Update translations by @d4rken in #163
v0.14.0-rc0 - February 03, 2026
What’s Changed
Enhancements
- Add BATTERY_LOW and BATTERY_OKAY events for immediate sync by @d4rken in #141
Bug fixes
- Fix display cutout and edge-to-edge insets in landscape mode by @d4rken in #137
Other changes
- Upgrade AGP from 8.12.2 to 8.13.2 by @d4rken in #138
- Update translations by @d4rken in #139
- Remove deprecated lifecycle-extensions and update test dependencies by @d4rken in #140
- Remove unimplemented NFC linking option by @d4rken in #142
- Remove non-debug unit test variants from CI by @d4rken in #143
- Sync: Improve SyncWorker resilience with per-operation error handling by @d4rken in #144
- Remove dead commented code from SyncWorker by @d4rken in #145
v0.13.0-rc0 - December 09, 2025
What’s Changed
Enhancements
- Sort devices alphabetically by label in widget and sync devices list by @d4rken in #133
- Add high battery notification alert for charging devices by @d4rken in #134
v0.12.1-rc0 - November 21, 2025
What’s Changed
Other changes
- Remove pro-check restriction for viewing devices in GDrive/KServer actions by @d4rken in #129
- Update translations by @d4rken in #130
v0.12.0-rc0 - September 03, 2025
What’s Changed
Enhancements
- Show temperature in Fahrenheit depending on user locale by @d4rken in #114
- Restyle limited devices by @d4rken in #116
- Add “Manage devices” action to device limit dashboard item by @d4rken in #117
- Warn of stale sync data/devices by @d4rken in #119
- Add dashboard UI improvements for device states and interactions by @d4rken in #122
Bug fixes
- Fix device limit text in dashboard by @d4rken in #115
- Fix navigation bar color in bottom sheets for light mode by @d4rken in #120
Other changes
- Refine wording and use plurals for app counts by @d4rken in #107
- Fix typo in manual link code string by @d4rken in #108
- Fix typo in Google Drive setup description by @d4rken in #109
- Update translations by @d4rken in #113
- Update Android Gradle Plugin to 8.12.2 by @d4rken in #121
- Update translations by @d4rken in #124
v0.11.2-rc0 - July 07, 2025
What’s Changed
Bug fixes
- Fix crash when entering sync settings by @d4rken in #106
v0.11.1-rc0 - July 02, 2025
What’s Changed
Other changes
- Google Play maintenance by @d4rken in #102
v0.11.0-rc0 - June 24, 2025
What’s Changed
Other changes
- Remove Twitter by @d4rken in #92
- Update default store changelog by @d4rken in #91
- Adjust build scripts (based on SDMSE) and use pinning by @d4rken in #94
- Improve changelog and add translations by @d4rken in #99
- Update, add and improve translations by @d4rken in #100
v0.10.2-rc0 - March 19, 2025
What’s Changed
Other changes
- Update privacy policy link by @d4rken in #90
v0.10.1-rc0 - March 04, 2025
What’s Changed
Enhancements
- Add translation support via crowdin.com by @d4rken in #87
Other changes
New Contributors
- @reindex-ot made their first contribution in #85
v0.10.0-rc0 - November 26, 2024
What’s Changed
Other changes
- Remove J-Server code by @d4rken in #84
v0.9.1-rc0 - September 14, 2024
What’s Changed
Enhancements
- Include install source in synced app-data (gplay, fdroid, samsung, amazon) by @d4rken in #82
Other changes
- Remove foreground service requirements and change debug log behavior by @d4rken in #81
v0.9.0-rc0 - September 13, 2024
What’s Changed
Enhancements
- Add base support for new synchronization option:
K-Serverby @d4rken in #48 - Improve device disconnect and reset behavior for K-Server by @d4rken in #52
- Provide meaningful user-agent to the server, e.g.
octi/0.8.3-rc0/FOSSby @d4rken in #53 - Improve Google Drive related behavior by @d4rken in #56
- Add option to pause sync connectors without removing them by @d4rken in #58
- Improve upgrade flow by @d4rken in #59
- Update material design and bump target API to 34 by @d4rken in #60
- Clicking entries in the app list opens their Google Play Store page by @d4rken in #61
- Material you by @d4rken in #64
- Nicer onboarding by @d4rken in #66
- Add update check for FOSS builds by @d4rken in #67
- Automatically do initial refresh when adding sync methods by @d4rken in #70
- Add screen to manage devices per connector by @d4rken in #72
- Allow entry of custom address for KServer connectors by @d4rken in #73
- Add battery low notifications by @d4rken in #75
- Improve battery module by @d4rken in #76
- Improve Google Drive sync by @d4rken in #77
- Disallow new-lines in device labels by @d4rken in #78
Bug fixes
- Fix sharecode visibility in landscape mode by @d4rken in #54
- Fix release mode issues by @d4rken in #65
- When removing a connector, also clean up its paused state by @d4rken in #71
Other changes
- fix GitHub releases link by @Hakuin123 in #37
- Update README.md by @d4rken in #47
- Bump CI JDK version by @d4rken in #49
- Remove email and add discord link in Settings>Support by @d4rken in #50
- Deprecate J-Server: Prevent creating new accounts and add info to switch to K-Server by @d4rken in #51
- Replace REQUEST_IGNORE_BATTERY_OPTIMIZATIONS with manual user prompt by @d4rken in #55
- Little improvements, debug statements and cleanup by @d4rken in #57
- Fix tests by @d4rken in #62
- Code fluff by @d4rken in #63
- Resource cleanup by @d4rken in #68
- Don’t allow going back to onboarding after reaching dashboard by @d4rken in #69
- Fix displayed information for KServer connector by @d4rken in #74
New Contributors
- @Hakuin123 made their first contribution in #37
v0.8.3-rc0 - September 12, 2023
What’s Changed
Bug fixes
- Fix crash on Android 6.0 (API 23) when determining signal wifi strength by @d4rken in #29
- Catch exception if the user doesn’t have a browser by @d4rken in #31
Other changes
- Update Spanish translation by @cyanwolfg in #16
- Update Spanish translations. by @d4rken in #22
- Remove bugsnag by @d4rken in #30
- Add extra onboarding screen by @d4rken in #32
v0.8.2-rc0 - January 06, 2023
What’s Changed
Enhancements
- Prominent disclosure for debug logs by @d4rken in #15
Other changes
- Update Spanish translation by @cyanwolfg in #14
v0.8.1-rc0 - November 14, 2022
What’s Changed
Other changes
- Update Spanish translation by @cyanwolfg in #7
v0.8.0-rc0 - November 08, 2022
What’s Changed
Enhancements
- Clipboard sharing by @d4rken in #6
Other changes
- Add Spanish translation by @cyanwolfg in #4
- Add setting to enable/disable the apps module. by @d4rken in #5
New Contributors
- @cyanwolfg made their first contribution in #4
v0.7.1-rc0 - November 04, 2022
No release notes available.
v0.7.0-rc1 - November 04, 2022
What’s Changed
Other changes
- Battery widget by @d4rken in #1
New Contributors
- @d4rken made their first contribution in #1
v0.6.1-rc1 - November 02, 2022
No release notes available.
v0.6.1-rc0 - November 02, 2022
No release notes available.
v0.6.0-rc1 - November 01, 2022
No release notes available.
v0.6.0-rc0 - November 01, 2022
No release notes available.
v0.5.2-beta0 - October 31, 2022
No release notes available.
v0.5.1-beta0 - October 29, 2022
No release notes available.
v0.5.0-beta1 - October 29, 2022
No release notes available.