Bug
In worker.py, the legacy pipeline batch loops for Layer 1 (~line 277) and Layer 2 (~line 312) use while True: loops that only break when processed == 0. They do NOT check _worker_running, so clicking "Stop Worker" has no effect until the current batch naturally completes.
The modular orchestrator path checks _worker_running correctly, but use_modular_pipeline defaults to False so most users hit the legacy path.
Fix
Add if not _worker_running: break at the top of each while True: batch loop in the legacy pipeline path.
Severity
High — worker is unstoppable during L1/L2 processing. Not a data safety risk but a poor UX issue and could waste API quota.
Found via code audit.
Bug
In
worker.py, the legacy pipeline batch loops for Layer 1 (~line 277) and Layer 2 (~line 312) usewhile True:loops that only break whenprocessed == 0. They do NOT check_worker_running, so clicking "Stop Worker" has no effect until the current batch naturally completes.The modular orchestrator path checks
_worker_runningcorrectly, butuse_modular_pipelinedefaults to False so most users hit the legacy path.Fix
Add
if not _worker_running: breakat the top of eachwhile True:batch loop in the legacy pipeline path.Severity
High — worker is unstoppable during L1/L2 processing. Not a data safety risk but a poor UX issue and could waste API quota.
Found via code audit.