Skip to content

Releases: ai-christianson/RA.Aid

Release v0.30.2

07 May 01:51
Compare
Choose a tag to compare

[0.30.2] - 2025-05-06

  • Handle list response from LLM API

Release v0.30.1

07 May 00:22
Compare
Choose a tag to compare

[0.30.1] - 2025-05-06

  • Switch to CIAYN backend for gemini-2.5-pro-preview-05-06

Release v0.30.0

06 May 23:55
Compare
Choose a tag to compare

[0.30.0] - 2025-05-06

Added

  • Agent Thread Management: Introduced a new system (ra_aid/utils/agent_thread_manager.py) for managing the lifecycle of agent threads, allowing for better control and monitoring of running agents. Includes functions to register, unregister, stop, and check the status of agent threads.
  • Session Deletion API: Added a DELETE /v1/session/{session_id} endpoint to allow for stopping an active agent session and marking it as "halting" (ra_aid/server/api_v1_sessions.py).
  • Session ID in Agent Creation: The create_agent function and its callers now utilize a session_id for improved agent tracking and context management (ra_aid/agent_utils.py, ra_aid/agents/research_agent.py, ra_aid/server/api_v1_spawn_agent.py).
  • User Query Trajectory in UI: Added a new UserQueryTrajectory.tsx component to display the initial user query in the frontend timeline.
  • Copy to Clipboard Button in UI: Implemented a CopyToClipboardButton.tsx component and integrated it into various UI parts (e.g., MarkdownCodeBlock.tsx, Task and Expert Response trajectories) for easy content copying.
  • Persistent CLI Configuration: Users can now set and persist default LLM provider and model via CLI (--set-default-provider, --set-default-model), stored in config.json in the .ra-aid directory (ra_aid/config.py).
  • Tests for Agent Thread Manager: Added new unit tests for the agent thread management module (tests/ra_aid/utils/test_agent_thread_manager.py).
  • Tests for Session Deletion API: Added new tests for the session deletion API endpoint (tests/ra_aid/server/test_api_v1_sessions.py).

Changed

  • Default Gemini Model: Updated the default Google Gemini model to gemini-2.5-pro-preview-05-06 (from gemini-2.5-pro-preview-03-25) in ra_aid/__main__.py, ra_aid/models_params.py, docs/docs/quickstart/recommended.md, and related tests.
  • Async Tool Wrapper Optimization: Refined the creation of synchronous wrappers for asynchronous tools to only pass necessary (non-default or required) arguments to the underlying coroutine, improving efficiency (ra_aid/tool_configs.py).
  • Agent Creation Tests: Updated tests for create_agent to reflect the new session_id parameter (tests/ra_aid/test_agent_utils.py).
  • Session Statuses: The Session model now includes 'halting' and 'halted' statuses to support the new session termination API.
  • User Query Storage: The initial user_query is now stored with session and trajectory data.
  • DEFAULT_SHOW_COST: Changed to True by default.

Fixed

  • Tool Name Sanitization: Corrected an issue where tool names with special characters (. or -) could cause errors during the creation of synchronous wrappers for async tools. These characters are now consistently replaced with _ (ra_aid/tool_configs.py).
  • Token Limiter Model Name Handling: Improved get_model_token_limit in ra_aid/anthropic_token_limiter.py to better handle model name variations for token limit lookups.

Release v0.29.0

24 Apr 16:03
Compare
Choose a tag to compare

[0.29.0] 2025-04-24

Changed

  • Frontend Port Configuration:
    • Frontend development server port is now configurable via VITE_FRONTEND_PORT environment variable (defaults to 5173) (frontend/web/vite.config.js).
    • Frontend now dynamically determines the backend port using VITE_BACKEND_PORT in dev (default 1818) and window.location.port in production (frontend/common/src/store/clientConfigStore.ts).
  • Expert Model Temperature Handling: The backend (ra_aid/llm.py) now checks if an expert model supports the temperature parameter before passing it, preventing errors with models like newer OpenAI versions that don't. It continues to set reasoning_effort to "high" where supported.
  • OpenAI Model Definitions: Updated definitions for o4-mini and o3 in ra_aid/models_params.py to set supports_temperature=False and supports_reasoning_effort=True.

Added

  • Frontend Development Documentation: Added instructions to docs/docs/contributing.md on running the frontend dev server and configuring ports using environment variables.
  • New OpenAI Model Definitions: Added definitions for o4-mini-2025-04-16, o3-2025-04-16, and o3-mini-2025-01-31 to ra_aid/models_params.py.

Fixed

  • Custom Tool Result Handling: Ensured results from custom tools are always wrapped in a Langchain BaseMessage (AIMessage) to maintain consistency (ra_aid/agent_backends/ciayn_agent.py).
  • Custom Tool Console Output: Corrected minor formatting issues (escaped newlines) in the console output message when executing custom tools (ra_aid/agent_backends/ciayn_agent.py).

Release v0.28.1

17 Apr 15:43
Compare
Choose a tag to compare

[0.28.1] 2025-04-17

  • Update web prebuilt assets

Release v0.28.0

17 Apr 15:12
Compare
Choose a tag to compare

[0.28.0] 2025-04-17

Documentation

  • Updated expert model API key environment variables (EXPERT_GEMINI_API_KEY, EXPERT_DEEPSEEK_API_KEY) and clarified selection priority in docs/docs/configuration/expert-model.md.
  • Updated recommendation to Google Gemini 1.5 Pro as the primary default model in docs/docs/intro.md & docs/docs/quickstart/recommended.md, explaining automatic detection via GEMINI_API_KEY.

Frontend

  • Improved autoscroll logic in frontend/common/src/components/DefaultAgentScreen.tsx.
  • Added new trajectory visualization components for file modifications: FileStrReplaceTrajectory.tsx and FileWriteTrajectory.tsx in frontend/common/src/components/trajectories/.
  • Integrated new trajectory components into frontend/common/src/components/TrajectoryPanel.tsx and frontend/common/src/components/trajectories/index.ts.

Backend Core & Configuration

  • Refined expert model provider selection logic in ra_aid/__main__.py with updated priority order based on API keys.
  • Minor cleanup in ra_aid/agent_backends/ciayn_agent.py (removed unused import, refined fallback warning).
  • Set default backend for o4-mini to CIAYN in ra_aid/models_params.py.

Tools & Prompts

  • Added file_str_replace tool (ra_aid/tools/file_str_replace.py) for replacing strings in files.
  • Replaced write_file_tool with put_complete_file_contents tool (ra_aid/tools/write_file.py) for writing complete file content.
  • Updated read_file_tool (ra_aid/tools/read_file.py) to strip whitespace from filepaths.
  • Added file_str_replace and put_complete_file_contents to tool configurations and removed old write_file_tool (ra_aid/tool_configs.py).
  • Removed ripgrep_search tool from default CIAYN tools (use run_shell_command instead) (ra_aid/tool_configs.py).
  • Updated core agent prompts (Research, Planning, Implementation) to emphasize using rg via run_shell_command, mandate emit_research_notes, and refine instructions (ra_aid/prompts/).

Testing

  • Added tests for fallback warning logic in tests/ra_aid/agent_backends/test_ciayn_fallback_warning.py.
  • Updated tests for put_complete_file_contents tool in tests/ra_aid/tools/test_write_file.py.

Release v0.27.0

16 Apr 20:24
Compare
Choose a tag to compare

[0.27.0] 2025-04-16

Added

  • Support for o4-mini and o3 models

Changed

  • Default Model/Provider Logic (ra_aid/__main__.py):
    • Changed the default OpenAI model from gpt-4o to o4-mini.
    • Updated the default LLM provider selection priority based on available API keys to: Gemini (GEMINI_API_KEY), then OpenAI (OPENAI_API_KEY), then Anthropic (ANTHROPIC_API_KEY).
  • Expert Model Selection Logic (ra_aid/__main__.py, ra_aid/llm.py):
    • Introduced dedicated environment variables for expert model API keys (e.g., EXPERT_OPENAI_API_KEY, EXPERT_ANTHROPIC_API_KEY).
    • Updated the priority order for selecting the expert provider when none is explicitly set: EXPERT_OPENAI_API_KEY > GEMINI_API_KEY > EXPERT_ANTHROPIC_API_KEY > DEEPSEEK_API_KEY.
    • Refined fallback logic: If no specific expert key is found, it uses the main provider configuration. A special case ensures that if the main provider is OpenAI and no expert model is specified, the expert model defaults to auto-selection (prioritizing o3).
    • Updated the default OpenAI expert model selection to prioritize only "o3". An error is now raised if "o3" is unavailable via the API key and no specific expert model was requested by the user.
  • Model Parameters (ra_aid/models_params.py):
    • Added configuration parameters (token limits, capabilities) for the o4-mini and o3 models.

Testing (tests/ra_aid/test_default_provider.py, tests/ra_aid/test_llm.py)

  • Added/updated tests to verify the new default provider logic, ensuring correct prioritization.
  • Added/updated tests for expert model selection to reflect the new prioritization and the default selection of o3 for OpenAI expert.

Release v0.26.0

16 Apr 15:06
Compare
Choose a tag to compare

[0.26.0] 2025-04-16

Frontend

  • Implement improved autoscroll logic with user scroll detection in DefaultAgentScreen.tsx.
  • Add Ctrl+Space shortcut for new session and completion message in DefaultAgentScreen.tsx.
  • Make session title header sticky in DefaultAgentScreen.tsx.
  • Add Ctrl+Enter (submit) and Ctrl+Shift+Enter (research-only) shortcuts with visual key indicators in InputSection.tsx.
  • Create new EnterKeySvg.tsx component for shortcut key visuals.
  • Add updateSessionDetails action to sessionStore.ts for faster session name updates via WebSocket.

Backend

  • Add --cowboy-mode flag with server warning confirmation in __main__.py.
  • Adjust console output padding in console/formatting.py and console/output.py.
  • Refactor research_notes_formatter.py to return raw content.
  • Add model parameters for gpt-4.1, gpt-4.1-mini, gpt-4.1-nano in models_params.py.
  • Update CIAYN agent prompts to mandate triple quotes for all string tool arguments in prompts/ciayn_prompts.py.
  • Broadcast full session details immediately after creation via WebSocket in server/api_v1_spawn_agent.py.

Build

  • Update prebuilt frontend assets (index-*.js, index-*.css, index.html).

Release v0.25.0

09 Apr 22:51
Compare
Choose a tag to compare

[0.25.0] 2025-04-09

Backend Changes

  • Refactored ra_aid/tools/ripgrep.py:
    • Removed old search parameter string construction.
    • Introduced new variables: final_output, final_return_code, final_success for capturing command-line output and error handling.
    • Updated trajectory recording logic using consolidated parameters (tool_parameters and step_data).
    • Enhanced UTF-8 decoding with error replacement and improved error panel displays.
  • Updated backend modules:
    • Modified ra_aid/project_info.py and ra_aid/server/api_v1_spawn_agent.py for improved logging, error handling, and user feedback.
    • Updated server-side prebuilt assets (JavaScript, CSS, and index.html) for better asset management.

Frontend Changes

  • Updated several UI components in frontend/common including:
    • DefaultAgentScreen.tsx, SessionList.tsx, SessionSidebar.tsx, TimelineStep.tsx, and TrajectoryPanel.tsx.
  • Adjusted state management and utility/store files to support updated UI displays for agent outputs, sessions, and trajectories.

Configuration & Minor Changes

  • Modified configuration files:
    • Updated .gitignore and .ra-prompt with newer patterns.
    • Revised frontend/common/package.json and frontend/common/tailwind.preset.js for improved dependency and styling management.
    • Updated package-lock.json files and server-side asset references.

Release v0.24.0

08 Apr 20:33
Compare
Choose a tag to compare

[0.24.0] 2025-04-08

Added

  • Web UI is now available at localhost:1818 when ra-aid is started with --server
  • Session status tracking (pending, running, completed, failed) in the database and API.
  • Robust WebSocket connection handling in the frontend with auto-reconnect and heartbeats (frontend/common/src/websocket/connection.ts).
  • Serve prebuilt web UI static files directly from the backend server (ra_aid/server/server.py, ra_aid/server/prebuilt/).
  • broadcast_sender.py module for decoupled WebSocket message broadcasting via a queue (ra_aid/server/broadcast_sender.py).
  • SessionNotFoundError custom exception (ra_aid/exceptions.py).
  • build:prebuilt npm script to build frontend assets into the backend distribution (frontend/package.json).

Changed

  • Refactored backend WebSocket broadcasting to use the new broadcast_sender queue, improving reliability and decoupling (ra_aid/server/server.py, ra_aid/server/api_v1_spawn_agent.py).
  • Updated various frontend components and stores to integrate with the new WebSocket logic and session status (frontend/common/).
  • Enhanced logging in ra_aid/agents/research_agent.py with thread IDs.

Fixed

  • Resolved WebSocket message serialization error for session_update payloads by ensuring proper JSON serialization (mode='json') before queuing messages in the new broadcast sender mechanism (ra_aid/server/api_v1_spawn_agent.py, ra_aid/server/broadcast_sender.py).

Build

  • Added script (frontend/package.json#build:prebuilt) to build and copy frontend assets to ra_aid/server/prebuilt/ for server distribution.

Internal

  • Added database migration for the new session status field (ra_aid/migrations/015_20250408_140800_add_session_status.py).
  • Updated .gitignore.

Changelog

All notable changes to this project will be documented in this file.

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