Submatter/plans/Plan-workspace-communications/Epic-agent-participation/Task-agent-harness-chat-streaming.md

2.5 KiB

kind slug title plan_slug epic_slug status priority tenant_id owner cursor_todo_id updated_at
task agent-harness-chat-streaming Normalize harness run events for saved agents workspace-communications agent-participation ready P1 global unassigned null 2026-10-22

Task summary

Execute saved-agent jobs through the existing runtime-agnostic harness and normalize progress, tool, approval, failure, cancellation, and completion events for downstream consumers.

Description

A durable job supplies a pinned agent version and requested role or capability. The worker loads that definition, resolves model policy through ResolvedModel, selects an execution harness adapter, and emits a normalized event stream such as run.started, text.delta, tool.requested, approval.required, run.failed, and run.completed. OmniRoute remains an inference gateway reachable through provider resolution; it is not the harness. This task owns runtime execution, normalized persisted run/tool/approval events, and recoverable checkpoints; it does not project events into chat, persist the final chat message, or create notifications.

Subtasks

  • Define or extend the harness contract for normalized asynchronous run events.
  • Adapt the current OpenCode worker runtime and model-routing flow without chat-specific provider branches.
  • Persist normalized run/tool/approval events and recoverable checkpoints behind a consumer-neutral interface.
  • Add cancellation, approval, tool authorization, adapter parity, and failure-recovery tests.

Owner or assignee

unassigned

Status

ready

Estimation

L

Acceptance criteria

  • Harness context assembly and each tool call revalidate context/grant/lifecycle authority; same workspace, prior approval or model-requested access cannot bypass private-object restrictions.

  • Chat code contains no direct OmniRoute, Anthropic, OpenAI, Google, or Vercel-specific branch.

  • The same chat job can run through different harness adapters using one event contract.

  • Normalized run/tool/approval events and checkpoints are durable and workspace-scoped.

  • Browser connectivity is not part of harness execution and cannot cancel a run implicitly.

  • Chat projection, final chat-message persistence, and notifications remain exclusively owned by Task-agent-chat-run-delivery.md.

  • pnpm lint && pnpm type-check && pnpm test pass; pnpm build passes for worker changes.

  • Epic: ./Epic-agent-participation.md
  • Plan: ../Plan-workspace-communications.md