Releases: floccusaddon/floccus
v5.8.6
v5.8.5
Fixed
- [native] fix: Properly serialize cache
v5.8.4
- feat(Logger): Persist logs intermittently
- feat(NewAccount): Add predefined webdav service URLs
- fix(Controller): Only schedule sync if current error is transient
- fix: Display allowRedirects option on mobile
- fix(SyncProcess): Fix serialization for continuation persistence
- Fix: Reduce memory pressure by reducing ACTION_CONCURRENCY
- fix(Unidirectional): Only do a single Scanner pass to improve performance
- fix(childrenSimilarity): Make O(n) instead of O(n²)
- fix: Fix typeof undefined checks to handle null
- fix(Diff): Do not call .toString on null
- fix(Folder#toJSON): Make sure children are properly serialized
- fix(BrowserAccountStorage): Use setEntry instead of changeEntry
- fix(Caching#orderFolder): Fix orderFolder algorithm
- fix(LocalTabs): Properly distinguish between window IDs and group IDs
- fix(continuation): Fix continuation loading
- fix(index): Update index incrementally instead of recreating it every time
- fix(SyncProcess): Reduce size of continuation on disk to prevent breaking sync with large amounts of bookmarks
- fix(CachingAdapter): Whitelist more browser-specific URL schemes
- fix(Non-Atomic adapters): Reduce HTTP request parallelism for better throughput
- fix(Account): Add log statement for continuation loading error
- fix(Mappings#remove): Correct logic to always handle both remote and local IDs
- chore: Update dependencies
Note: APK unpublished due to faulty build
v5.8.3
Fixed
- fix(Logger): Trim logs regularly to avoid memory leak
- fix(Scanner): Remove Log spam
- fix(LocalTabs): Fix dummyTab workaround for tab group creation on firefox
- fix(LocalTabs): Do not parseInt(windowId)
- fix(css): Use proper css
- fix(Account#progressCallback): Prevent errors getting mappings after sync has finished
- fix: Multiple small hardenings
- fix(Account#sync): Do not re-init account if failsafe triggers
- fix: show warning on mobile if browser doesn't match
- fix(failsafe): be more precise about where bookmarks are added/deleted
- fix(WebDAV): Use includeCredentials option again
- fix(Chrome): Prevent chrome from killing our worker while it's syncing
- [native] fix: Make breadcrumbs clickable again
v5.8.2
Fixed
- fix: Resume sync with reset cache after MappingFailure
- fix(DescriptionAccountcreated): Mention that combining floccus with browser sync doesn't work
- fix: Introduce proper XbelParseError
- fix: Introduce proper error for invalid URL
- fix: Try to fix 'Calling getCacheTree() of undefined' error
- fix: Make Caching#orderFolder behave like BrowserTree#orderFolder to avoid ordering mistakes
- fix: Implement Garbage Collection for mappings
v5.8.1
Fixed
- [native] fix: Don't allow import of git profiles
- fix: Make cancelSync work more immediately on Firefox
- fix: Don't get stuck on syncing in firefox when waking up from suspend
v5.8.0
New
- enh: Remember last used account
- enh(GoogleDrive): Add a HTTP request timeout
- feat: Split interval based sync and change-based sync into two options
Fixed
- [native] fix(NativeApp): Don't use css inset property
- [native] fix: Refuse to import gdrive profiles, because it doesn't work anymore
- fix(CachingAdapter): set initialTreeHash after getBookmarksTree
- fix(browser-api): Do not carry context into each callback (Improves memory consumption)
- fix: Remove confusing detail from E020 message
- fix(Folder#inspect): Make hash visible again
- [native] Fix DialogChooseFolder2: keep header fixed, make treeview scrollable with dynamic max-height unknown
- fix(SyncProcess): Catch throttledCb cancelled error
- fix(Nextcloudbookmarks): Fix 404 error on capabilities endpoint
v5.7.0
Summary
-
Sync notifications – You’ll now see “sync in progress” and “sync complete” alerts on Android and iOS
-
Search improvements – The app remembers the last folder you searched in, shows folder paths in results and lets you search for folders.
-
Feedback – Submit one‑off feedback directly from the app.
-
Messaging – TLS is now mentioned in the E017 explanation.
-
Sync logic – Fixed issues with reorders, concurrency and continuation handling during interrupted syncs.
-
Account progress – Cache and mappings now persist for atomic backends.
-
Browser tree – Concurrency limited to 1 to avoid race conditions.
-
Localization – Added translations for many languages (ro_RO, el, it, fi, cs, pl, sv, tr, et, ko_KR, ru, de, ja, pt, zh_CN, fr, es).
-
Scrolling – Capacitor status bar plugin now prevents content from scrolling under the status bar.
-
Local tabs – New tab groups stay alive long enough for tabs to be added.
-
General – Cancelled local tree operations, ensured skipped reorders are retracted and cleared continuations properly.
-
Overall sync performance has been optimized, reducing wait times and resource usage.
New
- [native] feat(notifications): Send 'sync in progress' and 'sync complete' notifications
- [native] feat(search): Remember last used folder across app starts
- [native] feat(search): Display folder path for folder search results
- [native] feat(search): Allow searching for folders
- feat(BrowserController): setUninstallURL
- [native] feat(search): display folder path for search results
- feat(hashing): Add support for xxhash3
- feat: Optionally support murmur3 + implement capabilities negotiation
- feat(BrowserController): Listen to tab events
- feat(AccountCard): Mention FAQ when errors occur
- feat(telemetry): send used adapter along with error events to sentry, if enabled (opt-in)
- feat(Feedback form): Allow submitting one-off feedback
- feat(HtmlSerializer): Use auto-inc IDs as a fallback when parsing
Fixed
- fix(messages): Mention TLS in E017 explanation
- fix(reconcileDiffs): Don't throw away REORDERs if concurrent reorder is empty
- fix(Account#progressCallback): persist cache and mappings for atomic backends
- fix({Default,Merge}SyncProcess#reconcileDiffs): Restrict concurrency
- fix(DefaultSyncProcess#reconcileDiffs): Use the right findChainCache
- fix(MergeSyncProcess): reconcileDiffs was outdated
- fix(BrowserTree): Set concurrency to 1
- Translate messages.json in ro_RO,el,it,fi,cs,pl,sv,tr,et,ko_KR,ru,de,de,ja,pt,zh_CN,fr,es
- [native] fix: added the capacitor status bar plugin to fix scrolling content over the status bar (Thanks to @yougotwill)
- fix(SyncProcess): Make sure to cancel progress callback throttling in the end
- fix(continuations): Set current continuation to null at the very end
- fix(SyncProcess): Make sure skipped reorders are retracted
- fix: Allow cancelling local tree operations as well
- fix(interrupted sync): Allow storing + restart of stage 3 to/from continuation
- fix(interrupted sync): Set back old cacheTree upon loading pending continuation
- fix(SyncStrategy): Fix Continuation loading
- perf: Improve overall sync performance
- fix(NextcloudBookmarks): Fix ticket failure retry mechanism
- fix(NextcloudBookmarks): Improve ticket failure retry mechanism
- feat(NextcloudBookmarks): Support ticket authentication
- fix(NextcloudBookmarks): Fix checkFeatureJavascriptLinks
- feat(NextcloudBookmarks): Use negotiated hash function from hashSettings
- feat(NextcloudBookmarks): Use capabilities for feature detection
- fix(LocalTabs): Make sure new groups live long enough for tabs to be added to them
- fix(GoogleDrive): Improve error handling
v5.6.0
New
- New backend: KaraKeep
- Support syncing tab groups
- [Native app] Improved handling of share intents
Fixed
- Make syncing with Linkwarden work again: Switch to new search endpoint
- Improve syncing correctness: Fix ID comparisons
- Improve syncing correctness: reconcileReorderings based on both donePlans
- Improve syncing correctness: Fix mappable() function
- Improve syncing correctness: Do not move items across folders in orderFolder()
- fix: Fix "failed to map parentId" errors
- Ignore permissions when using Orion
- Improve Description for Bookmarksfile
- Display more meaningful explanation for server target
- Never force-push when syncing via git
- Catch errors when parsing XML
- Allow syncing root folder in chrome again
- catch errors from git.push operations