Skip to content

v0.1.12 — Daemon crash protection

Choose a tag to compare

@ssdavidai ssdavidai released this 23 Feb 11:25

Fixed

  • Daemon crash loops: Wrapped all daemon work (_process_file, run_sweep, run_extraction) in try/except — one bad file or failed sweep now logs the error and continues instead of killing the worker process
  • Stderr preserved: Child process stderr now redirects to the tool's log file (not /dev/null) so any residual tracebacks are captured for debugging

Root cause

The curator/janitor/distiller daemon loops had no exception handling around their main work functions. An uncaught exception (e.g. from a problematic inbox file) would propagate through asyncio.run() and terminate the process. The orchestrator would restart it, but the same file would trigger the same crash, creating a restart loop.