When an agent is working on an issue, users can now see real-time output
in the issue detail page instead of waiting for completion.
Backend:
- Add task_message table and migration for persisting agent messages
- Add POST /api/daemon/tasks/{id}/messages endpoint for daemon to report
structured messages (tool_use, tool_result, text, error) in batches
- Add GET /api/daemon/tasks/{id}/messages for catch-up after reconnect
- Add GET /api/issues/{id}/active-task to check for running tasks
- Broadcast task:message events via WebSocket
- Daemon forwards agent session messages with 500ms text throttling
Frontend:
- Add AgentLiveCard component showing live tool calls, text output,
and progress indicators with auto-scroll
- Wire into issue detail timeline with WS subscription and HTTP catch-up
- Card appears when agent is working, disappears on completion/failure
18 lines
449 B
SQL
18 lines
449 B
SQL
-- name: CreateTaskMessage :one
|
|
INSERT INTO task_message (task_id, seq, type, tool, content, input, output)
|
|
VALUES ($1, $2, $3, $4, $5, $6, $7)
|
|
RETURNING *;
|
|
|
|
-- name: ListTaskMessages :many
|
|
SELECT * FROM task_message
|
|
WHERE task_id = $1
|
|
ORDER BY seq ASC;
|
|
|
|
-- name: ListTaskMessagesSince :many
|
|
SELECT * FROM task_message
|
|
WHERE task_id = $1 AND seq > $2
|
|
ORDER BY seq ASC;
|
|
|
|
-- name: DeleteTaskMessages :exec
|
|
DELETE FROM task_message
|
|
WHERE task_id = $1;
|