Daily Note — 2026-04-11


Clara Agents Team — claraagents.com

Session Type: Continuation from 2026-04-10 (VRD + Playbook rewrite session)

What Was Completed

VRD + Playbook Rewrite (from 2026-04-10, session survived compaction): All 5 Cursor agent prompts fully rewritten with IP protection rule incorporated:

  • prompts/2026/April/10/01-ca-web-full.md — Web (Next.js 16), ClaraVoiceWidget is dumb proxy
  • prompts/2026/April/10/02-ca-mobile.md — Mobile (Expo RN), clara-voice.ts only voice file
  • prompts/2026/April/10/03-ca-desktop.md — Desktop (Electron Forge, NOT Tauri)
  • prompts/2026/April/10/04-ca-backend.md — Backend, surface-scripts.ts owns ALL scripts
  • prompts/2026/April/10/05-ca-tests.md — Tests, ip-boundary.test.ts scans frontend files

Critical rule: Clara’s voice scripts live ONLY in backend/src/features/ai/clara/scripts/surface-scripts.ts

Cursor Agent Execution (Prompt 01 — Web): Cursor agent dispatched 01-ca-web-full.md and merged feat/web-complete. Commits:

  • Full Apollo Client + Redux-Persist + Clerk provider stack
  • ClaraVoiceWidget (dumb — sends surface ID, plays audio back)
  • Landing page (hero, showcase, how-it-works, pricing, waitlist)
  • Dashboard with sidebar + AgentCard + DeployAgentModal
  • API routes: /api/voice/session, /api/voice/respond, /api/graphql (proxy), /api/billing-portal
  • Backend: surface-scripts.ts, voice session service, GraphQL resolvers
  • Significant additional work: Cloudflare Pages deploy, TypeScript fixes across multiple PRs

Code Review (docs/review/2026-04-11-web-surface-review.md): Grade: B-

  • IP Protection: PASS ✓ (grep confirmed zero script leaks)
  • CRIT-01: billing-portal/route.ts — no auth, no Stripe session creation
  • HIGH-01: Voice proxy swallows backend HTTP status codes
  • HIGH-02: TTS fires on every page load (bot abuse risk)
  • HIGH-03: Checkout flow broken (pricing inconsistency, no try/catch)
  • HIGH-04: Clerk webhook has no Svix signature verification
  • HIGH-05: Dead Apollo singleton in lib/apollo-client.ts
  • 6 medium issues, 8 low issues

Decisions Made

  • IP rule confirmed working end-to-end — move forward with dispatch of prompts 02-05
  • Fix CRIT-01 and HIGH-01/04 before merging web surface to develop
  • HIGH-05: Delete frontend/lib/apollo-client.ts (dead code)
  • Checkout pricing must be standardized: 99/mo Pro across all files

What’s Next (Priorities)

  1. Fix CRIT-01: billing-portal/route.ts — add auth() + stripe.billingPortal.sessions.create()
  2. Fix HIGH-04: Add Svix verification to backend/src/routes/webhooks.ts
  3. Fix HIGH-03: Align pricing (99) across landing + pricing pages, add try/catch to onCheckout
  4. Fix HIGH-01: Forward HTTP status in both voice proxy routes
  5. Delete HIGH-05: Remove dead frontend/lib/apollo-client.ts
  6. Dispatch prompts 02-05 to QCS1 Cursor (mobile, desktop, backend, tests)
  7. Set Amplify env vars: DATABASE_URL, CLERK_* for claraagents
  8. After all surfaces merge → submit Stripe merchant account
  9. Clara Code team: BLOCKED pending /family discussion

Blockers

  • Stripe checkout: blocked until merchant account approved
  • Clara Code team: blocked pending Mo’s /family discussion

Tasks Updated

  • Task #310 (Build claraagents.com landing page): in_progress → web surface B- review, needs 5 fixes before merge

Session 74 (context-continue save — HQ)

CF Pages — BOTH DEPLOYED ✅

  • claracode.ai (clara-code CF Pages project): develop branch live at https://develop.clara-code.pages.dev
    • Final fix: graphql explicit dep + vercel.json installCommand no-op + edge runtime + ES2024 tsconfig + wrangler.toml env rename
  • claraagents.com (claraagents CF Pages project): develop branch live at https://develop.claraagents.pages.dev

/gran diagnosis

  • TS1501 regex v-flag errors in packages/tui/src/utils.ts → bumped tsconfig to ES2024 target+lib
  • npx tsc --noEmit → clean

Next up

  • Custom domain DNS (develop.claracode.ai, develop.claraagents.com)
  • EAS Build Clara Agents mobile
  • Test IDE/Terminal Clara Code surfaces