Commit Graph

602 Commits

Author SHA1 Message Date
d65bc701da feat(token-tracking): record AI token consumption per task (CUST-WP-0029)
Introduces end-to-end token consumption tracking so agent work is
visible as a cost/effort metric alongside tasks and workplans.

- Migration o2j3k4l5m6n7: token_events table with FK indexes on
  task_id, workstream_id, repo_id, created_at
- ORM model, Pydantic schemas (TokenEventCreate, TokenEventRead with
  computed tokens_total, TokenSummary)
- Router: POST /token-events/, GET /token-events/ (7 filters),
  GET /token-events/summary/ (task|workstream|repo|commit|release scope)
- MCP tools: record_token_event, get_token_summary (formatted table)
- update_task_status enriched with optional tokens_in/tokens_out
  passthrough — one call creates status update + token event
- Dashboard token-cost.md page: by-repo bar, by-workplan table,
  by-model bar, top-10 tasks by tokens
- ralph-workplan skill updated with token reporting guidance and
  per-task heuristics for estimating counts
- Tests: test_token_events.py + test_token_passthrough.py (182 pass)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 17:46:46 +02:00
280f04c10d chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 17:43:17 +02:00
af6f0c7346 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 17:28:22 +02:00
bdf11f55fb chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 17:13:36 +02:00
c75d84bd67 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 16:58:41 +02:00
a4bd29b901 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 16:43:54 +02:00
c72a1654d3 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 16:29:08 +02:00
05e6abb3be chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 16:27:44 +02:00
015cf999a8 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 16:26:28 +02:00
af592401c0 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - CUST-WP-0029-T07: todo → done
2026-03-29 16:26:24 +02:00
aaca84dd46 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - CUST-WP-0029-T06: todo → done
2026-03-29 16:26:24 +02:00
422d869309 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - CUST-WP-0029-T05: todo → done
2026-03-29 16:26:24 +02:00
dc49ef13b7 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - CUST-WP-0029-T04: todo → done
2026-03-29 16:26:24 +02:00
c87a74904c chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - CUST-WP-0029-T03: todo → done
2026-03-29 16:26:24 +02:00
c76ee32206 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - CUST-WP-0029-T02: todo → done
2026-03-29 16:26:24 +02:00
b5c5ed8815 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - CUST-WP-0029-T01: todo → done
2026-03-29 16:26:24 +02:00
b41233c5d1 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 16:14:14 +02:00
f8e8d472d5 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 15:59:18 +02:00
5c1f1f509e chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 15:44:26 +02:00
a702f3a1d8 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 15:29:26 +02:00
d4e4f4ba2c chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 15:14:30 +02:00
bff03de438 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 14:59:33 +02:00
43408d838d chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 14:44:31 +02:00
33ce288359 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 14:29:32 +02:00
34e5fad47a chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 14:17:55 +02:00
3e828ddc51 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 14:14:47 +02:00
2d613dd03b chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 14:14:15 +02:00
813ccc02d8 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 13:59:29 +02:00
dceccded73 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 13:44:24 +02:00
2646486dd9 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 13:29:20 +02:00
70e5e30af8 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 13:14:20 +02:00
b58061b9ed chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 12:59:15 +02:00
4eab95574e chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 12:44:06 +02:00
b5d88b7973 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 12:28:57 +02:00
60eae82469 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 12:13:50 +02:00
c28e1ba78c chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 11:58:43 +02:00
e588fd6ef1 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 11:43:33 +02:00
2360edc6c7 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 11:28:13 +02:00
ee76bfcab7 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 03:36:56 +02:00
5e526b899e chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 03:21:26 +02:00
bf8785774f chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 03:05:55 +02:00
ca46a1ac90 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 01:50:24 +01:00
f3dd3e3e97 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 01:34:51 +01:00
c2f5e68f08 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 01:19:18 +01:00
028059822f chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 01:04:00 +01:00
18d938656e chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 00:48:26 +01:00
1f09c094d4 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 00:33:05 +01:00
9e0cf755d4 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 00:17:01 +01:00
505cc56f90 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-29:
  - update .custodian-brief.md for the-custodian
2026-03-29 00:02:15 +01:00
a45cf858d0 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-28:
  - update .custodian-brief.md for the-custodian
2026-03-28 23:56:13 +01:00