v0.5.0 Arbritrary Version Jump
This is going to be a pretty big jump. I've been avoiding releases because fundamentally, we've moved from Azure Functions to a Docker-bases setup, so the releases are less important since they don't need to trigger annoying build steps. That being said, this feels like one of the first stable, usable versions where all functionality is in a decently usable state -- dare I say almost beta!
What's Changed
Platform Architecture
- Complete workspace redesign: S3-first file storage with Redis write-through cache, dropped workspace_files table and
workflows.code column - Migrated entire backend to FastAPI in Docker with hot reload, RabbitMQ, Redis, PostgreSQL
- Multi-tenancy: organization scoping across all entities, OrgScopedRepository with cascade scoping and role-based
access control - Git sync system with manifest-based serialization (.bifrost/*.yaml), persistent working tree, conflict resolution,
and CLI bifrost sync command - Non-destructive upsert pattern for config schema and mappings to preserve user OAuth tokens during sync
App Builder
- JSX/code engine with server-side Babel compilation, file-based routing, and platform hooks
- Unified component model: flat props, children[] containers, discriminated union validation
- npm dependency management via esm.sh with editor sidebar panel and auto-scan
- HMAC-authenticated app embedding with JWT auth and embed secrets
- Per-app styles.css support
- Publish with snapshot versioning
SDK & CLI
- Full Bifrost SDK: workflows, integrations, config, AI/knowledge (RAG), email, file operations (signed URLs)
- Watch mode with file writeback and on-demand preflight checks
- Dynamic secret scrubbing — secrets from config.get() and integrations.get() auto-redacted from logs
- Server-side compilation: removed client-side Babel, apps compiled on write and served pre-compiled
MCP
- Refactored to module-based tool registration with CallToolResult standardization
- Replaced 7 schema tools with single get_docs tool wrapping llms.txt generation
- Agent-scoped middleware, per-agent system tool control, restricted tool support
Forms
- Form embedding with JWT auth, embed secrets, and dedicated /embed route
- Auto-fill support, allow_as_query_param, checkbox default_value fix
- Permanent deletion of inactive forms
- Data provider field descriptions and overrides
Integrations
- OAuth audience field, oauth_scope, client credentials flow refresh
- Encrypted secret config values
- Batch upsert endpoint for integration mappings
Agents
- Private agents with owner-based visibility and can_promote_agent permission
- Knowledge source CRUD with document management and embedding
- Per-agent LLM model/temperature/max_tokens overrides with UI
Execution & Observability
- Admin logs view with filtering, pagination, and execution drawer
- Token usage tracking, execution resource metrics, AI usage reporting
- Chat reliability: localId deduplication, unified message model, tool call grouping
Infrastructure & DX
- Test reorganization: consolidated to unit/ and e2e/, JUnit XML export, Playwright support
- Datetime standardization: DateTime(timezone=True) everywhere with enforcement tests
- Fixed process pool race condition in worker dispatch
- Redis caching for orgs/configs, module cache verification, Cache-Control headers on nginx proxy
- Window management system with Framer Motion animations (app viewer, editor, execution drawer)
Security
- WebAuthn passkey authentication with multi-origin support
- MFA/2FA service
- CSRF protection and rate limiting
- SecretString class for masking sensitive config values
New Contributors
- @sdc53 made numerous contributions. Thank you!
Full Changelog: v0.2.5...v0.5.0