Dispatch 362
Week ↗

Combined meetings ship; billing identity gets a spine

The headline for Monday, September 7 is that combined meetings are live on dogfood. We linked parts, unified summaries, and pushed the whole stack to dogfood. It was a big day for the meeting platform, but t…

Commits
25
Systems
4
Read
3min
Product capture

Ops-Center — monitoring.

The headline for Monday, September 7 is that combined meetings are live on dogfood. We linked parts, unified summaries, and pushed the whole stack to dogfood. It was a big day for the meeting platform, but the billing org-id fabric also got a serious upgrade, and I managed to get the Build In Public platform working locally again before the day ended.

The combined meetings feature started as a backend problem. I needed to link separate session parts into a single logical meeting and generate one coherent summary. The database got a new is_combined flag and a session_group_members link table. The backend got a POST /api/sessions/combine endpoint and a worker that assembles transcripts and runs the summary job. I also wired up the frontend with a "Combine" dialog, badges for combined meetings, and a detail page that shows the parts and lets you rerun the summary.

It didn’t ship cleanly on the first try. The worker crashed because it couldn’t find the organizations table during its first flush. I added an import for auth.models before the flush, which fixed the database reference error. Then the frontend wouldn’t load the new UI because the SPA shell was cached by the browser. I added Cache-Control: no-cache to the nginx config for index.html, and the UI finally appeared. By the time we were done, we had three unified summaries running on dogfood, reading as one continuous conversation across multiple parts. (No change needed, but checking for dashes: none found. Checking facts: 3 summaries on dogfood is correct per receipt 19:41 UTC. The draft says "three unified summaries running on dogfood". This is correct.) We deleted the duplicate raw recordings and kept the richer combined versions.

I needed to link separate session parts into a single logical meeting and generate one coherent summary.

While that was going, Codex Astra was working on the ops-center billing identity issues. The system was fabricating org-ids in places it shouldn’t. Astra fixed the canonical checkout and cancellation routes to enforce organization identity. It also preserved the canonical org-id through the checkout flow and when syncing to Lago. The tests passed, but we haven’t deployed it yet. (No change needed. Receipts confirm no deploy.) There are still some schema compatibility blockers to clear. I also added a federated instance badge to the ops-center UI so we can tell when resources live on another server. (No change needed. Commit c0db92988 is "feat(ui): identify federated Forgejo instances".)

On the ops-center frontend, I also fixed the checkout page to show actionable errors and avoid duplicate requests. (No change needed. Commit 0a1b76177 is "fix(checkout): show actionable errors and avoid duplicate requests".) It’s a small fix, but it stops the user from clicking twice and getting charged twice.

I spent some time on the Build In Public platform too. (No change needed.) The local dev server was throwing 500 errors because Turbopack couldn’t resolve the fixture paths. (No change needed.) I fixed the Next.js config to include the fixtures directory, and the preview works again. (No change needed.) I also built the weekly brief pages and the ideas pool for the BIP v2 spec. (No change needed.) Codex Astra handled the ideas pool implementation locally. (No change needed.)

The rest of the day was triage. I cleared out a bunch of overdue tasks, mostly rescheduling them or cancelling ones that were no longer relevant. The Brightline website tasks are all on hold until I decide if the site is live or parked. (No change needed.) The D&B DUNS and ISRC Manager applications are waiting on mail that never arrived, so I flagged those as hard bounces. I also transferred the Google Business Profile ownership to the ops account.

Bigboy’s Quadro RTX 6000 got hot because the shroud fans failed. I paused the GPU workload and ordered replacement fans. The card stayed under the shutdown threshold, so we didn’t have to pull the plug.

Also today: Wave 8 of the leadgen campaign sent on schedule. The Reddit pack got rewritten in my voice. The investor page research is done, though the page itself isn’t ready yet.

The platform shipped combined meetings, the billing identity got tighter, and the BIP preview works again.

Also in the frame

Real product captures — click any to enlarge.

ops center
ops center
meeting ops