Submatter/plans/Plan-automation-foundation/Epic-apps-worker-v1/Task-worker-operator-notes.md

74 lines
2.1 KiB
Markdown
Raw Normal View History

---
kind: task
slug: worker-operator-notes
title: Operator notes — mid-build context injection
plan_slug: automation-foundation
epic_slug: apps-worker-v1
status: draft
priority: P2
tenant_id: global
owner: unassigned
cursor_todo_id: null
updated_at: "2026-08-03"
---
# Task summary
Let operators send **queued notes** and **direct messages** to an active worker session without waiting for a human gate.
## Description
**Benchmark:** Autensa Operator Chat — two delivery modes:
| Mode | Delivery | Use case |
|------|----------|----------|
| **Queued note** | Injected at next checkpoint / tool round | "Use the existing auth middleware" |
| **Direct message** | Prepended to very next model call | Urgent course correction |
Echodo scope is convoy-scoped (not per arbitrary task board). Gate co-pilot (Epic 5) stays gate-focused; this extends intervention to `in_progress` convoys.
### Data model
`convoy_operator_messages` table (workspace-scoped):
- `convoy_id`, `brief_id` (optional), `agent_run_id` (optional)
- `delivery`: `queued` | `direct`
- `body`, `author_user_id`, `delivered_at`, `created_at`
### APIs
- tRPC `convoys.postOperatorNote` (workspace member)
- Worker polls or receives note via job metadata on each tool round
### UI
- Mission control detail panel: chat thread when convoy status is `in_progress`
- Distinct from gate co-pilot (separate tab or section)
## Dependencies
- [Task-worker-minimal-tool-loop](./Task-worker-minimal-tool-loop.md)
- Epic 5 mission control detail panel (extend, do not rewrite)
## Subtasks
- [ ] Schema + tRPC mutations/list
- [ ] Worker consumes queued notes between tool steps
- [ ] Worker consumes direct messages before next `generateText`
- [ ] Mission control UI thread for `in_progress` convoys
## Estimation
M
## Acceptance criteria
- [ ] Operator posts queued note; worker sees it on next tool round
- [ ] Direct message arrives before next model call when run is active
- [ ] Messages are workspace-scoped and auditable in convoy detail
## Links
- Epic: `./Epic-apps-worker-v1.md`
- Related: [Task-mission-control-ui](../Epic-mission-control-gates-ui/Task-mission-control-ui.md)