github kaikozlov/localsend.koplugin v1.1.0

latest releases: v1.3.0, v1.2.3, v1.2.2...
one month ago

New Features

Self-Update from Settings

Update the plugin directly from KOReader without manual file management.

  • Tap Check for updates in the LocalSend settings menu
  • Automatically detects your device architecture (armv7/arm64)
  • Downloads and installs the matching release package
  • Just restart KOReader after updating

Extension-Based File Routing

Route files to different directories based on their extension. For example, send EPUBs to your Books folder and PDFs to Documents.

  • Configure via KOReader GUI: Menu → File type routing
  • Or via CLI: --ext-routing config.json
  • Supports a "default" fallback for unrouted file types
  • Directories are auto-created on first save

V3 Protocol Support

Added comprehensive support for LocalSend V3 protocol, improving compatibility with newer LocalSend clients.

WebRTC Token Refresh

Long-running receiver sessions now automatically refresh WebRTC tokens every 30 minutes, preventing disconnections during extended use.

Improvements

  • Session timeout: Idle sessions now expire after 1 minute of inactivity, preventing stale sessions from blocking new uploads
  • Activity tracking: Large file transfers keep sessions alive indefinitely (activity updates rate-limited to every 10 seconds)
  • Apostrophe support: Device names like "Kai's Kindle" now work correctly
  • Idempotent firewall rules: Lua firewall rules no longer create duplicates when called multiple times
  • Port validation: Firewall commands now validate port numbers before execution

Bug Fixes

  • Fix slice append mutation in sender nonce concatenation
  • Bound FindUniquePath loop to prevent infinite iteration (max 10,000 attempts)
  • Return copy from FileTokens() to prevent external map modification
  • Fix race condition in AcceptFile() by moving atomic increment inside lock
  • Properly start/stop session cleanup goroutine in receiver lifecycle
  • Add graceful shutdown with 5-second timeout for web server
  • Fix 50+ error handling issues (unchecked return values)
  • Sanitize filenames in transfer logs to prevent log injection

Installation

  1. Download the zip for your device's architecture:
    • armv7 — Kindle, Kobo (all models), reMarkable 2, PocketBook
    • arm64 — reMarkable Paper Pro
  2. Extract localsend.koplugin to your KOReader plugins directory:
    • Kindle: /mnt/us/koreader/plugins/
    • Kobo: /.adds/koreader/plugins/
    • reMarkable: /home/root/koreader/plugins/
  3. Restart KOReader

See README for usage instructions.

Don't miss a new localsend.koplugin release

NewReleases is sending notifications on new releases.