1. Separate ReportTaskUsage endpoint (POST /api/daemon/tasks/{id}/usage)
so usage is captured independently of complete/fail — fixes usage loss
for failed/blocked tasks.
2. Add usage tracking for all four providers:
- Claude: already done (stream-json message.usage)
- OpenCode: extract from step_finish.part.tokens
- OpenClaw: extract from step_end.data token fields
- Codex: extract from turn/completed and task_complete usage fields
3. Remove usage from CompleteTask payload — all usage goes through the
dedicated endpoint now.
|
||
|---|---|---|
| .. | ||
| agent.go | ||
| agent_test.go | ||
| claude.go | ||
| claude_test.go | ||
| codex.go | ||
| codex_test.go | ||
| openclaw.go | ||
| openclaw_test.go | ||
| opencode.go | ||
| opencode_test.go | ||