Dispatch 257
Week ↗

The Meeting Ops Sprint

May 16, 2026 (Saturday). I spent 23 commits in the uc-meeting-ops repo today. The work was less about discovering new territory and more about reinforcing the walls, fixing the leaks, and making the house ac…

Commits
23
Systems
1
Read
2min
Product capture

Meeting-Ops — session summary with speakers and action items.

May 16, 2026 (Saturday). I spent 23 commits in the uc-meeting-ops repo today. The work was less about discovering new territory and more about reinforcing the walls, fixing the leaks, and making the house actually livable.

The headline was permissioning, I built out a full per-meeting collaborator system, starting with the database migrations and working up to the frontend. It wasn't enough to just tag a user; the system needed a share button and a modal to manage access. I wired up magic-link shares so people could invite others without forcing them to create an account immediately. The /shared/sessions landing page now redeems those magic-link tokens, which closes the loop. You get the link, you click it, you see the meeting. It feels seamless now, which is the point.

Behind the scenes, I spent a lot of time on the speakers. The voice fingerprint enrollment from a session was a big lift, adding over three hundred lines to the backend and frontend. I wanted to make sure that when you rename a speaker, the change propagates everywhere, including the summary fields. I added a helper for that and bumped the default threshold for matching. It is tedious work, but if the AI calls "John" "John" in the transcript and "Jonathan" in the summary, nobody trusts the system, I also tackled the transcript layout. I moved the transcript back to the bottom and put the AI summary on top. The previous layout had the transcript dominating the viewport, which felt cramped. Now, you see the summary first, which is usually what you want, and you can scroll down to the details. I also added a speaker timeline swimlane and restored the click-to-seek feature. You can click a name in the timeline and jump right to that part of the audio. It is a small thing, but it changes how you interact with long recordings.

The headline was permissioning, I built out a full per-meeting collaborator system, starting with the database migrations and working up to the frontend.

There was some cleanup on the upload side. I stopped the double-trigger bug on drag-and-drop, which was annoying everyone. I also added an explicit "with options" path so people can adjust diarization settings before the upload starts. I upgraded NeMo to version 2.4.1 for better word-level diarization alignment, and I added per-call sensitivity settings (Strict, Balanced, Loose) so you can tune the speaker detection based on the audio quality. If the audio is noisy, you pick Loose. If it is clean, you pick Strict.

I also fixed a few reliability issues. The rediarize job now runs asynchronously with polling to dodge Cloudflare 524 timeouts. It was failing silently before, which was frustrating. I also stopped the on-view LLM regeneration for insights and pre-warmed it during upload instead. That saves time and reduces server load.

Also today: I extended the SpeakerProfile into a per-org contact directory and wired up Postmark for sending meeting links and PDF summaries to selected attendees. I added a contact-card overlay in the transcript SpeakerLabelEditor so I can see who people are without leaving the page.

It was a solid day of finishing things, The permission system works, the speakers are tracked better, and the upload process is more robust. The meeting ops platform is getting closer to something people actually want to use.

Also in the frame

Real product captures — click any to enlarge.

meeting ops