Files
webber/webber-api/CHANGELOG.md
T
jpmschweitzerandClaude Fable 5 5998571890
Build and Push API / release (push) Successful in 2s
Build and Push API / build (push) Successful in 1m39s
chore: release api v1.0.1
Patch release for the network migration: docker-hostname config
defaults for Tatlock/SearXNG and CI image push via the
git.schweitz.net registry route.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 12:32:02 +02:00

6.9 KiB

Changelog - Webber API

All notable changes to the Webber API will be documented in this file.

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

[Unreleased]

[1.0.1] - 2026-07-19

Changed

  • Default TATLOCK_API_URL and SEARXNG_URL now use docker container names (http://tatlock:8000, http://searxng:8080) instead of host IP:port, for container-to-container traffic on the docker-dataplane network
  • CI workflow now pushes Docker images via the git.schweitz.net registry route

[1.0.0] - 2026-01-15

Added

  • Event-based streaming for task agent (StreamEvent objects instead of raw text)
    • New tools_streaming.py with all tools emitting structured events
    • Event types: tool_start, tool_done, thinking, response, error, done
  • Retry logic when LLM responds without calling tools (max 2 retries)
    • Tracks tools_called counter on TaskContext
    • Stronger retry prompt forces tool use
  • Working directory context injected into all agent prompts

Changed

  • Hardened system prompts to enforce tool use before responding
    • Added "CRITICAL RULE" section requiring tool calls first
    • Made "MANDATORY WORKFLOW" more emphatic
  • Updated explore and plan agents with _build_prompt_with_context() method

Fixed

  • Agent path hallucination - now explicitly communicates working directory to LLM

Note

  • Project paused: Local LLMs (Mistral Nemo 12B on available hardware) are not capable enough for reliable agentic tool use. Models frequently hallucinate responses instead of calling tools, even with prompt hardening and retry logic. Would require larger models (70B+) or cloud API integration to continue.

[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
  • 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)