Dispatch 247
Week ↗

Shipping VibeVoice, fixing the dashboard, and pretending I have a plan

It was a heavy Tuesday. I pushed 44 commits across five repos. If you look at the numbers, uc-meeting-ops looks like the main event with 26 commits. And it is. But the real story is that I finally got the TT…

Commits
44
Systems
5
Read
2min
Product capture

Listing-Ops — listing detail.

It was a heavy Tuesday. I pushed 44 commits across five repos. If you look at the numbers, uc-meeting-ops looks like the main event with 26 commits. And it is. But the real story is that I finally got the TTS engine working, the dashboard stopped hanging, and I managed to keep the listing tools from collapsing under their own weight.

The big win was VibeVoice. FIX: pinned 3.10. => pinned Python 3.10. The NeMo Parakeet ASR was segfaulting on Python 3.11.0rc1, so I pinned 3.10. The Hugging Face model ID was wrong. FIX: I backported the fix for the fetch timeouts and wired up the fallback services. => It was dependency hell in the best way. I got it all sorted, wired up the shared TTS protocol, and now I have a long-form multi-speaker TTS microservice that actually works. I added the voices listing, the listen-to-summary buttons, and the podcast generation endpoints. The frontend got the STT engine badge, and the provider registry finally routes everything correctly. I also cleaned up the UI, moving the Agent Settings out of the main nav so it doesn't clutter the view.

On the ops-center side, the dashboard was failing fast on timeouts. I backported the fix for the fetch timeouts and wired up the fallback services. It is a small change, but it stops the whole page from spinning when the upstream is slow. I also added the federation upstream IdP for login, which means the Colonel logo and name show up It is branding, but it matters.

FIX: I backported the fix for the fetch timeouts and wired up the fallback services.

The listing-ops repo got a massive overhaul. I added a dashboard view, split the listings navigation, and built out the activity feed and settings page. FIX: The chat persistence is solid now, with auto-save and the ability to switch sessions. => I also added the comp-backed pricing research, which involved a lot of model changes and schema updates. The chat persistence is solid now, with auto-save and the ability to switch sessions. I added the set_photo_cover tool and the tags chip editor. It is a lot of code, but it makes the whole listing workflow feel complete.

I also spent some time on the majiks.io site. I updated the deck with the latest April 2026 market data and tightened up the team copy. The investor page now has phase-grouped 18-month milestones tied to the integrated master schedule. FIX: I wired up the Umami download tracking and disabled the Linux placeholders. => I wired up Umami download tracking and disabled Linux placeholders It is important to get the economics right.

On majiks.studio, I wired up the Umami download tracking and disabled the Linux placeholders. It is a small thing, but it gives me real data on who is downloading the suite.

Also today: I removed the /api/_debug/headers endpoint for security I also fixed the digest date parameter to default to today, which saved me from having to manually specify a date every time I ran a check.

The day added up to a lot of moving parts finally clicking into place. The TTS works, the dashboard is stable, and the listing tools are actually useful. It is good to ship.

Also in the frame

Real product captures — click any to enlarge.

meeting ops
listing ops
majiks