github chriskoch/ngx-renamer v1.4.0
Release v1.4.0

one month ago

Added

  • Anthropic Claude API Support: Third LLM provider option alongside OpenAI and Ollama

    • New ClaudeTitles provider in modules/claude_titles.py
    • Uses Claude's tool calling feature for structured JSON outputs
    • Supports same configuration pattern as existing providers
    • Default model: claude-sonnet-4-5-20250929 (Claude Sonnet 4.5)
    • Activated via llm_provider: "claude" in settings.yaml
    • Requires CLAUDE_API_KEY environment variable
  • Extended Test Coverage: Comprehensive Claude integration tests

    • tests/integration/test_claude_integration.py - Full API integration tests
    • Provider selection tests for Claude in test_llm_provider_selection.py
    • Test fixtures: settings_claude.yaml, settings_claude_with_date.yaml
    • Added @pytest.mark.claude marker for expensive API tests

Changed

  • Provider Factory Enhancement: Extended to support Claude credentials

    • modules/llm_factory.py - Added _create_claude_provider() method
    • modules/paperless_ai_titles.py - Accept claude_api_key parameter
    • change_title.py - Load CLAUDE_API_KEY from environment
    • modules/constants.py - Added PROVIDER_CLAUDE constant and validation
  • Claude Model Update: Migrated to latest stable model

    • Updated from deprecated Claude 3.5 Sonnet (claude-3-5-sonnet-20241022) to Claude Sonnet 4.5 (claude-sonnet-4-5-20250929)
    • Claude 3.5 Sonnet will be retired October 28, 2025
    • Updated all configuration files, test fixtures, and documentation
    • All tests passing with new model (10/10 Claude tests)
  • Dependency Updates:

    • Added anthropic>=0.39.0 to requirements.txt

Removed

  • Code Cleanup: Removed unused code and technical debt
    • Removed 3 unused exception classes: SettingsError, LLMProviderError, TitleGenerationError
    • Removed unused PROVIDER_GROK constants (future placeholder not actively developed)
    • Fixed trailing whitespace in ollama_titles.py and openai_titles.py
    • Simplified exceptions.py from 5 classes to 2 (kept only used exceptions)
    • Net code reduction: -18 lines (-7% overall)

Documentation

  • Plugin architecture successfully validated with third provider
  • Adding new provider now requires ~100 lines vs ~200 with old architecture
  • Updated all Claude model references to Sonnet 4.5
  • Updated configuration examples in README.md, settings.yaml, and .env.example

Don't miss a new ngx-renamer release

NewReleases is sending notifications on new releases.