Skip to content

Add back post-revert bug fixes and features (Step 2)#11463

Merged
daniel-lxs merged 39 commits intomainfrom
add-post-revert-fixes
Feb 13, 2026
Merged

Add back post-revert bug fixes and features (Step 2)#11463
daniel-lxs merged 39 commits intomainfrom
add-post-revert-fixes

Conversation

@daniel-lxs
Copy link
Member

Add Back Post-Revert Bug Fixes and Features

Step 2 of 2 - This PR adds back bug fixes and features that were created after the AI SDK migration but are completely unrelated to it.

Dependencies

⚠️ This PR must be merged AFTER PR #11462 (Step 1: Revert to pre-AI-SDK state)

This PR is based on the revert-ai-sdk-proper branch and will only be mergeable after Step 1 is merged to main.

What This Adds

21 commits cherry-picked from main (post-Jan 29) that are compatible with pre-AI-SDK codebase:

Critical Bug Fixes (10 commits)

  • 6703344 fix: cancel backend auto-approval timeout when auto-approve is toggled off
  • d5d9c3f fix: prevent chat history loss during cloud/settings navigation
  • 97e1b52 fix: preserve pasted images in chatbox during chat activity
  • 79187425 fix: resolve chat scroll anchoring and task-switch scroll race
  • 5765548 fix: avoid zsh process-substitution false positives in assignments
  • cebb01d fix(editor): make tab close best-effort in DiffViewProvider.open
  • 6f972f5 fix(checkpoints): canonicalize core.worktree comparison (Windows path fix)
  • df5c90d fix: prevent double notification sound playback
  • 47db3bf fix: prevent false unsaved changes prompt with OpenAI Compatible headers
  • bcc6cb5 fix: remove noisy console.warn logs from NativeToolCallParser

Features (5 commits)

  • 3f28b8e feat: add disabledTools setting to globally disable native tools
  • 83977c0 feat: add support for .agents/skills directory
  • dae0eb7 feat(history): render nested subtasks as recursive tree
  • bbeefae feat: rename search_and_replace tool to edit and unify edit-family UI
  • 58a45b1 perf(refactor): consolidate getState calls in resolveWebviewView

Refactors (3 commits)

  • e63c219 refactor: remove footgun prompting (file-based system prompt override)
  • f8a3fca refactor: delete orphaned per-provider caching transform files
  • 115f963 Revert "refactor: delete orphaned per-provider caching" (needed for compatibility)

Chores (2 commits)

  • bae80a5 chore: regenerate built-in-skills.ts with updated formatting
  • f333d2b fix: add missing maxReadFileLine property to test baseState

Verification

✅ All commits applied cleanly via cherry-pick
✅ Build passes (npm run build)
✅ TypeScript check passes (all packages)
✅ Tests pass (all packages)
✅ Lint passes (all packages)

What Was NOT Included

The following commits were skipped because they depend on AI SDK infrastructure:

  • All delegation lifecycle improvements (b7857bc, 77b76a8, b51af98, etc.)
  • Provider message transformation changes
  • AI SDK-specific bug fixes

Timeline

  1. Step 1 (Revert to pre-AI-SDK state (January 29, 2026) #11462): Revert main to pre-AI-SDK state ← Merge this first
  2. Step 2 (this PR): Add back compatible fixes ← Then merge this
  3. Result: Clean pre-AI-SDK codebase with all unrelated improvements preserved

🤖 Generated with Claude Code

@dosubot dosubot bot added size:XXL This PR changes 1000+ lines, ignoring generated files. bug Something isn't working Enhancement New feature or request labels Feb 13, 2026
@roomote
Copy link
Contributor

roomote bot commented Feb 13, 2026

Rooviewer Clock   See task

Reviewed 18 new commits since last review. The cherry-picked source code and evals/CLI infrastructure changes look solid. Two minor UI consistency issues found in the navigation menu rewrite (nav-bar.tsx).

  • Missing "Roo Code for Linear" link in the mobile Product section (desktop has it, mobile doesn't)
  • Inconsistent label: desktop says "Trust Center", mobile says "Security Center" for the same link
Previous reviews

Mention @roomote in a comment to request specific changes to this pull request or fix all unresolved issues.

@dosubot dosubot bot added the lgtm This PR has been approved by a maintainer label Feb 13, 2026
Base automatically changed from revert-ai-sdk-proper to main February 13, 2026 21:45
SannidhyaSah and others added 17 commits February 13, 2026 16:47
…d off mid-countdown (#11439)

Co-authored-by: Sannidhya <sann@Sannidhyas-MacBook-Pro.local>
…) (#11372)

Co-authored-by: Sannidhya <sann@Sannidhyas-MacBook-Pro.local>
…ers (#8230) (#11334)

fix: prevent false unsaved changes prompt with OpenAI Compatible headers

Mark automatic header syncs in ApiOptions and OpenAICompatible as
non-user actions (isUserAction: false) and enhance SettingsView change
detection to skip automatic syncs with semantically equal values.

Root cause: two components (ApiOptions and OpenAICompatible) manage
openAiHeaders state and automatically sync it back on mount/remount.
These syncs were treated as user changes, triggering a false dirty state.

Co-authored-by: Robert McIntyre <robertjmcintyre@users.noreply.github.com>
Remove two console.warn messages that fire excessively when loading tasks
from history:
- 'Attempting to finalize unknown tool call' in finalizeStreamingToolCall()
- 'Received chunk for unknown tool call' in processStreamingChunk()

The defensive null-return behavior is preserved; only the log output is removed.
)

* feat: add disabledTools setting to globally disable native tools

Add a disabledTools field to GlobalSettings that allows disabling specific
native tools by name. This enables cloud agents to be configured with
restricted tool access.

Schema:
- Add disabledTools: z.array(toolNamesSchema).optional() to globalSettingsSchema
- Add disabledTools to organizationDefaultSettingsSchema.pick()
- Add disabledTools to ExtensionState Pick type

Prompt generation (tool filtering):
- Add disabledTools to BuildToolsOptions interface
- Pass disabledTools through filterSettings to filterNativeToolsForMode()
- Remove disabled tools from allowedToolNames set in filterNativeToolsForMode()

Execution-time validation (safety net):
- Extract disabledTools from state in presentAssistantMessage
- Convert disabledTools to toolRequirements format for validateToolUse()

Wiring:
- Add disabledTools to ClineProvider getState() and getStateToPostToWebview()
- Pass disabledTools to all buildNativeToolsArrayWithRestrictions() call sites

EXT-778

* fix: check toolRequirements before ALWAYS_AVAILABLE_TOOLS

Moves the toolRequirements check before the ALWAYS_AVAILABLE_TOOLS
early-return in isToolAllowedForMode(). This ensures disabledTools
can block always-available tools (switch_mode, new_task, etc.) at
execution time, making the validation layer consistent with the
filtering layer.
* feat: add support for .agents/skills directory

This change adds support for discovering skills from the .agents/skills
directory, following the Agent Skills convention for sharing skills
across different AI coding tools.

Priority order (later entries override earlier ones):
1. Global ~/.agents/skills (shared across AI coding tools, lowest priority)
2. Project .agents/skills
3. Global ~/.roo/skills (Roo-specific)
4. Project .roo/skills (highest priority)

Changes:
- Add getGlobalAgentsDirectory() and getProjectAgentsDirectoryForCwd()
  functions to roo-config
- Update SkillsManager.getSkillsDirectories() to include .agents/skills
- Update SkillsManager.setupFileWatchers() to watch .agents/skills
- Add tests for new functionality

* fix: clarify skill priority comment to match actual behavior

* fix: clarify skill priority comment to explain Map.set replacement mechanism

---------

Co-authored-by: Roo Code <roomote@roocode.com>
* feat(history): render nested subtasks as recursive tree

* fix(lockfile): resolve missing ai-sdk provider entry

* fix: address review feedback — dedupe countAll, increase SubtaskRow max-h

- HistoryView: replace local countAll with imported countAllSubtasks from types.ts
- SubtaskRow: increase nested children max-h from 500px to 2000px to match TaskGroupItem
)

* perf(refactor): consolidate getState calls in resolveWebviewView

Replace three separate this.getState().then() calls with a single
await this.getState() and destructuring. This avoids running the
full getState() method (CloudService calls, ContextProxy reads, etc.)
three times during webview view resolution.

* fix: keep getState consolidation non-blocking to avoid delaying webview render

---------

Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
hannesrudolph and others added 4 commits February 13, 2026 16:47
The ExtensionState type now requires maxReadFileLine property (added in commit 63e3f76).
Update the test to include this property with the default value of -1 (unlimited reading).

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@daniel-lxs daniel-lxs force-pushed the add-post-revert-fixes branch from f333d2b to d845c9e Compare February 13, 2026 21:57
mrubens and others added 16 commits February 13, 2026 18:15
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Roo Code <roomote@roocode.com>
…11168)

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
…11203)

- Allow --api-key and ROO_API_KEY env var for the roo provider instead of
  requiring cloud auth token
- Switch dev/start scripts to use tsx for running directly from source
  without building first
- Fix path resolution (version.ts, extension.ts, extension-host.ts) to
  work from both source and bundled locations
- Disable debug log file (~/.roo/cli-debug.log) unless --debug is passed
- Update README with complete env var table and dev workflow docs

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* Roo Code CLI v0.0.50

* docs(cli): add --exit-on-error to changelog

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Roo Code <roomote@roocode.com>
…eatures grid (#11280)

Co-authored-by: Roo Code <roomote@roocode.com>
@github-actions
Copy link
Contributor

github-actions bot commented Feb 13, 2026

🚀 Preview deployed!

Your changes have been deployed to Vercel:

Preview URL: https://roo-code-website-7bzc0ydvz-roo-code.vercel.app

This preview will be updated automatically when you push new commits to this PR.

href="/linear"
className="flex items-center select-none rounded-md px-3 py-2 text-sm leading-none no-underline outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground">
<LinearIcon className="size-3 mr-2" />
Roo Code for Linear
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This Linear link was added to the desktop Product dropdown, but the corresponding mobile Product section (around line 271) still only lists Extension, Cloud, Slack, and Router -- no Linear. Mobile users can't reach /linear. Worth adding it there too for parity.

Fix it with Roo Code or mention @roomote and request a fix.

target="_blank"
rel="noopener noreferrer"
className="block select-none rounded-md px-3 py-2 text-sm leading-none no-underline outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground">
Trust Center
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This label says "Trust Center" but the same EXTERNAL_LINKS.SECURITY link in the mobile Resources section (line 310) says "Security Center". One of them should be updated for consistency.

Fix it with Roo Code or mention @roomote and request a fix.

@daniel-lxs daniel-lxs merged commit d52b683 into main Feb 13, 2026
14 checks passed
@daniel-lxs daniel-lxs deleted the add-post-revert-fixes branch February 13, 2026 23:40
@github-project-automation github-project-automation bot moved this from New to Done in Roo Code Roadmap Feb 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working Enhancement New feature or request lgtm This PR has been approved by a maintainer size:XXL This PR changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants