Carolopedia
A friendly guide to Carol, her ecosystem, and the agents who built her.
📖About
Ninad direct order 2026-07-03, four connected gaps: (1) TOKENS NOT RECORDED - the bypass metrics writer hardcodes tokens=0 and its upsert never updates the tokens column, so the Activity Tracker listing always shows 0 tokens; fix: sum input+output tokens from the executions droid runs and update on conflict. (2) NO PER-MODEL COST - the DeepSeek provider records token usage but never computes cost_usd (9767 runs since Jul 1: ZERO have cost) while Claude CLI self-reports; fix: new shared rate-card module (per-model input/output/cache-hit rates per 1M tokens) used by the DeepSeek provider to compute cost per call, honoring cache-hit pricing. (3) RATE CARD - the same shared module renders as a rate-card table in the Carol Cost Monitor app (models x input/output/cache prices), one source of truth for display and computation. (4) COST TRACKER BROKEN - every data endpoint 500s because a helper function named _idb shadows the initiatives-db module import of the same name (broken INI-2038 relay-migration edit); fix the shadowing.
⚖️Decisions
- Follow-on to parent INI 999900618 (orion)
- Scope inherited verbatim from parent INI 999900618 per CAROL-INI-361. (elrond.initiative_author)
- [status-router] planned -> closed | event=operator_put | PUT /api/initiatives (operator)
✅Success criteria
- Bypass metrics writer records real token sums per initiative (tokens column updated on conflict); new bypass closes show tokens in the Activity Tracker listing (must_have)
- DeepSeek calls record computed cost_usd from the shared rate card (cache-hit pricing honored), verified with a live call or unit computation (must_have)
- Carol Cost Monitor endpoints return data (shadowing bug fixed) and the UI shows the model rate-card table (must_have)