Skip to content

v3.1.0

Latest

Choose a tag to compare

@github-actions github-actions released this 08 Nov 17:06
da1f43d

Highlights

  • Crop video with freeform drawing, aspect-ratio presets, or exact pixel controls. On desktop, open Crop beside the screenshot button or expand Crop in the Properties sidebar. On phones, choose Crop in the bottom action bar; settings appear below the preview, and the timeline hides to give the picture more room. Done returns to the cropped preview, and Remove crop restores the full frame. Crops are saved in drafts, support undo/redo and touch controls, and apply to video, GIF, and screenshot exports before resizing and subtitles.
  • Edit more comfortably on phones with a larger preview and a bottom action bar for Trim, Subtitles, Crop, Playback, and More. Open subtitle controls when needed, adjust exact clip ranges in Trim, and expand track names from Timeline view. Pending edits, undo/redo history, and timeline position are preserved when switching tools or resizing the workspace.
  • See which stage each media source has reached while playback loads: connecting, finding playback, or preparing playback details. Sources that are ready remain available while others continue loading.
  • Connect to Plex servers faster when an earlier connection address is slow or unavailable by trying addresses in a staggered sequence.
  • Get a confirmation before leaving the editor during an active export. Reloading or closing the tab also requests a browser warning.
  • Export valid standalone FLAC files with short final frames in full. Cliparr continues to reject incomplete sources rather than silently exporting truncated audio.
  • Improve timeline playback and scrubbing, including playback boundary and audio-context suspension behavior.

Maintenance

Application dependencies and container images are updated. Container builds and deployment examples are hardened, and playback loading timings are available in the logging guide.

Upgrade notes

Existing Docker commands and Compose files retain their configured port binding, data volume, and APP_KEY. If you replace your configuration with this repository's updated Compose file, it binds port 7171 to localhost by default. For remote access, set CLIPARR_BIND_ADDRESS to an appropriate host interface and use a VPN or authenticated reverse proxy. See Access control.

Source builds and integrations: The production, development, and capture Dockerfiles have been consolidated into docker/Dockerfile with corresponding build targets. Development provider profiles, volume ownership, and custom fixture checksum settings have also changed; see the Docker guide before updating a source checkout.

Live playback integrations: The source-state stream can now report discovering and preparing. Custom clients that exhaustively handle source states must accept these values.

If you are upgrading from 2.x, follow the v3.0.0 migration instructions first.

What's Changed

  • build(cliparr): update docker images by @renovate[bot] in #291
  • fix(cliparr): update npm dependencies by @renovate[bot] in #290
  • security(cliparr): consolidate and harden Docker environments by @KyleTryon in #292
  • security(cliparr): harden deployment examples in the docs by @KyleTryon in #294
  • perf(cliparr): run Docker compile stages on the build platform by @KyleTryon in #295
  • fix(cliparr): default CLIPARR_VERSION for local builds by @KyleTryon in #293
  • fix(frontend): protect active exports from navigation by @KyleTryon in #296
  • perf(server): stagger Plex connection attempts by @KyleTryon in #298
  • feat(cliparr): show playback loading stages and timings by @KyleTryon in #299
  • docs(cliparr): update caddy:2.11.7 docker digest to 36c24ad by @renovate[bot] in #300
  • fix(cliparr): update application container images by @renovate[bot] in #301
  • fix(frontend): restore FLAC exports with Mediabunny upgrade by @KyleTryon in #297
  • build(frontend): update canvas timeline to 0.7.0 by @KyleTryon in #302
  • docs(cliparr): prepare 3.1.0 release notes by @KyleTryon in #303
  • feat(frontend): add video cropping and property panels by @KyleTryon in #305
  • fix(www): restore podcast audio seeking by @KyleTryon in #306
  • fix(cliparr): refresh container and CI pins by @KyleTryon in #307
  • feat(frontend): improve mobile video editing workspace by @KyleTryon in #309
  • fix(frontend): smooth sidebar accordion transitions by @KyleTryon in #310
  • docs(cliparr): prepare 3.1 release readiness by @KyleTryon in #312
  • fix(frontend): keep mobile timeline scrollbar drags active by @KyleTryon in #313
  • fix(frontend): stabilize loading states by @KyleTryon in #314
  • fix(cliparr): update npm dependencies by @renovate[bot] in #316
  • chore(cliparr): update node.js to v26 by @renovate[bot] in #317
  • docs(cliparr): update caddy docker tag to v2.11.9 by @renovate[bot] in #315
  • security(cliparr): fix runtime zlib and update CI to Node.js 26 by @renovate[bot] in #318
  • docs(cliparr): streamline repository skills by @KyleTryon in #319
  • fix(frontend): show new subtitles on paused video frames by @KyleTryon in #322
  • fix(frontend): improve mobile editor interactions by @KyleTryon in #323
  • fix(frontend): stabilize paused subtitle browser checks by @KyleTryon in #324
  • fix(frontend): keep playback status in dashboard header by @KyleTryon in #325
  • ci(cliparr): scan both production image architectures by @KyleTryon in #326
  • build(types): centralize Node typings in the pnpm catalog by @KyleTryon in #327
  • ci(node): pin the CI toolchain through .nvmrc by @KyleTryon in #328
  • feat(frontend): add a mobile export drawer and simplify desktop controls by @KyleTryon in #331
  • build(cliparr): require Node 26 across source and containers by @KyleTryon in #329

Full Changelog: v3.0.1...v3.1.0

Docker image

Published to ghcr.io/techsquidtv/cliparr.

docker pull ghcr.io/techsquidtv/cliparr:3.1.0

Tags:

  • ghcr.io/techsquidtv/cliparr:3.1.0
  • ghcr.io/techsquidtv/cliparr:3.1
  • ghcr.io/techsquidtv/cliparr:latest
  • ghcr.io/techsquidtv/cliparr:sha-da1f43d

Digest: sha256:f5759197d8127419192ba68e456c7e8863c255cbf926a0f6809b3a68114946b1