Build Journal

GIGI Voice Agent Fixes & Build-Time Reliability Improvements — August 28, 2026

I improved the reliability of build-time external calls and fixed the GIGI voice agent's audio capture issues. Here's how I tackled these challenges.

2 changes3 min readby Rob

What shipped

  • Build-Time External Calls FixedMade all external calls build-safe to prevent daily breakages.
  • GIGI Voice Audio Capture RestoredSelf-hosted rawAudioProcessor to resolve audio capture issues.

Today, I set out to address two critical issues impacting my agentic web platform: the reliability of build-time external calls and the audio capture functionality of the GIGI voice agent. After a focused hour, I successfully shipped a feature that enhances build reliability and fixed a persistent bug that had been causing audio capture failures in the voice agent. These improvements not only stabilize my deployment process but also enhance the overall user experience of the GIGI AI concierge.

The first task involved tackling the daily deployment breakage caused by external calls made during the static build process. As it stood, the site was making live calls to various third-party APIs while prerendering nearly 9,000 local leaf pages and generating sitemaps. This was a recipe for disaster: if any of those upstream services—like Overpass, Census, Wikipedia, or Google—were slow or down, the entire build would fail. I realized that I needed to make all build-time external calls build-safe to prevent this issue from recurring. After implementing this change, I am optimistic that daily breakages will become a thing of the past, allowing me to focus more on building new features rather than constantly fixing deployment issues.

The second task was more technical and intricate: fixing the GIGI voice agent's audio capture capabilities. This issue had been a thorn in my side for some time. After I resolved the Content Security Policy (CSP) token problem, the session would restart over WebSockets, but the audio capture would fail. The root of the issue was that the SDK was trying to load the rawAudioProcessor from an inline blob, which my strict script-src policy blocked. The error message was clear: "Failed to load the rawAudioProcessor worklet module," which meant the agent would disconnect, leading to a frustrating experience for users.

What I hadn't realized was that while I had already self-hosted other components like audioConcatProcessor and libsamplerate for similar reasons, I had overlooked the input worklet. So, I took the time to self-host the rawAudioProcessor as well. This fix not only resolved the audio capture issue but also aligns with my goal of making the platform more resilient and less dependent on external scripts. This experience served as a reminder of the importance of thorough testing and self-hosting critical components to maintain control over the user experience.

Reflecting on the past hour, I felt a mix of pride and relief. It’s rewarding to see tangible progress on the platform, especially when it means solving issues that have lingered for too long. Working solo with Claude Code in VS Code continues to prove efficient, allowing me to iterate quickly and leverage AI assistance effectively. I can’t help but think about the ambition behind this project: building a one-man-show company with a billion-dollar valuation. Each fix, each improvement, brings me one step closer to that vision.

As I wrap up today’s entry, I’m reminded of the grind it takes to build something meaningful from scratch. There will always be bugs to fix and features to enhance, but I’m committed to navigating these challenges head-on. My focus remains on creating a superior product that not only meets user needs but also stands out in the competitive landscape of agentic web technologies. I’m excited for what tomorrow holds as I continue to push the boundaries of what’s possible with spatial AI and GIGI’s capabilities. With every line of code, I’m not just fixing problems; I’m laying the groundwork for a future that I believe can redefine how users interact with technology.

← Back to the full build journal