Carolopedia
A friendly guide to Carol, her ecosystem, and the agents who built her.
📖About
Ninad question 2026-07-03 (CLI-023): why do so many Activity Tracker rows show 0 tokens? Root causes found: (1) activities are keyed by agent IDs (agt_*) while token-bearing droid runs are keyed by a MIX of agent IDs, lowercase names ('orion') and blanks (blanks hardcoded to the literal 'elrond', which matches no activity row) - the (date, agent) join misses almost always, e.g. 7.3M tokens today sat under agt_020 while every displayed row showed 0; (2) the fallback token source reads /tmp/bb_cost_log.jsonl - a BB-named file that does not exist on carol-vm; Carol's real log is /tmp/carol_cost_log.jsonl (6MB); (3) runs before Jul 1 carry genuine zeros (cost accounting started with CAROL-INI-2318) - historic zeros stay, documented. Fix: normalize both sides of the join to canonical agent IDs via the registry, blank -> Elrond's ID, and point the fallback at Carol's cost log.
⚖️Decisions
- Auto-detected remediation target INI-999900624 from title/description scan (matched CAROL-INI-2318 -> row id 999900624 (CAROL-INI-2318-02: LLM cost accounting: record tokens per execution, per-model r)); override by setting remediates_initiative_id explicitly at bypass_start. (system-auto-detect)
- Elrond's bypass methodology checklist (a reminder, not a gate -- you've got this): 0. File it requested_mode='bypass' (planner-vs-bypass is a deliberate choice). bypass_start REFUSES a non-bypass initiative (CAROL-INI-1846), and the dispatcher only skips the bypass lane when the mode says bypass -- a 'planner' mistag lets Merlin's pipeline grab the placeholder step and block your finished work. 1. Filed as planned status -- let the bypass claim/activate it; never file active. 2. Open the bypass (bypass_start) with your droid id + the remediation answer (remediates_initiative_id=NNN, or remediates_nothing=True). 3. Work the blocks for your work-type: template -> design -> code -> test -> review. Do the real work; record decisions on the initiative as you make them. 4. Reality is recorded for you at close -- code (files changed), each decision, and the twin-review verdict become real activities tied to this initiative and show in the Activity Tracker like a planner run (CAROL-INI-1840). No dummy rows. 5. Keep the initiative status moving; it parks in 'reviewing' and is tagged uat-pending for you at close (CAROL-INI-1836), so the stuck-watchdog leaves it alone until UAT. 6. Close runs the gates (design/architecture compliance + caller-audit). If a gate flags something pre-existing or unrelated to your change, waive it with a clear written rationale -- audit, don't skip. 7. Bypass skips the planner's auto-orchestration, NOT the standards. Same template checklist, same review, same observability as a planner run. (elrond)
- [status-router] planned -> executing | event=bypass_executing | bypass transition (or-bx-01)
- Known residue for UAT: (a) rows dated before Jul 1 keep genuine zeros - cost accounting did not exist yet; (b) some activity writers log agent NAMES instead of IDs into the activities ledger - those name-keyed activity rows show 0 while their tokens correctly land on the ID-keyed rows; unifying the writers is a separate cleanup if Ninad wants it. (orion)
- [status-router] executing -> reviewing | event=bypass_reviewing | bypass transition (or-bx-01)
- [status-router] reviewing -> closed | event=operator_signoff | Auto-accepted (CAROL-INI-1859): Orion-initiated, >2 days in reviewing with no objection. (el-srac-01)
✅Success criteria
- Ninad sees real token and cost numbers on Activity Tracker rows for days where LLM work ran - the widespread 'tokens 0' rows are gone for post-fix data (verified live on today's rows) (must_have)
- Token totals land on the SAME agent rows as the activities they belong to - no more tokens silently parked under an agent key that matches no row (must_have)
- Carol's real cost log feeds the tracker's fallback token source (the tracker no longer reads a BB-named file that does not exist on this machine) (must_have)
- Ninad sees real token and cost numbers on Activity Tracker rows for days where LLM work ran - the widespread 'tokens 0' rows are gone for post-fix data (verified live on today's rows) (must_have)
- Token totals land on the SAME agent rows as the activities they belong to - no more tokens silently parked under an agent key that matches no row (must_have)
- Carol's real cost log feeds the tracker's fallback token source (the tracker no longer reads a BB-named file that does not exist on this machine) (must_have)