Skip to content

changelog

What’s new

A running log of what shipped, written in terms of what you can now do — not what changed in the codebase.

  1. Interviews know when they're done — graceful wrap-up + a focused chat surface

    • Coverage-driven pacing: the engine now reads per-objective sufficiency bands and routes the next question toward whichever objective is thinnest, instead of drilling on whichever one the last answer happened to touch. Low-engagement reads scaffold rather than drill.
    • Interviews wrap up on their own when coverage is sufficient — no more conversations stranded after five turns down one objective. On a ready_to_wrap signal the participant sees a completion CTA in place of another forced probe.
    • Focused three-zone chat shell for design, refine, and participant surfaces — sticky header, scrollable transcript, pinned composer. The mobile keyboard can't cover the input anymore; End moves to the header out of misclick range of Send.
    • Generated briefs are sharper: brief-design now reuses the engine end-to-end with a generic 4-objective spine, six vertical priors, and a terminal CTA. Objective count derives from session duration. The old required 'what do participants get back' field is now an optional 'Interviewer tone'.
    • First-time briefs auto-publish on generation when you're under your active-brief cap — the participant link is ready immediately, no extra click.
    • Save confirmations across the app: in-place mutations flash a success toast on the next render so it's obvious the action took. Route transitions show a skeleton during navigation instead of going blank. Interview begin hardened against slow opening-turn model calls.
    • Reliability + observability: four Iphiona-inspired guardrails on the four-call loop and transcribe paths; handled failures and LLM outages now surface to Sentry instead of being swallowed.
  2. Connect Claude to your workspace in one click — no key to paste

    • The MCP connector now installs over OAuth. In Claude.ai or Claude Desktop, add mcp.lacudelph.com/mcp as a custom connector, click Connect, sign in, and approve on a consent screen — Claude registers itself and gets its own credentials. No more minting a key and pasting it by hand.
    • The consent screen spells out exactly what you're granting — read-only (list and fetch briefs, rounds, and transcripts) or read + write (also publish briefs and create rounds) — and which workspace it applies to. Revoke any connector from /org/settings; the next call is rejected immediately.
    • Scripting against the API directly, or using a non-Claude MCP client? Per-org keys from /org/settings still work unchanged as Bearer tokens — see /docs/mcp.
  3. Point Claude at your workspace — MCP connector live + cross-device sign-in

    • New Claude / MCP connector at mcp.lacudelph.com/mcp — paste it into Claude.ai, Claude Desktop, or claude.ai/code with a per-org Bearer token and Claude can list your briefs, fetch transcripts, summarise round aggregates, publish briefs, and create cohorts from inside any conversation.
    • Two scopes per key: read-only (safe to leave attached for analysis) or read + write (publishes briefs, creates rounds). Issue one per device; revoke instantly from /org/settings.
    • Every connector tool call lands in the per-org audit log with source: mcp. Brief publishes and round creations note which API key was used.
    • Tool reference + setup walkthrough at /docs/mcp.
    • Sign-in emails now ship a 6-digit code alongside the magic link — if your inbox is on a different device than the one you want to sign in on, just type the code at /verify-request. Same security, no more wrong-device sessions.
  4. Audit log, share-link slugs, follow-up Qs, more

    • Per-org activity log on /org/settings — every state change is recorded.
    • Short-link slugs for participant invites: pick one on /briefs/<id> and share lacudelph.com/p/<your-slug>.
    • Per-brief tags + filter on /search.
    • Round duplication, per-objective heat grid, follow-up question generator, scannable QR codes for shared reports.
    • All-hands mode: per-brief override of the per-IP rate limit for in-room cohorts behind a shared NAT.
    • Webhook integration docs + interview.objective_completed event for real-time pipelines.
    • /admin: per-org drill-down, DAU/WAU/MAU graphs.
  5. Operator surfaces, share-log nudges, embed badge, ZIP export

    • Webhook history and per-attempt retry button on /org/settings — first time a delivery fails, the answer is no longer 'we don't know'.
    • Share-log: tell us how many people you sent the participant link to; we'll email you 48 hours later if completions are lagging, with suggested reminder copy.
    • Embeddable SVG badge for your active briefs — paste it on your own site, links back, every embed is a backlink.
    • Workspace ZIP export (briefs + completed takeaways + round aggregates). Customer-portable; defends against vendor-lock-in objections.
    • Inline diff between brief versions in /briefs/<id>/history.
    • Anthropic key validity check at save time — catches wrong-key paste before your participants see a 401.
    • CSP header live in report-only mode (we'll watch a week, then enforce).
  6. Voice input, brief gallery, brief editor, shareable reports

    • Voice S1: per-brief mic toggle, OpenAI Whisper transcription, audio discarded after transcribe, per-org daily cap.
    • Brief gallery at /briefs/templates — 12 ready-to-fork briefs across the six verticals.
    • Brief editor at /briefs/<id>/edit + version history with one-click restore.
    • Public read-only cohort reports at /r/<token> — paste one URL into Slack/email, recipients see the synthesis without an account.
    • Outbound webhook on interview completion (HMAC-signed) for Notion / Linear / Salesforce / your-internal-queue integrations.
    • Whitelabel logo in the participant chat header (paying tiers).
    • Per-tier monthly session caps + soft-warn banners.
    • Custom OG card on participant invite links — Slack/email unfurls show brief name + duration + objective count.
    • Per-participant compare on round detail.
    • Cross-brief search at /search.
    • Print-to-PDF stylesheet on every report surface.
  7. Public site, pricing, security, vertical landing pages

    • Apex domain cutover to lacudelph.com.
    • Six vertical landing pages (incident review, customer success, sales win/loss, product discovery, coaching debriefs, indie user research).
    • Pricing page + Paddle subscriptions + customer-portal.
    • Security one-pager at /security.
    • Cross-tenant /admin overview for site-admins.
cross-turn reasoning · rendered live