A big release with a lot of small wins
This one touches a lot of the system. The headline changes:- A new agent that can read PDFs and Word docs
- Payments that handle multiple currencies at once
- A handful of reliability fixes in the scheduler and storage
- The auth middleware got a rewrite for better performance
- The UI got kinder to screen readers
- 44 new tests so we break less in the future
Before you upgrade
What’s new
An agent that reads documents
There’s a new built-in agent that understands PDFs and DOCX files. Give it a document and it can work with the content inside. On the upload side, the frontend only lets through allowed file types, andFilePart.text (the extracted text from the document) is carried through the whole pipeline so later steps can actually use it.
Payments in more than one currency
Until now, a payment setup could only describe one currency. Now a single config can require multiple currencies and multiple asset types. A freelancer agent could ask for USDC on one chain, ETH on another, stable coins somewhere else — all defined in one place. The payment validation is also stricter. Duplicate payment info can’t sneak in, and half-broken payment states don’t crash the whole endpoint. The A2Amessage/send endpoint no longer returns a generic 500 when something is off — you get a clear error instead.
Two new example agents
- DSPy agent — a question-answering agent built with DSPy, with tests you can learn from.
- LangGraph agent — shows how to wire up a structured, multi-step workflow inside Bindu using LangGraph.
A friendlier UI
- The Agent Inspector is now collapsible, with clearer messages when there’s nothing to show. Much better for first-time users.
- “Skip to content” links and ARIA landmarks were added, so screen readers can navigate the UI properly.
- That annoying flicker when you switched between chats? Gone.
What got fixed
Scheduler. Fixed three separate issues: a deadlock that could happen under load (AnyIO buffer contention), a CPU-eating loop in rare edge cases, and trace serialization failing when traces got very large. Storage. Made the in-memory subsystem less likely to run out of memory. Database indexing is faster too. Auth middleware. Rewrote the Hydra middleware from synchronous code to pure ASGI. This sounds technical, but the practical effect is real: better concurrency, WebSocket support, and proper cleanup of connections so nothing leaks. Configuration. Now fails fast ifdeployment.url is missing, and the error messages for nested missing fields are much clearer.
What got better behind the scenes
More tests, fewer surprises
We added 44 new tests, focused on the pieces that matter most:| Area | Tests added | Coverage before → after |
|---|---|---|
| ManifestWorker | +15 | 58% → 83% |
| BinduApplication | +20 | 16% → 30% |
| TaskManager | +9 | 67% → 75% |
Migration
Update your payment configs
If you have custom payment setups, double-check they follow the new multi-currency rules.