Three bugs fixed in autoresearch_control_plane_demo.ipynb:
1. Wrong variable names in the alternative-backends demo cell (NODE_ROOT,
SMOKE_PACKET, HARNESS_ROOT → AUTORESEARCH_ROOT, packet_path, CLAW_ROOT).
2. --allow-any-branch passed to autoresearch run, which does not accept that
flag (loop-only). Removed it; switched to run_cmd + try/except so backend
failures print cleanly instead of raising a raw JSONDecodeError.
3. Root-cause fix for "Worker did not produce a pending experiment":
_collect_changed_files() uses after_paths - before_paths to detect edits.
If train.py is already dirty when the worker starts (left over from a
prior run), it sits in both snapshot sets so the difference is empty. The
fallback edit also uses run_shell_command, not edit_file, so edited_paths
is empty too — changed_files == [] even though the worker did edit the
file. Fixed by adding git checkout -- train.py right after isolate,
giving the worker a clean baseline every time.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>