github Sync-in/server v2.5.2

5 hours ago

Highlights

ui-refresh-black
  • Refined navigation and accessibility
    Sidebar, header, breadcrumbs, toolbar actions, and mobile navigation have been streamlined. Navigation states and colors are more consistent, gallery-size controls are keyboard-accessible, and touch devices no longer display persistent hover tooltips.

  • Unified local and global search
    Local filtering, filename search, and full-text content search are now centralized in a responsive navbar control. Dedicated Ctrl/ shortcuts provide quick access to each search mode without overriding browser shortcuts while another input is focused.

  • Faster interface loading
    Main route components and file viewers are now loaded on demand, reducing the initial frontend workload. Viewers also provide dedicated loading and error states.

  • Faster and more memory-efficient file operations
    Copy operations now use copy-on-write reflinks when supported, with an automatic fallback to standard copies. 

  • Safer trash management
    Trash bins can now be emptied directly while preserving their physical root directories. Internal and special filesystem entries are protected, and the interface automatically refreshes when asynchronous deletion tasks complete.

🐞 Bug Fixes

  • More reliable session renewal
    Concurrent requests now share a single token-refresh operation and are safely replayed with the latest CSRF token. Authentication refreshes are restricted to same-origin requests.

  • Desktop sessions preserved during service interruptions
    Temporary connection failures and 503 responses no longer sign users out of the desktop application. The interruption is reported while the existing session remains available for recovery.

  • Cache cleanup recovery after database outages
    Sync-in retries the MariaDB event scheduler when the database recovers. If it remains unavailable or lacks sufficient privileges, a single internal cleanup scheduler is retained as a fallback.

  • Clearer Docker database configuration failures
    Docker startup now stops immediately with an explicit error when the MySQL URL is missing, instead of retrying a configuration error as though it were a temporary connection failure.

  • Improved filesystem identifier compatibility
    Valid negative inode-based file identifiers, including large negative values, are no longer incorrectly rejected.

  • Cleaner server startup
    Routine bootstrap messages are suppressed while warnings and errors remain visible.

  • Updated frontend dependencies and translations
    Deprecated Angular packages were removed, dependencies were refreshed, unused translation entries were cleaned up, and the Dutch translations for recent items were corrected.

Contributors: @Stephan-P


Features

  • frontend:search: centralize local and global search in the navbar (68805c2)
  • trash: support trash emptying without deleting their physical roots (588c8bb)

Bug Fixes

  • auth: preserve desktop app session during service interruptions (0bbb3b6)
  • backend:cache: retry MariaDB event scheduler after database recovery (d4b965e)
  • backend:files: accept unsafe negative inode IDs (8509428)
  • backend:files: throw consistent error for unsafe filenames in unzip tests (a0652de)
  • build: fail when PDF.js assets cannot be downloaded (19caf0f)
  • docker: fail fast when MySQL URL is missing (cadd351)
  • frontend:auth: safely replay requests after session refresh (1d96f81)
  • frontend: disable tooltips on touch devices (884e421)
  • frontend: replace deprecated trash icon and expand recents layout (84ac4ed)
  • search: prevent browser shortcuts when input is focused (a1ef31c)

Don't miss a new server release

NewReleases is sending notifications on new releases.