Session Resume¶
This file is the session-termination handoff for the canonical eMule
workspace. Update it only when ending a work session or when the user
explicitly asks for a current handoff. Do not use it for mid-task planning.
This file is not policy, not backlog authority, and not a substitute for
EMULE_WORKSPACE_ROOT\repos\emulebb-tooling\docs\WORKSPACE-POLICY.md.
Current State¶
- Date: 2026-05-12.
- Active app worktree:
%EMULE_WORKSPACE_ROOT%\workspaces\v0.72a\app\eMule-mainonmain. - Supporting repos checked this session:
%EMULE_WORKSPACE_ROOT%\repos\emulebb-toolingonmain%EMULE_WORKSPACE_ROOT%\repos\emulebb-build-testsonmain- App and build-test repos are clean on
main...origin/main. - Beta-readiness audit snapshots now live under
docs\history\release-0.7.3\audits. - Latest app commit:
07572d6 CI-024 report shared hashing REST busy state. - Latest build-tests commit:
641700f CI-024 gate Arr acquisition on shared hashing idle.
Completed This Session¶
- Investigated whether a large shared-folder tree can block REST/Arr live tests.
- Confirmed the web listener can still answer cheap routes while native-state routes can stall behind UI/native model work.
- Added REST shared-hashing diagnostics:
/api/v1/statusstats now includesharedHashingCountandsharedHashingActive./api/v1/shared-directoriesuses the same null-safe hashing counter.- Added a
SERVICE_BUSYREST error mapping to HTTP503. - Made
/api/v1/transfersreject while shared hashing is active instead of letting transfer snapshots pile up behind a long shared-file scan. - Added Arr live-test gating so Radarr/Sonarr acquisition waits until
sharedHashingCount == 0after REST startup and after eMule category setup. - Kept the live-wire policy intact: no movie or series titles were hardcoded.
Validation References¶
Completed validation:
python -m pytest tests\python\test_radarr_sonarr_emulebb_live.py -qpassed:43 passed.python -m pytest tests\python\test_rest_api_smoke.py -qpassed:85 passed.python -m emule_workspace build app --config Release --platform x64 --build-output-mode ErrorsOnlypassed with0 warnings.python -m emule_workspace test all --config Release --platform x64 --build-output-mode ErrorsOnlypassed with exit code0.
Live-Test Handoff¶
- A Radarr live rerun was started with:
python -m emule_workspace test live-e2e --suite radarr-emulebb --config Release --platform x64 --build-output-mode ErrorsOnly --live-wire-inputs-file %EMULE_WORKSPACE_ROOT%\repos\emulebb-build-tests\live-wire-inputs.local.json --fail-fast. - The user intentionally interrupted that run after roughly 11 minutes.
- Partial report:
%EMULE_WORKSPACE_ROOT%\repos\emulebb-build-tests\reports\radarr-emulebb-live\20260511-235514-eMule-main-release\result.json. - Important partial result: the new shared-hashing gates both passed:
shared_hashing_idle_after_rest_ready:hashingCount=0,idle=trueshared_hashing_idle_after_category_setup:hashingCount=0,idle=true- The interrupted report ended at
radarr_search_and_grabwith aURLErrorconnection-refused message after cleanup started. Do not treat that interrupted run as a completed acquisition verdict. - No
emule.exeprocess was left running after the interruption. The only observed Python processes were unrelated local services:Plex-Auto-Languagesandqbautom.
Next Steps¶
- Read
repos\emulebb-tooling\docs\WORKSPACE-POLICY.mdbefore the next workspace task. - Use
python -m emule_workspacefor build, validation, test, and live commands. - Continue with Radarr first, then Sonarr, using logs and
%EMULE_WORKSPACE_ROOT%\repos\emulebb-build-tests\.env.localpluslive-wire-inputs.local.json. - Treat the shared-hashing question as answered for the latest run:
hashing was idle, so the next debugging focus is the Radarr/prowlarr
connection-refused failure during
radarr_search_and_grab.