Dispatch 249
Week ↗

Meeting ops catches up

Thursday arrived with a different rhythm than usual. The usual churn of small fixes was replaced by a heavy lift in the meeting ops repo, where seven commits landed in a single afternoon. I spent most of the…

Commits
14
Systems
5
Read
3min
Product capture

Project-Ops — schedule.

Thursday arrived with a different rhythm than usual. The usual churn of small fixes was replaced by a heavy lift in the meeting ops repo, where seven commits landed in a single afternoon. I spent most of the day untangling the upload pipeline and pushing the project federation layer into the wild. It was one of those days where you stare at a problem for an hour, realize you have been looking at the wrong abstraction the whole time, and then fix it in ten lines.

The biggest win was cleaning up the upload flow. I rewrote the attach-to-existing logic to handle chunks properly and killed the legacy audio upload endpoint. That deletion of 352 lines felt like a small victory. It removed a lot of dead weight that had been accumulating since the early days of the project. I also added per-org tier quotas with structured rejection payloads. This means if someone hits their limit, they get a clear error message instead of a cryptic failure. It was a small thing, but it makes the system feel less like a black box and more like a tool that respects the user.

At the same time, I pushed the project ops federation primitive into production. This required a real proxy via realm JWT pass-through. The frontend had to change to use same-origin API calls, which meant updating the Dockerfile and accepting the VITE_API_URL build argument. It was a bit of a dance across the backend and frontend, but the result is a cleaner integration. The session creator and upload tray now talk to the right services without leaking secrets or crossing domain boundaries. It was not flashy, but it is solid.

I rewrote the attach-to-existing logic to handle chunks properly and killed the legacy audio upload endpoint.

I also tackled the async TTS render queue with WebSocket progress. This was a bigger chunk of work, adding 651 lines of new code. The backend now queues the TTS jobs and streams progress back to the frontend. The frontend listens to the WebSocket and updates the UI in real time. It makes the waiting feel instant. I also updated the status docs to reflect that tier 4 and 5 features, including quotas and the attach migration, are now live. It was a good feeling to see the roadmap items tick off.

On the listing ops side, I got the eBay publisher live with full publish payloads and per-listing shipping details. I also made the offer upsert idempotent and wired through the merchantLocationKey. It was a focused effort to ensure the eBay integration is robust. I fixed the AI bottlenecks by switching to Tailscale-direct LiteLLM, enabling streaming, and using no_thinking for faster JSON parsing. The system is faster now, and the JSON parsing is more robust. It was a necessary cleanup to keep the AI tasks from choking on complex responses.

I also spent some time on the project ops auth service. I implemented a dual-token JWT strategy that accepts Keycloak realm tokens. This was a bit of a refactor, updating the strategy and the docker-compose file. It was a small change, but it opens up new possibilities for how we handle authentication across the different services.

Finally, I updated the runbooks with details on the Nextcloud OIDC lockdown and the OnlyOffice gotchas. I also added health and inventory snapshots. It is important to keep the documentation current, especially when we are making significant changes to the infrastructure. I also noted some residual bugs in the node agent self-registration in the unicorn ecosystem roadmap. It was a reminder that there is always more work to do.

The day added up to a cleaner, more reliable system. The uploads are faster, the federation is live, and the AI tasks are less likely to fail. It was a good day for building.

Also in the frame

Real product captures — click any to enlarge.

project ops
project ops
listing ops