Commit graph

3592 commits

Author SHA1 Message Date
Roo Code
bea79b07ef merge: resolve i18n chat.json conflicts with main (retiredProvider + contextHandoff) 2026-05-12 17:27:32 +00:00
Roo Code
19976973cb feat: consolidate Phase 7 + wire replay view for background tasks + add interrupted tooltip
- Consolidate Phase 7a (FileLockManager), 7b (LockGuardedToolExecutor + tool runner integration), and 7c (persistent background task history) into single branch
- Wire background task clicks in History view to open the read-only BackgroundTaskReplayView instead of creating a resumable task
- Add StandardTooltip on interrupted background tasks explaining they were interrupted due to VS Code closing
- Add interruptedTooltip i18n key across all locales
- Add tests for replay view routing and tooltip rendering

Addresses feedback from #12330
2026-05-12 16:54:10 +00:00
Roo Code
c5303196e8 feat: add persistent background task history (Phase 7c)
- Add background field to HistoryItem schema
- Add interrupted status for background tasks stopped mid-execution
- Add background option to TaskMetadataOptions
- Detect and mark interrupted background tasks on TaskHistoryStore init
- Add showBackgroundTasks filter to useTaskSearch hook
- Add background task filter toggle to HistoryView UI
- Add background/interrupted visual indicators in TaskItemFooter
- Add i18n translation keys for background task labels
- Add unit tests for all changes
2026-05-12 16:44:28 +00:00
Roo Code
363436c442 feat: wire LockGuardedToolExecutor into tool runner and Task.dispose()
- Integrate file lock guards into presentAssistantMessage.ts tool dispatch
- Acquire locks before write tool execution, release in finally block
- Block concurrent writes with LLM-friendly conflict error messages
- Wire releaseAllLocks into Task.dispose() for stale lock cleanup
- Add singleton getters (getFileLockManager, getLockGuardedToolExecutor)
- Add 14 integration tests covering lifecycle, conflicts, and cleanup

Phase 7b tool runner integration for parallel agent file coordination.
2026-05-12 15:50:04 +00:00
Roo Code
77fe7cf6f7 feat: Phase 7b - LockGuardedToolExecutor for write tool lock integration (#12330) 2026-05-12 15:39:31 +00:00
Bruno Bergher
e921f9d21e
Remove contributor and community references (#12347)
Some checks failed
Code QA Roo Code / check-translations (push) Has been cancelled
Code QA Roo Code / knip (push) Has been cancelled
Code QA Roo Code / compile (push) Has been cancelled
Code QA Roo Code / platform-unit-test (ubuntu-latest) (push) Has been cancelled
Code QA Roo Code / platform-unit-test (windows-latest) (push) Has been cancelled
CodeQL Advanced / Analyze (javascript-typescript) (push) Has been cancelled
Deploy docs to GitHub Pages / build (push) Has been cancelled
Nightly Publish / publish-nightly (push) Has been cancelled
Deploy roocode.com / check-secrets (push) Has been cancelled
Deploy docs to GitHub Pages / deploy (push) Has been cancelled
Deploy roocode.com / deploy (push) Has been cancelled
* Remove contributor and community references

* shutdown notice

* Allow empty web app test suite
2026-05-12 16:33:09 +01:00
Roo Code
9ab2c19d4b feat: implement Phase 7a File Lock Manager for concurrent task write coordination
Advisory file-level locking so concurrent tasks coordinate write access safely.

- FileLockManager class with acquire/release/releaseAll operations
- Per-file locks with automatic expiration (configurable timeout, default 2min)
- Re-entrant lock support (same task can re-acquire its own lock)
- Lock conflict detection with detailed conflict info
- Event system for lock lifecycle (acquired/released/expired)
- Reverse index for efficient per-task lock lookup
- Path normalization for consistent lock keys
- 39 comprehensive unit tests covering all operations

Part of Phase 7 (Controlled Write Parallelism) for Issue #12330
2026-05-12 15:29:16 +00:00
Roo Code
35bed0c1b6 feat: Phase 4+5+6 - Background Concurrency, Panel UI, Task Visibility (#12330)
Phase 4: Background Read-Only Concurrency
Phase 5: Background Tasks Panel UI
Phase 6a: Conversation Replay for background tasks
Phase 6b: Tab/Panel Switching for background tasks
Phase 6c: Real-time Progress Streaming
2026-05-12 14:42:02 +00:00
Roo Code
c5e405deb9 fix: add cancel confirmation, panel scroll constraint, and Phase 6 extension-point comments 2026-05-12 14:40:25 +00:00
Roo Code
f42109eea8 feat: Phase 5 - Background Tasks Panel UI for parallel task visibility
Adds a collapsible Background Tasks Panel to the chat sidebar that shows
active and recently completed background tasks. This builds on the Phase 4
BackgroundTaskRunner to give users visibility into background work.

Key changes:
- BackgroundTaskStatusInfo type for exposing task status to the webview
- BackgroundTaskRunner tracks completed tasks with result summaries
- BackgroundTaskRunner.getTasksStatus() returns combined active + completed
- BackgroundTaskRunner.onStateChanged callback for UI refresh
- backgroundTasks field added to ExtensionState and getStateToPostToWebview
- cancelBackgroundTask webview message handler
- postBackgroundTasksToWebview() for lightweight status-only updates
- BackgroundTasksPanel React component with collapsible panel, cancel
  buttons, active count badge, and result summaries
- 31 backend tests (BackgroundTaskRunner) + 7 UI tests (panel component)
2026-05-12 14:40:25 +00:00
Roo Code
a599babda1 fix: add user notifications for background task completion, errors, and timeouts
- Add BackgroundTaskRunnerCallbacks interface with onTaskTimeout and onTaskError
- Wire VS Code notifications in ClineProvider: info on completion, warning on timeout/error
- Document auto-approval design decision for read-only background tasks
- Add 2 new tests for callback invocation (19 total, all passing)
2026-05-12 14:40:19 +00:00
Roo Code
437c9e8e63 feat: add Phase 4 background read-only concurrency (BackgroundTaskRunner)
Implements the MVP for Phase 4 of the parallel execution roadmap:

- Add BackgroundTaskRunner service that manages concurrent read-only
  background tasks separately from the clineStack
- Add isBackgroundTask flag to Task class that suppresses webview
  updates and auto-approves all tool uses
- Extend new_task tool with optional background parameter
- Background tasks are restricted to read-only tools only
- Results are delivered asynchronously to the parent task via
  onBackgroundComplete callback
- Configurable concurrency limit (default 3) and timeout (default 5min)
- Proper cleanup on task cancellation, parent cancellation, and
  provider disposal
- 17 new tests for BackgroundTaskRunner, all existing tests pass

Issue #12330
2026-05-12 14:40:10 +00:00
Roo Code
edebbae2cc feat: structured context handoff between parent and child tasks (Phase 3c) 2026-05-12 14:38:25 +00:00
Roo Code
caf552194f fix: persist permissions in HistoryItem and add ReDoS mitigation
1. Persist taskPermissions in HistoryItem so permissions survive task
   restarts. Added taskPermissions field to historyItemSchema, included
   it in taskMetadata output, and restored it in the Task constructor
   when loading from history.

2. Add ReDoS mitigation for model-provided regex patterns:
   - isSafeRegex() heuristic rejects nested quantifiers like (a+)+
     and overlapping alternations in repeated groups like (a|a)+
   - Max pattern length capped at 200 characters
   - Both checks enforced at schema validation time via Zod refinements
   - 11 new tests covering ReDoS detection and persistence round-trips
2026-05-12 14:37:35 +00:00
Roo Code
311a2bdfb4 fix: harden task permissions - anchor regex patterns, validate at schema level, simplify validation code
1. Anchor regex patterns in matchesAnyPattern with ^(?:...)$ wrapping so
   patterns like "src/.*" require full-path matching instead of substring
   matching. Prevents "evil/src/foo" from matching a "src/.*" permission.

2. Add regex validation at schema level (regexString refinement) so
   invalid patterns are rejected at parse time rather than silently
   failing at runtime.

3. Simplify duplicate file/command pattern validation in validateToolUse
   by unifying layered and flat code paths into a single branch that
   falls back to wrapping flat patterns as a single layer.

4. Remove unused matchesAnyPattern import from validateToolUse.ts.

5. Add tests for anchoring behavior, pre-anchored patterns, and
   invalid regex rejection at schema level.
2026-05-12 14:37:29 +00:00
Roo Code
c8e6b1778b fix: three bugs in task permissions - parser, deniedTools exemption, pattern merging
1. NativeToolCallParser: Remove permissions from update_todo_list cases
   (was erroneously added to wrong tool case, should only be on new_task)

2. deniedTools: Exempt ALWAYS_AVAILABLE_TOOLS (attempt_completion, etc.)
   from deniedTools check, matching the existing allowedTools behavior.
   Prevents parent from trapping subtask by denying completion tools.

3. Pattern merging: Replace broken exact-string intersection with layered
   enforcement. filePatterns/commandPatterns from parent and child are
   kept as separate layers (AND between layers, OR within each layer).
   This correctly handles narrowing: parent ["src/.*"] + child
   ["src/components/.*"] now allows only files matching BOTH patterns,
   instead of producing an empty intersection.
2026-05-12 14:37:29 +00:00
Roo Code
c140298745 feat: add model-driven permission control for subtasks (Phase 3b)
Adds an optional `permissions` parameter to the `new_task` tool, allowing
the Orchestrator (or any parent task) to dynamically set permission
boundaries for subtasks:

- New `TaskPermissions` type with filePatterns, commandPatterns,
  allowedTools, and deniedTools
- Permission merging with most-restrictive-wins semantics for nested
  subtask delegation
- Runtime enforcement in validateToolUse() for all permission types
- Full test coverage for merging logic and enforcement

Addresses Issue #12330 (Phase 3b)
2026-05-12 14:37:13 +00:00
Roo Code
16de6be4ea feat: add TaskContext and TaskPermissions for Phase 3a task isolation
Introduces the foundation for isolated task execution (Phase 3a of #12330):

- TaskContext: immutable snapshot of mode, API config, and workspace for
  each task, replacing runtime reads from shared ClineProvider state
- TaskPermissions: fine-grained permission boundaries (file patterns,
  command restrictions, read-only mode, tool allowlists) that the
  orchestrator can attach when spawning subtasks
- TaskContextBuilder: factory functions to build TaskContext from provider
  state and to derive child contexts with merged permissions
- Task constructor now accepts optional taskContext, using it for mode
  and API config initialization instead of provider.getState()
- delegateParentAndOpenChild builds and passes a TaskContext to child tasks
- Permission merging follows most-restrictive-wins semantics

This is a pure refactor with no behavioral change -- tasks still execute
sequentially, but they now carry their own isolated context. Enforcement
of permission boundaries is deferred to Phase 3b/3d.

Ref: #12330
2026-05-12 14:30:08 +00:00
Roo Code
dcb182db93 fix: correct queue advancement off-by-one and child mode tracking in advanceSubtaskQueue
- Fix off-by-one: dispatch subtaskQueue[currentIndex] instead of
  subtaskQueue[nextIndex], preventing the first queued item from being
  skipped
- Fix completedMode: fetch child history to get the child actual mode
  instead of incorrectly using the parent historyItem.mode
- Update tests to reflect corrected queue semantics (subtaskQueueIndex
  represents the next item to dispatch, not the currently running item)
2026-05-12 14:29:28 +00:00
Roo Code
4b9c7ac155 feat: implement sequential fan-out / fan-in for orchestrator (Phase 2 of #12330)
Adds subtask queue support to the new_task tool, allowing the orchestrator
to define multiple subtasks that execute automatically in sequence without
returning to the parent between each one. This saves LLM API calls and
enables more efficient multi-agent workflows.

Key changes:
- SubtaskQueueItem, SubtaskResult types in packages/types/src/history.ts
- task_queue parameter on new_task tool (optional JSON array)
- NewTaskTool parses and validates queued subtasks, stores on parent
- delegateParentAndOpenChild persists queue in parent HistoryItem
- reopenParentFromDelegation auto-advances queue via advanceSubtaskQueue
- formatAggregatedQueueResults aggregates all results when queue completes
- 9 new tests covering queue advance, exhaustion, and result formatting
- All 56 existing delegation tests continue to pass
2026-05-12 14:29:28 +00:00
Bruno Bergher
2428199851
Remove corporate extension support links (#12341)
* Remove corporate extension support links

* Remove welcome provider left inset

* Update retired provider sunset message

* Scope Roo retired provider message

* Add final release upgrade announcement

* Localize final release announcement
2026-05-12 14:23:08 +01:00
Roo Code
09a5570b58 feat: enrich subtask handoff with structured context summaries
Phase 1 of #12330 - improves context handoff visibility between
parent and child tasks during delegation.

Changes:
- Add SubtaskSummary type to @roo-code/types for structured handoff data
- Create buildSubtaskSummary utility that extracts files modified/read,
  commands executed, tool usage, and todo stats from task history
- Modify AttemptCompletionTool to build structured summary on completion
- Update reopenParentFromDelegation to format enriched API history text
  so the parent LLM gets better context about what the subtask did
- Update ChatRow UI to render structured summaries with mode badge,
  file lists, command lists, and todo progress
- Add i18n translation keys for new UI elements
- Add 19 tests for buildSubtaskSummary and formatSubtaskSummaryForApi
- Backward compatible: plain-text summaries still work as before
2026-05-12 02:46:26 +00:00
Matt Rubens
8922418600
Remove Roo Code Cloud and evals (#12328)
Some checks are pending
Code QA Roo Code / check-translations (push) Waiting to run
Code QA Roo Code / knip (push) Waiting to run
Code QA Roo Code / compile (push) Waiting to run
Code QA Roo Code / platform-unit-test (ubuntu-latest) (push) Waiting to run
Code QA Roo Code / platform-unit-test (windows-latest) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Nightly Publish / publish-nightly (push) Waiting to run
Deploy roocode.com / check-secrets (push) Waiting to run
Deploy roocode.com / deploy (push) Blocked by required conditions
* Remove Roo Code Cloud and evals

* Remove unused onboarding and web helper files

* Update ChatView welcome tests after cloud removal
2026-05-11 22:43:45 -04:00
Matt Rubens
22d845cecb
Remove the MCP marketplace (#12326)
* Remove the MCP marketplace

* Remove unused URL utility
2026-05-11 18:19:08 -04:00
Matt Rubens
ff16c9c297
Remove all telemetry (#12324)
* Remove all telemetry

* Fix webview tests after telemetry removal

* Fix embedder tests after telemetry removal

* Fix tests after telemetry removal
2026-05-11 17:34:58 -04:00
Matt Rubens
3d37e054dd
Remove MDM and organization membership enforcement (#12323) 2026-05-11 15:42:02 -04:00
github-actions[bot]
96d6e43643
Changeset version bump (#12172)
Some checks are pending
Code QA Roo Code / platform-unit-test (windows-latest) (push) Waiting to run
Code QA Roo Code / check-translations (push) Waiting to run
Code QA Roo Code / knip (push) Waiting to run
Code QA Roo Code / compile (push) Waiting to run
Code QA Roo Code / platform-unit-test (ubuntu-latest) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Nightly Publish / publish-nightly (push) Waiting to run
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-04-23 15:26:28 -06:00
Hannes Rudolph
14922f127e
Release v3.53.0 (#12171)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-04-23 15:02:08 -06:00
Chiranjeevisantosh Madugundi
2bb826039b
feat(chat): add previous checkpoint navigation controls and i18n (#12139)
Some checks are pending
Code QA Roo Code / check-translations (push) Waiting to run
Code QA Roo Code / knip (push) Waiting to run
Code QA Roo Code / compile (push) Waiting to run
Code QA Roo Code / platform-unit-test (ubuntu-latest) (push) Waiting to run
Code QA Roo Code / platform-unit-test (windows-latest) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Nightly Publish / publish-nightly (push) Waiting to run
2026-04-20 16:12:10 -06:00
Chiranjeevisantosh Madugundi
3e202ebf5b
feat(vertex): add Claude Opus 4.7 support (#12135) 2026-04-20 11:42:10 -06:00
github-actions[bot]
8b12f21439
Changeset version bump (#12110)
Some checks are pending
Code QA Roo Code / check-translations (push) Waiting to run
Code QA Roo Code / knip (push) Waiting to run
Code QA Roo Code / compile (push) Waiting to run
Code QA Roo Code / platform-unit-test (ubuntu-latest) (push) Waiting to run
Code QA Roo Code / platform-unit-test (windows-latest) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Nightly Publish / publish-nightly (push) Waiting to run
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-04-13 16:57:35 -06:00
github-actions[bot]
9cfaf38d8a
Changeset version bump (#12085)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
2026-04-08 15:16:12 -06:00
Ronald
92a1be40df
fix: Qwen Bad Request 400 (#12067) (#12083) 2026-04-08 14:34:45 -06:00
Hannes Rudolph
5b93bc7dc3
Release v3.52.0 (#12082) 2026-04-08 14:33:47 -06:00
Enrico Carlesso
5432fa2689
feat: migrate xAI provider to Responses API with reusable transform utils (#11962)
Co-authored-by: Enrico Carlesso <ecarlesso@twitter.com>
Co-authored-by: Roo Code <roomote@roocode.com>
2026-04-08 11:38:13 -06:00
Ksandr
eafed9705c
Fix/minimax context window and models (#12069) 2026-04-08 08:44:36 -06:00
Kamil Jopek
c3cae397a1
feat: add Poe as an AI provider (#12015)
Some checks failed
Code QA Roo Code / platform-unit-test (ubuntu-latest) (push) Has been cancelled
Code QA Roo Code / platform-unit-test (windows-latest) (push) Has been cancelled
Code QA Roo Code / knip (push) Has been cancelled
Code QA Roo Code / compile (push) Has been cancelled
Code QA Roo Code / check-translations (push) Has been cancelled
CodeQL Advanced / Analyze (javascript-typescript) (push) Has been cancelled
Nightly Publish / publish-nightly (push) Has been cancelled
2026-04-05 23:37:29 -04:00
Peter Dave Hello
137d3f4fd8
Add OpenAI GPT-5.4 mini and nano models (#11946) 2026-03-18 22:27:26 -06:00
github-actions[bot]
44fd975b17
Changeset version bump
changeset version bump

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-07 19:36:55 -07:00
cscvenkatmadurai
0892455db2
feat(bedrock): add Cohere Embed v4 model and improve credential handling (Fixes #11823) (#11824)
feat(bedrock): add Cohere Embed v4 model and improve credential handling

- Add cohere.embed-v4:0 (1536-dim) to Bedrock embedding model profiles
- Add v4-specific request format (embedding_types: ["float"]) and response
  parsing (embeddings.float[0]) in BedrockEmbedder
- Replace fromEnv() with fromNodeProviderChain() for default credential
  chain when no AWS profile is specified, supporting SSO, IMDS, ECS, and
  other credential sources with built-in memoization
- Add unit tests for Cohere v4 request/response handling, credential
  provider selection, and v3 regression coverage

Fixes #11823
2026-03-05 18:45:17 -07:00
github-actions[bot]
5eec588653
Changeset version bump (#11731)
changeset version bump

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-05 15:18:22 -07:00
Hannes Rudolph
58c535319e
Release v3.51.0 (#11870)
chore: add changeset for v3.51.0
2026-03-05 14:58:45 -07:00
Peter Dave Hello
0612739ba1
Add OpenAI GPT-5.3 chat latest and GPT-5.4 model support (#11848) 2026-03-05 14:15:55 -07:00
AJ Juaire
52ce796e42
feat: add ROO_ACTIVE env variable to terminal env settings (#11862) 2026-03-04 17:23:52 -07:00
John Richmond
7dc83a522e
Allow selecting a specific shell (#11851)
* Allow selecting a specific shell

Add --terminal-shell CLI flag to specify which shell ExecaTerminalProcess
uses for inline command execution. The shell path is validated at the CLI
layer and passed through the standard settings mechanism (BaseTerminal
static getter/setter), matching how all other CLI terminal settings flow
through the system.

* test(cli): make shell path access test cross-platform
2026-03-03 23:31:34 -08:00
Hannes Rudolph
459f27015d
fix: prevent redundant skill reloading in conversation (#11838) 2026-03-02 16:47:19 -07:00
Hannes Rudolph
af1e12c76d
feat: expose skills as slash commands with skill fallback execution (#11834)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-03-02 15:10:32 -07:00
Chris Estreich
7ea91fa79e
fix(cli): ignore model-provided timeout in CLI runtime (#11835)
In CLI runtime, stdin harnesses expect command lifetime to be governed
solely by commandExecutionTimeout (user setting), not model-provided
background timeouts. Extract resolveAgentTimeoutMs() and return 0 when
ROO_CLI_RUNTIME=1.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 13:25:31 -08:00
Chris Estreich
e6ad7949d6
Fix stdin-stream cancel race and add integration test suite (#11817)
Add stdin stream integration tests and fix startup cancel race
2026-03-01 22:27:01 -08:00
Chris Estreich
ec979585e8
Fix stdin stream queued messages and command output streaming (#11814)
Fix stdin stream queue handling and command output streaming
2026-03-01 19:53:59 -08:00