GIGIlistening…

Build Journal

Agentic Intent Layer, Portal Embeds & Radio Fixes — July 8, 2026

I enhanced the agentic intents, improved portal embeds, and fixed issues in the radio player while building my solo AI-powered platform. Here's how it went.

18 changes3 min readby Rob

What shipped

  • Enhanced Agentic IntentsIntroduced a robust wants & offers intent layer with real-time updates.
  • Improved Portal EmbedsPortal embeds now recognize owners by connected wallets, enhancing controls.
  • Fixed Radio Player BugsResolved issues with DJ Max player visibility and compact mode.
  • New Admin InterfaceLaunched a secure ops admin area with silent SSO for better management.

Today was a marathon of coding, spanning a long 24-hour stretch where I focused on enhancing the agentic intents, improving portal embeds, and fixing some pesky bugs in the radio player. I shipped 18 commits—13 features or improvements and 5 fixes. The progress feels monumental, yet the journey was riddled with challenges that tested my patience and problem-solving skills.

One of the primary features I introduced was the wants & offers intent layer, housed within the PortalIntent model. This new functionality allows for per-portal and network spatial queries, which significantly enhances the way users can interact with the platform. I also integrated server-sent events (SSE) to facilitate real-time updates. However, getting the query_intents, post_intent, and withdraw_intent to work seamlessly with the advertised intents in agents.json and llms.txt was no easy feat. I watched as a few late-night coding sessions turned into hours of troubleshooting, but the end result was worth it. The new intent layer is now a robust addition to the agentic web.

On the bug-fixing front, I tackled the AND-compose expiry and text filters for the intents. I had to ensure that each intent surface was gated by portal visibility criteria. This meant reviewing my findings rigorously to ensure that the logic behind isActive, isPublic, !isHidden, and !isEphemeral was sound. It was a somewhat tedious process, but I learned a lot about the intricacies of intent management within the portal. Each fix taught me more about the underlying structure of the platform and how to better manage user interactions.

The portal embeds also saw significant advancements today. I implemented a feature that allows the hashtag.space embed to recognize the portal owner by their connected wallet. This was a crucial step in revealing owner controls, which enhances the user experience. Additionally, I improved the #name search functionality to link taken #portals directly to their respective portal pages. However, I encountered a few hiccups along the way, especially when ensuring that the resolve-domain function returned the correct portalWebsite and portalUrl. It took a couple of hours to debug the CORS issues, but ultimately, the system is now more reliable in reading web2 reservation truths.

The radio player was another area that demanded my attention. I addressed a frustrating bug where the DJ Max inline player would not display the dancing stage correctly when paused. After some digging, I realized that the showWhenPaused property needed a tweak. This small fix took longer than I anticipated, but it was rewarding to see the player finally behaving as expected. I also rolled out the compact DJ Max player for the hashtag.space's DJ Max tab, which should streamline user interaction with the radio features.

I can't overlook the administrative tools I built today. The admin.hashtag.org ops admin interface is now live, featuring a silent SSO hop from the hashtag.org admin session. I also introduced a privy-gated ops admin area at dream.hashtag.space, which serves as a secure space for operational tasks. This was a complex feature that required careful planning around wallet-login cookies and validation, but it should significantly enhance security for admin operations.

Reflecting on this day, I feel a mix of pride and exhaustion. Building this platform solo with Claude Code in VS Code has been a grind, but I’m reminded that every bug I fix and every feature I ship brings me closer to my goal of creating a one-man-show company with a billion-dollar valuation. The lessons learned today are invaluable, and I’m excited to see how these updates will impact user engagement on the agentic web. Tomorrow, I plan to focus on refining the user interface and gathering feedback from early users to ensure that I’m building something they genuinely want to use. The journey continues, and I’m here for every late night and every challenge that comes my way.

← Back to the full build journal