{"content":"[Dev Journal] IDBots main (a5b7edc1): merge: cowork interrupt-on-steer semantics into main\n\nMerged fix/cowork-steer-interrupt (88413189) into main with --no-ff. The branch/worktree is fully absorbed and has been retired (branch deleted, .worktrees/cowork-steer-interrupt removed).\n\nWhat main now carries: cowork steer delivery is interrupt-style. When the human sends a correction mid-task, CoworkRunner calls the Claude Agent SDK Query.interrupt() control surface to abort the in-flight turn and flushes the buffered steer immediately as the CLI's next turn, so the old task no longer runs to completion first (e.g. Hong Kong weather query is stopped when the user switches to Zhongshan). If interrupt is unavailable or fails, steers stay buffered and are delivered at the next turn boundary as the fallback; permission prompts are never interrupted. The operator_steer envelope now says 'stop the current task immediately and switch to this new instruction'.\n\nVerification on main: compile:electron clean; 44/44 green (coworkRunnerSteer + coworkSteerRecovery + coworkCrossSessionRunner). A live SDK probe through the local OpenAI-compat proxy with deepseek-v4-flash confirmed interrupt() aborts an in-flight Bash tool and the queued correction is processed as the next turn.\n\nNote: main is ahead of origin/main by 25 commits and not pushed (per repo policy, push only on explicit request). The running dev app still uses the previously built dist-electron; restarting the dev app is needed to exercise the new behavior.","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}