Skip to content

Closed Item Index

Browsable index of closed backlog records under docs/history/items/.

Provenance only

These are closed records (DONE, PASSED, WONT_DO); item IDs are never reused. Current work lives in docs/active/. Back to the History Archive.

Total: 253 closed items.

BUG — defects (132)

ID Title Status
BUG-001 17 load-only hidden prefs not written back to preferences.ini Done
BUG-002 ASSERT(0) FIXME in ArchiveRecovery.cpp — unhandled format case falls through silently in release Wont-Fix
BUG-003 Historical large-file FIXME markers overstated the remaining live issue Done
BUG-004 IPFilter overlapping IP ranges not handled — acknowledged correctness gap Done
BUG-005 Kad buddy connections broken when RequireCrypt is enabled Wont-Fix
BUG-006 Weak RNG for crypto challenge value — rand() seeded with time(NULL) Wont-Fix
BUG-007 Ring.h — CRing pointer-state, access-guard, and defensive copy cleanup (CODEREV_003, 004, 011) Done
BUG-008 CaptchaGenerator — rand() & 8 produces bimodal jitter (only 0 or 8, never 1-7) Wont-Fix
BUG-009 PartFile — non-atomic part.met replacement (_tremove + _trename crash window) Done
BUG-010 PartFile — part.met written on low disk space, risking truncation/corruption Done
BUG-011 Race condition — shareddir_list iterated without lock in SendSharedDirectories Done
BUG-012 CPartFile destructor calls FlushBuffer after write thread has already exited DONE
BUG-013 ArchiveRecovery.cpp — three unchecked malloc() calls crash on OOM Wont-Fix
BUG-014 ZIPFile.cpp — WriteFile return value silently discarded on two paths Done
BUG-015 GetTickCount() 49-day overflow in ban expiry and download timeout checks Done
BUG-016 UDP obfuscation applied when crypt layer is disabled — IsCryptLayerEnabled() guard missing Done
BUG-017 UDP throttler deadlock — sendLocker held when signaling QueueForSendingControlPacket Done
BUG-018 Part-file hash layout drift — hash tree can mutate during concurrent hashing Done
BUG-019 AICH sync thread concurrency — multiple unsynchronized shared-state accesses Done
BUG-020 Client socket teardown ordering — cross-link not cleared before Safe_Delete Done
BUG-021 Upload queue lock inversion + socket I/O result mishandling + inflate buffer aliasing Done
BUG-022 Long-path delete-to-recycle-bin still breaks in ShellDeleteFile Done
BUG-023 Shared-file ED2K published column shows a false No after publish-state reset Done
BUG-024 statUTC(HANDLE) returns corrupted st_size by combining file size high with file index low Done
BUG-025 KnownFile hashing open failures log stale or wrong error text on Win32 open failure Done
BUG-026 Search tab teardown frees live result and tab-parameter objects before the UI detaches them Done
BUG-027 IP filter update can delete the live ipfilter.dat before replacement promotion succeeds Done
BUG-028 MP3 ID3 metadata extraction is ANSI-only; non-ACP filenames can silently lose tags Wont-Fix
BUG-029 Long-path tail hardening across config, media, shell, and GeoLocation surfaces Done
BUG-030 Obfuscated server logins can advertise redundant callback crypto flags and require extra attempts Done
BUG-031 Shared-file hashing fails too eagerly on transient sharing and lock violations DONE
BUG-032 AICH hashset save can fail spuriously after hashing because known2.met lock wait times out Done
BUG-033 WebSocket and MiniUPnP shutdown still use forced thread termination Wont-Fix
BUG-036 known.met and cancelled.met still save in place and can truncate on failure Done
BUG-037 Same-hash KnownFile replacement can unshare or mis-track equivalent files Done
BUG-038 Shared Files sort can retain stale rows after backing data changes Done
BUG-039 Client list lacked a reusable safe pointer membership check Done
BUG-040 Downloading Clients list could dereference stale client rows Done
BUG-041 Known Clients list could dereference stale client rows Done
BUG-042 Upload list could dereference stale upload rows Done
BUG-043 Queue list could dereference stale queue rows Done
BUG-044 Download source rows could outlive their backing source objects Done
BUG-045 Server list could dereference stale server rows Done
BUG-046 Kad contact list could dereference stale contact rows Done
BUG-047 Kad search list could dereference stale search rows Done
BUG-048 IRC nick rows were not cleared before nick objects were deleted Done
BUG-049 IRC channel tabs were not detached before channel objects were deleted Done
BUG-050 Chat tabs were not detached before chat items were deleted Done
BUG-051 IRC channel rows were not cleared before channel entries were deleted Done
BUG-052 Kad search constructor accidentally added placeholder rows Done
BUG-053 part.met backup could be refreshed from the newly written metadata Done
BUG-054 ESC in shared-file delete confirmation could still delete files Done
BUG-055 AICH recovery accepted invalid part bounds Done
BUG-056 Download Clients list could dereference stale rows during display callbacks Done
BUG-057 Close All Search Results could leave Kad keyword searches running Done
BUG-058 Tree option value labels could contain the parser separator Done
BUG-059 Download Remaining column alignment was inconsistent Done
BUG-060 REST API should stay available when web templates are absent Done
BUG-061 Legacy web interface template was missing from the shipped tree Done
BUG-062 Obfuscated server timeout did not retry plain connection promptly Done
BUG-063 ESC in shared-directory delete confirmation could still delete directories Done
BUG-064 Client list secondary display path needed stale-row guarding Done
BUG-065 Queue list secondary display path needed stale-row guarding Done
BUG-066 Upload list secondary display path needed stale-row guarding Done
BUG-067 REST log route lacked the expected get alias seam Done
BUG-068 Download progress-bar drawing can leak GDI state into neighboring list cells Done
BUG-069 WebServer static resource requests can escape the web root and allocate whole files Done
BUG-070 Ignored helper-thread launch failures can hang shutdown waits Done
BUG-071 server.met persistence still uses destructive backup and promotion moves Done
BUG-072 Kad preferences and routing snapshots still save in place Done
BUG-073 WebServer session and bad-login state is mutated from request threads without synchronization Done
BUG-074 Archive preview scanner uses volatile cancellation and synchronous UI handoff Wont-Fix
BUG-075 REST and WebServer typed error consistency Passed
BUG-076 WebServer malformed request hardening for REST and legacy HTML Passed
BUG-077 WebServer concurrent REST and legacy HTML soak coverage Passed
BUG-078 qBit compatibility auth can fail open when session RNG is unavailable Done
BUG-079 WebSocket shutdown can close the termination event while accepted clients still wait on it Done
BUG-080 WebSocket shutdown can forcibly terminate the listener thread Done
BUG-081 HTTPS WebSocket handshake and read loops can spin on WANT_READ/WANT_WRITE Done
BUG-082 GeoLocation and IPFilter background refresh flags can race and remain stuck Done
BUG-083 Client UDP malformed-packet logging can read past a one-byte packet Done
BUG-084 Web admin high-level actions leak the process token handle Done
BUG-085 Kad/client UDP encryption preference gating needs Release 1 compatibility proof Done
BUG-086 HTTPS WebSocket casts SOCKET storage to mbedtls_net_context Done
BUG-087 HTTPS WebSocket queued writes can stall after TLS WANT_READ Done
BUG-088 WebSocket timeout shutdown leaves global state unsafe for restart Done
BUG-089 UDP control sender can deadlock on exception while holding sendLocker Done
BUG-090 Background refresh completion can wedge when UI PostMessage fails Done
BUG-091 DirectDownload ignores close-time write failures Done
BUG-092 Background refresh workers can write through freed owner memory after shutdown Done
BUG-093 Failed refresh completion can synchronously block worker on UI thread Done
BUG-094 ResumeThread failure leaks suspended refresh thread objects Done
BUG-095 WebSocket accepted-client tracking is not exception-safe after thread start Done
BUG-096 DirectDownload lacks bounded timeout and cancellation contract Done
BUG-097 Startup-cache save worker can outlive shared-file list owner Done
BUG-098 Archive recovery worker uses raw part-file owner across async work Wont-Fix
BUG-099 WebSocket listener startup is not exception-safe after global state initialization Done
BUG-100 DirectDownload has bounded timeouts but no hard owner cancellation contract Done
BUG-101 Shared Files 50k recursive tree stress profile does not reach main window Done
BUG-102 aMuTorrent browser smoke ignores generated harness port Done
BUG-111 Release and help URLs still point outside the emulebb namespace Done
BUG-112 WebServer/qBit session tokens need CSPRNG-backed generation Wont-Fix
BUG-113 Auto-category non-regex matching skips usable tokens Done
BUG-114 Prevent Standby can leave Windows sleep prevention asserted after disable DONE
BUG-115 Tray left-click skips MiniMule and restores maximized windows as normal DONE
BUG-116 Search results can leave a floating horizontal scrollbar artifact DONE
BUG-118 CTag UInt64 values can serialize without guaranteed 64-bit promotion DONE
BUG-119 Audit part-file gap and progress arithmetic against eMuleAI hardening DONE
BUG-120 Audit obfuscated server retry behavior against eMuleAI repeat-login fix DONE
BUG-121 CorruptionBlackBox split reallocation can invalidate active CArray records DONE
BUG-122 CRing raw-owned buffer was accidentally copyable DONE
BUG-123 Failed reask source delete needed explicit download-owner detachment DONE
BUG-124 Log panes can nearly freeze the UI under high-volume output DONE
BUG-125 Harden client and queue lifetime edges found by focused review DONE
BUG-126 Harden transfer queue async lifetime edges DONE
BUG-127 Fix regressions from recent C++ hardening review DONE
BUG-128 Bound REST compatibility hot-path serialization DONE
BUG-130 Harden RC1 hot-path worker and metadata edges DONE
BUG-131 Harden RC1 completion, delete, and startup-cache lifetime edges DONE
BUG-133 Harden RC1 metadata bounds, REST polling, and worker shutdown edges DONE
BUG-134 Harden final RC1 shutdown, REST bounds, and AICH repair edges DONE
BUG-135 Harden final RC1 runtime stabilization edges DONE
BUG-136 Harden final RC1 review follow-up hot paths DONE
BUG-137 Harden final RC1 AICH, UPnP, listener, and Kad edges DONE
BUG-139 Clean exit can leave the shell tray icon behind DONE
BUG-140 Transfer UI updates can run on split presentation timers DONE
BUG-141 Source expand icons and video thumbnails can be visually oversized DONE
BUG-144 Remote shared-directory requests can freeze large shared profiles DONE
BUG-145 Suite bootstrap flow misses LAN, credential, category, and Arr sync polish DONE
BUG-148 Shared Files directory tree node stuck expanded after collapse and cannot re-expand DONE
BUG-149 Shared directory tree rebuild is slow and UI-blocking on large shared sets DONE
BUG-150 False multiple_names Caution on cosmetic search-name differences DONE

FEAT — features (48)

ID Title Status
FEAT-010 Long path support phase 2 — shell/UI, shared-directory recursion, exact-name paths, and path-helper audit Done
FEAT-012 PR_TCPERRORFLOODER — TCP listen-socket flood defense Done
FEAT-013 REST API — add authenticated in-process JSON endpoints to WebServer Done
FEAT-015 Broadband upload slot allocation — fixed cap + weak-slot reclamation Done
FEAT-016 Modern limits — update stale hard-coded defaults for broadband/modern hardware Done
FEAT-020 DB-IP city geolocation — location label and flag per peer Done
FEAT-022 Startup config directory override — -c flag for alternate preferences path Done
FEAT-023 Broadband queue scoring and ratio/cooldown UI extras Done
FEAT-024 Share-ignore policy with additive shareignore.dat Done
FEAT-025 Normalize download filenames on intake and completion Done
FEAT-026 Shared startup cache with known.met lookup index and sharedcache.dat Done
FEAT-027 Startup sequencing fix, startup profiling, and shared-view startup churn cleanup Done
FEAT-028 Virtualize and harden shared files list Done
FEAT-029 Search result ceilings — configurable ed2k expansion plus moderate Kad totals/lifetimes Done
FEAT-030 Bind policy completion — global BindAddr everywhere else, separate WebBindAddr for WebServer Done
FEAT-033 Disk-space floor hardening and legacy import-flow retirement Done
FEAT-038 Shared-files watcher and live recursive share sync Done
FEAT-042 Automatic IP filter update scheduling Done
FEAT-045 REST transfer detail endpoint for controller parity Passed
FEAT-046 REST server and Kad bootstrap/import APIs Passed
FEAT-047 REST search API completeness pass Passed
FEAT-048 REST upload queue control completeness Passed
FEAT-049 Curated REST preference expansion Passed
FEAT-050 Launch external program on completed download Passed
FEAT-051 Pro-user context menus and always-on advanced controls Done
FEAT-052 Main-shell keyboard shortcuts and mnemonic audit Done
FEAT-053 Classic tray balloon notification mode Done
FEAT-054 Normalize download message filename display Done
FEAT-055 Beta 0.7.3 improvement triage lane Done
FEAT-057 Add qBittorrent-style download shortcuts and batch menu actions Done
FEAT-058 Beta 0.7.3 closeout UX polish and audit report Done
FEAT-059 Move tray icon visibility preference next to minimize-to-tray Done
FEAT-060 Preference inventory, mapping, clamp, and persistence audit Done
FEAT-061 Strong preference schema validation Done
FEAT-062 Category management dialog polish and robustness Done
FEAT-063 Web Interface preferences layout polish DONE
FEAT-065 Polish the native MiniMule tray popup DONE
FEAT-066 Replace MiniMule chrome with table and speed chart DONE
FEAT-067 External VPN kill-switch watchdog WONT_DO
FEAT-071 Filename mojibake repair for search results and download intake Done
FEAT-074 Add main-window visual evidence for connected LowID state DONE
FEAT-083 Connection Checker based on public reachability polling WONT_DO
FEAT-084 Migration Wizard for legacy profile import WONT_DO
FEAT-097 Add connection pressure details to Network Information DONE
FEAT-118 Composite Confidence indicator replacing the Risk + Kad-Confidence columns DONE
FEAT-119 Quick hide already-known files filter in search results DONE
FEAT-120 Sortable Extension column in search results DONE
FEAT-123 Shared files one-level auto-updater DONE

REF — refactors (30)

ID Title Status
REF-001 Keep the existing CZIPFile implementation Wont-Fix
REF-002 Remove Source Exchange v1 branches — deprecated protocol superseded by v2 Done
REF-004 Audit and disposition 17 load-only hidden preference keys Done
REF-005 Remove or restore dead DebugSourceExchange log calls in DownloadQueue.cpp Done
REF-006 GetCategory const-correctness cleanup in DownloadListCtrl / CPartFile Done
REF-007 WebM vs MKV disambiguation in MIME magic-byte detection Done
REF-008 Replace CAsyncSocketEx custom WinSock wrapper — Boost.Asio or Windows IOCP WONT_DO
REF-009 Replace CCriticalSection + CWinThread + Win32 events — std::mutex/thread or Boost WONT_DO
REF-010 Replace raw owned pointers with std::unique_ptr / std::shared_ptr WONT_DO
REF-011 Replace GetTickCount / SetTimer with type-safe monotonic clock — std::chrono or Boost WONT_DO
REF-012 Replace CFile + CString path concatenation — std::filesystem or boost::filesystem WONT_DO
REF-013 Replace CString + unsafe sprintf with safe string formatting — std or Boost WONT_DO
REF-014 Replace custom CRing circular buffer — fix in place, std::deque, or boost::circular_buffer WONT_DO
REF-015 Keep miniupnpc as the active UPnP backend Wont-Fix
REF-016 Keep ResizableLib out-of-tree instead of inlining it Wont-Fix
REF-017 Revalidate and close the dead-code sweep backlog item Done
REF-018 Remove defunct PeerCache surface and legacy INI fallback reads Done
REF-019 Replace ASSERT(0) + "must be a bug" with proper error handling in EncryptedStreamSocket Done
REF-020 Replace dynamic loading of always-present Win10 APIs with static linking Done
REF-023 Replace unsafe sprintf/_stprintf/wsprintf with safe equivalents Done
REF-026 Manifest — drop legacy OS entries, add Common Controls 6.0 dependency Done
REF-030 Replace window-message async hostname resolver with worker-thread model DONE
REF-031 Review upload queue scoring against community and stale baselines Done
REF-037 Beta 0.7.3 legacy and frozen feature disposition ledger Done
REF-038 Harden optional MediaInfo DLL loading and metadata extraction seams Done
REF-039 Classify MediaInfo loader failures and bound metadata extraction counts Done
REF-040 Harden external UnRAR DLL loading Done
REF-041 Move remaining active app DLL probes to LoadLibraryEx Done
REF-047 Finalize native REST v1 API standardization before RC1 DONE
REF-054 Stabilize and instrument download queue behavior DONE

CI — build/packaging/gates (40)

ID Title Status
CI-001 CMake adoption exploration — replace emule.vcxproj with CMakeLists.txt + Ninja WONT_DO
CI-003 MSVC compiler hardening — enable SDL, guard checks, and treat warnings as errors Done
CI-008 Expand regression coverage for part files, long paths, and WebServer/REST Done
CI-009 Share-ignore regression coverage and Release test-build stabilization Done
CI-011 Broadband release live E2E coverage umbrella Done
CI-012 Stabilize Shared Files dynamic folder lifecycle E2E Done
CI-013 Download and search UI live scenarios Done
CI-014 REST contract manifest and live completeness gate Passed
CI-015 REST malformed and concurrent request matrix Passed
CI-016 REST-only main vs community regression lane Passed
CI-017 Normalize active workspace line-ending policy to LF by default Done
CI-018 Shared Files 50k-file tree refresh stress gate Done
CI-019 HTTPS and REST socket adversity stress gate Done
CI-020 REST and legacy WebServer error-path coverage gate Done
CI-021 WebSocket and legacy socket leak-churn gate Done
CI-022 Beta 0.7.3 community parity changed-surface ledger Done
CI-023 Beta 0.7.3 post-1.0 hardening regression replay gate Done
CI-024 Beta 0.7.3 controller integration full replay gate Done
CI-025 Beta 0.7.3 REST and adapter contract drift gate Done
CI-026 Beta 0.7.3 shared files, startup cache, and long-path parity gate Done
CI-027 Beta 0.7.3 download and persistence replay gate Done
CI-028 Beta 0.7.3 search, server, and Kad parity replay gate Done
CI-029 Beta 0.7.3 network socket, UDP, WebSocket, HTTPS, and UPnP adversity gate Done
CI-030 Beta 0.7.3 UI, preferences, tray, and language resource parity smoke gate Done
CI-031 Beta 0.7.3 packaging, architecture, and release asset parity gate Done
CI-032 Beta 0.7.3 post-tag focused coverage gaps Done
CI-033 Beta 0.7.3 internal pre-release proof Done
CI-034 Package-release provenance and dirty-input guard Done
CI-036 Release certification test matrix DONE
CI-037 Expanded live UI and E2E weak-path stress gate PASSED
CI-038 UI resource-depth and language smoke gate DONE
CI-039 Consolidate Markdown backlog process and validation DONE
CI-040 Standardize current Markdown naming and structure checks DONE
CI-041 Publish Markdown documentation with MkDocs Material DONE
CI-042 Keep only the latest nightly GitHub prerelease per build stream DONE
CI-043 Add aMuTorrent automatic upstream nightly sync and release workflow DONE
CI-048 Improve documentation navigation and public release guidance DONE
CI-051 Move generated workspace outputs outside repos and worktrees DONE
CI-052 RC2+ installer-backed test gate rationalization DONE
CI-053 Fix ARM64 controlled-smoke PCH virtual-memory exhaustion (native host toolchain) DONE

AMUT — aMuTorrent integration (2)

ID Title Status
AMUT-001 aMuTorrent eMule BB browser smoke coverage Passed
AMUT-002 aMuTorrent transfer detail hydration Passed

ARR — Arr integration (1)

ID Title Status
ARR-001 Full Arr release E2E validation Passed