forked from Rockachopa/Timmy-time-dashboard
* test: remove hardcoded sleeps, add pytest-timeout - Replace fixed time.sleep() calls with intelligent polling or WebDriverWait - Add pytest-timeout dependency and --timeout=30 to prevent hangs - Fixes test flakiness and improves test suite speed * feat: add Aider AI tool to Forge's toolkit - Add Aider tool that calls local Ollama (qwen2.5:14b) for AI coding assist - Register tool in Forge's code toolkit - Add functional tests for the Aider tool * config: add opencode.json with local Ollama provider for sovereign AI * feat: Timmy fixes and improvements ## Bug Fixes - Fix read_file path resolution: add ~ expansion, proper relative path handling - Add repo_root to config.py with auto-detection from .git location - Fix hardcoded llama3.2 - now dynamic from settings.ollama_model ## Timmy's Requests - Add communication protocol to AGENTS.md (read context first, explain changes) - Create DECISIONS.md for architectural decision documentation - Add reasoning guidance to system prompts (step-by-step, state uncertainty) - Update tests to reflect correct model name (llama3.1:8b-instruct) ## Testing - All 177 dashboard tests pass - All 32 prompt/tool tests pass --------- Co-authored-by: Alexander Payne <apayne@MM.local>
1.2 KiB
1.2 KiB
DECISIONS.md — Architectural Decision Log
This file documents major architectural decisions and their rationale.
Decision: Dynamic Model Name in System Prompts
Date: 2026-02-26
Context: Timmy's system prompts hardcoded "llama3.2" but the actual model is "llama3.1:8b-instruct", causing confusion.
Decision: Make model name dynamic by:
- Using
{model_name}placeholder in prompt templates - Injecting actual value from
settings.ollama_modelat runtime viaget_system_prompt()
Rationale: Single source of truth. If model changes in config, prompts reflect it automatically.
Decision: Unified Repo Root Detection
Date: 2026-02-26
Context: Multiple places in code detected repo root differently (git_tools.py, file_ops.py, timmy.py).
Decision: Add repo_root to config.py with auto-detection:
- Walk up from
__file__to find.git - Fall back to environment or current directory
Rationale: Consistent path resolution for all tools.
Add New Decisions Above This Line
When making significant architectural choices, document:
- Date
- Context (what problem prompted the decision)
- Decision (what was chosen)
- Rationale (why this approach was better than alternatives)