Files
webber/CHANGELOG.md
T
jpmschweitzerandClaude Opus 4.5 acf231eb66
Build and Push API / release (push) Successful in 3s
Build and Push API / build (push) Successful in 1m14s
feat: add retry logic for transient failures
- @with_retry decorator and retry_async() function
- Exponential backoff with jitter
- Retries on: timeout, connection errors, HTTP 429/5xx
- Web search tool now retries on network failures
- Configurable via RETRY_MAX_ATTEMPTS, RETRY_BASE_DELAY, RETRY_MAX_DELAY
- 29 new tests (205 total passing)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 23:22:16 +01:00

5.5 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

[0.4.2] - 2026-01-11

Added

  • Retry logic for transient failures with exponential backoff
    • src/shared/retry.py - @with_retry decorator and retry_async() function
    • Retries on: timeout, connection errors, HTTP 429/5xx
    • Configurable: RETRY_MAX_ATTEMPTS, RETRY_BASE_DELAY, RETRY_MAX_DELAY
  • Web search tool now automatically retries on network failures
  • 29 retry tests (205 total tests passing)

[0.4.1] - 2026-01-11

Fixed

  • Replace litellm with tiktoken for token counting (dependency conflict with pydantic-ai)
  • Update documentation (README.md, architecture.md) with conversation layer info

[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 tiktoken
    • 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, tiktoken>=0.12.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)