Releases: ai-christianson/RA.Aid
Releases · ai-christianson/RA.Aid
Release v0.30.2
[0.30.2] - 2025-05-06
- Handle list response from LLM API
Release v0.30.1
[0.30.1] - 2025-05-06
- Switch to CIAYN backend for
gemini-2.5-pro-preview-05-06
Release v0.30.0
[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 asession_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 inconfig.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
(fromgemini-2.5-pro-preview-03-25
) inra_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 newsession_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 toTrue
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
inra_aid/anthropic_token_limiter.py
to better handle model name variations for token limit lookups.
Release v0.29.0
[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) andwindow.location.port
in production (frontend/common/src/store/clientConfigStore.ts
).
- Frontend development server port is now configurable via
- Expert Model Temperature Handling: The backend (
ra_aid/llm.py
) now checks if an expert model supports thetemperature
parameter before passing it, preventing errors with models like newer OpenAI versions that don't. It continues to setreasoning_effort
to"high"
where supported. - OpenAI Model Definitions: Updated definitions for
o4-mini
ando3
inra_aid/models_params.py
to setsupports_temperature=False
andsupports_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
, ando3-mini-2025-01-31
tora_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
[0.28.1] 2025-04-17
- Update web prebuilt assets
Release v0.28.0
[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 indocs/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 viaGEMINI_API_KEY
.
Frontend
- Improved autoscroll logic in
frontend/common/src/components/DefaultAgentScreen.tsx
. - Added new trajectory visualization components for file modifications:
FileStrReplaceTrajectory.tsx
andFileWriteTrajectory.tsx
infrontend/common/src/components/trajectories/
. - Integrated new trajectory components into
frontend/common/src/components/TrajectoryPanel.tsx
andfrontend/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
toCIAYN
inra_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
withput_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
andput_complete_file_contents
to tool configurations and removed oldwrite_file_tool
(ra_aid/tool_configs.py
). - Removed
ripgrep_search
tool from default CIAYN tools (userun_shell_command
instead) (ra_aid/tool_configs.py
). - Updated core agent prompts (Research, Planning, Implementation) to emphasize using
rg
viarun_shell_command
, mandateemit_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 intests/ra_aid/tools/test_write_file.py
.
Release v0.27.0
[0.27.0] 2025-04-16
Added
- Support for
o4-mini
ando3
models
Changed
- Default Model/Provider Logic (
ra_aid/__main__.py
):- Changed the default OpenAI model from
gpt-4o
too4-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
).
- Changed the default OpenAI model from
- 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.
- Introduced dedicated environment variables for expert model API keys (e.g.,
- Model Parameters (
ra_aid/models_params.py
):- Added configuration parameters (token limits, capabilities) for the
o4-mini
ando3
models.
- Added configuration parameters (token limits, capabilities) for the
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
[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 inDefaultAgentScreen.tsx
. - Make session title header sticky in
DefaultAgentScreen.tsx
. - Add
Ctrl+Enter
(submit) andCtrl+Shift+Enter
(research-only) shortcuts with visual key indicators inInputSection.tsx
. - Create new
EnterKeySvg.tsx
component for shortcut key visuals. - Add
updateSessionDetails
action tosessionStore.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
andconsole/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
inmodels_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
[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
andstep_data
). - Enhanced UTF-8 decoding with error replacement and improved error panel displays.
- Updated backend modules:
- Modified
ra_aid/project_info.py
andra_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.
- Modified
Frontend Changes
- Updated several UI components in
frontend/common
including:DefaultAgentScreen.tsx
,SessionList.tsx
,SessionSidebar.tsx
,TimelineStep.tsx
, andTrajectoryPanel.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
andfrontend/common/tailwind.preset.js
for improved dependency and styling management. - Updated
package-lock.json
files and server-side asset references.
- Updated
Release v0.24.0
[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 tora_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.