Changelog

What we've shipped recently. The list is short because we are early, but it is updated every time something meaningful goes out.

  1. Real-time meeting processing stream

    Until this week, the path from 'meeting ended' to 'action items ready' looked like waiting for an email. That worked, but it left users staring at a stale meeting card for three to five minutes, wondering if anything was actually happening. We replaced it with a live, server-sent-events stream that drives the meeting page directly while transcription and extraction run.

    You now see the processing pipeline unfold in real time. Audio uploads, transcription progress, speaker diarization passes, and action item extraction each emit progress events. The meeting page subscribes via SSE, so the transcript fills in as it generates and action items appear as the model emits them. Once everything is complete, the page transitions into a polished completed view with one fewer reload required.

    On the back end, the same streaming primitives now power Carlton's responses, so the architecture is shared. On the front end, every progressive state has its own loading skeleton. No more single 'processing…' spinner sitting on the screen for minutes at a time.

    • Live SSE feed for transcription and extraction progress
    • Polished completed-meeting view with transcript, summary, and action list inline
    • Single reload after pipeline completion, instead of polling
  2. Long recording reliability

    Multi-hour calls were occasionally getting stuck partway through processing. We dug in and found two distinct failure modes: FFmpeg chunking edge cases on certain audio codecs, and a transcoding step that silently dropped chunks past a duration threshold. Both are now fixed.

    The FFmpeg chunking pipeline has been hardened with explicit codec detection and conservative segment sizing. We also added retry-with-backoff for transcription chunks that come back with transient errors, so a single flaky chunk no longer fails the whole meeting. Multi-hour board meetings, all-day workshops, and full-day customer interviews now process consistently.

    On the UI side, when ingest does fail we surface the real underlying error message instead of a generic banner. Users get an actionable reason and a retry button rather than a dead-end.

    • Hardened FFmpeg chunking for long and unusual audio formats
    • Per-chunk retry with exponential backoff for transient transcription errors
    • Real error messages surfaced in the UI when ingest fails
  3. Full-width meetings UI refresh

    The meeting detail page has been redesigned end to end. Previously the layout was capped at a centered column that wasted real estate on wider monitors and made long transcripts feel cramped. The new layout is full-width with intentional content max-widths inside each panel, so transcripts breathe and side-by-side panels (summary, transcript, actions) line up cleanly.

    The in-meeting card at the top is new. It pulls together the speaker list, meeting duration, source platform, and quick links to the recording in one place, so you stop hunting around for basic metadata. The page header also sticks while you scroll the transcript, so you can always reach the action items tab and the share button.

    Readability on long transcripts improved meaningfully: tighter typography, better speaker-grouping, and a sidebar that lets you jump to specific timestamps without scrolling for thirty seconds.

    • Full-width meeting layout with intentional inner max-widths
    • New in-meeting summary card with quick metadata
    • Sticky meeting header for long transcripts
  4. Persistent recordings on Azure Blob Storage

    Recordings now live in Azure Blob Storage instead of ephemeral container disk. That sounds small, but the practical effect is large: recordings survive container redeploys, which means you no longer have a window during a routine deploy where a freshly captured meeting might be lost.

    Blob storage gives us server-side encryption at rest by default with Microsoft-managed keys, which is the foundation we needed to start building real retention policies. Customer-controlled retention is the next item on the storage roadmap.

    For day-to-day users, nothing changes in the UI. The change is behind the scenes, but it shifts Jalapeño from 'hope nothing crashes during a recording' to 'recordings are durable from the second they hit our infrastructure.'

    • Recordings persisted to Azure Blob Storage immediately on upload
    • Server-side encryption at rest with Microsoft-managed keys
    • Foundation for upcoming customer-controlled retention policies
  5. Carlton AI write capabilities

    Carlton, the in-app AI assistant, can now take actions on your behalf. Until now it could read everything in your workspace (meetings, actions, team, analytics) and answer questions. With write capabilities enabled, it can also create meetings, update tasks, and invite team members.

    Write access is off by default per user; users opt in to grant Carlton write access to their workspace. Every write action is implemented as a strict function call with explicit scopes. Carlton cannot improvise destructive operations or chain unrelated writes.

    We are intentionally cautious with this. The function set is small, every call is audited, and Carlton confirms multi-step writes with the user before executing. Expect the function library to grow steadily over the next few months.

    • Per-user opt-in write toggle, off by default
    • Function calling with strict, audited scopes
    • Confirmation prompts before multi-step writes

Note: changelog entries are dated by publication, not by commit. We batch ship-summaries every few weeks.

See what ships next

Join the waitlist and get the next changelog entry the day it goes out.