Skip to content

Download and search UI live scenarios

Summary

Add UI-driven live search and download lifecycle coverage for the broadband release corpus.

Search terms:

  • linux
  • ubuntu
  • fedora
  • freebsd
  • debian
  • emule

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 command python -m emule_workspace test live-e2e --config Release --platform x64 --suite rest-cold-start-dump-stress --rest-cold-start-dump-stress-enable-umdh passed with 48/48 completed searches across automatic, ED2K/server/global, and Kad methods, 48/48 completed real download triggers, 0 zero-result searches, 0 required-term zero-result searches, and 0 video 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,752 bytes; the top retained app frame was emule!CRing<TransferredData>::CRing<TransferredData> at 638,976 bytes.
  • 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-tests commit def3c51. The supported command python -m emule_workspace test live-e2e --config Release --platform x64 --suite search-ui-live --fail-fast passed and wrote aggregate evidence to repos\emulebb-build-tests\reports\live-e2e-suite\20260510-060526-eMule-main-release\result.json. The Search UI report repos\emulebb-build-tests\reports\search-ui-live\20260510-060526-eMule-main-release\result.json records live seed refresh/import, eD2K server connection, Kad start, a UI-started server search for linux with 309 result rows, and a UI-started Kad search for ubuntu with 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-tests commit 87da972 so 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 command python -m emule_workspace test live-e2e --config Release --platform x64 --suite search-ui-live --fail-fast passed and wrote aggregate evidence to repos\emulebb-build-tests\reports\live-e2e-suite\20260510-061200-eMule-main-release\result.json. The Search UI report repos\emulebb-build-tests\reports\search-ui-live\20260510-061200-eMule-main-release\result.json records a live UI-started server search for linux with 1011 result rows, selection of a safe Archive candidate of 8.20 MB with hash 67b15beb78c241c4d35851ce58981318, and REST materialization of the transfer in paused state.
  • 2026-05-10: extended the Search UI live driver in repos\emulebb-build-tests commit 7232339 to run the native transfer lifecycle against the UI-created sandboxed transfer. The supported command python -m emule_workspace test live-e2e --config Release --platform x64 --suite search-ui-live --fail-fast passed and wrote aggregate evidence to repos\emulebb-build-tests\reports\live-e2e-suite\20260510-061818-eMule-main-release\result.json. The Search UI report repos\emulebb-build-tests\reports\search-ui-live\20260510-061818-eMule-main-release\result.json records a UI-started linux search with 309 result rows, a safe document candidate with hash 10649cd9ad9c7862210c86fffa1f9cab, resume to queued, pause back to paused, stop with stopped=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-tests commit ebb42c4 so public-network failures record /api/v1/status, /api/v1/kad, and /api/v1/servers snapshots in the report instead of only storing exception text. The supported command python -m emule_workspace test python --path tests/python/test_search_ui_live.py --quiet passed with 8 focused Search UI helper tests, including proof that inconclusive reports capture server/Kad state. python -m emule_workspace validate also 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 900 passed and wrote aggregate evidence to repos\emulebb-build-tests\reports\live-e2e-suite\20260510-071040-eMule-main-release\result.json. The stress report repos\emulebb-build-tests\reports\rest-cold-start-dump-stress\20260510-071041-eMule-main-release\result.json records 160/160 completed searches, 0 failed searches, 120/120 real download triggers, and 0 video download triggers. Optional narrow terms such as openstreetmap, alpine linux, rocky linux, alma linux, and kubernetes had live-network zero-result observations, but no required broad release terms had required zero-result failures. UMDH retained positive allocation delta fell from a 128.42 MB peak to 3.04 MB after 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-smoke passed and wrote evidence to repos\emulebb-build-tests\reports\local-dumps-crash-smoke\20260510-090533-eMule-main-release\result.json. The run captured a REST-requested full dump at 173,407,172 bytes and a ProcDump crash dump at 174,700,809 bytes. WER LocalDumps still did not produce an emule.exe dump 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-014 and CI-015