Webber Feature Coverage
Tracking progress towards Claude Code-like functionality
Current Status: ~70% Complete
Last updated: 2026-01-11
Phase 1-6: Foundation (Original Plan)
Phase 1: Tool Infrastructure ✅ Complete
| Component |
Status |
Notes |
BaseTool abstract class |
✅ |
src/domains/tools/base.py |
ToolResult dataclass |
✅ |
Consistent success/error/truncated handling |
ReadFileTool |
✅ |
With line numbers, offset/limit support |
GlobFilesTool |
✅ |
Pattern matching, sorted by mtime |
GrepContentTool |
✅ |
Regex search with context lines |
BashReadOnlyTool |
✅ |
Allowlist-based command filtering |
EditFileTool |
✅ |
Find-and-replace with unique match validation |
WriteFileTool |
✅ |
Create/overwrite files with size limits |
BashTool (full) |
✅ |
Write-enabled shell with safety controls |
WebSearchTool |
✅ |
SearXNG integration for web search |
| Path validation |
✅ |
allowed_paths restriction |
Status: Tools honor .gitignore patterns and default ignores (.venv/, __pycache__/, etc.)
Phase 2: Explore Agent ✅ Complete
| Component |
Status |
Notes |
BaseAgent abstract class |
✅ |
src/domains/agents/base.py |
| Agent registry |
✅ |
register_agent(), get_agent(), list_agents() |
ExploreAgentImpl |
✅ |
PydanticAI-based implementation |
| System prompts |
✅ |
Mistral-optimized with tool examples |
| Tool registration |
✅ |
@agent.tool decorator pattern |
| Sanitized Ollama provider |
✅ |
Fixes content: null issue |
| Streaming support |
✅ |
run_stream() method with SSE |
Available tools: read_file, glob_files, grep_content, bash_readonly, edit_file, write_file, bash, web_search
Gap: Mistral Nemo sometimes hallucinates instead of using tool results.
Phase 2b: Plan Agent ✅ Complete
| Component |
Status |
Notes |
PlanAgentImpl |
✅ |
READ-ONLY software architect agent |
| System prompts |
✅ |
Architecture-focused with tool examples |
| Tool registration |
✅ |
Only read-only tools (4 tools) |
| Streaming support |
✅ |
run_stream() method with SSE |
| Unit tests |
✅ |
15 tests for registration, tools, API |
Available tools: read_file, glob_files, grep_content, bash_readonly (read-only only)
Purpose: Design implementation strategies before coding - explores codebase and creates step-by-step plans.
Phase 3: CLI Foundation ✅ Complete
| Component |
Status |
Notes |
| Typer + Rich setup |
✅ |
Standalone webber-cli/ package |
webber-cli --version |
✅ |
Shows version from pyproject.toml |
| Console theming |
✅ |
Centralized color palette |
| Markdown rendering |
✅ |
Rich markdown output |
| Streaming display |
✅ |
Real-time token output with --stream flag |
Phase 4: Agentic Loop ⚠️ Partial
| Component |
Status |
Notes |
webber-cli chat command |
✅ |
Interactive mode with streaming |
webber-cli explore command |
✅ |
One-shot query with streaming |
SessionState dataclass |
✅ |
Basic context tracking |
AgenticLoop class |
⚠️ |
Basic implementation, not fully utilized |
| Conversation history |
❌ |
Not persisted between turns in CLI |
| Context management |
❌ |
No token counting or summarization |
Phase 5: REST API ✅ Complete
| Component |
Status |
Notes |
POST /agents/run |
✅ |
Execute agent with prompt |
POST /agents/stream |
✅ |
SSE streaming responses |
GET /agents/ |
✅ |
List available agents |
GET /agents/{name} |
✅ |
Get agent info |
| Request/response schemas |
✅ |
Pydantic models |
Phase 6: Polish & Tests ✅ Complete
| Component |
Status |
Notes |
| Tool unit tests |
✅ |
109 tests total |
| API endpoint tests |
✅ |
11 tests for agent routes |
| Health check tests |
✅ |
2 tests |
| Security tests |
✅ |
14 tests for path traversal, injection |
| Integration tests |
✅ |
10 tests with real LLM (requires Ollama) |
| E2E tests |
✅ |
12 tests against running API server |
Future Work: Remaining Features
High Priority
| Feature |
Category |
Description |
Complexity |
Plan Agent |
Agents |
✅ Design implementation approaches |
High |
| Task Agent |
Agents |
Autonomous multi-step execution |
High |
| Context summarization |
Infrastructure |
Compress history at token limit |
High |
| Conversation persistence |
CLI |
Multi-turn memory in chat mode |
Medium |
Medium Priority
| Feature |
Category |
Description |
Complexity |
| Web search summarizer |
Tools |
Agent to extract core content from web pages (remove nav, footers, etc.) and preserve relevant links for nested fetching |
Medium |
| Tool result caching |
Infrastructure |
Cache file reads for performance |
Low |
| Session persistence |
CLI |
Save/resume conversations |
Medium |
| Todo tracking |
CLI |
Built-in task list (/todo) |
Medium |
| Git integration |
CLI |
Auto-commit, branch management |
Medium |
| Agent handoff |
Orchestration |
Explore → Plan → Task workflow |
High |
| Retry logic |
Infrastructure |
Auto-retry on tool failures |
Low |
Low Priority
| Feature |
Category |
Description |
Complexity |
| Notebook editing |
Tools |
Jupyter cell manipulation |
Medium |
| MCP support |
Infrastructure |
Model Context Protocol |
High |
| Config file |
CLI |
~/.webber/config.toml |
Low |
| IDE integration |
CLI |
VS Code extension |
High |
| Parallel agents |
Orchestration |
Concurrent agent execution |
High |
| Agent memory |
Orchestration |
Shared context between agents |
Medium |
Testing Coverage
| Area |
Current |
Target |
Status |
| Tool unit tests |
109 |
109 |
✅ |
| API tests |
11 |
11 |
✅ |
| Plan agent tests |
15 |
15 |
✅ |
| Security tests |
14 |
14 |
✅ |
| Integration tests |
10 |
10 |
✅ Agent + real LLM |
| E2E tests |
12 |
12 |
✅ Full API workflow |
Test breakdown:
- Read/Glob/Grep tools: 17 tests
- Edit/Write tools: 22 tests
- Bash tools: 22 tests
- Web search: 10 tests
- Gitignore filtering: 10 tests
- API endpoints: 11 tests
- Plan agent: 15 tests
- Security: 14 tests
- Health checks: 2 tests
- Integration (LLM): 10 tests
- E2E (API): 12 tests
Running tests:
Known Issues
-
Model hallucination - Mistral Nemo sometimes makes up file contents instead of using actual tool results.
-
No conversation memory - CLI chat mode doesn't persist context between sessions.
-
Temperature setting - Changed from 0.0 to 0.3 for Mistral Nemo compatibility, may affect determinism.
Architecture Decisions Made
| Decision |
Choice |
Rationale |
| Monorepo structure |
webber-api/, webber-cli/ |
Separate packages, shared root |
| Sanitized Ollama provider |
Custom wrapper |
Fixes PydanticAI + Ollama content: null bug |
| Dev port 8095 |
Separate from prod 8086 |
Avoid conflicts with Docker deployment |
| Tool choice "required" |
Force tool use |
Mistral Nemo needs explicit instruction |
| Temperature 0.3 |
Mistral recommendation |
0.0 caused issues with Nemo |
| SearXNG for search |
Self-hosted |
Privacy, no API keys needed |
| SSE for streaming |
Server-Sent Events |
Simple, well-supported |
Quick Reference: What Works Now
Tools Available
| Tool |
Type |
Description |
read_file |
Read |
Read file contents with line numbers |
glob_files |
Read |
Find files by pattern |
grep_content |
Read |
Search file contents with regex |
bash_readonly |
Read |
Safe bash commands (ls, git status, etc.) |
edit_file |
Write |
Find-and-replace editing |
write_file |
Write |
Create/overwrite files |
bash |
Write |
Full bash with safety controls |
web_search |
External |
Search web via SearXNG |