# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] ### Added - Added support for think tags in models with the new extract_think_tag function - Enhanced CiaynAgent and expert tool to extract and display thinking content from ... tags - Added model parameters for think tag support - Added comprehensive testing for think tag functionality ### Changed - Updated langchain/langgraph deps ## [0.16.1] 2025-03-07 ### Changed - Replaced thread-local storage with contextvars in agent_context.py for better context isolation - Improved React agent execution with LangGraph's interrupt mechanism - Enhanced _run_agent_stream function to properly handle agent state and continuation ### Fixed - Fixed tests to work with the new implementation ## [0.16.0] 2025-03-07 ### Added - Database-backed memory system with SQLite (.ra-aid/pk.db) - Repository pattern for memory access (KeyFactRepository, KeySnippetRepository, ResearchNoteRepository) - Memory garbage collection with configurable thresholds - "--wipe-project-memory" flag to reset memory - Memory statistics in status panel - Propagation depth control for agent_should_exit - Fixed string parameter for ripgrep tool - Support for Claude 3.7 Sonnet thinking tokens in expert tool ### Changed - Enhanced file logging with support for .ra-aid/logs/ - Improved CiaynAgent with better tool validation and execution - Memory-related prompt improvements ### Fixed - Various bug fixes in tool execution - Test improvements for memory system ## [0.15.2] - 2025-02-27 ### Added - Added agent_should_exit context functionality with propagation to parent contexts - Improved agent crash detection with non-propagating crash state - Enhanced ripgrep tool with better context support - Improved agent context inheritance - Added comprehensive test coverage for exit and crash handling ## [0.15.1] - 2025-02-27 ### Fixed - Improved chat prompt to prevent endless loop behavior with sonnet 3.7. ## [0.15.0] - 2025-02-27 ### Added - Added database infrastructure with models, connections, and migrations - Added agent context system for improved context management - Added aider-free mode with command line option to disable aider-related functionality - Added database-related dependencies ### Changed - Improved file editing tools with enhanced functionality - Enhanced agent implementation tools with modified return values and logic - Improved agent tool prompts for better clarity and effectiveness - Fixed langgraph prebuilt dependency ### Fixed - Fixed project state detection logic with added tests ## [0.14.9] - 2025-02-25 ### Added - Added binary file detection and filtering to prevent binary files from being added to related files - Added python-magic dependency for improved binary file detection - Added support for "thinking" budget parameter for Claude 3.7 Sonnet ### Changed - Updated dependencies: - langchain-anthropic from 0.3.7 to 0.3.8 - langchain-google-genai from 2.0.10 to 2.0.11 - Improved shell command tool description to recommend keeping commands under 300 words - Enhanced binary file filtering to include detailed reporting of skipped files - Updated test assertions to be more flexible with parameter checking ## [0.14.8] - 2025-02-25 ### Changed - Improved programmer.py tool prompts for better clarity on related files visibility - Enhanced programmer tool to remind users to call emit_related_files on any new files created - Updated README.md to use media queries for showing different logos based on color scheme preference ## [0.14.7] - 2025-02-25 ### Added - Windows compatibility improvements - Add error handling for Windows-specific modules - Add Windows-specific tests for compatibility ### Changed - Improve cross-platform support in interactive.py - WebUI improvements - Improve message display - Add syntax highlighting - Add animations - Expert tool prompt improvements ### Fixed - WebUI improvements - Fix WebSocket communication - Interactive command handling improvements - Fix interactive history capture - Fix command capture bugs - Multiple fixes for interactive command execution on both Linux and Windows - Enhance error handling for interactive processes ## [0.14.6] - 2025-02-25 ### Added - Added `--no-git` flag to aider commands to prevent git operations ### Changed - Updated aider-chat dependency from 0.75 to 0.75.1 - Improved prompts for better tool effectiveness - Enhanced emit_key_snippet documentation to focus on upcoming work relevance ## [0.14.5] - 2025-02-24 ### Changed - Optimized prompts ## [0.14.4] - 2025-02-24 ### Changed - Updated aider-chat dependency from 0.74.2 to 0.75 - Improved tool calling performance by minimizing tool return values - Replaced emit_key_snippets with emit_key_snippet for simpler code snippet management - Simplified return values for multiple tools to improve tool calling accuracy - Updated tool prompts to remove unnecessary context cleanup references - Reorganized order of tools in read-only tools list ### Fixed - Fixed tests to align with updated tool return values - Updated test assertions to match new simplified tool outputs ## [0.14.3] - 2025-02-24 ### Added - Added support for Claude 3.7 Sonnet model - Added version display in startup configuration panel ### Changed - Updated language library dependencies (langgraph, langchain-core, langchain, langchain-openai, langchain-google-genai) - Changed default Anthropic model from Claude 3.5 Sonnet to Claude 3.7 Sonnet ### Fixed - Fixed f-string syntax error in write_file.py - Fixed bug where model selection on Anthropic was always using default instead of respecting user selection - Fixed Anthropic key error message to reference the correct variable - Added test for user-specified Anthropic model selection ## [0.14.2] - 2025-02-19 ### Added - Added automatic fallback mechanism to alternative LLM models on consecutive failures - Added FallbackHandler class to manage tool failures and fallback logic - Added console notification for tool fallback activation - Added detailed fallback configuration options in command line arguments - Added validation for required environment variables for LLM providers ### Changed - Enhanced CiaynAgent to handle chat history and improve context management - Improved error handling and logging in fallback mechanism - Streamlined fallback model selection and invocation process - Refactored agent stream handling for better clarity - Reduced maximum tool failures from 3 to 2 ### Fixed - Fixed tool execution error handling and retry logic - Enhanced error resilience and user experience with fallback handler - Improved error message formatting and logging - Updated error handling to include base message for better debugging ## [0.14.1] - 2025-02-13 ### Added - Added expected_runtime_seconds parameter for shell commands with graceful process shutdown - Added config printing at startup (#88) ### Changed - Enforce byte limit in interactive commands - Normalize/dedupe related file paths - Relax aider version requirement for SWE-bench compatibility - Upgrade langchain/langgraph dependencies ### Fixed - Fixed aider flags (#89) - Fixed write_file_tool references ## [0.14.0] - 2025-02-12 ### Added - Status panel showing tool/LLM status and outputs - Automatic detection of OpenAI expert models - Timeouts on LLM clients ### Changed - Improved interactive TTY process capture and history handling - Upgraded langgraph dependencies - Improved prompts and work logging - Refined token/bytes ratio handling - Support default temperature on per-model basis - Reduced tool count for more reliable tool calling - Updated logo and branding assets - Set environment variables to disable common interactive modes ### Fixed - Various test fixes - Bug fixes for completion message handling and file content operations - Interactive command input improvements - Use reasoning_effort=high for OpenAI expert models - Do not default to o1 model (#82) - Make current working directory and date available to more agents ## [0.13.2] - 2025-02-02 - Fix temperature parameter error for expert tool. ## [0.13.1] - 2025-01-31 ### Added - WebUI (#61) - Support o3-mini ### Changed - Convert list input to string to handle create-react-agent tool calls correctly (#66) - Add commands for code checking and fixing using ruff (#63) ### Fixed - Fix token estimation - Fix tests - Prevent duplicate files (#64) - Ensure default temperature is set correctly for different providers - Do not incorrectly give temp parameter to expert model - Correcting URLs that were referencing ai-christianson/ra-aid - should be ai-christianson/RA.Aid (#69) ### Improved - Integrate litellm to retrieve model token limits for better flexibility (#51) - Handle user defined test cmd (#59) - Run tests during Github CICD (#58) - Refactor models_tokens to be models_params so we can track multiple parameters on a per-model basis. ## [0.13.0] - 2025-01-22 ### Added - Added Deepseek Provider Support and Custom Deepseek Reasoner Chat Model (#50) - Added Aider config File Argument Support (#43) - Added configurable --recursion-limit argument (#46) - Set Default Max Token Limit with Provider/Model Dictionary (#45) ### Changed - Updated aider-chat version from 0.69.1 to 0.72.1 (#47) ### Fixed - Fixed Issue 42 related to Levenshtein (#44) ### Improved - Various prompt improvements - Better handling of 429 errors on openrouter - Improved project info handling and token usage optimization - Extracted tool reflection functionality - Improved work log handling - Added tests for CiaynAgent._does_not_conform_to_pattern ## [0.12.1] - 2025-01-08 - Fix bug where directories are added as related files. ## [0.12.0] - 2025-01-04 ### Added - Google Gemini AI provider support - Dependency check functionality in ra_aid/dependencies.py - Test coverage reporting to pytest commands ### Changed - Updated minimum Python requirement to 3.9 - Updated OpenAI model defaults - Modified test files to support new Gemini provider - Updated SWE-bench dataset generation script with UV package management ### Fixed - Date-based assertions in directory listing tests ## [0.11.3] - 2024-12-30 - MacOS fixes. ## [0.11.2] - 2024-12-30 - Fix SyntaxError: f-string expression part cannot include a backslash. ## [0.11.1] - 2024-12-29 - Improve prompts. - Fix issue #24. ## [0.11.0] - 2024-12-28 - Add CiaynAgent to support models that do not have, or are not good at, agentic function calling. - Improve env var validation. - Add --temperature CLI parameter. ## [0.10.3] - 2024-12-27 - Fix logging on interrupt. - Fix web research prompt. - Simplify planning stage by executing tasks directly. - Make research notes available to more agents/tools. ## [0.10.2] - 2024-12-26 - Add logging. - Fix bug where anthropic is used in chat mode even if another provider is specified. ## [0.10.0] - 2024-12-24 - Added new web research agent. ## [0.9.1] - 2024-12-23 - Fix ask human multiline continuation. ## [0.9.0] - 2024-12-23 - Improve agent interruption UX by allowing user to specify feedback or exit the program entirely. - Do not put file ID in file paths when reading for expert context. - Agents log work internally, improving context information. - Clear task list when plan is completed. ## [0.8.2] - 2024-12-23 - Optimize first prompt in chat mode to avoid unnecessary LLM call. ## [0.8.1] - 2024-12-22 - Improved prompts. ## [0.8.0] - 2024-12-22 - Chat mode. - Allow agents to be interrupted. ## [0.7.1] - 2024-12-20 - Fix model parameters. ## [0.7.0] - 2024-12-20 - Make delete_tasks tool available to planning agent. - Get rid of implementation args as they are not used. - Improve ripgrep tool status output. - Added ask_human tool to allow human operator to answer questions asked by the agent. - Handle keyboard interrupt (ctrl-c.) - Disable PAGERs for shell commands so agent can work autonomously. - Reduce model temperatures to 0. - Update dependencies. ## [0.6.4] - 2024-12-19 - Added monorepo_detected, existing_project_detected, and ui_detected tools so the agent can take specific actions. - Prompt improvements for real-world projects. - Fix env var fallback when base key is given, expert and base provider are different, and expert key is missing. ## [0.6.3] - 2024-12-18 - Fix one shot completion signaling. - Clean up error outputs. - Update prompt for better performance on large/monorepo projects. - Update programmer prompt so we don't use it to delete files. ## [0.6.2] - 2024-12-18 - Allow shell commands to be run in read-only mode. - When asking for shell command approval, allow cowboy mode to be enabled. - Update prompt to suggest commands be run in non-interactive mode if possible, e.g. using --no-pager git flag. - Show tool errors in a panel. ## [0.6.1] - 2024-12-17 ### Added - When key snippets are emitted, snippet files are auto added to related files. - Add base task to research subtask prompt. - Adjust research prompt to make sure related files are related to the base task, not just the research subtask. - Track tasks by ID and allow them to be deleted. - Make one_shot_completed tool available to research agent. - Make sure file modification tools are not available when research only flag is used. - Temporarily disable write file/str replace as they do not work as well as just using the programmer tool. ## [0.6.0] - 2024-12-17 ### Added - New `file_str_replace` tool for performing exact string replacements in files with unique match validation - New `write_file_tool` for writing content to files with rich output formatting and comprehensive error handling