Files
owlen/TODO.md

263 lines
7.5 KiB
Markdown

# Owlen Project Improvement Roadmap
Generated from codebase analysis on 2025-11-01
## Overall Assessment
**Grade:** A (90/100)
**Status:** Production-ready with minor enhancements needed
**Architecture:** Excellent domain-driven design with clean separation of concerns
---
## 🔴 Critical Issues (Do First)
- [x] **Fix Integration Test Failure** (`crates/app/cli/tests/chat_stream.rs`) ✅ **COMPLETED**
- Fixed mock server to accept requests with tools parameter
- Test now passes successfully
- Location: `crates/app/cli/tests/chat_stream.rs`
- [x] **Remove Side Effects from Library Code** (`crates/core/agent/src/lib.rs:348-349`) ✅ **COMPLETED**
- Replaced `println!` with `tracing` crate
- Added `tracing = "0.1"` dependency to `agent-core`
- Changed to structured logging: `tracing::debug!` for tool calls, `tracing::warn!` for errors
- Users can now control verbosity and route logs appropriately
- Location: `crates/core/agent/src/lib.rs:348, 352, 361`
---
## 🟡 High-Priority Improvements
### Permission System ✅
- [x] **Implement Proper Permission Selection in TUI****COMPLETED**
- Added interactive permission popup with keyboard navigation
- Implemented "Allow once", "Always allow", "Deny", and "Explain" options
- Integrated permission requests into agent loop with async channels
- Added runtime permission rule updates for "Always allow"
- Permission popups pause execution and wait for user input
- Location: `crates/app/ui/src/app.rs`, `crates/app/ui/src/components/permission_popup.rs`
### Documentation
- [ ] **Add User-Facing README.md**
- Quick start guide
- Installation instructions
- Usage examples
- Feature overview
- Links to detailed docs
- Priority: HIGH
- [ ] **Add Architecture Documentation**
- Crate dependency graph diagram
- Agent loop flow diagram
- Permission system flow diagram
- Plugin/hook integration points diagram
- Priority: MEDIUM
### Feature Integration
- [ ] **Integrate Plugin System**
- Wire plugin loading into `crates/app/cli/src/main.rs`
- Load plugins at startup
- Test with example plugins
- Priority: HIGH
- [ ] **Integrate MCP Client into Agent**
- Add MCP tools to agent's tool registry
- Enable external tool servers (databases, APIs, etc.)
- Document MCP server setup
- Priority: HIGH
- [ ] **Implement Real Web Search Provider**
- Add provider for DuckDuckGo, Brave Search, or SearXNG
- Make the web tool functional
- Add configuration for provider selection
- Priority: MEDIUM
### Error Handling & Reliability
- [ ] **Add Retry Logic for Transient Failures**
- Exponential backoff for Ollama API calls
- Configurable retry policies (max attempts, timeout)
- Handle network failures gracefully
- Priority: MEDIUM
- [ ] **Enhance Error Messages**
- Add actionable suggestions for common errors
- Example: "Ollama not running? Try: `ollama serve`"
- Example: "Model not found? Try: `ollama pull qwen3:8b`"
- Priority: MEDIUM
---
## 🟢 Medium-Priority Enhancements
### Testing
- [ ] **Add UI Component Testing**
- Snapshot tests for TUI components
- Integration tests for user interactions
- Use `ratatui` testing utilities
- Priority: MEDIUM
- [ ] **Add More Edge Case Tests**
- Glob patterns with special characters
- Edit operations with Unicode
- Very large file handling
- Concurrent tool execution
- Priority: MEDIUM
- [ ] **Code Coverage Reporting**
- Integrate `tarpaulin` or `cargo-llvm-cov`
- Set minimum coverage thresholds (aim for 80%+)
- Track coverage trends over time
- Priority: LOW
### Documentation
- [ ] **Module-Level Documentation**
- Add `//!` docs to key modules
- Explain design decisions and patterns
- Document internal APIs
- Priority: MEDIUM
- [ ] **Create Examples Directory**
- Simple CLI usage examples
- Custom plugin development guide
- Hook script examples
- MCP server integration examples
- Configuration templates
- Priority: MEDIUM
### Code Quality
- [ ] **Fix Dead Code Warning** (`ui/src/app.rs:38`)
- Either use `settings` field or remove it
- Remove `#[allow(dead_code)]`
- Priority: LOW
- [ ] **Improve Error Recovery**
- Checkpoint auto-save on crashes
- Graceful degradation when tools fail
- Better handling of partial tool results
- Priority: MEDIUM
---
## 🔵 Low-Priority Nice-to-Haves
### Project Infrastructure
- [ ] **CI/CD Pipeline (GitHub Actions)**
- Automated testing on push
- Clippy linting
- Format checking with `rustfmt`
- Security audits with `cargo-audit`
- Cross-platform builds (Linux, macOS, Windows)
- Priority: LOW
- [ ] **Performance Benchmarking**
- Add benchmark suite using `criterion` crate
- Track performance for glob, grep, large file ops
- Track agent loop iteration performance
- Priority: LOW
### Code Organization
- [ ] **Extract Reusable Crates**
- Publish `mcp-client` as standalone library
- Publish `llm-ollama` as standalone library
- Enable reuse by other projects
- Consider publishing to crates.io
- Priority: LOW
---
## 💡 Feature Enhancement Ideas
### Session Management
- [ ] **Session Persistence**
- Auto-save sessions across restarts
- Resume previous conversations
- Session history browser in TUI
- Export/import session transcripts
### Multi-Provider Support
- [ ] **Multi-Model Support**
- Support Anthropic Claude API
- Support OpenAI API
- Provider abstraction layer
- Fallback chains for reliability
### Enhanced Permissions
- [ ] **Advanced Permission System**
- Time-based permissions (expire after N minutes)
- Scope-based permissions (allow within specific directories)
- Permission profiles (dev, prod, strict)
- Team permission policies
### Collaboration
- [ ] **Collaborative Features**
- Export sessions as shareable transcripts
- Import/export checkpoints
- Shared permission policies for teams
- Session replay functionality
### Observability
- [ ] **Enhanced Observability**
- Token usage tracking per tool call
- Cost estimation dashboard
- Performance metrics export (JSON/CSV)
- OpenTelemetry integration
- Real-time stats in TUI
---
## 🚀 Quick Wins (Can Be Done Today)
- [ ] Add `README.md` to repository root
- [ ] Fix dead code warning in `ui/src/app.rs:38`
- [ ] Add `tracing` crate and replace `println!` calls
- [ ] Create `.github/workflows/ci.yml` for basic CI
- [ ] Add module-level docs to `agent-core` and `config-agent`
---
## 🌟 Long-Term Vision
- **Plugin Marketplace:** Curated registry of community plugins
- **Interactive Tutorial:** Built-in tutorial mode for new users
- **VS Code Extension:** Editor integration for inline assistance
- **Collaborative Agents:** Multi-agent workflows with role assignment
- **Knowledge Base Integration:** RAG capabilities for project-specific knowledge
- **Web Dashboard:** Browser-based interface for session management
- **Cloud Sync:** Sync configs and sessions across devices
---
## Notes
- **Test Status:** 28+ tests, most passing. 1 integration test failure (mock server issue)
- **Test Coverage:** Strong coverage for core functionality (permissions, checkpoints, hooks)
- **Architecture:** Clean domain-driven workspace with 15 crates across 4 domains
- **Code Quality:** Excellent error handling, consistent patterns, minimal technical debt
- **Innovation Highlights:** Checkpoint/rewind system, three-tiered permissions, shell-based hooks
---
## Priority Legend
- **HIGH:** Should be done soon, blocks other features or affects quality
- **MEDIUM:** Important but not urgent, improves user experience
- **LOW:** Nice to have, can be deferred
---
Last Updated: 2025-11-01