- SQLAlchemy async database layer (SQLite dev, PostgreSQL prod) - Conversation and Message models with UUID primary keys - Token counting utilities using litellm - Context summarization at 80% token threshold - REST API endpoints for multi-turn conversations - 19 conversation tests, 6 token tests (176 total passing) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
136 lines
4.9 KiB
Markdown
136 lines
4.9 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
## [Unreleased]
|
|
|
|
## [0.4.0] - 2026-01-11
|
|
|
|
### Added
|
|
- Conversation persistence layer with SQLAlchemy async
|
|
- Database models: `Conversation`, `Message` with UUID primary keys
|
|
- SQLite (dev) and PostgreSQL (prod) support via async engines
|
|
- Lazy database initialization pattern
|
|
- Context management infrastructure
|
|
- Token counting utilities using `litellm`
|
|
- Context summarization at 80% token threshold
|
|
- XML-tagged context prompt building for agent injection
|
|
- REST API for multi-turn conversations
|
|
- `POST /conversations/` - Create new conversation
|
|
- `GET /conversations/` - List conversations
|
|
- `GET /conversations/{id}` - Get conversation with history
|
|
- `POST /conversations/{id}/messages` - Add message (triggers agent)
|
|
- `DELETE /conversations/{id}` - Delete conversation
|
|
- New dependencies: `sqlalchemy[asyncio]~=2.0.36`, `aiosqlite~=0.21.0`, `litellm~=1.57.0`
|
|
- Config settings: `database_url`, `summarization_threshold`, `keep_recent_messages`
|
|
- 19 conversation tests, 6 token counting tests (176 total tests passing)
|
|
|
|
### Changed
|
|
- Updated COVERAGE.md to ~80% complete
|
|
- Quieter pytest output (`-q --tb=short` instead of `-v`)
|
|
|
|
## [0.3.4] - 2026-01-11
|
|
|
|
### Added
|
|
- Task Agent - Full orchestrator for autonomous multi-step task execution
|
|
- Has ALL tools: read, write, edit, bash (full), web_search
|
|
- New `spawn_agent` tool to launch sub-agents (Explore, Plan) for focused work
|
|
- Recursion prevention: cannot spawn nested Task agents
|
|
- 22 unit tests for registration, tools, spawn_agent, and API
|
|
- Complete agent hierarchy: Explore (read-only) → Plan (read-only) → Task (orchestrator)
|
|
|
|
## [0.3.3] - 2026-01-11
|
|
|
|
### Added
|
|
- Plan Agent - READ-ONLY software architect that designs implementation strategies
|
|
- Uses only read-only tools: `read_file`, `glob_files`, `grep_content`, `bash_readonly`
|
|
- Creates step-by-step implementation plans with critical files list
|
|
- 15 unit tests for registration, tools, and API
|
|
- Web search summarizer added to roadmap (future feature)
|
|
|
|
### Changed
|
|
- Updated COVERAGE.md to ~70% complete
|
|
|
|
## [0.3.2] - 2026-01-11
|
|
|
|
### Added
|
|
- Mandatory release procedure documentation in AGENTS.md
|
|
|
|
## [0.3.1] - 2026-01-11
|
|
|
|
### Added
|
|
- Integration test infrastructure with pytest markers (integration, e2e, slow)
|
|
- 10 LLM integration tests (requires Ollama)
|
|
- 12 E2E API tests (requires running server)
|
|
- Command line options: `--run-integration`, `--run-e2e`, `--ollama-url`, `--api-url`
|
|
- Sample project fixtures for testing
|
|
- 14 security tests (path traversal, command injection, input validation)
|
|
- Helper functions: `assert_contains_any`, `assert_contains_all`
|
|
|
|
### Changed
|
|
- Updated COVERAGE.md to ~65% complete
|
|
|
|
## [0.3.0] - 2026-01-10
|
|
|
|
### Added
|
|
- Explore agent with PydanticAI tool calling and Mistral Nemo
|
|
- Coding tools: `edit_file`, `write_file`, `bash` (full)
|
|
- Web search tool using SearXNG integration
|
|
- Streaming responses via SSE for API and CLI
|
|
- CLI commands: `explore`, `chat`, `status`
|
|
- Sanitized Ollama provider (fixes `content: null` issue)
|
|
|
|
### Changed
|
|
- Reorganized into monorepo structure (webber-api/, webber-cli/, webber-sandbox/)
|
|
- Added ruff linter and fixed mypy errors
|
|
|
|
## [0.2.3] - 2026-01-09
|
|
|
|
### Added
|
|
- Docker healthcheck for container health monitoring
|
|
|
|
## [0.2.2] - 2026-01-09
|
|
|
|
### Fixed
|
|
- Config parsing for empty environment variables (allowed_paths, cors_*)
|
|
- Use `env_parse_none_str=""` to treat empty strings as None
|
|
|
|
## [0.2.1] - 2026-01-09
|
|
|
|
### Fixed
|
|
- CI/CD pipeline credentials configured
|
|
|
|
## [0.2.0] - 2026-01-09
|
|
|
|
### Added
|
|
- Reference prompts from claude-code-system-prompts for all agent types
|
|
- Detailed documentation for Explore, Plan, and Task agents
|
|
- Detailed documentation for File, Shell, and Search tools
|
|
- Utility prompts (TodoWrite, AskUserQuestion, conversation summarization, etc.)
|
|
- Security review prompt for code analysis
|
|
|
|
### Changed
|
|
- Expanded agents/README.md with capabilities and use cases
|
|
- Expanded tools/README.md with parameter details and behaviors
|
|
|
|
## [0.1.0] - 2026-01-09
|
|
|
|
### Added
|
|
- Initial FastAPI boilerplate setup
|
|
- Domain-based project structure (src/domains/, src/shared/)
|
|
- BaseController pattern with lazy router instantiation
|
|
- Pydantic Settings configuration with env file support
|
|
- Logger decorator with temporal benchmarking and trace IDs
|
|
- UserProvider singleton for request-scoped context
|
|
- Custom exception hierarchy
|
|
- Health endpoints (/, /health)
|
|
- Placeholder domains for agents (explore, plan, task)
|
|
- Placeholder domains for tools (file, shell, search)
|
|
- Placeholder domain for auth (tatlock integration)
|
|
- CI/CD workflow for Gitea with Docker build and Watchtower deployment
|
|
- Dockerfile for containerized deployment
|
|
- CVE-checked dependencies (2026-01-09)
|