Skip to content

v0.5.2

Choose a tag to compare

@github-actions github-actions released this 25 Aug 06:04
· 556 commits to main since this release
988767d

Important

Upgrade notes. v0.5.2 adds no numbered database migration. Existing
databases remain on schema 032, and fresh installations continue using
baseline/032_v0.5.0.sql. An upgrade from v0.5.1 can start normally. When
upgrading directly from a release older than v0.5.0, run the complete
Sync work metadata workflow after startup so existing works receive the
current multilingual metadata projection.

Kikoto v0.5.2 improves media compatibility, translated-work circle
projections, responsive browsing, initial load performance, and release
validation.

Library And Work Detail

  • Library, Favorites, Circles, and Voice Actors keep their existing results
    visible during refreshes and show a non-blocking status indicator instead of
    shifting the browse layout.
  • Mobile library search can be hidden and reopened without losing its query or
    browse scope. Selection controls remain anchored inside the usable viewport,
    support keyboard navigation, and do not resize or scroll-lock fixed mobile
    surfaces.
  • Catalog-only work cards now receive a stable empty source-tag collection,
    keeping source badges predictable when no media location is available.

Sources And Remote Fetch

  • Circle catalog discovery now projects translated editions to the circle that
    owns the canonical origin work while retaining the source party and provider
    provenance. Translation-only parties are filtered from ordinary catalog
    actions, and custom circle workflows use the same visibility boundary.

Metadata And Scans

  • Translation classification uses persisted edition metadata and origin maker
    relationships rather than a hard-coded provider party. Origin circles can
    therefore receive translated catalog works without creating a second work
    identity.

Playback

  • Local and cached media is inspected with FFprobe. Browser-compatible formats
    stream directly with range support; other supported audio and video files are
    converted by FFmpeg in real time to an MP3 or fragmented H.264/AAC stream,
    without creating a playback derivative under /cache.
  • The player reports browser audio and video capabilities when selecting a
    stream and retries local or cached playback through realtime conversion when
    native playback cannot open the source. Converted streams are bounded and do
    not provide random range seeking.
  • Tracked remote and remote-preview media is proxied through the configured
    source policy without exposing the upstream URL. Range and conditional
    request headers are forwarded, while remote playback remains separate from
    both FFmpeg conversion and the optional remote-source cache workflow.
  • The production image includes ffmpeg and ffprobe; other deployments must
    provide both binaries on the backend process PATH.

Operations And Reliability

  • The application icon is now consistent across the web app, PWA assets,
    Android resources, and project documentation.
  • Canonical validation now includes cross-platform Go formatting and pinned
    Go lint checks. Android dependency verification also covers IDE-resolved
    source and sample artifacts, while CI formatting and player E2E checks are
    robust to Windows line endings and stream query parameters.
  • Locale resources, the command palette, and workflow launch dialog are loaded
    on demand so the initial frontend bundle contains less inactive code.
  • Frontend class-name helpers now apply Tailwind conflict merging only at
    component override boundaries, reducing unnecessary styling work while
    preserving caller overrides.

Known Issue

  • Android 10 APK builds remain affected by the upstream Capacitor keyboard
    insets issue. Browser use on Android 10 is not affected.