Skip to content

v0.1.5 Release Notes

Release date: 2026-02-10

Highlights

Declarative Provider Registry

Replaced hardcoded if-elif chains in litellm_provider.py with a declarative ProviderSpec registry. The registry auto-detects providers from model names, sets environment variables, applies LiteLLM prefixes, and handles model-specific parameter overrides — all without touching the core provider logic.

Supported providers: Anthropic, OpenAI, Gemini, DeepSeek, Groq, Zhipu, Moonshot, DashScope, OpenRouter, AiHubMix, Ollama.

New Channels: Email & Slack

  • Email (IMAP/SMTP): Bidirectional email channel with consent-gated access, sender allowlists, and threaded replies. The channel will not start unless consent_granted is explicitly set to true.
  • Slack (Socket Mode): Real-time bidirectional Slack channel with configurable group policies (mention/open) and DM controls (open/allowlist/disabled). No public URL required.

Gateway Auto-Detection

Gateways (OpenRouter, AiHubMix) are now auto-detected from provider name, API key prefix, or base URL keywords. Gateway-specific model prefixing and stripping is handled automatically.

Extra Headers Support

Providers requiring custom HTTP headers (e.g., AiHubMix APP-Code) can now configure them via extra_headers in provider config.

Breaking Changes

None. Proxy mode behavior is fully preserved — custom model names pass through unchanged.

What Changed

Added

  • providers/registry.py — declarative ProviderSpec with find_by_model, find_by_name, find_gateway
  • channels/email.pyEmailChannel with IMAP polling, SMTP send, consent gate
  • channels/slack.pySlackChannel with Socket Mode, group/DM policies
  • config/schema.pyEmailConfig, SlackDMConfig, SlackChannelConfig, extra_headers on ProviderConfig
  • tests/test_provider_registry.py — registry data integrity, lookup functions
  • tests/test_litellm_provider.py_resolve_model, _apply_model_overrides, _setup_env
  • tests/test_ported_channels.py — channel configs, provider matching, round-trip serialization
  • pyproject.tomlslack_sdk optional dependency

Changed

  • providers/litellm_provider.py — refactored to use registry lookups instead of hardcoded logic
  • providers/base.py — added extra_headers parameter
  • channels/manager.py — integrated Email and Slack channel registration

Removed

  • local cloned reference directory (not shipped)

Docs

  • docs/configuration.md — provider registry table, extra headers, gateway detection
  • docs/channels.md — Email and Slack setup guides with config examples
  • docs/faq.md — updated with new channels, provider registry FAQ
  • .gitignore — added ignore entry for local cloned reference directory

Upgrade Guide

No migration needed. Existing configs work without changes.

To use new features:

  1. Provider registry: Models are auto-detected. No config changes required.
  2. Email channel: Add channels.email block with consent_granted: true.
  3. Slack channel: Add channels.slack_channel block. Install optional dep: pip install galyarder-agent[slack].
  4. Extra headers: Add extra_headers to any provider config block.

Test Status

All tests passing:

  • test_provider_registry.py — 14 tests
  • test_litellm_provider.py — 8 tests
  • test_ported_channels.py — 12 tests
  • test_model_routing.py — existing proxy tests
  • test_security_audit.py / test_security_fix.py — unchanged