* fix(server): ignore OpenCode snapshot diffs when starting autonomous turns OpenCode stamps its filesystem-snapshot diff onto the user message after the turn goes idle. Since #2258 Paseo treats an unknown idle user message.updated as the start of an autonomous turn, so that late metadata write opened a turn no provider-idle boundary would ever close. The agent stayed falsely running until the next submission interrupted it. Reject user message.updated events carrying summary.diffs. Real prompts never carry snapshot diffs, so genuine autonomous turns still start, and filesystem snapshots stay enabled for undo and revert. * fix(server): trust OpenCode busy status for autonomous activity Mutable message records can receive metadata after execution ends. Treat the provider's busy status as the activity boundary and buffer preceding content until that boundary arrives. * test(server): cover autonomous provider activity * fix(server): reconcile OpenCode wakes from busy status # Conflicts: # packages/server/src/server/agent/providers/opencode-agent.ts * fix(server): preserve background activity boundary after stops * fix(server): keep idle events outside background activity Only provider execution status proves a new activity boundary. Reconcile adopted sessions once at subscription time instead of retaining unowned idle events for a future run. * fix(server): order adopted session reconciliation Live runner-status events supersede an in-flight status snapshot. Treat busy and retry as one active provider state. * test(server): remove misleading snapshot gate --------- Co-authored-by: Des Flynn <des@desflynn.com>