github AtalayaLabs/OxiCloud v0.5.2
v0.5.2 — Performance, i18n & UI Polish

latest releases: v0.5.6, v0.5.5, v0.5.4...
one month ago

OxiCloud v0.5.2

A substantial release focused on deep performance optimizations, internationalization expansion, and UI/UX refinements across the entire stack.


Performance (Backend)

  • UUID native migration — All user/session/auth IDs moved from VARCHAR(36) to native PostgreSQL UUID, eliminating UUID-String round-trips across the storage layer
  • BLAKE3 mmap + rayon — File hashing now uses memory-mapped I/O with parallel processing, achieving zero heap allocation
  • Async dedup path — Replaced blocking Path::exists() with async try_exists() in the deduplication hot path
  • Zero-alloc DTO conversionFile to FileDto via into_parts() ownership transfer eliminates intermediate allocations
  • SQL parser optimization — Eliminated Vec<char> allocation in split_sql_statements
  • HTTP compression — Enabled gzip + Brotli with a smart content-type predicate
  • target-cpu=native — SIMD-optimized BLAKE3 and image processing via .cargo/config.toml
  • OnceLock for env varsArc<CurrentUser> in auth middleware, pre-computed query lowercase
  • Eliminated redundant PG round-trip for blob_hash after image upload

Performance (Frontend)

  • Build-time asset pipelinebuild.rs with oxc (JS minifier) + LightningCSS for optimized static assets
  • Photos append-only render — Eliminates full DOM rebuild on scroll
  • Thumbnail optimization — Switched from WebP to JPEG q=80 for faster encoding; cache-first + ETag 304 eliminates DB queries on GET
  • Denormalized media_sort_date + pre-scaled video thumbnails

Features

  • Client-side video thumbnails — Generated in-browser without ffmpeg dependency
  • i18n expansion to 14 locales — Added Hindi, Arabic, Russian, Japanese, Korean
  • Admin panel i18n — 117 translation keys, confirm modal replacing confirm(), animated tab switching, removed all inline event handlers
  • Profile page i18n — 58 translation keys with data-i18n attributes
  • Files empty state — Shows friendly message when a folder is empty (translated in all 14 locales)

Bug Fixes

  • Auth race condition — Resolved files not loading on initial visit
  • Grid/List view header — List header no longer incorrectly appears in grid mode on login
  • Login page rendering — Fixed .hidden CSS specificity issue that caused blank login page
  • View switching — Proper classList.toggle("hidden") sync across all navigation functions
  • CSP compliance — Added blob: to frame-src and media-src for PDF/video viewing; restored removal of inline handlers in admin
  • Thumbnail cleanup — Thumbnails now deleted when files are permanently removed
  • CSRF headers — Added to video thumbnail PUT requests
  • SQL schema — Added DROP TRIGGER IF EXISTS before CREATE TRIGGER
  • UUID SQL casts — Added ::uuid/::text casts in storage repos for UUID columns

UI/UX

  • Files grid cards stretch to full width (matching photos view)
  • Card border/shadow style unified between Files and Photos
  • Fixed i18n safeT() shadowing bug and translationsLoaded timing

Full Changelog: v0.5.1...v0.5.2

What's Changed

  • fix(auth): resolve race condition causing files not to load on initial visit by @jaredwolff in #178
  • Fix(admin.html): restore theme-init.js and remove inline event handlers by @vhsdream in #181

New Contributors

Full Changelog: v0.5.1...v0.5.2

Don't miss a new OxiCloud release

NewReleases is sending notifications on new releases.