Download and search UI live scenarios
Summary¶
Add UI-driven live search and download lifecycle coverage for the broadband release corpus.
Search terms:
linuxubuntufedorafreebsddebianemule
Acceptance Criteria¶
- [x] the UI can start server and Kad searches for the release corpus
- [x] at least one safe candidate can be added from search results when public network state permits it
- [x] pause, resume, stop, and remove are covered on a sandboxed transfer
- [x] unsafe executable candidates are rejected by the harness
- [x] network unavailability is inconclusive with recorded server/Kad state, not a false product failure
Progress Evidence¶
- 2026-05-10 REST-backed cold-start stress evidence:
repos\emulebb-build-tests\reports\rest-cold-start-dump-stress\20260510-051044-eMule-main-release\result.json. The supported commandpython -m emule_workspace test live-e2e --config Release --platform x64 --suite rest-cold-start-dump-stress --rest-cold-start-dump-stress-enable-umdhpassed with48/48completed searches across automatic, ED2K/server/global, and Kad methods,48/48completed real download triggers,0zero-result searches,0required-term zero-result searches, and0video download triggers. - The same run collected Sysinternals/Windows Debugging Tools evidence
including ProcDump, CDB, Handle, ListDLLs, GFlags UST, and UMDH snapshots.
UMDH baseline-to-post-drain positive app-frame delta was
1,436,752bytes; the top retained app frame wasemule!CRing<TransferredData>::CRing<TransferredData>at638,976bytes. - This evidence confirmed the REST/search/download stress lane was healthy; CI-013 stayed open at that point only because the release gap was the UI-driven search/download driver rather than REST-triggered search/download behavior.
- 2026-05-10: added the selectable Search UI live smoke in
repos\emulebb-build-testscommitdef3c51. The supported commandpython -m emule_workspace test live-e2e --config Release --platform x64 --suite search-ui-live --fail-fastpassed and wrote aggregate evidence torepos\emulebb-build-tests\reports\live-e2e-suite\20260510-060526-eMule-main-release\result.json. The Search UI reportrepos\emulebb-build-tests\reports\search-ui-live\20260510-060526-eMule-main-release\result.jsonrecords live seed refresh/import, eD2K server connection, Kad start, a UI-started server search forlinuxwith 309 result rows, and a UI-started Kad search forubuntuwith 264 result rows. The suite is selectable through the aggregate runner and reports network-connect failures as inconclusive instead of product failures. - 2026-05-10: extended the Search UI live driver in
repos\emulebb-build-testscommit87da972so the suite reads Search UI result row text, rejects unsafe executable/video candidates, selects a safe visible result, invokes the paused-download UI command, and verifies the transfer through native REST. The supported commandpython -m emule_workspace test live-e2e --config Release --platform x64 --suite search-ui-live --fail-fastpassed and wrote aggregate evidence torepos\emulebb-build-tests\reports\live-e2e-suite\20260510-061200-eMule-main-release\result.json. The Search UI reportrepos\emulebb-build-tests\reports\search-ui-live\20260510-061200-eMule-main-release\result.jsonrecords a live UI-started server search forlinuxwith 1011 result rows, selection of a safeArchivecandidate of8.20 MBwith hash67b15beb78c241c4d35851ce58981318, and REST materialization of the transfer in paused state. - 2026-05-10: extended the Search UI live driver in
repos\emulebb-build-testscommit7232339to run the native transfer lifecycle against the UI-created sandboxed transfer. The supported commandpython -m emule_workspace test live-e2e --config Release --platform x64 --suite search-ui-live --fail-fastpassed and wrote aggregate evidence torepos\emulebb-build-tests\reports\live-e2e-suite\20260510-061818-eMule-main-release\result.json. The Search UI reportrepos\emulebb-build-tests\reports\search-ui-live\20260510-061818-eMule-main-release\result.jsonrecords a UI-startedlinuxsearch with 309 result rows, a safe document candidate with hash10649cd9ad9c7862210c86fffa1f9cab, resume toqueued, pause back topaused, stop withstopped=true, and remove with a final 404 transfer lookup. The harness now fails per-item REST lifecycle errors instead of treating HTTP 200 bulk envelopes as success by themselves. - 2026-05-10: extended the Search UI live inconclusive path in
repos\emulebb-build-testscommitebb42c4so public-network failures record/api/v1/status,/api/v1/kad, and/api/v1/serverssnapshots in the report instead of only storing exception text. The supported commandpython -m emule_workspace test python --path tests/python/test_search_ui_live.py --quietpassed with 8 focused Search UI helper tests, including proof that inconclusive reports capture server/Kad state.python -m emule_workspace validatealso passed for the slice. - 2026-05-10: re-ran the cold-start REST dump stress lane as a longer
search/download memory soak with UMDH enabled. The supported command
python -m emule_workspace test live-e2e --config Release --platform x64 --suite rest-cold-start-dump-stress --fail-fast --rest-cold-start-dump-stress-enable-umdh --rest-cold-start-dump-stress-waves 10 --rest-cold-start-dump-stress-searches-per-wave 16 --rest-cold-start-dump-stress-max-concurrent-searches 8 --rest-cold-start-dump-stress-downloads-per-wave 12 --rest-cold-start-dump-stress-post-drain-seconds 180 --rest-cold-start-dump-stress-tool-timeout-seconds 900passed and wrote aggregate evidence torepos\emulebb-build-tests\reports\live-e2e-suite\20260510-071040-eMule-main-release\result.json. The stress reportrepos\emulebb-build-tests\reports\rest-cold-start-dump-stress\20260510-071041-eMule-main-release\result.jsonrecords160/160completed searches,0failed searches,120/120real download triggers, and0video download triggers. Optional narrow terms such asopenstreetmap,alpine linux,rocky linux,alma linux, andkuberneteshad live-network zero-result observations, but no required broad release terms had required zero-result failures. UMDH retained positive allocation delta fell from a128.42 MBpeak to3.04 MBafter the post-drain window, with no leak-threshold failure and no inconclusive child suite. - 2026-05-10: confirmed the focused crash-dump smoke can capture actionable
dump artifacts without depending on WER LocalDumps. The supported command
python -m emule_workspace test live-e2e --config Release --platform x64 --suite local-dumps-crash-smokepassed and wrote evidence torepos\emulebb-build-tests\reports\local-dumps-crash-smoke\20260510-090533-eMule-main-release\result.json. The run captured a REST-requested full dump at173,407,172bytes and a ProcDump crash dump at174,700,809bytes. WER LocalDumps still did not produce anemule.exedump after reboot (wer_emule_dump_count=0), likely because the ProcDump crash monitor owns the exception path. Since REST manual dump capture and ProcDump provide the needed crash evidence, WER LocalDumps are treated as optional informational evidence for this lane rather than a release gate. - CI-013 is closed. Remaining broader stress, memory, and REST/Arr parity work is tracked by sibling release-hardening items.
Relationship To Other Items¶
- backs
CI-011 - complements REST live search coverage in
CI-014andCI-015