🐛 Fixed
- aMule reconnect loop after deleting the last shared file. The 1→0 shared-list desync heuristic couldn't tell a legitimate "deleted my only file" transition from a phantom drop, and the throw at the desync site short-circuited the snapshot update two lines below — so the previous-frame count stayed stuck and every successful reconnect re-fired the same desync, looping indefinitely. Detection now matches against hashes we deleted ourselves (recorded by
deleteItem's shared branch) and only fires when there's an unexplained disappearance, with the snapshot update always running so worst case is one reconnect (#49). - Repeated
downloadFinishednotifications for a single aMule download. The history-update path was still keyed off the toFixed-rounded display progress, which flips at 99.995% bytes. Combined with the activeKeys SQL resettingcompleted → downloading, lib-reported progress oscillating around "100.00"/"99.99" re-fired the notification on every flip. Now uses the same per-clientisCompleteflag the rest of the system unified on in v3.8.2.