Carol — back to Apps ← Apps

Carolopedia

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

📖 CarolopediaServicesBuild InitiativesAll activitiesINI-999977
📋

CAROL-INI-0089-00: Unified Carol app header — owner badge + clickable Carol portrait + mobile-responsive

Initiative
Open in Initiatives →

📖About

All 35 Carol apps render their own index.html with no consistent identity strip. User asks for: (a) every app to show its owner in the header, (b) every app to display reliably (already mostly true — 35/35 on gateway), (c) mobile-friendly design (mostly via Tailwind already), (d) every app to carry Carol's portrait clickable back to /dev/apps/. Solution: a shared 40px top strip injected into each index.html with idempotent marker comment. Owner inlined per-app at injection time (read from registry). Strip uses Tailwind responsive classes — collapses to vertical stack on narrow viewports.

⚖️Decisions

  • Single shared header strip injected into each index.html via Python script — not a runtime template engine. Owner name is inlined per-app at injection time (read from registry.apps + registry.agents). — Each Carol app is a standalone FastAPI instance with its own index.html. A runtime template would require touching every app.py. Static injection is simpler and reversible. (Orion)
  • Idempotent injection: marker HTML comment <!--CAROL_HEADER_v1--> guards against double-injection on re-run. — Future runs (re-deploy, manual edits) shouldn't stack multiple headers. (Orion)
  • Carol portrait sourced from /dev/carolopedia/static/avatars/agent/agt-008.png — already on disk, served by Carolopedia app. — Reuse the canonical agent portrait. No new asset needed. (Orion)

Success criteria

  • grep -l 'CAROL_HEADER_v1' apps/*/index.html returns 35 file paths. (must_have)
  • curl test of all 35 app ports returns 200/2xx/expected codes. (must_have)
  • Visual on /dev/apps/, /dev/initiatives/, /dev/org/, /dev/constitution/ shows the same header strip with the correct owner per app. (must_have)
  • Browser dev-tools mobile viewport (375px wide) renders the header without overflow — owner block stacks below name on narrow screens. (must_have)
  • Regression diff vs prior run: 0 NEW FAILURE. (must_have)