Releases: lestex/torrnado
Releases · lestex/torrnado
Release list
v0.1.0
0.1.0 - 2026-08-07
Features
- format: Human-readable bytes, rates, ratios and ETAs
- engine: Torrent id, state and priority types
- engine: Snapshot, detail and event types
- engine: In-memory engine with event subscriptions
- engine: Add, remove and pause torrents in memory
- ipc: Gob message envelope and request types
- ipc: Unix socket server
- ipc: Dispatch requests to the engine
- ipc: Push engine events to connected clients
- ipc: Client with call/reply multiplexing
- cmd: Root command and daemon subcommand
- cmd: Dial the daemon, spawning one if needed
- cmd: List subcommand
- cmd: Add subcommand
- engine: Start a real torrent client
- engine: Track real torrents instead of simulated ones
- engine: Real speeds, ratio, ETA and peer counts
- engine: Report files, peers and trackers
- engine: Pause by disallowing data transfer
- engine: Per-file download priorities
- engine: Global and per-torrent rate limits
- engine: Recheck, move storage, and daemon-wide stats
- ipc: Expose the remaining engine operations
- cmd: Remove, pause and resume subcommands
- cmd: Recheck and priority subcommands
- cmd: Limit and move subcommands
- config: XDG-aware paths
- config: Rate parsing as a TOML-decodable type
- config: Load and validate config.toml
- cmd: Read settings from config.toml
- batch: Expand directories, globs and magnet lists
- batch: Fetch .torrent files over http(s)
- ipc: Add torrents in one batch call
- cmd: Expand add arguments through batch
- theme: Named colour palettes with eight built-ins
- theme: User themes from TOML files
- config: Choose the theme from config.toml
- tui: Bubbletea model, messages and event loop
- cmd: Open the TUI when run with no arguments
- tui: Pane geometry computed from the terminal size
- tui: Torrent list pane and footer
- tui: Status filter sidebar
- tui: Keymap with config overrides
- tui: Cursor navigation and selection
- tui: Pause, remove and recheck from the list
- tui: Search torrents by name
- tui: Keybind reference on h
- tui: Command palette on :
- engine: Piece map and richer peer detail
- tui: Docked detail pane with tabs and pane focus
- tui: Peers tab
- tui: Files tab with priority editing
- tui: Piece completion map
- engine: Open a file for streaming while it downloads
- stream: Serve torrent files over loopback HTTP
- ipc: PreviewURL, and start the stream server with the daemon
- player: Launch a configurable media player, detached
- tui: Stream the selected file with v
- cmd: Torrnado preview
- ipc: One daemon per socket, enforced by a lock file
- cli: List --watch redraws until interrupted
- tui: Vim's dd chord for remove
- tui: Enter moves focus into the detail pane
- Show how far a hash check has got
- config: Logging settings and a state directory
- logging: Text logger with levels, to stderr or a file
- engine: Route the torrent library's logs through our logger
- daemon: Log lifecycle events with timestamps
- engine: Log torrent lifecycle events
- engine: Persist the torrent session to disk
- daemon: Restore torrents on start
- daemon: Reopen the log file on SIGHUP
- docker: Image for running the daemon, and a linux test target
- systemd: Unit file, tested against a real systemd
- cli: A config command
- tui: Breathing room inside every pane
- tui: Progress as a column, one line per torrent
- tui: A wider progress bar
- tui: The progress bar grows with the terminal
- tui: Names come before the progress bar
- theme: List every theme that can be loaded
- tui: Splice a floating box over the frame
- tui: A floating theme picker
- tui: A :theme command
- tui: A status dot and labelled values in the daemon block
- vpn: Detect whether traffic leaves through a tunnel
- config: A vpn.required flag
- engine: Hold transfers until the system is on a VPN
- daemon: Wire the VPN guard to the engine
- tui: Show the VPN guard in the sidebar
- tui: Fixed-width speeds in the footer
- engine: Delete a torrent's data and keep the torrent
- ipc: A PurgeData call
- cli: Torrnado purge
- tui: X deletes the data and keeps the torrent
- engine: Report the directory holding a torrent's files
- config: An opener command
- tui: O opens the torrent's folder
- cli: Torrnado open
- cli: Torrnado version
Bug fixes
- engine: Reject a .torrent path that does not exist
- tui: Give the list the full column height
- tui: Bind the focus and tab keys
- tui: Give the list a stable order
- engine: Refuse a recheck before metadata arrives
- build: Ignore an inherited GOROOT
- engine: Closing the engine twice is safe
- engine: Port 0 really lets the OS choose
- daemon: Install signal handlers before the slow startup
- e2e: Keep the systemd test out of
make e2e - tui: Accept quoted arguments in the command palette
- engine: Report a hash check from its first tick
- engine: Move works, and shows how far its verify has got
- engine: Show check progress from a daemon that predates the flag
- tui: Status messages clear themselves
- tui: The command prompt is a prompt, not a highlight
- tui: The cursor and the selection stop hiding each other
- tui: The sidebar cursor is visible on the active filter
- tui: Don't rely on evaluation order when setting a status
- tui: A long status is shown rather than dropped
- engine: Delete the .part files too when deleting a torrent's data
- tui: V plays a torrent from anywhere, and says why when it cannot
- Fix readme
- release: Stop discarding the release notes
Dependencies
- Bump indirect deps off vulnerable versions
Which build to take: linux_amd64 for a typical server or the
Docker host, darwin_arm64 for an Apple Silicon Mac.
These binaries are built without cgo, so they keep piece-completion
state in a pure-Go database rather than the SQLite one a local
go build uses. Swapping one for the other re-verifies data already
on disk once -- it is not lost, just checked again.