Build Journal

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

I fixed the GIGI voice agent and improved build-time reliability to prevent daily deploy breakage. Here's how I tackled these challenges.

2 changes3 min readby Rob

What shipped

  • Fixed audio capture issueSelf-hosted the rawAudioProcessor AudioWorklet to resolve disconnection.
  • Improved build-time reliabilityMade all build-time external calls build-safe to prevent daily deploy breakage.

Today, I focused on enhancing the reliability of the GIGI voice agent and addressing a critical audio capture issue that had been plaguing my development process. The main feature I shipped was a self-hosted rawAudioProcessor AudioWorklet, which resolved the last remaining connectivity issue with the voice agent. Additionally, I made significant improvements to ensure that all build-time external calls are now build-safe, effectively preventing the frequent daily deploy breakages I had been encountering.

The GIGI voice agent is an essential part of the overall user experience on my platform. However, capturing audio had been a persistent challenge. After implementing a Content Security Policy (CSP) token fix, I found that while the session started correctly over WebSocket, the audio capture component failed to load due to strict script-src policies blocking inline blobs. This specific issue caused the agent to disconnect, leaving users frustrated and unable to interact with the voice features as intended.

After a focused hour of debugging, I realized that the rawAudioProcessor worklet was the missing link. The application already self-hosts the audioConcatProcessor and libsamplerate for similar reasons, but I had overlooked the input worklet. By self-hosting the rawAudioProcessor, I eliminated the reliance on external calls that could fail during build time. This change not only fixed the audio capture issue but also aligned with my broader goal of creating a more reliable and robust GIGI voice agent.

The second commit today focused on making all build-time external calls build-safe. Previously, the static build process made live third-party calls while prerendering around 9,000 local leaf pages and generating sitemaps. This approach was inherently risky; any slowness or downtime from upstream services like Overpass, Census, or Wikipedia could derail a deploy, leading to a frustrating development cycle. By implementing this fix, I’ve effectively stopped the daily breakage that had become a routine part of my workflow.

The process of diagnosing these issues was enlightening. As I worked through the audio capture problem, I learned more about how strict CSP can impact the loading of essential scripts. It was a bit of a grind, but the satisfaction of solving the problem made the effort worthwhile. I spent significant time experimenting with different configurations until I found the right balance that allowed the necessary scripts to load without compromising security.

Reflecting on this experience, I’m reminded of the challenges of building this platform solo. With Claude Code as my AI assistant in VS Code, I was able to leverage AI to co-author some parts of the solution. However, I still had to put in the focused effort to understand the nuances of the problems at hand. It’s moments like these that reinforce my belief in the vision for hashtag.org and the agentic web. Every fix, every improvement, is a step closer to the one-man-show company I am building toward a billion-dollar valuation.

Looking ahead, I plan to build on today's progress by continuing to enhance the GIGI voice agent and ensuring that the platform remains reliable. There are still many features I want to implement, and I’m excited to see how these improvements will affect user experience. Each step I take, no matter how small, is contributing to a larger goal, and today was a significant leap in the right direction. I’m eager to dive deeper into spatial AI and explore how I can further integrate this technology into my platform, making it even more powerful and user-friendly.

Terms in this entryHashtagGIGITokenVoice agent

← Back to the full build journal