github boringdata/boring-semantic-layer v0.3.0

7 hours ago

🚀 What's New in v0.3.0

This release brings major enhancements to agents, xorq integration, and developer tooling.

✨ Features

BSL Agents & MCP Support

  • New BSL agents with MCP and LangChain backends for AI-powered semantic layer interactions
  • Profile management system - configure and switch between different semantic layer profiles (#108)
  • Cursor skills bundled in package with .mdc format and GitHub URLs for docs
  • CLI renamed from bsl-agent to bsl for simplicity

xorq Integration

  • Full xorq support - use xorq as the underlying execution engine
  • Auto-caching - automatically cache AggregateOp operations for performance
  • Tagged expressions - to_tagged() / from_tagged() API for xorq metadata serialization
  • Roundtrip serialization to disk support

API Improvements

  • aggregate() method - perform aggregations without group_by for single-row results (#104)
  • with_dimensions() and with_measures() on SemanticFilter (#102)
  • description parameter for to_semantic_table() (#93, #95)
  • Support for unqualified dimension names and simplified time_range filters

Dependency Graph

  • Dependency graph support for semantic models (#92)
  • to_networkx_json() method for graph export
  • NetworkX-style API with successors() and predecessors() methods
  • Graph accessible from all semantic table nodes

Documentation & Tooling

  • bsl CLI with live reload support for documentation development
  • Comprehensive link validation in documentation builds
  • Reorganized documentation into modular architecture
  • Time dimension documentation for MCP integration

🐛 Bug Fixes

  • Fixed join dimension name resolution (#90)
  • Fixed MCP JSON parameter parsing for Claude Desktop and Azure OpenAI compatibility (#103)
  • Fixed projection pushdown to avoid circular dependencies
  • Improved xorq compatibility with proper import fallbacks
  • Fixed window function compatibility layer

🔧 Refactoring

  • Joins API now uses lambda-based approach (#122)
  • Simplified dependency graph implementation (58% reduction)
  • Consolidated markdown renderers into modular md_parser package
  • Mutualized chart backend code for better maintainability
  • Cleaned up error handling in chart handlers

📦 Dependencies

  • Requires xorq>=0.3.4
  • Requires ibis-framework>=11.0.0
  • Added plotext dependency for terminal visualization

💥 Breaking Changes

  • to_xorq() / from_xorq() renamed to to_tagged() / from_tagged()
  • CLI command changed from bsl-agent to bsl
  • Graph access changed from property to get_graph() method

Full Changelog: v0.2.0...v0.3.0

Don't miss a new boring-semantic-layer release

NewReleases is sending notifications on new releases.