Build Journal

GIGI Voice Agent Fixes & Build-Safe Deployments — August 28, 2026

I improved GIGI Voice agent reliability and made build-time calls safe to prevent daily deploy issues. Here's how I tackled these challenges.

2 changes3 min readby Rob

What shipped

  • Build-safe external callsImplemented mechanisms to prevent build breakage from external service failures.
  • Self-hosted audio workletResolved audio capture issues by self-hosting the rawAudioProcessor worklet.

Today, I focused on enhancing the reliability of the GIGI Voice agent while simultaneously addressing a long-standing issue that was causing daily deploy breakage. In about an hour of concentrated work, I shipped a significant improvement by making all build-time external calls safe, which has been a persistent thorn in my side. This change is crucial because the static build process was attempting to make live third-party calls while prerendering nearly 9,000 local leaf pages and sitemaps. The frequent breakage was frustrating, and I knew I had to find a solution.

The root of the problem lay in the fact that any slow or down upstream service—such as Overpass, Census, Wikipedia, open-meteo, or Google—could cause the entire build to fail. This was unacceptable, especially as I strive to create a seamless experience for users of the agentic web. The fix involved implementing a mechanism to ensure that these calls would not disrupt the build process. By making these calls build-safe, I can now deploy updates without worrying about external factors causing failures. This improvement should greatly enhance the deployment reliability going forward.

In addition to this, I tackled a critical fix for the GIGI Voice agent itself. The last major hurdle was the rawAudioProcessor AudioWorklet, which had been a persistent issue since the introduction of the voice capabilities. After resolving a previous Content Security Policy (CSP) token problem, I discovered that the audio capture was still failing. The SDK was attempting to load the rawAudioProcessor from an inline blob, which was being blocked by the strict script-src policy I had in place. As a result, the agent was disconnecting, and this was not acceptable for the user experience I wanted to provide.

To resolve this, I implemented a solution to self-host the rawAudioProcessor AudioWorklet. This was a logical step since the app already self-hosts other audio processing components like the audioConcatProcessor and libsamplerate for similar reasons. However, I had overlooked the input worklet, which was the missing piece of the puzzle. By self-hosting it, I ensured that it would no longer be blocked by the CSP, allowing for a smooth audio capture experience. The moment I made this change, I could see the immediate impact it had on the voice agent's functionality.

While these fixes might seem small in isolation, they represent a significant step toward achieving my ultimate vision of a one-man-show company with a billion-dollar valuation. Each improvement, no matter how minor, builds toward a more robust product that can stand on its own. It's a constant reminder that as I work solo, leveraging AI tools like Claude Code in VS Code, I can still make substantial progress without the overhead of a larger team or expensive tools. This independence is empowering, and it enables me to make decisions quickly and efficiently.

Reflecting on the day's work, I realize that the grind is real. The hours spent diagnosing the audio capture issue and trying to understand the build breakage felt long at times, but the satisfaction of fixing these problems is worth every minute. It's a testament to the power of persistence and the value of a focused approach. As I continue to build out the components of the agentic web and refine the GIGI Voice agent, I remain committed to maintaining a high standard of quality and reliability. These fixes are just the beginning, and I look forward to tackling the next challenges that will arise as I push toward my long-term goals.

In summary, today's work on the GIGI Voice agent and the build process has set the stage for more reliable deployments and a better user experience. I'm excited to see how these changes will positively impact future development and user interactions. The road ahead is still long, but with each step, I am closer to realizing my vision.

← Back to the full build journal