Buda LogoBuda

Buda v0.7.0 Release Notes

Web Preview skill lands, multi-instance WeCom delivery via Redis, chunked Drive uploads with progress, inline attachment UI, auth security hardening, and a wave of chat & Drive experience fixes.

Released: April 14, 2026


Web Preview Skill

A new web-preview system skill is now available for developers. When you ask an Agent to build a webpage, game, or any frontend project, it automatically writes files to /agent/preview/ and starts a local HTTP server — then the browser preview tab pops open without any manual steps. Supports static HTML, dynamic sites, and everything in between.

Drive: Chunked Upload with Real Progress

Large file uploads in chat now go through Drive's chunked session logic. Each chunk is tracked server-side, and a progress bar shows accurate real-time upload status. No more silent failures or stale spinners during big uploads.

Attachment Inline Variant in Chat

User messages no longer stack attachments in a tall list. Documents now appear as compact inline chips (hover to see the full filename), and multiple images are grouped into a grid. Agent reply attachments keep the original list layout. Less visual noise, more at a glance.

WeCom Multi-Instance Delivery Fix

In multi-instance (Kubernetes) deployments, scheduled tasks could silently drop WeCom messages if the executing instance wasn't the WebSocket leader. A Redis-based relay now routes all outbound WeCom messages through the leader — scheduled tasks deliver reliably regardless of which pod runs them.

Auth & Security Hardening

Following OWASP anti-enumeration best practices:

  • When someone tries to register with an already-registered email, the real account owner now receives a security alert email instead of a silent no-op
  • When a space member accepts an invitation, the inviting admin receives an email notification

Chat Experience Fixes

  • Typing lag eliminated — Long chat sessions caused all message components to re-render on every keystroke due to unstable renderTodoWrite references. Fixed with useCallback memoization; typing is now instant regardless of history length
  • Stream resume — Interrupted agent response streams now resume correctly instead of stalling
  • Tool loading state — The loading animation on tool calls no longer keeps spinning after a conversation ends
  • PDF preview — PDF files attached in chat now render a proper inline preview instead of falling back to a download link
  • Send file card — Fixed a display glitch with file cards sent in channel messages

Drive & Navigation Fixes

  • Deep linking preserved — URLs like /dashboard/agent/:id/__drive__?file=path now correctly open the Drive tab and highlight the target file; previously the tab fragment was silently discarded
  • Copy Full Path — Copying the path of a file inside a subfolder now includes the correct full path in the ?file= parameter
  • Profile name sync — After updating your display name in Account Settings, the sidebar profile area now reflects the change immediately without a full page refresh

Billing & Credits

  • Unified multipliers — Credit multipliers on the /pricing page, the model selector dropdown, and the backend deduction logic now all use the same formula with Gemini 3.1 Flash as the 1× baseline. No more discrepancies.
  • "What are Credits?" link — A direct help link now lives next to the Credits section header in Billing Settings, with a further link to the model comparison table on /pricing#models
  • Free plan quota fix — Fixed a bug where Free plan users with monthlyCredits.limit = 0 incorrectly saw a "quota exhausted" banner

Other Improvements

  • SPA route flash fixed — first click on Skills, Automations, or Marketplace no longer causes a blank-screen flash while the JS bundle loads (added loading fallback to next/dynamic)
  • Sign-up redirect race condition fixed — users signing up with OPEN access mode no longer get bounced to /waitlist/activate due to an uninitialised accessMode state
  • Check-email page now shows a helpful error and "sign in instead" prompt when the email is already registered, rather than silently stalling
  • Marketplace: personal unpublished skills can now be test-installed even while still in pending review state
  • CreateAgentDialog centralised into SPAContext — triggerable from anywhere in the app without prop drilling

On this page