Commit graph

485 commits

Author SHA1 Message Date
Toray Altas
64c4fcb2af test: fix types test import extension 2026-01-18 02:38:26 -05:00
Toray Altas
6e443bf8d4 feat: show hook execution output in chat
Stream hook stdout/stderr into chat with terminal-style HookExecution blocks.\n\nAdds hookExecutionOutputStatus protocol and persisted hook_execution rows with truncated summaries.
2026-01-18 02:37:21 -05:00
Toray Altas
caa9fd509c fix: dedupe multi-event hooks in settings UI
Send hook-centric enabledHooks state to webview (one entry per id) and expose aggregated events[] for UI rendering. Adds regression test for ClineProvider hooks state shaping.
2026-01-18 00:31:20 -05:00
Toray Altas
7d0d714258 fix: preserve multi-event hooks and multi-group matchers
- Keep multiple events for same hook id when definitions match\n- Expand matcher groups when combined with | (e.g. read|edit)\n- Add regression tests for both cases
2026-01-17 23:46:20 -05:00
Toray Altas
d9509c639a feat(hooks): restructure yaml schema and enhance ui configuration (phase 2)
- Refactor YAML structure to be hook-centric (array-based) instead of event-keyed

- Remove version key from schema and code

- Add "Copy Hook" functionality to duplicate hooks

- Enhance Settings UI:

  - Add event tooltips with descriptions

  - Add editable hook ID field with validation

  - Add multi-line command editing

  - Add "Copy" button

- Update config loader to support both new and legacy formats (read-only compatibility)

- Update config writer to always emit new format

- Add comprehensive tests for migration, copy logic, and new UI components
2026-01-17 21:04:39 -05:00
Toray Altas
609ff88969 feat(hooks): enhance configuration UI with event checkboxes and tool group matchers
- Replace raw config display with interactive controls for Events, Matchers, and Timeout

- Add backend support for updating hook configurations via hooksUpdateHook message

- Implement atomic YAML/JSON writing with event migration logic (moving hooks between keys)

- Add multi-select checkboxes for lifecycle events (PreToolUse, PostToolUse, etc.)

- Add tool group matchers (read, edit, etc.) with custom pattern fallback

- Add timeout preset dropdown (15s - 60m)

- Add comprehensive tests for config writing and UI interaction
2026-01-17 19:34:44 -05:00
Toray Altas
fe0e61f232 feat: promote hooks from experimental to permanent feature
Remove hooks from experimental flags and make it a core feature:
- Remove HOOKS from ExperimentId enum and experimentsSchema
- Initialize HookManager unconditionally in ClineProvider
- Remove experiment checks from webviewMessageHandler
- Always show Hooks tab in SettingsView
- Add dynamic initialization with file watchers (no restart required)
- Update translations to remove restart requirement text
- Add comprehensive tests for dynamic hook initialization

The master 'Enable Hooks' toggle in HooksSettings controls execution.
2026-01-17 16:10:24 -05:00
Toray Altas
5f1237f212 fix: enforce master toggle for hooks execution
- Add hooksEnabled check to all ToolExecutionHooks methods
- Hooks do not execute when master toggle is off
- Update Task.ts to inject hooksEnabled getter
- Add hooksEnabled to GlobalSettings schema and ExtensionState
- UI hides hook list when master toggle is disabled
- Add comprehensive tests for toggle enforcement (15 tests)
2026-01-17 11:42:28 -05:00
Toray Altas
36ca0ccc27 feat: add Create New Hook button and fix UI styling
- Add 'Create New Hook' button above 'Open Global Folder' button
- Remove borders from hook items to match flat MCP styling
- Implement hooksCreateNew message handler to create example.yaml
- Fix YAML template indentation to use standard 2-space format
- Add translation strings for new UI elements
2026-01-17 11:13:08 -05:00
Toray Altas
6ebe2dad0a feat: gate hooks behind experimental flag
Implement hooks experimental flag with conditional UI rendering and backend functionality gating.
Fix missing experimental settings translations for hooks feature.
Fix hook discovery issue by initializing HookManager when experiment is toggled on.
2026-01-17 10:22:46 -05:00
Toray Altas
08b41f2b9e feat: display hook execution in chat 2026-01-17 00:09:32 -05:00
Toray Altas
a13fba4c88 feat: open hook config file from UI 2026-01-16 21:11:49 -05:00
Toray Altas
ff4d057f1e feat: enhance hooks UI with delete support and status indicators
- Add switch, status dot, and delete button to HooksSettings UI
- Implement backend support for hook deletion
- Add safeWriteText utility
- Update translation strings
- Add UI and backend tests for new functionality
2026-01-16 19:46:42 -05:00
Toray Altas
e079e6c7aa feat: improve hooks settings UI
Add open project/global folder buttons at bottom
Move reload to bottom
Add enable-all toggle (with new message type)
Convert hooks list to accordion + per-hook logs
2026-01-16 18:27:13 -05:00
Toray Altas
22eda99812 feat: implement Claude Code-style hooks system
Add lifecycle hooks for tool execution with 12 event types:
- PreToolUse, PostToolUse, PostToolUseFailure, PermissionRequest
- SessionStart, SessionEnd, Stop, SubagentStart, SubagentStop
- UserPromptSubmit, Notification, PreCompact

Core implementation:
- HookManager service with config loading, validation, and execution
- HookExecutor for shell command execution with timeout, stdin JSON, env vars
- HookConfigLoader with project/global/mode-specific precedence
- HookMatcher for pattern matching (exact, regex, glob)
- ToolExecutionHooks adapter for pipeline interception

Tool pipeline integration:
- PreToolUse hooks can block or modify tool input
- PostToolUse/PostToolUseFailure for non-blocking notifications
- PermissionRequest hooks before approval prompts

Webview UI:
- Hooks tab in Settings with enable/disable toggles
- Hook Activity log with real-time status updates
- Reload config and open folder actions

Includes comprehensive tests for all components.

Relates to: Claude Code hooks feature parity
2026-01-16 14:49:38 -05:00
T
f48ea389df
Feat/issue 5376 aggregate subtask costs (#10757) 2026-01-15 16:44:55 -05:00
Matt Rubens
4ee494b08c
Release: v1.106.0 (#10749) 2026-01-15 01:44:14 -05:00
Hannes Rudolph
4ebbca08b0
feat: add OpenAI Codex provider with OAuth subscription authentication (#10736)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-14 23:48:51 -05:00
Hannes Rudolph
b04597faa6
feat(providers): add gpt-5.2-codex model to openai-native provider (#10731) 2026-01-14 13:02:56 -07:00
Matt Rubens
4b17f985b4
Release: v1.105.0 (#10722) 2026-01-14 10:01:05 -05:00
Matt Rubens
f1bbd29bda
Update router name in types (#10610) 2026-01-10 13:34:25 -05:00
Matt Rubens
fa5fe75b3b
Update router name in types (#10605) 2026-01-10 12:52:41 -05:00
Matt Rubens
f99d116ec7
chore: bump version to v1.102.0 (#10604) 2026-01-10 11:41:09 -05:00
Hannes Rudolph
5a82c334ae
chore: disable edit_file tool for Gemini/Vertex (#10594) 2026-01-09 21:24:15 -05:00
Hannes Rudolph
84789445cd
chore(gemini): stop overriding tool allow/deny lists (#10592) 2026-01-09 18:47:35 -07:00
Hannes Rudolph
108f78db6c
feat: add debug setting to settings page (#10580)
* feat: add debug mode toggle to settings

* Update About component with debug mode description

* i18n: add debug mode strings to settings locales

* Update debug mode description in all locales

* fix: post state to webview after debugSetting update

This addresses the review feedback that the debugSetting handler was not
posting updated state back to the webview, which could cause the UI to
stay stale until another state refresh occurred.

* fix: clarify debug mode description to specify task header location

Updated debugMode.description across all 18 locales to clarify that
debug buttons appear in the task header, per review feedback.

* fix: remove redundant postStateToWebview call after debug setting update

* Update src/core/webview/webviewMessageHandler.ts

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

---------

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2026-01-09 18:06:02 -05:00
Chris Estreich
a4eb15b5a8
Add some functionality to @roo-code/core for the cli (#10584) 2026-01-09 13:05:15 -08:00
Chris Estreich
3171ffc809
Move more types to @roo-code/types (for the cli) (#10583) 2026-01-09 11:59:06 -08:00
Daniel
907b94bc40
fix(openai): remove convertToSimpleMessages to fix tool calling for OpenAI-compatible providers (#10575) 2026-01-09 12:03:46 -05:00
Seb Duerr
710e7dd358
feat(types): add zai-glm-4.7 to Cerebras models (#10500)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-07 19:29:54 -07:00
roomote[bot]
e287a82144
fix: remove legacy Claude 2 series models from Bedrock provider (#10501)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-07 11:30:37 -05:00
Hannes Rudolph
9700eab792
feat: implement sticky provider profile for task-level API config persistence (#10018) 2026-01-07 09:03:44 -07:00
roomote[bot]
781ed1e178
feat: add Kimi K2 thinking model to Fireworks AI provider (#9202)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-06 20:31:56 -05:00
Matt Rubens
1459f0113b
Release: v1.99.0 (#10447) 2026-01-03 15:12:51 -05:00
Matt Rubens
08c3431fc5
feat: recursively load .roo/rules and AGENTS.md from subdirectories (#10446)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-03 15:05:48 -05:00
Hannes Rudolph
ca1bc18a21
Fix rate limit wait display (#10389)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-12-30 21:56:32 -08:00
Hannes Rudolph
c37aa02b21
chore: remove human-relay provider (#10388)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-30 15:38:46 -07:00
John Richmond
6d8fa39319
Release: v1.96.0 (#10395)
chore: bump version to v1.96.0
2025-12-29 20:58:43 -08:00
Seb Duerr
19b7dac719
fix: update Cerebras maxTokens to 16384 (#10387) 2025-12-29 19:56:59 -08:00
John Richmond
a42387e0af
Handle custom tool use similarly to MCP tools for ipc schema purposes (#10364) 2025-12-29 08:58:41 -08:00
roomote[bot]
a510223a09
feat: remove simpleReadFileTool completely (#10254)
- Delete simpleReadFileTool.ts file
- Delete simple-read-file.ts prompt description file
- Delete single-file-read-models.ts types file
- Remove imports and usage from presentAssistantMessage.ts
- Remove imports and usage from prompts/tools/index.ts
- Remove export from packages/types/src/index.ts

This removes all traces of the legacy single-file read tool implementation that was used for specific models. All models now use the standard read_file tool.

Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-25 09:57:46 -08:00
roomote[bot]
a07d28c7e6
feat: remove OpenRouter Transforms feature (#10341)
- Remove openRouterUseMiddleOutTransform checkbox from settings UI
- Remove openRouterUseMiddleOutTransform from TypeScript types
- Remove transforms parameter logic from OpenRouter handler
- Remove setting from EVALS_SETTINGS
- Remove translation keys from all locale files (18 locales)

Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-25 09:53:48 -08:00
John Richmond
40812dcb64
Release: v1.95.0 (#10309)
chore: bump version to v1.95.0
2025-12-23 10:21:55 -08:00
Hannes Rudolph
e7c1851a8b
feat(minimax): move environment_details to system message for thinking models (#10284) 2025-12-22 19:59:42 -07:00
Hannes Rudolph
518a4402a7
feat(zai): add GLM-4.7 model with thinking mode support (#10282)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-22 18:01:16 -08:00
Daniel
d00d9edec5
feat: deprecate XML tool protocol selection, force native for new tasks (#10281)
- Disable tool protocol selector UI in ApiOptions.tsx
- Force native protocol for all new tasks in resolveToolProtocol()
- Keep locked protocol support for resumed tasks that used XML
- Remove models without supportsNativeTools: true from providers:
  - baseten.ts: removed 6 models
  - bedrock.ts: removed 2 embedding models
  - featherless.ts: removed 3 models, updated default
  - groq.ts: removed 5 models
  - sambanova.ts: removed 2 models
  - vertex.ts: removed 7 models
  - vercel-ai-gateway.ts: added supportsNativeTools: true
- Update tests to expect native format output
2025-12-22 17:49:50 -08:00
Chris Estreich
2bb375534c
Add custom tool definitions to @roo-code/types (#10233)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-21 15:15:42 -08:00
Chris Estreich
5ae4d4d635
Custom tool calling (#10083) 2025-12-21 12:43:06 -08:00
Daniel
bade9326c6
fix: enable native tool calls for Requesty provider (ROO-235) (#10211) 2025-12-19 12:28:26 -08:00
Hannes Rudolph
61903f9588
feat(providers): add native tool calling support to LM Studio and Qwen-Code (#10208) 2025-12-19 12:50:09 -05:00