Added
-
Anthropic Claude API Support: Third LLM provider option alongside OpenAI and Ollama
- New
ClaudeTitlesprovider inmodules/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"insettings.yaml - Requires
CLAUDE_API_KEYenvironment variable
- New
-
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.claudemarker for expensive API tests
Changed
-
Provider Factory Enhancement: Extended to support Claude credentials
modules/llm_factory.py- Added_create_claude_provider()methodmodules/paperless_ai_titles.py- Acceptclaude_api_keyparameterchange_title.py- LoadCLAUDE_API_KEYfrom environmentmodules/constants.py- AddedPROVIDER_CLAUDEconstant 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)
- Updated from deprecated Claude 3.5 Sonnet (
-
Dependency Updates:
- Added
anthropic>=0.39.0torequirements.txt
- Added
Removed
- Code Cleanup: Removed unused code and technical debt
- Removed 3 unused exception classes:
SettingsError,LLMProviderError,TitleGenerationError - Removed unused
PROVIDER_GROKconstants (future placeholder not actively developed) - Fixed trailing whitespace in
ollama_titles.pyandopenai_titles.py - Simplified
exceptions.pyfrom 5 classes to 2 (kept only used exceptions) - Net code reduction: -18 lines (-7% overall)
- Removed 3 unused exception classes:
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