diff --git a/CHANGELOG.md b/CHANGELOG.md
index c05545b1d9..3e701fcde0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,11 +1,19 @@
# Changelog
+## [3.39.0]
+- Add Explain Changes feature
+- Add microwave Stealth model
+- Add Tabbed Model Picker with Recommended and Free tabs
+- Add support to View remote rules and workflows in the editor
+- Enable NTC (Native Tool Calling) by default
+- Bug fixes and improvements for LiteLLM provider
+
## [3.38.3]
- Task export feature now opens the task directory, allowing easy access to the full task files
-- Added Grok 4.1 and Grok Code to XAI provider
+- Add Grok 4.1 and Grok Code to XAI provider
- Enabled native tool calling for Baseten and Kimi K2 models
-- Added thinking level to Gemini 3.0 Pro preview
+- Add thinking level to Gemini 3.0 Pro preview
- Expanded Hooks functionality
- Removed Task Timeline from Task Header
- Bug fix for slash commands
diff --git a/package-lock.json b/package-lock.json
index f2786152d7..ee59689191 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "claude-dev",
- "version": "3.38.3",
+ "version": "3.39.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "claude-dev",
- "version": "3.38.3",
+ "version": "3.39.0",
"license": "Apache-2.0",
"dependencies": {
"@anthropic-ai/sdk": "^0.37.0",
diff --git a/package.json b/package.json
index a6d2d7b3a4..12c281a4f5 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
"name": "claude-dev",
"displayName": "Cline",
"description": "Autonomous coding agent right in your IDE, capable of creating/editing files, running commands, using the browser, and more with your permission every step of the way.",
- "version": "3.38.3",
+ "version": "3.39.0",
"icon": "assets/icons/icon.png",
"engines": {
"vscode": "^1.84.0"
diff --git a/webview-ui/src/components/chat/Announcement.tsx b/webview-ui/src/components/chat/Announcement.tsx
index 6c99847afa..960cf254a6 100644
--- a/webview-ui/src/components/chat/Announcement.tsx
+++ b/webview-ui/src/components/chat/Announcement.tsx
@@ -1,11 +1,15 @@
-import { VSCodeLink } from "@vscode/webview-ui-toolkit/react"
+import { EmptyRequest } from "@shared/proto/cline/common"
+import { VSCodeButton, VSCodeLink } from "@vscode/webview-ui-toolkit/react"
import { XIcon } from "lucide-react"
-import { CSSProperties, memo } from "react"
+import { CSSProperties, memo, useState } from "react"
import { useMount } from "react-use"
import { Button } from "@/components/ui/button"
import { PLATFORM_CONFIG, PlatformType } from "@/config/platform.config"
+import { useClineAuth } from "@/context/ClineAuthContext"
import { useExtensionState } from "@/context/ExtensionStateContext"
+import { AccountServiceClient } from "@/services/grpc-client"
import { getAsVar, VSC_DESCRIPTION_FOREGROUND, VSC_INACTIVE_SELECTION_BACKGROUND } from "@/utils/vscStyles"
+import { useApiConfigurationHandlers } from "../settings/utils/useApiConfigurationHandlers"
interface AnnouncementProps {
version: string
@@ -20,7 +24,7 @@ const containerStyle: CSSProperties = {
position: "relative",
flexShrink: 0,
}
-const h4TitleStyle: CSSProperties = { margin: "0 0 8px", fontWeight: "bold" }
+const h2TitleStyle: CSSProperties = { margin: "0 0 8px", fontWeight: "bold" }
const ulStyle: CSSProperties = { margin: "0 0 8px", paddingLeft: "12px", listStyleType: "disc" }
const _accountIconStyle: CSSProperties = { fontSize: 11 }
const hrStyle: CSSProperties = {
@@ -39,10 +43,39 @@ Patch releases (3.19.1 → 3.19.2) will not trigger new announcements.
*/
const Announcement = ({ version, hideAnnouncement }: AnnouncementProps) => {
const minorVersion = version.split(".").slice(0, 2).join(".") // 2.0.0 -> 2.0
- const { refreshOpenRouterModels } = useExtensionState()
+ const { clineUser } = useClineAuth()
+ const { openRouterModels, setShowChatModelSelector, refreshOpenRouterModels } = useExtensionState()
+ const user = clineUser || undefined
+ const { handleFieldsChange } = useApiConfigurationHandlers()
+
+ const [didClickMicrowaveButton, setDidClickMicrowaveButton] = useState(false)
// Need to get latest model list in case user hits shortcut button to set model
useMount(refreshOpenRouterModels)
+ const setMicrowave = () => {
+ const modelId = "stealth/microwave"
+ // set both plan and act modes to use code-supernova-1-million
+ handleFieldsChange({
+ planModeOpenRouterModelId: modelId,
+ actModeOpenRouterModelId: modelId,
+ planModeOpenRouterModelInfo: openRouterModels[modelId],
+ actModeOpenRouterModelInfo: openRouterModels[modelId],
+ planModeApiProvider: "cline",
+ actModeApiProvider: "cline",
+ })
+
+ setTimeout(() => {
+ setDidClickMicrowaveButton(true)
+ setShowChatModelSelector(true)
+ }, 10)
+ }
+
+ const handleShowAccount = () => {
+ AccountServiceClient.accountLoginClicked(EmptyRequest.create()).catch((err) =>
+ console.error("Failed to get login URL:", err),
+ )
+ }
+
const isVscode = PLATFORM_CONFIG.type === PlatformType.VSCODE
return (
@@ -55,9 +88,9 @@ const Announcement = ({ version, hideAnnouncement }: AnnouncementProps) => {
variant="icon">
microwave stealth model, free for a limited time!
+
- See a demo: