Skip to content

Releases: Kheopsian/Hydranos

v4.4.4

Choose a tag to compare

@github-actions github-actions released this 15 Oct 23:24

Platforms: linux, windows

Changes in v4.4.3..v4.4.4:

  • release: v4.4.4 -- the CVE sweep, security fixes from the cross-client CVE audit
  • fix(security): hold off forged .torrent, peer, DHT and UI inputs from the CVE sweep

v4.4.3

Choose a tag to compare

@github-actions github-actions released this 15 Oct 21:28

Platforms: linux, windows

Changes in v4.4.2..v4.4.3:

  • release: v4.4.3 -- a peer can no longer crash the client, and two hardlink columns
  • fix(engine): bound bencode recursion so a peer or tracker cannot crash the daemon
  • fix(engine): a stopped torrent takes no peer, shows its real state, and is stopped again if it runs
  • fix(engine): a skip_checking add on files that are not there is an error, not a seed
  • feat(ui): the hoard list has a Hardlinks column and an External hardlinks column

v4.4.2

Choose a tag to compare

@github-actions github-actions released this 15 Oct 14:05

Platforms: linux, windows

Changes in v4.4.1..v4.4.2:

  • release: v4.4.2 -- a slow disk cannot fill the RAM, a fresh install downloads at once, and the last blockers before a wider announcement
  • test(engine): a fresh install has its piece hashes from the first start
  • fix(engine): a fresh install accepts pieces from its first start
  • fix(engine): a download memory budget, so a slow disk cannot fill the RAM
  • docs(magnet): a resolution is kept off the default route by bind_device and SOCKS5, not a mark
  • docs: fwmark is applied to tracker dials only, and Hydranos never sets it
  • fix(packaging): CAP_NET_ADMIN is opt-in in the systemd unit [linux]
  • fix(ui): Advanced settings show the true defaults, the live keys, and not the Network tab's
  • fix(wireguard): a tunnel's source rule goes with it, and the unit can make one [linux]
  • fix: a paged filtered list, setup during start, and RSS tags and switch
  • fix: Force download starts a torrent the user stopped
  • fix(api): the announce_proxy password is masked like the SOCKS5 ones

v4.4.1

Choose a tag to compare

@github-actions github-actions released this 13 Oct 20:06

Platforms: linux, windows

Changes in v4.4.0..v4.4.1:

  • release: v4.4.1 -- moves that keep their data, torrents that cannot lose their row, and watched folders on network shares
  • fix(watch): a share that stops answering no longer stalls every folder
  • fix(watch): UNC shares are accepted, and a folder says how many files it sees
  • fix(api): a torrent the engine runs with no store row can be removed
  • fix(store): the reconcile no longer takes a torrent being added for an orphan
  • fix(ui): filter chips keep their width when the counts narrow
  • fix: categories keep their mode and their name, forced torrents run, refusals are not 500
  • fix: moves, duplicates, graduations and Start no longer damage data
  • docs(readme): what 4.4 brings, and the new wiki pages

v4.4.0

Choose a tag to compare

@github-actions github-actions released this 10 Oct 18:24

Platforms: linux, windows

Changes in v4.3.2..v4.4.0:

  • release: v4.4.0 -- RSS, download order, qBittorrent's queue and share limits, and the 4.3 gaps closed
  • docs: bring README, API.md, conformance and SECURITY up to 4.4
  • fix(ui): TRIM after drain sits on the drain row, next to the quota
  • fix(shim): num_incomplete is the tracker's leechers, not the connections
  • feat(announce): scrape the torrents no tracker has answered for
  • feat(bench): real line test, A/B comparison and race snapshots
  • fix(shim): magnets keep their add options; session totals and DHT nodes are real
  • feat(queue): slow torrents leave the count, as qBittorrent's "do not count slow torrents"
  • fix(download): a piece in flight costs the blocks received, and a peer that stops sending lets go
  • feat: RSS feeds and rules; download order (file priorities, sequential, first/last piece)
  • fix(links): the hardlink index no longer doubles the client's memory
  • perf(pathclaim): find a path's owners through a save_path index in the store
  • fix(add): a torrent no longer overwrites another torrent's files
  • fix(move): a copy of this torrent in another engine reading the same files blocks the move
  • fix(delete): decide which files go by path, not by how many copies the store lists
  • feat(drain): TRIM a race volume after a drain frees space on it
  • fix(ui): a hoard row only takes updates from the hoard engine

v4.3.2

Choose a tag to compare

@github-actions github-actions released this 06 Oct 14:44

Platforms: linux, windows

Changes in v4.3.1..v4.3.2:

  • release: v4.3.2 -- managed WireGuard that holds, a kill switch that follows the mode
  • fix(network): peers are told the live public port; a partial network-mode save keeps the rest
  • fix(network): NAT-PMP through a tunnel is a translation; kernel replies stay in the tunnel
  • fix(ui): the peer list scrolls inside its card; fitted headers are measured as drawn
  • feat(network): the kill switch follows the network mode; unassigned engines are blocked, the daemon's requests follow the mode
  • fix(ui): fitted columns fill the screen; the volume quota joins the Auto drain line
  • feat(network, nodes, shim, observability): the remaining 4.3 gaps -- ports, nodes, qBit routes, health, metrics, logs
  • feat(lsd, network): Local Service Discovery; the daemon's own requests get an exit, a kill switch, and tunnel DNS
  • feat(limits, network): share limits and queueing as in qBittorrent; managed WireGuard; DHT off behind SOCKS5
  • fix(ui): the Content tab shows what each file has downloaded and what is missing
  • feat(limits, network): real speed caps, opt-in choker, real qBit ratio; SOCKS5 and PROXY-v2 reach the engine
  • changelog: Unreleased -- the dead-key warnings and the removed surface
  • fix(config, ui, api): dead keys are named at startup, dead surface goes
  • docs(conformance): the race registration retry is 5 s for 6 minutes, and its test has a new name

v4.3.1

Choose a tag to compare

@github-actions github-actions released this 05 Oct 08:53

Platforms: linux, windows

Changes in v4.3.0..v4.3.1:

  • release: v4.3.1 -- cross-seed sees the library
  • docs(api): the API reference describes 4.3.1, not a 3.x internal note
  • feat(install): --user installs a node without root, under XDG and a systemd user unit
  • fix(cli, shutdown): HYDRANOS_STOP_TIMEOUT reads 60s and 2m again; unknown arguments are warned about
  • fix(network): the gluetun port is followed, and announces carry the port the listener is on
  • fix(race-drain): a volume can declare its own capacity, and every percentage says what it is of
  • fix(shim, import): cross-seed sees the library; a qBittorrent import retries and says what it did
  • docs: drop the 3.x agent/front design notes and the engine binary Windows no longer ships
  • fix(engines): the Race tab, list filters, engine removal and the startup gate
  • fix(shim): the qBittorrent API answers with the torrents' real state
  • fix(install): enrolment, packaging and logs do what they claim
  • fix(config): unwritten keys take their documented defaults; tracker tables can be saved
  • fix(workflows, jobs): the editor keeps what it shows; conditions and cancel do what they say
  • fix(categories, selection): rename, delete and orphans work; rows act on their own copy
  • fix(add): the Add tab's options are applied, and a refusal says what was wrong
  • feat(announce): send stopped when a torrent is removed and when the daemon stops
  • fix(race): announce on the tracker's interval, retry an unregistered torrent every 5 s
  • fix(egress): each engine dials through its own queue; uTP is never opened unpinned
  • fix(announce): announces leave by the engine's interface, and respect enable_ipv6
  • fix(trackers): edits are saved at once; "+ Manual host" no longer releases a tracker
  • fix(move): a torrent moving between engines arrives as it left, or not at all
  • fix(shutdown): every stop flushes resume data; purge and restore drop one copy
  • fix(auth): a password change is stored, and first-run setup trusts the socket peer

v4.3.0

Choose a tag to compare

@github-actions github-actions released this 03 Oct 15:42

Platforms: linux, windows

Changes in v4.2.4..v4.3.0:

  • release: v4.3.0
  • test(ipfilter): documentation addresses in the tests
  • fix(ui): fit a column to its badges, not only to its text
  • fix(linkscan): publish the stored hardlink summary before the settle
  • fix(delete): keep the files another torrent reads
  • fix(ui): a column turned on showed at 0px; double-click a grip to fit all
  • fix(api): set location keeps a trailing space in the folder name
  • fix(ui): the Trackers tab on a phone, one card per row
  • fix(ui): two cards per row on the overview
  • feat(workflows): move files to a folder, add trackers
  • fix(ui): categories in alphabetical order, whatever their case
  • feat(ui): sortable, reorderable peer lists in the detail panels
  • feat(workflows): run a workflow when a torrent is added
  • fix(import): qBittorrent and Transmission imports, ported for real
  • docs: one comparison, at the scale Hydranos is built for
  • feat(overview): seed size per tracker, and the space it takes on disk
  • feat(hoard): one ratio definition, and Hardlinks / Checked columns
  • fix(ui): the hoard search box keeps one line and a usable width
  • fix(tags): read one torrent's tags the way every reader does
  • feat(ui): a progress panel for bulk actions
  • fix(counters): count the session from bytes moved, not lifetime sums minus marks
  • fix(workflows): tag one torrent by reading its row, not the engine's
  • docs(conformance): BEP 47 in its place
  • feat(v2): BitTorrent v2 torrents, and pad files that stay off the disk
  • feat(add): watched folders
  • feat(net): an IP filter, lists and bans
  • feat(magnets): magnet links, end to end
  • feat(workflows): a webhook action
  • feat(trackers): UDP trackers, BEP 15 with BEP 41
  • test(workflows): the recheck, the hour and the restart, locked down
  • feat(workflows): run when a download completes
  • fix(categories): stop offering the routing 4.x never applied
  • feat(torrents): set location without a category; optional Save Path column
  • fix(trackers): the per-tracker pass runs on a blocking thread; warn at 5 s
  • fix(trackers): name the torrent in the errors dialog; one line when v4 and v6 agree
  • feat(trackers): a tracker's errors open on a click, in its own words
  • feat(trackers): real per-tracker figures, bucketed chart, compacted history
  • perf(trackers): per-tracker stats read only what they show
  • feat(announce): race like qBittorrent + autobrr, without crossing a tracker's floor
  • fix(announce): tracker conformance an operator can check -- and interop to prove it
  • perf(store): 64 MB page cache for the writer, set writes in lots of 10 000
  • perf(selection): store-only actions are one write, not a request per torrent
  • feat(selection): every selection action takes a filter
  • feat(export): download a selection as .torrent files, hashes or CSV
  • docs: a README for a million torrents
  • fix(links): resolve a torrent's files from the engine's save path
  • fix(workflows): a pass no longer holds the store writer; free space only when asked
  • feat(workflows): a hardlink index kept in the background; no stopped announce on boot
  • feat(ui): a search that does not shake the list; three more reads off the writer
  • perf(store): WAL, a read connection, logged lock holds; resolve hashes by range
  • perf(move): scan for shared files in slices across threads
  • fix(store): stop holding the store for twelve minutes an hour; cheaper move checks
  • perf(list): a page in a fifth of a second at a million torrents
  • fix(announce): a 429 does not trip the breaker
  • fix(announce): a rise that bought nothing is taken back, no more
  • fix(announce): a cut that does not bring latency down makes it the new normal
  • feat(announce): pace announces per tracker, Vegas-style
  • fix(announce): size the pool for the torrents joining and the ones already late
  • feat: agent endpoint, real category moves, adaptive announcing

v4.2.4

Choose a tag to compare

@github-actions github-actions released this 26 Sep 17:40

Platforms: linux, windows

Changes in v4.2.3..v4.2.4:

  • release: v4.2.4
  • perf(announce): keep the ten-second reconcile off the runtime's back
  • perf(status): read engine totals from the rate tick, not a copy of the catalogue

v4.2.3

Choose a tag to compare

@github-actions github-actions released this 26 Sep 16:00

Platforms: linux, windows

Changes in v4.2.2..v4.2.3:

  • release: v4.2.3
  • fix(ui): a milestone's date sits in the right-hand column
  • fix(records): a rate record is the best minute, not the best sample