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.
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.
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.
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.
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.
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).
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.
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.