github got3nks/amutorrent v3.3.0
v3.3.0 — Unified Peers, Incremental Updates, File Rename

latest releases: v3.8.5, v3.8.4, v3.8.3...
3 months ago

✨ Added

  • aMule incremental updates — new getUpdate() method uses EC_OP_GET_UPDATE with EC_DETAIL_INC_UPDATE for stateful incremental polling. Only changed fields are transferred after the initial full response, significantly reducing bandwidth and CPU usage for aMule connections
  • Download Sources table in FileInfoModal — aMule download sources (peers we download from) now have a dedicated table section with columns for User, State, Source origin, Queue rank, Downloaded, and DL speed
  • aMule peer state labels — download states (Downloading, On Queue, Connecting, etc.), upload states, and source origin labels (Server, Kad, Exchange, etc.) displayed in human-readable form
  • File rename — rename downloads and shared files from the context menu (aMule only). Gated by renameFile client capability and rename_files user permission
  • Rename files user capability — new rename_files capability in the Downloads group, configurable per-user in the User Management UI

♻️ Refactored

  • Unified peers model — replaced three separate peer arrays (peersDetailed, activeUploads, downloadSources) with a single item.peers array across all 5 client types. Each peer carries a role field: 'peer', 'upload', 'download'. Eliminates ~200 lines of duplicated code
  • Peers embedded in source objects — managers embed peers directly into download/shared file objects instead of returning separate arrays
  • Removed source names caching from QueuedAmuleClient — replaced by amule-ec-node's native incremental update with deep merge
  • Removed dead ipToString — IP decoding now lives solely in amule-ec-node

🐛 Fixed

  • aMule download completion detection — fixed completion never firing during runtime. Downloads at 100% are now detected directly from progress instead of relying on shared files list, which doesn't work with incremental updates
  • Stale item removal — aMule getUpdate() uses set-based reconciliation to remove disconnected peers, completed downloads, and unshared files
  • Deep merge for incremental EC updates — ID-based array reconciliation matching aMule GUI's CPartFile_Encoder behaviour. Fixes Source Reported Filenames disappearing after incremental updates
  • Empty download source rows — peers in "Connecting" state with no IP filtered out
  • UploadsView duplicate rows — peer IDs include parentHash to prevent duplicates across torrents

Don't miss a new amutorrent release

NewReleases is sending notifications on new releases.