Carol — back to Apps ← Apps

Carolopedia

A friendly guide to Carol, her ecosystem, and the agents who built her.

📖 CarolopediaServicesBuild InitiativesAll activitiesINI-100001347
📋

CAROL-INI-1831-00: Palantir narrative quality: sort by latest activity, CET timestamps, per-update duration, Elrond states WHY, give Merlin a voice during step execution

Initiative
Open in Initiatives →

📖About

Five Palantir wall improvements found while watching the 0300-51 run. (1) SORT: the initiatives list sorts by initiatives.updated_at DESC, so a currently-running initiative (fresh Palantir posts but stale updated_at) is buried; sort by the latest palantir_posts.created_at (fallback updated_at) so the active one floats to top. (2) WHY: posts say WHAT (task/outcome) but not WHY; add an optional reasoning/why to the post format and have Elrond populate it on status transitions (e.g. 'blocked because step X failed review 3/3'). (3) MERLIN VOICE: only Elrond posts to Palantir; Merlin (who holds the baton during step execution) is silent. Add Merlin posts at step-execution milestones (step planned, work dispatched, step verdict). (4) CET: timestamps render in VM-local (UTC); render them in CET (Europe/Berlin, DST-aware) for the operator. (5) DURATION: each update should show how many minutes it took (gap from the previous update on that initiative). Items 1/4/5 are Palantir-app display changes; 2/3 touch how Elrond and Merlin narrate.

⚖️Decisions

  • Palantir: sort already by latest activity (the burial was caused by Merlin posting nothing during execution); gave Merlin a voice in the orchestrator (posts at step start, also floats the running initiative up); added a WHY beat to the post format (because ...); Palantir API+UI now render CET (DST-aware) and per-post duration. CET+duration verified live; Merlin-voice/why fire on the next step run. — Operator-facing narrative quality (Orion)
  • INI-1767 compliance gate refused close — CAROL-INI-1767 compliance gate refused close: [palantir] architecture: business-logic file(s) in app dir, must live in a droid behind a shim (L1.4): renderer.py. Bring the app to standard (Design System #178 / architecture #146/#173/#156), or add a decision row prefixed 'Compliance waived by' to override. (shared.bypass.bypass_end[INI-1767])
  • Bypass session failed — initiative blocked (exec 229) — bypass_end called with success=False for exec 229, run 466 (shared.bypass.bypass_end)
  • Compliance waived by Orion: the [palantir] architecture finding (renderer.py business-logic in the app dir) PRE-DATES this initiative and was not introduced by it; this work only touched the wall sort/CET/duration display + post format + Merlin narration. Bringing palantir to the shim standard (#146/#173) is separate scope, to be filed on its own. — Pre-existing deviation, out of scope for the narrative-quality fix (Orion)
  • Elrond stuck-watchdog: 3 consecutive failed recovery attempts since 2 strikes recorded. Initiative idle past 600s with no live queue row; Albus invoked 3 times without progress. Flipping to blocked and surfacing on operator queue per CAROL-INI-403. (elrond.handover_watchdog)
  • Elrond stuck-watchdog: 3 consecutive failed recovery attempts since 2 strikes recorded. Initiative idle past 600s with no live queue row; Albus invoked 3 times without progress. Flipping to blocked and surfacing on operator queue per CAROL-INI-403. (elrond.handover_watchdog)

Success criteria

  • Initiatives list surfaces a currently-running initiative near the top (driven by fresh activity), not buried (must_have)
  • Merlin posts to Palantir during step execution (no longer silent while holding the baton) (must_have)
  • Posts can carry a WHY/reason, and Merlin uses it (must_have)
  • Palantir timestamps render in CET (must_have)
  • Each post shows how long it took (gap from the previous update) (must_have)