Skip to content

v1.6.0: Huge, MAJOR update with all bs

Choose a tag to compare

@github-actions github-actions released this 09 Jul 09:39

Added

  • Native Hardlinking: Added hardlink_dir config parameter. Gorrent now automatically creates zero-byte hardlinks (preserving category folders) for completed downloads, allowing seamless integration with Plex/Jellyfin without interrupting the seeding process.
  • Post-Processing Scripts: Added post_script config parameter. Gorrent can now execute any script when a torrent reaches 100%. Environment variables (GORRENT_HASH, GORRENT_NAME, GORRENT_PATH, GORRENT_CATEGORY) are injected automatically. For Docker deployments, use the callback webhook instead.
  • Post-Processing State Manager: Created a background engine that writes gorrent_processed.json to data_dir to guarantee scripts and links are executed exactly once per torrent.
  • AI Skills Full Awareness: Taught Claude, Hermes, and OpenClaw how to manipulate all v1.6.0 parameters via config.json so users can enable these features strictly via natural language.

Fixed

  • RSS — Nyaa/ShowRSS magnet resolution: RSS parser now correctly extracts magnet links from <enclosure url="magnet:..."> and <torrent:magnetURI> fields. Previously only read <link>, which for Nyaa is a page URL, not a magnet.
  • RSS — history key stability: History tracker now uses the magnet URI as key instead of <link>, making it consistent across feeds that report items differently.
  • RSS — unnecessary disk writes: rss_history.json is now saved once per feed poll instead of once per matched item.
  • Post-Processor — wrong state directory: gorrent_processed.json now goes to data_dir instead of download_dir, consistent with rss_history.json.
  • Post-Processor — bash hardcoded: post_script now runs the script directly as an executable instead of via bash, allowing native binaries and properly-configured scripts to work.
  • Security — Hardlink path traversal: Added validation that hardlink destination is always under hardlink_dir to prevent malicious torrent names from escaping the target directory.
  • WebSocket — idle goroutine leak: WS handler now sends periodic pings and sets a 60s read deadline, disconnecting dead clients automatically.
  • Status API — BytesReadData serialized as object: Fixed stats.BytesReadData to use .Int64() so it serializes correctly as a number in JSON.
  • Performance — regex compiled per request: Infohash validation regex is now a package-level var instead of being recompiled on every download request.
  • Docker — data/ volume not mounted: docker-compose.yml now mounts ./data:/data so RSS history and post-processing state survive container restarts.
  • Docker — missing healthcheck: docker-compose.yml now uses /health endpoint for Docker health monitoring.


📦 Downloads

Operating System Download Archive
Windows (x64) gorrent-1.6.0-windows-amd64.zip
Linux (x64) gorrent-1.6.0-linux-amd64.tar.gz
Linux (ARM64) gorrent-1.6.0-linux-arm64.tar.gz
macOS (Intel) gorrent-1.6.0-darwin-amd64.tar.gz
macOS (Apple Silicon) gorrent-1.6.0-darwin-arm64.tar.gz

Docker Images (multi‑arch: amd64 + arm64):

  • GHCR: docker pull ghcr.io/x-name15/gorrent:v1.6.0
  • GHCR Latest: docker pull ghcr.io/x-name15/gorrent:latest

View Full CHANGELOG