Skip to content

v0.6.0

Choose a tag to compare

@Oaklight Oaklight released this 09 Mar 19:25
· 159 commits to master since this release

What's Changed in v0.6.0

Added

  • Startup tool configuration via JSONC file — declaratively control which tools are loaded at startup with tools.jsonc, supporting allowlist/denylist modes and hierarchical namespace matching (#37, #38)
  • Auto-route generation from ToolRegistry — automatically generate FastAPI endpoints from registered tools, eliminating hand-written route boilerplate (#31, #36)
  • requires_env decorator & Configurable protocol — tools self-declare required environment variables; unconfigured tools are auto-disabled at startup (#30, #35)
  • Central tool registry (build_registry() / get_registry()) with auto-disable for unconfigured tools (#30, #35)
  • Nested namespaces for websearch tools — e.g. web/brave_search, producing URLs like /tools/web/brave_search/search (#39, #40)
  • Hidden internal methodsis_configured excluded from API endpoints via _HIDDEN_METHODS (#39, #40)
  • --tools-config CLI option for specifying tool configuration file path (#37, #38)
  • Docker Compose tools.jsonc volume mounttools.jsonc automatically mounted into all services for tool configuration

Fixed

  • Jina Reader multi-engine retry — separate httpx transport timeout from Jina X-Timeout, add X-Wait-For-Selector for dynamic content, retry with cf-browser-rendering engine on failure (#43)
  • Dockerfile missing server dependencies — local wheel install path now uses [server] extra instead of hardcoded dependency list
  • PermissionError in tool config discovery_resolve_config_path() now catches PermissionError gracefully instead of crashing when file/directory permissions are incorrect

Removed

  • Legacy hand-written route files — replaced by auto-generated routes (#39, #40)
  • BingSearch — removed deprecated implementation due to frequent bot detection issues (#34)

Changed

  • Server optional dependencies restructuredserver_openapi and server_mcp now include toolregistry>=0.5.0; server extra uses self-referencing composition (#29, #33)
  • Replace pyright with ty for type checking
  • routes/__init__.py simplified to export only version_router
  • server_core.py no longer registers legacy routers; uses auto-generated routes alongside version_router
  • APIKeyParser.__init__ no longer raises on missing keys; defers validation to call time

Full Changelog: v0.5.6...v0.6.0