eMule Broadband Edition 0.7.3 Gate History¶
Historical release evidence only. Current beta
0.7.3status is controlled by RELEASE-0.7.3, and current execution is controlled by RELEASE-0.7.3-EXECUTION-PLAN.
This is the archived internal control document for rehearsal tag
emule-bb-v1.0.0. It records Release 1 gate status, candidate decisions, and
readiness evidence from the internal pre-release pass.
Current status: Release 1 gate proof has fresh 2026-05-09 revalidation
evidence, rehearsal packages were created, and the annotated internal app tag
emule-bb-v1.0.0 was pushed to emulebb/emulebb at app commit 953a39f.
This tag and its assets are superseded internal evidence only; the first beta
release target is emule-bb-v0.7.3.
Operator docs:
- Beta 0.7.3 checklist
- Beta 0.7.3 runbook
- REST/Arr execution plan
- Live E2E execution plan
- Download completion hook execution plan
- NAT mapping execution plan
- Beta 0.7.3 stability blockers execution plan
- SDET stress execution plan
Release Identity¶
- Product name:
eMule broadband edition - Compact app/mod name:
eMule BB - Internal rehearsal tag:
emule-bb-v1.0.0 - Internal rehearsal assets:
eMule-broadband-1.0.0-x64.zipeMule-broadband-1.0.0-arm64.zip
Release Gates¶
These gates must remain passed, or be explicitly revalidated if their evidence ages out or related code changes.
Current REST hardening focus: revalidate both the native /api/v1 contract and
the Arr/qBittorrent-compatible adapter APIs before tagging. The detailed pending
task queue lives in the
REST/Arr execution plan.
aMuTorrent remains the primary UI proof target, but it adapts to the clean
native /api/v1 design and must not drive native route shape, aliases,
envelopes, or validation policy.
Current stability focus: the original adversarial current-branch findings from
the 2026-05-08 Beta 0.7.3 review are closed on main, the first 2026-05-08 follow-up
pass findings BUG-092 through BUG-096
are closed on main, and the latest follow-up blockers
BUG-097, BUG-099, and
BUG-100 are now closed on main. Archive preview and
recovery findings BUG-074 and
BUG-098 are Wont-Fix by product decision because those
deprecated features are entirely frozen, including known bugs. Keep their
execution and closure flow in the
Beta 0.7.3 stability blockers execution plan.
Current SDET stress focus: the 2026-05-08 test-robustness review promoted four additional Beta 0.7.3 release gates for large Shared Files UI churn, HTTPS/socket adversity, explicit error-path coverage, and resource-accounted socket leak churn. Keep their execution and closure flow in the SDET stress execution plan.
| ID | Gate | Status | Evidence pointer |
|---|---|---|---|
| BUG-075 | REST typed error consistency | Passed | item completion evidence |
| BUG-076 | Malformed WebServer/REST hardening | Passed | item completion evidence |
| BUG-077 | Concurrent WebServer soak | Passed | item completion evidence |
| CI-011 | Release live E2E umbrella | Done | item completion evidence and full live-e2e report 20260509-093500-eMule-main-release; auto-browse-live accepted inconclusive for unavailable live browse-capable source |
| CI-014 | REST manifest/live completeness gate | Passed | item completion evidence |
| CI-015 | REST malformed/concurrent matrix | Passed | item completion evidence |
| AMUT-001 | aMuTorrent live E2E validation | Passed | item completion evidence; fresh artifact 20260509-081711-eMule-main-release |
| AMUT-002 | aMuTorrent transfer detail hydration | Passed | item completion evidence and fresh aMuTorrent browser smoke artifact 20260509-081711-eMule-main-release |
| ARR-001 | Arr live E2E validation | Passed | item completion evidence; fresh Prowlarr artifact 20260509-102138-eMule-main-release and Radarr/Sonarr artifact 20260509-102255-eMule-main-release; media searches used video categories |
| FEAT-050 | Download completion hook | Passed | item completion evidence |
| BUG-078 | qBit auth fails closed on session RNG failure | Done | app 02fd5bf, tests dfc86d6, Release x64 validation |
| BUG-079 | WebSocket accepted-client shutdown lifetime | Done | app aa66699, Release x64 validation |
| BUG-080 | WebSocket shutdown avoids TerminateThread |
Done | app aa66699, Release x64 validation |
| BUG-081 | HTTPS WebSocket WANT_READ/WANT_WRITE loops yield to socket waits | Done | app aa66699, Release x64 validation |
| BUG-082 | GeoLocation/IPFilter refresh state cannot wedge | Done | app e5c8f81, Release x64 validation |
| BUG-083 | Client UDP malformed-packet logging is bounds-safe | Done | app 1af8bb5, tests cfe9b96, Release x64 validation |
| BUG-084 | Web admin process token handles are closed | Done | app 1513358, Release x64 validation |
| BUG-085 | Kad/client UDP encryption gating has compatibility proof | Done | app 2ee49ab, tests 2d5cc1a, Release x64 validation |
| BUG-086 | HTTPS WebSocket mbedTLS socket context ABI is safe | Done | app c6c1526, Release x64 validation |
| BUG-087 | HTTPS WebSocket queued TLS writes cannot stall on WANT_READ | Done | app dfcf1fe, Release x64 validation |
| BUG-088 | WebSocket failed shutdown cannot poison restart | Done | app 7a5de38, Release x64 validation |
| BUG-089 | UDP control sender is exception-safe under sendLocker |
Done | app 4796d2f, Release x64 validation |
| BUG-090 | Background refresh completion cannot wedge on failed UI post | Done | app 1a09692, Release x64 validation |
| BUG-091 | DirectDownload rejects close-time persistence failures | Done | app c237d48, Release x64 validation |
| BUG-092 | Background refresh workers cannot write through freed owner memory | Done | app cfb0625, Debug and Release x64 validation |
| BUG-093 | Failed refresh completion cannot synchronously block worker on UI thread | Done | app 2823a5c, Debug and Release x64 validation |
| BUG-094 | Refresh launch failure cannot leak suspended thread objects | Done | app e5d770e, Debug and Release x64 validation |
| BUG-095 | WebSocket accepted-client tracking is exception-safe after thread start | Done | app 219be75, Debug and Release x64 validation |
| BUG-096 | DirectDownload has bounded timeout or cancellation semantics | Done | app 84020af, Debug and Release x64 validation |
| BUG-097 | Startup-cache save worker cannot outlive shared-file list owner | Done | app bde9f16, Debug and Release x64 validation |
| BUG-074 | Archive preview scanner uses volatile cancellation and synchronous UI handoff | Wont-Fix | deprecated/frozen by product decision; app 8c2cc67 source comment |
| BUG-098 | Archive recovery worker uses raw part-file owner across async work | Wont-Fix | deprecated/frozen by product decision; app 8c2cc67 source comment |
| BUG-099 | WebSocket listener startup is exception-safe after global state initialization | Done | app a4c4dc3, Debug and Release x64 validation |
| BUG-100 | DirectDownload has hard owner cancellation for background refresh downloads | Done | app 9d765e3, Debug and Release x64 validation |
| BUG-101 | Shared Files 50k recursive tree stress profile reaches main window | Done | passing artifact 20260508-170043-eMule-main-release; 50k rows converged cold, after churn, and cached relaunch |
| CI-018 | Shared Files 50k-file tree refresh stress gate | Done | tests 92002da, aea5e55, 6ebc3a7, 8d63a45, e751fbb, f79199e, build 756819d; 50k smoke artifact 20260508-170043-eMule-main-release and 160-cycle soak artifact 20260508-204401-eMule-main-release passed with resource thresholds |
| CI-019 | HTTPS and REST socket adversity stress gate | Done | tests ad2ac65, 96f4759, e216f44, 9e130c3, f00ad31, 704a97b, d6b4f82, build 4a531f6, a229e6c, 17dc429, app c5a2794; HTTPS 32/64 contract-stress artifacts and HTTP socket-adversity artifact passed |
| CI-020 | REST and legacy WebServer error-path coverage gate | Done | tests 36a612a, f12b49d, 69b8afa, 704a97b; app 2263e64, 4082be7, d1c8af6, 1ca8c63, 979ae8f, ddff25f, c6927cb, c062058, 440e5e5, 5f0689f; hard error matrix artifacts 20260508-202554-eMule-main-release and 20260508-203041-eMule-main-release passed |
| CI-021 | WebSocket and legacy socket leak-churn gate | Done | tests 1d97dd4, e88e067, ae3a840, 941c439, b8729d3, 352a2d2, build 94d1044, 3ec3674; app d75919a, 1ca4d49, b33efb8, 2cca5ac, 942c484, c5a2794; HTTP/HTTPS 1000-cycle leak-churn stop/start soaks 20260508-203500-eMule-main-release and 20260508-203928-eMule-main-release passed |
Candidate Decisions¶
These items are desirable but are not Release 1 blockers unless a later gate failure proves that they are required.
| ID | Candidate | Release 1 decision |
|---|---|---|
| FEAT-032 | NAT mapping live validation | Deferred; Release E2E did not require NAT proof |
| FEAT-045 | Transfer detail endpoint | Passed; promoted with AMUT-002 capability-gated aMuTorrent consumption |
| FEAT-046 | Server/Kad bootstrap/import APIs | Passed; server.met import, Kad bootstrap, nodes.dat URL import, malformed preservation, and live seed import evidence are covered |
| FEAT-047 | Search API completeness | Passed; OpenAPI and REST contract document Release 1 behavior |
| FEAT-048 | Upload queue control completeness | Passed; existing controls are covered, unsupported operations return typed errors, and no new queue mutation was promoted |
| FEAT-049 | Curated REST preference expansion | Passed; aMuTorrent needs no additional runtime preference keys and the curated surface has live round-trip plus bad-value coverage |
Execution Plans¶
Each Release 1 gate and candidate is covered by exactly one cluster execution plan. Item docs keep acceptance criteria and evidence; the plans own detailed closure and revalidation flow.
Deferred Scope¶
The following tracks stay outside the first beta release unless a later release-readiness review promotes a concrete blocker:
- abandoned Boost/POCO and CMake/Ninja/vcpkg adoption ideas:
REF-008throughREF-014,CI-001 - broad CI/toolchain migration:
CI-002throughCI-007,CI-010 - dependency upgrades:
REF-028,REF-034 - broad networking work:
REF-029,REF-030,FEAT-018,FEAT-035,FEAT-036 - broad product/UI expansion:
FEAT-017,FEAT-019,FEAT-021,FEAT-031,FEAT-037,FEAT-039throughFEAT-044 - non-release hardening watchpoints:
BUG-031,BUG-034,BUG-035,FEAT-001throughFEAT-006,FEAT-034,CI-008,CI-012,CI-013
Validation¶
Before tagging emule-bb-v1.0.0, run the supported workspace commands:
python -m emule_workspace validatepython -m emule_workspace build app --config Debug --platform x64python -m emule_workspace build app --config Release --platform x64python -m emule_workspace build tests --config Debug --platform x64python -m emule_workspace build tests --config Release --platform x64- native parity tests through the supported
testcommand - Release x64
live-e2e, including aMuTorrent, Prowlarr, Radarr, and Sonarr
Public-network unavailable results are acceptable only when the harness records the run as inconclusive with enough diagnostics to distinguish environment failure from product failure.