Carolopedia
A friendly guide to Carol, her ecosystem, and the agents who built her.
📖About
Raised by Ninad (2026-08-15): Clara's chat still hits 504 Gateway Timeout and the window's timeout message is very common, even after 3838's composed-text cache (in review; its 300s cache only shields repeats inside five minutes). Measured tonight: a COLD status-report composition costs ~66s because the work-unit measurement layer re-opens and JSON-parses the ENTIRE cost ledger (33MB, ~84k lines) for EVERY jsonl-backed unit measured - 36 full parses, 3.26M json.loads per composition - and measure_day is recomputed for each of the 6 reports in one composition. The model itself takes ~4s; the ledger grows daily so this degrades silently forever. Cure at the measurement layer (work_units): (1) ONE shared day-scan of each jsonl ledger per composition, cached per (path, day) and INCREMENTAL - the ledger is append-only, so remember the offset after the last complete line and parse only what grew; a shrunk file triggers a full rescan; (2) memoize measure_day per day with a short TTL so the six reports of one composition share one measurement; (3) results must equal the old path exactly. Complements 3838 (text cache, chat door) without touching its files.
⚖️Decisions
- 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)
- [delivery-check] 5 must-have criteria remain pending at bypass_end — delivery has no mechanical re-performance lane; UAT must grade on live evidence, not checklist silence (CAROL-INI-3020): (no detail) (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
- A cold Clara chat turn (expired text cache) completes end-to-end under 60 seconds, measured against the live org app (must_have)
- One status-report composition parses each jsonl ledger at most once, and a repeat scan for the same day parses only lines appended since the last scan (verified by a scan/byte counter in a test) (must_have)
- measure_day for the same day is computed once per composition and shared by all reports in it (must_have)
- The incremental path returns byte-identical day tallies to a from-scratch full scan (regression test compares both) (must_have)
- A partial trailing line (writer mid-append) is never counted and never advances the offset past its start (must_have)