← All previews

Concept A — Recap & goal in the transcript

Long sessions become opaque. This concept keeps orientation inside the chat itself: a recap card that re-generates when the session goes quiet, a goal banner with elapsed time and milestones, and pins directly on messages (with labels and done-states, borrowed from Synara).

Screen 1 · Session with goal banner, recap card, and pinned messages
orqos orq-vps3
Sessions Active 5 Archived 31
Billing usage-plan migration
orq-os 🎯 3d 4h
Flaky e2e triage
storefront 5h
Weekly burn report
automation 1d
Marketing copy refresh
storefront 3d

Billing usage-plan migration

orq-os Pinned · 3
1 🎯 Migrate billing to usage-based plans · elapsed 3d 4h · 3 / 5 milestones
2 Recap updated 2m ago · 96 messages summarized
  • Done: tier schema merged (#409), plan-tiers branch rebased, integration suite green (41 tests), PR #412 merged.
  • In flight: webhook retry handling — agent is adding idempotency keys before retrying failed invoice events.
  • Decision: proration runs at period end, not mid-cycle (see pinned message).
  • Blocked: staging Stripe keys still pending — using mock gateway in tests meanwhile.
Auto-refreshes after 60s of session quiet · view previous recaps
Claude · fable-5 · Tue 16:12 3 decision

Recommendation: run proration at period end rather than mid-cycle. Mid-cycle proration doubles the invoice-event volume and every provider webhook becomes order-sensitive. Period-end keeps the ledger append-only.

You · Tue 16:20

Agreed, period end. Make sure the webhook consumer is idempotent before we flip the flag.

Claude · fable-5 · 14:52
4 Pin Copy Fork

Added idempotency keys to the invoice-event consumer: events are hashed on (event_id, attempt) and replays short-circuit. Retry with exponential backoff lands in webhooks/retry.ts. 12 new tests, all green.

Pinned follow-up 5 follow-up
✓ Add retry coverage for the webhook consumer before enabling proration · done 14:52
Message Orq…
  • 1 Goal banner — a persistent objective with elapsed time and milestone progress (Synara's "thread goals"). Pausable; also surfaces as a 🎯 chip in the sidebar.
  • 2 Recap card pinned to the top of the transcript — regenerated server-side after 60s of quiet, cached client-side, with history of previous recaps.
  • 3 A pinned message: pin glyph + a colored label ("decision"). The header chip Pinned · 3 filters the transcript to pins only.
  • 4 Pin lives in the normal message hover toolbar next to Copy/Fork — zero new chrome.
  • 5 Pins can carry a done-state — lightweight follow-ups without a separate task system.