diff --git a/docs/basic-usage/context-mentions.md b/docs/basic-usage/context-mentions.md
index c86aa467..817af1cd 100644
--- a/docs/basic-usage/context-mentions.md
+++ b/docs/basic-usage/context-mentions.md
@@ -30,6 +30,7 @@ Context mentions are a powerful way to provide Roo Code with specific informatio
| Mention Type | Format | Description | Example Usage |
|--------------|--------|-------------|--------------|
| **File** | `@/path/to/file.ts` | Includes file contents in request context | "Explain the function in @/src/utils.ts" |
+| **Image** | `@/path/to/image.png` | Includes image as inline visual content | "What's wrong with this UI? @/screenshots/bug.png" |
| **Folder** | `@/path/to/folder` | Includes contents of all files directly in the folder (non-recursive) | "Analyze the code in @/src/components" |
| **Problems** | `@problems` | Includes VS Code Problems panel diagnostics | "@problems Fix all errors in my code" |
| **Terminal** | `@terminal` | Includes recent terminal command and output | "Fix the errors shown in @terminal" |
@@ -50,6 +51,18 @@ Context mentions are a powerful way to provide Roo Code with specific informatio
| **Works in** | Initial requests, feedback responses, and follow-up messages |
| **Limitations** | Very large files may be truncated; binary files not supported |
+### Image Mentions
+
+Image mentions let you include visual content directly in your conversation. When the model supports vision, the image is sent as inline visual content rather than text.
+
+| Capability | Details |
+|------------|---------|
+| **Format** | `@/path/to/image.png` (same path format as file mentions) |
+| **Provides** | Image sent as inline visual content to the model |
+| **Supports** | PNG, JPG, JPEG, GIF, BMP, SVG, WEBP, ICO, AVIF |
+| **Best for** | UI reviews, screenshot debugging, diagram analysis |
+| **Requires** | A model with vision support (non-vision models can't interpret images) |
+
### Folder Mentions
@@ -130,7 +143,7 @@ The dropdown automatically suggests:
- Special keywords (`problems`, `terminal`, `git-changes`)
- **All currently open files** (regardless of ignore settings or directory filters)
-The dropdown automatically filters out common directories like `node_modules`, `.git`, `dist`, and `out` to reduce noise, even though their content could be included if manually typed.
+The dropdown respects `.rooignore` by default, hiding ignored files from suggestions. Enable the `showRooIgnoredFiles` setting to include ignored files in the dropdown (they'll appear with a đź”’ indicator). Common directories like `node_modules`, `.git`, `dist`, and `out` are also filtered to reduce noise.
---
@@ -140,6 +153,7 @@ The dropdown automatically filters out common directories like `node_modules`, `
| Behavior | Description |
|----------|-------------|
+| **Dropdown filtering** | The `@` dropdown hides `.rooignore`-matched files by default. Enable `showRooIgnoredFiles` to see them (marked with đź”’). |
| **`.rooignore` bypass** | File and folder `@mentions` bypass `.rooignore` checks when fetching content for context. Content from ignored files will be included if directly mentioned. |
| **`.gitignore` bypass** | Similarly, file and folder `@mentions` do not respect `.gitignore` rules when fetching content. |
| **Git command respect** | Git-related mentions (`@git-changes`, `@commit-hash`) do respect `.gitignore` since they rely on Git commands. |
diff --git a/docs/features/api-configuration-profiles.mdx b/docs/features/api-configuration-profiles.mdx
index 64dcbafc..d27b3fd9 100644
--- a/docs/features/api-configuration-profiles.mdx
+++ b/docs/features/api-configuration-profiles.mdx
@@ -120,6 +120,18 @@ In the Prompts tab, you can explicitly associate a s
---
+## Per-Task Profile Persistence
+
+Each task remembers which profile it started with. This "sticky" behavior means:
+
+- **Reopening from history**: When you resume a task from history, it uses the same profile it had originally—even if you've since changed the global selection.
+- **Multi-workspace consistency**: If you switch profiles in another workspace window, existing tasks in the first window keep their original profile.
+- **Orchestrator subtasks**: Child tasks created by the orchestrator inherit the parent's profile and retain it for their lifetime.
+
+This prevents unexpected model switches mid-task and keeps your conversation context consistent with the model that generated it.
+
+---
+
## Security Note
API keys are stored securely in VSCode's Secret Storage and are never exposed in plain text.
diff --git a/docs/update-notes/index.md b/docs/update-notes/index.md
index ed2fe8d9..16a3e3e8 100644
--- a/docs/update-notes/index.md
+++ b/docs/update-notes/index.md
@@ -22,9 +22,18 @@ If you want to live on the edge and try things out before it's released, we have
---
+### Version 3.39
+
+* [3.39](/update-notes/v3.39) (Combined)
+* [3.39.1](/update-notes/v3.39.1) (2026-01-08)
+* [3.39.0](/update-notes/v3.39.0) (2026-01-08)
+
+---
+
### Version 3.38
* [3.38](/update-notes/v3.38) (Combined)
+* [3.38.3](/update-notes/v3.38.3) (2026-01-03)
* [3.38.2](/update-notes/v3.38.2) (2025-12-31)
* [3.38.1](/update-notes/v3.38.1) (2025-12-29)
* [3.38.0](/update-notes/v3.38.0) (2025-12-27)
diff --git a/docs/update-notes/v3.38.3.mdx b/docs/update-notes/v3.38.3.mdx
new file mode 100644
index 00000000..17dc3676
--- /dev/null
+++ b/docs/update-notes/v3.38.3.mdx
@@ -0,0 +1,22 @@
+---
+description: Roo Code 3.38.3 adds optional recursive rules loading for multi-folder setups and fixes several reliability issues.
+keywords:
+ - roo code 3.38.3
+ - rules
+ - agents.md
+ - bug fixes
+---
+
+# Roo Code 3.38.3 Release Notes (2026-01-03)
+
+This release adds an option to recursively load project rules in subfolders and fixes several reliability issues.
+
+## QOL Improvements
+
+* **Recursive subfolder rules loading (optional)**: Adds a Context setting that can automatically load additional `.roo/rules` and `AGENTS.md` files from subdirectories, making it easier to work in multi-repo/monorepo folders without manually switching roots ([#10446](https://github.com/RooCodeInc/Roo-Code/pull/10446))
+
+## Bug Fixes
+
+* Fixes an issue where Claude Code users could be forced to sign in again roughly daily, improving session reliability and reducing interruptions ([#10410](https://github.com/RooCodeInc/Roo-Code/pull/10410))
+* Fixes an issue where the in-chat text-to-speech (TTS) flow could crash if a message’s `text` value wasn’t a string, preventing the chat panel from breaking mid-task (thanks notglossy!) ([#10431](https://github.com/RooCodeInc/Roo-Code/pull/10431))
+* Fixes an issue where Roo’s native `read_file` tool schema didn’t advertise a maximum number of files per call, reducing failed tool calls in environments that enforce low limits ([#10449](https://github.com/RooCodeInc/Roo-Code/pull/10449))
diff --git a/docs/update-notes/v3.38.mdx b/docs/update-notes/v3.38.mdx
index 495fd4b3..03c7985e 100644
--- a/docs/update-notes/v3.38.mdx
+++ b/docs/update-notes/v3.38.mdx
@@ -25,6 +25,7 @@ Roo now supports Agent Skills, which are portable skill folders containing instr
* Slash commands can declare a target mode in their front matter, so triggering a command can switch Roo to the right mode first ([#10344](https://github.com/RooCodeInc/Roo-Code/pull/10344)).
* Removes the legacy “simple read file” tool path so file reading consistently uses the standard `read_file` tool ([#10254](https://github.com/RooCodeInc/Roo-Code/pull/10254)).
* Agent Skills load more reliably across environments by aligning skill metadata validation and discovery with the Agent Skills specification ([#10409](https://github.com/RooCodeInc/Roo-Code/pull/10409)).
+* Adds an optional Context setting that can automatically load additional `.roo/rules` and `AGENTS.md` files from subdirectories, making it easier to work in multi-repo/monorepo folders without manually switching roots ([#10446](https://github.com/RooCodeInc/Roo-Code/pull/10446)).
* Clarifies the navigation path for deleting a Roo Code Cloud account in the privacy policy, so you can find Security Settings faster ([#10367](https://github.com/RooCodeInc/Roo-Code/pull/10367)).
* Improves internal analytics consistency by recording custom tools the same way as MCP tools, which helps tool usage and error tracking stay accurate ([#10364](https://github.com/RooCodeInc/Roo-Code/pull/10364)).
@@ -33,8 +34,11 @@ Roo now supports Agent Skills, which are portable skill folders containing instr
* Fixes an issue where some Claude Sonnet 4.5 requests could fail with HTTP 400 errors after context condensing ([#10359](https://github.com/RooCodeInc/Roo-Code/pull/10359)).
* Fixes an issue where manually condensing context while a tool is still running could trigger provider protocol errors, so tool runs and manual condenses can safely overlap ([#10379](https://github.com/RooCodeInc/Roo-Code/pull/10379)).
* Reverts a change for OpenAI-compatible providers to avoid message-format regressions related to text appearing after tool results ([#10381](https://github.com/RooCodeInc/Roo-Code/pull/10381)).
+* Fixes an issue where Claude Code users could be forced to sign in again roughly daily, improving session reliability and reducing interruptions ([#10410](https://github.com/RooCodeInc/Roo-Code/pull/10410)).
* Enforces the `maxConcurrentFileReads` limit for `read_file`, returning a clear error instead of silently ignoring the setting ([#10363](https://github.com/RooCodeInc/Roo-Code/pull/10363)).
+* Fixes an issue where the in-chat text-to-speech (TTS) flow could crash if a message’s `text` value wasn’t a string, preventing the chat panel from breaking mid-task (thanks notglossy!) ([#10431](https://github.com/RooCodeInc/Roo-Code/pull/10431)).
* Improves the error shown when `read_file` is run on a directory by explicitly explaining the issue and suggesting `list_files` instead ([#10371](https://github.com/RooCodeInc/Roo-Code/pull/10371)).
+* Fixes an issue where Roo’s native `read_file` tool schema didn’t advertise a maximum number of files per call, reducing failed tool calls in environments that enforce low limits ([#10449](https://github.com/RooCodeInc/Roo-Code/pull/10449)).
* Fixes an issue where the "open source" link on roocode.com could point to a non-existent GitHub organization, so it reliably opens the correct repository (thanks jishnuteegala!) ([#10377](https://github.com/RooCodeInc/Roo-Code/pull/10377)).
* Fixes an issue where rate limiting looked like a provider error so a client-side rate limit now shows as a normal “rate limit wait” status row and completes cleanly ([#10389](https://github.com/RooCodeInc/Roo-Code/pull/10389)).
* Fixes an issue where `write_to_file` could create files at an unintended truncated path, reducing accidental file placement and cleanup ([#10415](https://github.com/RooCodeInc/Roo-Code/pull/10415)).
diff --git a/docs/update-notes/v3.39.0.mdx b/docs/update-notes/v3.39.0.mdx
new file mode 100644
index 00000000..856d2d2b
--- /dev/null
+++ b/docs/update-notes/v3.39.0.mdx
@@ -0,0 +1,64 @@
+---
+description: Roo Code 3.39.0 adds image file @mentions, makes provider profiles stick to tasks, and updates key UI labels.
+keywords:
+ - roo code 3.39.0
+ - image @mentions
+ - providers
+ - qol improvements
+ - bug fixes
+image: /img/v3.39.0/v3.39.0.png
+---
+
+# Roo Code 3.39.0 Release Notes (2026-01-08)
+
+This release adds image file @mentions, makes provider profiles stick to tasks, and updates key UI labels.
+
+
+
+## Image file @mentions
+
+You can now @mention image files to include them as inline images in your message, making it easier to share screenshots and UI mockups without manually attaching files (thanks hannesrudolph!) ([#10189](https://github.com/RooCodeInc/Roo-Code/pull/10189)).
+
+> **📚 Documentation**: See [Context Mentions](/basic-usage/context-mentions) for usage details.
+
+## Sticky provider profiles
+
+Tasks now remember the provider profile (API configuration) they started with, so switching profiles elsewhere doesn’t affect running tasks or resumed tasks (thanks hannesrudolph!) ([#10018](https://github.com/RooCodeInc/Roo-Code/pull/10018)).
+
+> **📚 Documentation**: See [API Configuration Profiles](/features/api-configuration-profiles) for details.
+
+## YOLO → BRRRRRRRRRR
+
+The auto-approve mode label has been renamed from “YOLO” to “BRRRRRRRRRR” across the UI (thanks app/roomote!) ([#10507](https://github.com/RooCodeInc/Roo-Code/pull/10507)).
+
+> **📚 Documentation**: See [Auto-Approving Actions](/features/auto-approving-actions) for details.
+
+## QOL Improvements
+
+* The `@` file picker now respects `.rooignore`, reducing noise in large workspaces and helping you avoid accidentally attaching ignored/generated files (thanks app/roomote, jerrill-johnson-bitwerx!) ([#10174](https://github.com/RooCodeInc/Roo-Code/pull/10174))
+* Adds debug-only proxy routing settings so you can inspect extension network traffic while running under the VS Code debugger (F5) (thanks hannesrudolph, SleeperSmith!) ([#10467](https://github.com/RooCodeInc/Roo-Code/pull/10467))
+* Improves the follow-up suggestion mode badge styling for better readability (thanks mrubens!) ([#9260](https://github.com/RooCodeInc/Roo-Code/pull/9260))
+* Clarifies in the native `read_file` tool description that image formats are supported when the model supports vision (thanks app/roomote, nabilfreeman!) ([#10442](https://github.com/RooCodeInc/Roo-Code/pull/10442))
+
+## Bug Fixes
+
+* Fixes an issue where conversations could fail after condensation due to missing/mismatched tool call IDs, improving reliability in longer chats (thanks daniel-lxs!) ([#10471](https://github.com/RooCodeInc/Roo-Code/pull/10471))
+* Fixes an issue where duplicate `tool_result` blocks could cause provider API errors (including Anthropic “duplicate toolResult” failures), improving reliability in tool-heavy workflows (thanks daniel-lxs!) ([#10497](https://github.com/RooCodeInc/Roo-Code/pull/10497))
+* Fixes an edge case where switching terminals mid-run could produce duplicate tool results and trigger protocol errors, reducing unattended-mode soft-locks (thanks app/roomote, nabilfreeman!) ([#10466](https://github.com/RooCodeInc/Roo-Code/pull/10466))
+* Fixes an issue where Roo could generate the wrong command chaining syntax on Windows, making suggested terminal commands more likely to work without edits (thanks app/roomote, AlexNek!) ([#10434](https://github.com/RooCodeInc/Roo-Code/pull/10434))
+* Fixes an issue where chat requests could fail on Windows systems without PowerShell in PATH (“spawnSync powershell ENOENT”) (thanks app/roomote, Yang-strive!) ([#9897](https://github.com/RooCodeInc/Roo-Code/pull/9897))
+* Fixes a rare edge case where an API rate limit setting could be ignored when provider state is temporarily unavailable (thanks app/roomote!) ([#10266](https://github.com/RooCodeInc/Roo-Code/pull/10266))
+* Fixes validation failures in nightly builds by adding missing setting descriptions for debug proxy configuration (thanks app/roomote!) ([#10505](https://github.com/RooCodeInc/Roo-Code/pull/10505))
+
+## Provider Updates
+
+* Adds the `kimi-k2-thinking` model to the Fireworks AI provider (thanks app/roomote, kavehsfv!) ([#9202](https://github.com/RooCodeInc/Roo-Code/pull/9202))
+* Adds an “Extra High (xhigh)” reasoning effort option for OpenAI-compatible providers when supported by the endpoint/model (thanks app/roomote, Soorma718!) ([#10061](https://github.com/RooCodeInc/Roo-Code/pull/10061))
+* Adds `zai-glm-4.7` to the Cerebras model list (thanks sebastiand-cerebras!) ([#10500](https://github.com/RooCodeInc/Roo-Code/pull/10500))
+* Removes legacy Claude 2 models from AWS Bedrock to prevent selecting unsupported options (thanks app/roomote, KevinZhao!) ([#10501](https://github.com/RooCodeInc/Roo-Code/pull/10501))
+* Improves compatibility with OpenAI’s Responses API for MCP tool schemas, reducing tool-calling failures when schemas omit `additionalProperties: false` (thanks daniel-lxs!) ([#10472](https://github.com/RooCodeInc/Roo-Code/pull/10472))
+
+## Misc Improvements
+
+* Adds a one-line CLI installer workflow to simplify installing/upgrading the Roo Code CLI (thanks cte!) ([#10474](https://github.com/RooCodeInc/Roo-Code/pull/10474))
+* Adds early-stage CLI support used by eval tooling, including a new “CLI” execution option for eval runs (thanks cte!) ([#10452](https://github.com/RooCodeInc/Roo-Code/pull/10452), [#10456](https://github.com/RooCodeInc/Roo-Code/pull/10456))
diff --git a/docs/update-notes/v3.39.1.mdx b/docs/update-notes/v3.39.1.mdx
new file mode 100644
index 00000000..e5a8a239
--- /dev/null
+++ b/docs/update-notes/v3.39.1.mdx
@@ -0,0 +1,18 @@
+---
+description: This patch release improves native tool-call reliability and fixes task resume issues for Gemini.
+keywords:
+ - roo code 3.39.1
+ - bug fixes
+image: /img/social-share.jpg
+---
+
+# Roo Code 3.39.1 Release Notes (2026-01-08)
+
+This patch release improves native tool-call reliability and fixes task resume issues for Gemini.
+
+## Bug Fixes
+
+* Fixes an issue where file paths shown during native tool-call streaming could appear incorrect or truncated, making it harder to confirm which file Roo is reading or editing ([#10555](https://github.com/RooCodeInc/Roo-Code/pull/10555)).
+* Fixes an issue where resuming a task with Gemini models that use extended thinking could fail with a “Corrupted thought signature” / INVALID_ARGUMENT error ([#10554](https://github.com/RooCodeInc/Roo-Code/pull/10554)).
+* Fixes an issue where `ask_followup_question` could fail with some Anthropic-backed setups due to strict tool schema validation ([#10551](https://github.com/RooCodeInc/Roo-Code/pull/10551)).
+
diff --git a/docs/update-notes/v3.39.mdx b/docs/update-notes/v3.39.mdx
new file mode 100644
index 00000000..fdc99fc9
--- /dev/null
+++ b/docs/update-notes/v3.39.mdx
@@ -0,0 +1,48 @@
+---
+description: Roo Code 3.39 includes task-level provider profile persistence, improved multimodal workflows, new provider/model options, and reliability fixes across tool calling.
+keywords:
+ - roo code 3.39
+ - new features
+ - bug fixes
+image: /img/social-share.jpg
+---
+
+# Roo Code 3.39 Release Notes (Combined)
+
+Roo Code 3.39 includes task-level provider profile persistence, improved multimodal workflows, new provider/model options, and reliability fixes across tool calling.
+
+## Features
+
+* **Task-level API configuration profiles**: Roo can persist the selected provider profile per task so follow-up sessions keep using the same provider/model settings.
+* **Image file @mentions**: You can mention images in your workspace to give the model visual context directly from chat.
+* **Headless Roo Code (CLI + VS Code shim)**: Run Roo Code in a headless environment with a basic CLI, plus an installer and an option to use the CLI for evals.
+* **Debug proxy routing**: Adds debug-mode proxy routing to help troubleshoot API calls.
+
+## QOL Improvements
+
+* **BRRR naming update**: Renames YOLO to BRRR.
+* **Smarter file @mention search**: Filters file @mention results using `.rooignore`.
+* **Better tooling docs**: Improves the native `read_file` tool description and examples.
+* **Web evals usability**: Remembers your last model selection in web evals and adds an evals skill.
+
+## Bug Fixes
+
+* Fixes PowerShell ENOENT issues on Windows.
+* Fixes shell-aware command chaining examples for Windows.
+* Fixes tool-result preservation/deduplication issues that could lead to API errors.
+* Fixes issues around tool protocol UI and provider configuration details.
+
+## Provider Updates
+
+* Adds new/updated models across multiple providers (e.g., Fireworks AI, OpenAI-compatible endpoints, Cerebras).
+
+---
+
+## Patch Releases
+
+### 3.39.1 (2026-01-08)
+
+* Fixes an issue where file paths shown during native tool-call streaming could appear incorrect or truncated.
+* Fixes an issue where resuming a task with Gemini extended thinking could fail with a “Corrupted thought signature” / INVALID_ARGUMENT error.
+* Fixes an Anthropic tool schema compatibility issue affecting `ask_followup_question`.
+
diff --git a/sidebars.ts b/sidebars.ts
index 28ff8d2d..757f7c00 100644
--- a/sidebars.ts
+++ b/sidebars.ts
@@ -172,11 +172,21 @@ const sidebars: SidebarsConfig = {
label: 'Extension Release Notes',
items: [
'update-notes/index',
+ {
+ type: 'category',
+ label: '3.39',
+ items: [
+ { type: 'doc', id: 'update-notes/v3.39', label: '3.39 Combined' },
+ { type: 'doc', id: 'update-notes/v3.39.1', label: '3.39.1' },
+ { type: 'doc', id: 'update-notes/v3.39.0', label: '3.39.0' },
+ ],
+ },
{
type: 'category',
label: '3.38',
items: [
{ type: 'doc', id: 'update-notes/v3.38', label: '3.38 Combined' },
+ { type: 'doc', id: 'update-notes/v3.38.3', label: '3.38.3' },
{ type: 'doc', id: 'update-notes/v3.38.2', label: '3.38.2' },
{ type: 'doc', id: 'update-notes/v3.38.1', label: '3.38.1' },
{ type: 'doc', id: 'update-notes/v3.38.0', label: '3.38.0' },
diff --git a/static/img/v3.39.0/v3.39.0.png b/static/img/v3.39.0/v3.39.0.png
new file mode 100644
index 00000000..4f717209
Binary files /dev/null and b/static/img/v3.39.0/v3.39.0.png differ