Beta 0.7.3 Post-1.0 Hardening Replay¶
- Date: 2026-05-09
- Baseline internal evidence tag:
emule-bb-v1.0.0 - Candidate:
EMULE_WORKSPACE_ROOT\workspaces\v0.72a\app\eMule-mainonmain - Scope: app commits
BUG-102throughBUG-110
Executive Finding¶
The post-1.0 app hardening queue is small and coherent: nine app commits touch DirectDownload, packet guards, client UDP receive handling, WebSocket accept draining, shared startup-cache worker failures, autocomplete allocation, and meter-icon GDI ownership. The supported Release x64 native replay passed. The audit initially found several fixes covered only indirectly; those focused coverage gaps were promoted to CI-032 and are now closed with targeted probes.
Replay Evidence¶
git log --oneline emule-bb-v1.0.0..mainpython -m emule_workspace build tests --config Release --platform x64- passed with 0 warnings
- build log directory:
EMULE_WORKSPACE_ROOT\workspaces\v0.72a\state\build-logs\20260509-140241 python -m emule_workspace test all --config Release --platform x64494parity test cases passed71web API test cases passed- native coverage directory:
EMULE_WORKSPACE_ROOT\repos\emulebb-build-tests\reports\native-coverage\20260509-140248-eMulebb-workspace-v0.72a-eMule-main-x64-Release - live-diff summary:
EMULE_WORKSPACE_ROOT\repos\emulebb-build-tests\reports\live-diff-summary.txt
Commit Map¶
| Bug | Commit | File | Release area | Replay status | Follow-up |
|---|---|---|---|---|---|
| BUG-102 | 05b94fe |
srchybrid/DirectDownload.cpp |
Downloads/persistence | App commit dc412b4 routes WinInet handle ownership through the cancellation registry policy seam; test commit f377146 proves cancelled owners reject new handle registration. |
CI-032 |
| BUG-103 | e3183fd |
srchybrid/DownloadClient.cpp |
Downloads/protocol parsing | Native parity replay passed protocol guard block-header cases and overflow/truncation cases. | none |
| BUG-104 | 0af5c22 |
srchybrid/ClientUDPSocket.cpp |
UDP/networking | Native parity replay passed client UDP packet failure logging and opcode extraction seams. | none |
| BUG-105 | 06b0d56 |
srchybrid/WebSocket.cpp |
WebServer/WebSocket | App commit 220c0cb exposes the rejected-IP accept-drain policy and test commit 46eab04 proves the listener continues draining pending accepts after a disallowed remote-access IP is rejected. |
CI-032 |
| BUG-106 | ed28dda |
srchybrid/SharedFileList.cpp |
Shared startup cache | Native parity replay passed startup-cache scheduling, post-failure, completion-action, and shutdown wait seams. | none |
| BUG-107 | 18b22c8 |
srchybrid/Packets.cpp |
Packet decompression | Native parity replay passed bounded size arithmetic and truncated packet span cases. | none |
| BUG-108 | 2653a97 |
srchybrid/CustomAutoComplete.cpp |
UI/preferences | App commits e336f26 and 083478a expose the enum-string copy path through CustomAutoCompleteSeams; test commit 6273fdb proves allocation failure returns E_OUTOFMEMORY before copying through a null allocation. |
CI-032 |
| BUG-109 | a27323a |
srchybrid/MeterIcon.cpp |
UI/GDI | Test commit 237e6d2 adds focused GDI ownership seam coverage for scoped bitmap, brush, and scratch-DC release paths used by MeterIcon.cpp. |
CI-032 |
| BUG-110 | 9bdf3f7 |
srchybrid/MeterIcon.cpp |
UI/GDI | Test commit 237e6d2 adds focused ScopedSelectObject coverage proving selected bitmaps are restored before callers consume them. |
CI-032 |
Release Decision¶
CI-023 can remain closed as the post-tag mapping and replay gate: the commits are mapped, the supported Release x64 replay passed, and CI-032 now closes the previously insufficient focused coverage for BUG-102, BUG-105, BUG-108, BUG-109, and BUG-110. Beta 0.7.3 must still wait for the downstream area gates.