• Real incident (2026-08-13, task b243dfe8): run_work_node() unconditionally
    INSERTed a new execution_log_file row every call. Fine the first time, but if
    the process crashed/restarted between that INSERT and execute_work_graph()
    genuinely returning, work_node_execution.status is left at 'running' (not
    'done', not a fresh node) and an execution_log_file row already exists for
    that node_exec_id. The next run_work_node() call for the SAME node_exec_id
    (REQ-06 requires this to be resumable) hit 'sqlite3.IntegrityError: UNIQUE
    constraint failed: execution_log_file.node_exec_id' and could never recover --
    this exact bug is what task 2084590a's own (still-blocked) goal describes.
    
    Reuses the existing row (log_file_id, file_path) instead of re-inserting, same
    "resume must reuse what already exists" pattern this function already applies
    to git_worktree_ref a few lines below. New test confirms the exact production
    traceback on the pre-fix code and passes post-fix.
    
    Also adds docs/todo/2026-08-13-blocked-pending-human-incident-retrospective.md,
    today's consolidated retrospective + fix/execution-order plan for the 6 tasks
    that were blocking on various independent real causes.
    
    815/815 tests.
    
    Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
    bboonnee authored
     
    Browse File »