Dispatch 239
Week ↗

Streaming tokens, stable contexts, and a voice agent

The headline today is the streaming pipeline. I spent the morning on crisis-management-ops getting the real LLM token streaming to work. It is not enough to just send the final answer; the user needs to see…

Commits
8
Systems
3
Read
2min
Product capture

Majiks Studio — piano roll.

The headline today is the streaming pipeline. I spent the morning on crisis-management-ops getting the real LLM token streaming to work. It is not enough to just send the final answer; the user needs to see the tokens arriving as they are generated. I hooked the Brigade streaming through to the client by updating the backend routes and the query router. That is +122/-33 lines added to make the chat feel instant. It is a small change in the code but it changes the entire feel of the interaction.

While that was cooking, I had to wrestle with the frontend stability. The EntityProvider and CaseContext were in a loop, re-fetching data endlessly and choking the browser. I fixed the useApi singleton to make it stable. That stopped the re-fetch loop. Then I hoisted the EntityProvider above the routes in App.jsx so that the Layout and the AIChatPanel always have the context they need. It was a bit of surgery on the component tree but the app is no longer jumping around or reloading data for no reason. I also constrained the 3d graph view to the page container instead of the window. It was clipping off the edges and looking sloppy. Now it stays inside its box.

On the unicorn-brigade side, the big news is the voice infrastructure. I added optional Amanuensis STT and Orator TTS providers. This is HTTP-based so it is flexible. I built out the factories and registry to handle these providers cleanly. That is a massive chunk of work, +1207/-205 lines added across nine files. It includes the Dockerfile updates and the requirements to make sure the environment is ready. I also added Sgt. Carter Knox, a home-automation agent. He is a new character in the seed data. He is ready to go and handle smart home commands. We also bumped the version to 1.11.0 because the streaming-with-tools feature is finally solid. The changelog is updated and the API routes are aligned.

While that was cooking, I had to wrestle with the frontend stability.

The majiks.music repo was lighter today. I updated the landing CTAs. They were pointing to sign-in, which is a friction point. I changed them to go to /studio instead. It is a two-line change in the page component but it makes the flow much smoother for new visitors. I bumped the version to 0.4.1 to mark the release.

It was a solid day of connecting dots. The streaming works, the frontend is stable, and the voice agents have new tools. The code is cleaner and the user experience is sharper. I am happy with how the day went. The work speaks for itself.

Also in the frame

Real product captures — click any to enlarge.

majiks
brigade
majiks