mirror of
https://github.com/rennf93/roboco.git
synced 2026-08-03 07:23:24 +02:00
When a caller passes an explicit task_id to commit / note / say / dm / evidence, ContentActions now verifies task.assigned_to == caller_agent_id before allowing the side effect. Auto-fill from get_active_task_for_agent is implicitly self-owned and does not need a re-check. evidence() additionally allows assigned_to=None (post-handoff transient state) so QA / documenter can inspect tasks between reassignments. Pre-gateway, agents could not even see tasks they didn't own because the MCP handlers resolved task from session context. The gateway exposes task_id parameters across multiple verbs, so the explicit ownership gate is required. Exception: say() and dm() with NO task_id are exempt — used for channel announcements and off-task A2A. The strict guard only applies when the agent supplies a task_id parameter. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>