chore: bump version to 0.2.0
- Update APP_VERSION in config.py - Update version in README.md - Add comprehensive v0.2.0 changelog entry - Update changelog version comparison links This release includes: - PydanticAI integration with Ollama - Permanent tools (calculator, date/time, search) - Streaming bug fixes - 131 tests with 81.78% coverage 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
+83
-1
@@ -7,6 +7,87 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [0.2.0] - 2025-12-06
|
||||
|
||||
### Added
|
||||
|
||||
#### PydanticAI Integration (Phase 1)
|
||||
- Real Tatlock agent using PydanticAI with Ollama backend (mistral-nemo:latest)
|
||||
- British butler personality with research-oriented mindset
|
||||
- Lazy agent initialization to avoid connection issues in tests
|
||||
- Streaming response integration with reasoning output
|
||||
- Error handling for PydanticAI-specific exceptions
|
||||
|
||||
#### Permanent Tools (Phase 1)
|
||||
- **Calculator tool** (`src/agents/tools.py`):
|
||||
- Safe mathematical expression evaluation using restricted namespace
|
||||
- Support for arithmetic, algebra, trigonometry, logarithms
|
||||
- Math functions: sqrt, sin, cos, tan, log, exp, etc.
|
||||
- Constants: pi, e
|
||||
- Integer result formatting (removes unnecessary decimals)
|
||||
- **Date/Time toolkit**:
|
||||
- `get_current_datetime`: Current date/time in multiple formats
|
||||
- `calculate_time_offset`: Relative date calculations ("1 week ago", "2 months from now")
|
||||
- `time_difference`: Human-readable time differences between dates
|
||||
- **Web Search tool**:
|
||||
- SearXNG integration for privacy-preserving web search
|
||||
- Automatic fallback from production to localhost in development
|
||||
- Formatted search results with titles, URLs, and snippets
|
||||
- Configurable result limits (max 10)
|
||||
|
||||
#### Tool Framework
|
||||
- PydanticAI tool registration with `@agent.tool` decorator
|
||||
- Tool descriptions visible to LLM for intelligent usage
|
||||
- Async tool support for I/O operations
|
||||
- Error handling with string-based error messages
|
||||
- Tool usage guidelines in system prompt
|
||||
|
||||
#### Configuration
|
||||
- SearXNG configuration in `src/core/config.py`:
|
||||
- `SEARXNG_HOST` with development fallback
|
||||
- `SEARXNG_TIMEOUT` setting
|
||||
- Updated `.env.example` with SearXNG configuration
|
||||
- Ollama configuration documentation
|
||||
|
||||
#### Testing
|
||||
- 26 new tool tests (`tests/agents/test_tools.py`):
|
||||
- 7 calculator tests (arithmetic, functions, error handling)
|
||||
- 14 date/time tests (current time, offsets, differences)
|
||||
- 5 web search tests (mocked HTTP client)
|
||||
- Updated registry tests for tools capability
|
||||
- Total: 131 tests, 81.78% coverage (up from 95 tests, 78.95%)
|
||||
|
||||
#### Documentation
|
||||
- Comprehensive README.md updates:
|
||||
- Tatlock agent capabilities and tool descriptions
|
||||
- Requirements section with Ollama and SearXNG setup
|
||||
- Configuration examples for external services
|
||||
- Tool usage examples and philosophy
|
||||
- Troubleshooting for Ollama and SearXNG
|
||||
- Updated test statistics
|
||||
- AGENTS.md refactored for LLM development:
|
||||
- PydanticAI tool registration pattern
|
||||
- Tool implementation guidelines
|
||||
- Removed project status, focused on development instructions
|
||||
- IMPLEMENTATION_ROADMAP.md updates:
|
||||
- Phase 1 marked as "MOSTLY COMPLETE"
|
||||
- Detailed completion status for each deliverable
|
||||
- Updated current state summary
|
||||
|
||||
### Changed
|
||||
- Tatlock agent converted from mock to real PydanticAI implementation
|
||||
- Tatlock capabilities updated: `tools: True`
|
||||
- Streaming coordination now handles chunk-based delivery (50 chars) to preserve markdown
|
||||
- Chat service streaming updated to preserve formatting
|
||||
- System prompt enhanced with tool usage guidelines and research mindset
|
||||
- Agent initialization changed to lazy pattern for better testability
|
||||
|
||||
### Fixed
|
||||
- Text duplication bug in streaming responses (proper delta calculation)
|
||||
- Markdown formatting preservation in streamed responses
|
||||
- GeneratorExit errors from async context managers in generators
|
||||
- PydanticAI API usage (`result.output` instead of `result.data`)
|
||||
|
||||
## [0.1.1] - 2025-12-06
|
||||
|
||||
### Added
|
||||
@@ -115,6 +196,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
- CORS middleware
|
||||
- Exception handlers (OpenAI-compatible error format)
|
||||
|
||||
[Unreleased]: https://git.schweitz.net/jpmschweitzer/tatlock/compare/v0.1.1...main
|
||||
[Unreleased]: https://git.schweitz.net/jpmschweitzer/tatlock/compare/v0.2.0...main
|
||||
[0.2.0]: https://git.schweitz.net/jpmschweitzer/tatlock/compare/v0.1.1...v0.2.0
|
||||
[0.1.1]: https://git.schweitz.net/jpmschweitzer/tatlock/compare/v0.1.0...v0.1.1
|
||||
[0.1.0]: https://git.schweitz.net/jpmschweitzer/tatlock/releases/tag/v0.1.0
|
||||
|
||||
Reference in New Issue
Block a user