- Remove duplicate WorkflowEngine instantiation (was created in both app.js and server.js, causing every periodic workflow to fire twice) - Fix self-updater _isNewer() crash loop: same-version different-commit was treated as 'update available', then crashed on undefined tarball path. Now only triggers on actual version bumps - Increase container stats interval from 10s to 30s - Increase health check interval from 30s to 60s - Add disk cleanup debounce (skip if last cleanup < 30 min ago) - Remove redundant disk-space-monitor from server.js (already in app.js) - 69/69 tests pass