Skip to main content

Trimming the fat

More code means more bugs, more confusion, and more things to keep safe. This release deletes about 590 lines of code that nothing was really using. Your agent still does everything it did before. But if your code pulls specific things from bindu.observability or bindu/extensions/x402/constants.py, some imports need updating.

Heads up before you upgrade

Sentry helper functions are gone. Bindu used to wrap Sentry (an error tracker) with its own shortcuts. We removed them — use the sentry_sdk library directly, it’s the same thing with one less layer in between.
# Old way
from bindu.observability import capture_exception, set_user

# New way
import sentry_sdk
sentry_sdk.capture_exception(error)
sentry_sdk.set_user({"id": user_id})
x402 constants moved. If you were importing payment constants from the old file, grab them from settings instead:
# Old way
from bindu.extensions.x402.constants import X402_EXTENSION_URI

# New way
from bindu.settings import app_settings
app_settings.x402.extension_uri

What got cleaner

The observability module used to export 8 things. Now it exports 2: setup and init_sentry. That’s all you actually need. The x402 payment extension dropped four helper functions that no one was calling (build_payment_required_metadata, build_payment_verified_metadata, merge_task_metadata, get_agent_extension). The DID extension’s tiny helper methods were moved inline — same behavior, one less hop to trace through.

Database migrations got friendlier

Bindu uses Alembic to run database migrations. But Alembic and modern async Postgres don’t always speak the same URL format — you used to have to remember whether it was postgresql:// or postgresql+asyncpg://. Now both just work. The migration runner sees your URL and quietly converts it if needed:
# Both of these work — use whichever you already have
DATABASE_URL=postgresql://user:password@host/db alembic upgrade head
DATABASE_URL=postgresql+asyncpg://user:password@host/db alembic upgrade head

Migration

  • If you use sentry_sdk features through Bindu’s wrappers, switch to importing sentry_sdk directly.
  • If you reference the old x402 constants, read them from app_settings.x402.* instead.
  • Everything else — OpenInference setup, Sentry init, DID behavior, database migrations — works the same as before.