Compare commits

...
Author SHA1 Message Date
Bee e8aaa61494 Improve auth state management for account view (#5107)
- Fix AccountView state management when user is not authenticated or is authenticated after the webview is loaded
- Add proper loading state reset and conditional data fetching
2025-07-22 20:00:14 -07:00
d93080304c v3.20.0 Release Notes (#5096)
* changeset version bump

* Updating CHANGELOG.md format

* Update CHANGELOG.md and version for 3.20.0 release

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: pashpashpash <nik@cline.bot>
2025-07-22 19:52:16 -07:00
Ara 1ce5f72bc1 Updating the new release announcement note (#5101)
* Updating the new release announcement note

* Adding gitbash terminal support and docs for solving windows terminal issues
2025-07-22 19:37:44 -07:00
Saoud Rizwan fb676add2e Fix hugging face model description (#5105) 2025-07-22 19:06:51 -07:00
Ara 31cda0ce5e Adding support for new models Qwen 3 models on Qwen provider (#5106) 2025-07-22 19:00:49 -07:00
Ara e173dad69c Updating the ordering to move cerebras provider upwards in the list of providers (#5102) 2025-07-22 16:22:52 -07:00
9 changed files with 72 additions and 31 deletions
-5
View File
@@ -1,5 +0,0 @@
---
"claude-dev": patch
---
Display account balance for all org members
+4
View File
@@ -1,5 +1,9 @@
# Changelog
## [3.20.0]
- Add account balance display for all organization members, allowing non-admin users to view their organization's credit balance and add credits
## [3.19.8]
- Add Claude Code support on Windows with improved system prompt handling to fix E2BIG errors (Thanks @BarreiroT!)
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "claude-dev",
"version": "3.19.8",
"version": "3.20.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "claude-dev",
"version": "3.19.8",
"version": "3.20.0",
"license": "Apache-2.0",
"dependencies": {
"@anthropic-ai/sdk": "^0.37.0",
+1 -1
View File
@@ -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.19.8",
"version": "3.20.0",
"icon": "assets/icons/icon.png",
"engines": {
"vscode": "^1.84.0"
@@ -46,6 +46,7 @@ export async function refreshHuggingFaceModels(
// Transform HF models to OpenRouter-compatible format
for (const rawModel of rawModels) {
const providersList = rawModel.providers?.map((provider: { provider: string }) => provider.provider)?.join(", ")
const modelInfo = OpenRouterModelInfo.create({
maxTokens: 8192, // HF doesn't provide max_tokens, use default
contextWindow: 128_000, // FIXME: HF doesn't provide context window, use default
@@ -55,7 +56,7 @@ export async function refreshHuggingFaceModels(
outputPrice: 0, // Will be set based on providers
cacheWritesPrice: 0,
cacheReadsPrice: 0,
description: `Available on providers: ${rawModel.providers?.join(", ") || "unknown"}`,
description: `Available on providers: ${providersList || "unknown"}`,
})
// Add model-specific configurations if we have them in our static models
+16
View File
@@ -1156,6 +1156,22 @@ export type InternationalQwenModelId = keyof typeof internationalQwenModels
export const internationalQwenDefaultModelId: InternationalQwenModelId = "qwen-coder-plus-latest"
export const mainlandQwenDefaultModelId: MainlandQwenModelId = "qwen-coder-plus-latest"
export const internationalQwenModels = {
"qwen3-coder-plus": {
maxTokens: 65_536,
contextWindow: 1_000_000,
supportsImages: false,
supportsPromptCache: false,
inputPrice: 1,
outputPrice: 5,
},
"qwen3-coder-480b-a35b-instruct": {
maxTokens: 65_536,
contextWindow: 204_800,
supportsImages: false,
supportsPromptCache: false,
inputPrice: 1.5,
outputPrice: 7.5,
},
"qwen3-235b-a22b": {
maxTokens: 16_384,
contextWindow: 131_072,
@@ -149,14 +149,6 @@ export const ClineAccountView = () => {
const getUserOrganizations = useCallback(async () => {
try {
if (!clineUser?.uid) {
setBalance(null)
setUserOrganizations([])
setActiveOrganization(null)
setIsSwitchingProfile(false)
setIsLoading(false)
return
}
const response = await AccountServiceClient.getUserOrganizations(EmptyRequest.create())
if (response.organizations && !deepEqual(userOrganizations, response.organizations)) {
setUserOrganizations(response.organizations)
@@ -179,7 +171,7 @@ export const ClineAccountView = () => {
} catch (error) {
console.error("Failed to fetch user organizations:", error)
}
}, [clineUser?.uid, userOrganizations, isSwitchingProfile, activeOrganization?.organizationId])
}, [userOrganizations, isSwitchingProfile, activeOrganization?.organizationId])
const fetchCreditBalance = useCallback(async () => {
try {
@@ -277,12 +269,21 @@ export const ClineAccountView = () => {
// Handle organization changes and initial load
useEffect(() => {
// Reset state when user is not logged in
if (!clineUser?.uid) {
setIsLoading(true)
setBalance(null)
setUserOrganizations([])
setActiveOrganization(null)
setIsSwitchingProfile(false)
return
}
const loadData = async () => {
await getUserOrganizations()
await fetchCreditBalance()
}
loadData()
}, [activeOrganization?.organizationId])
}, [activeOrganization?.organizationId, clineUser?.uid])
// Periodic refresh
useEffect(() => {
@@ -376,7 +377,11 @@ export const ClineAccountView = () => {
<div className="text-4xl font-bold text-[var(--vscode-foreground)] mb-6 flex items-center gap-2">
{balance === null ? <span>----</span> : <StyledCreditDisplay balance={balance} />}
<VSCodeButton appearance="icon" className="mt-1" onClick={handleManualRefresh}>
<VSCodeButton
appearance="icon"
className={`mt-1 ${isLoading ? "animate-spin" : ""}`}
onClick={handleManualRefresh}
disabled={isLoading}>
<span className="codicon codicon-refresh"></span>
</VSCodeButton>
</div>
@@ -46,23 +46,23 @@ const Announcement = ({ version, hideAnnouncement }: AnnouncementProps) => {
</h3>
<ul style={ulStyle}>
<li>
<b>Optimized for Claude 4:</b> Cline is now optimized to work with the Claude 4 family of models, resulting in
improved performance, reliability, and new capabilities.
<b>Cerebras Provider Support:</b> Enhanced performance with updated model selection (Qwen and Llama 3.3 70B
only) and increased context window for Qwen 3 32B from 16K to 64K tokens.
</li>
<li>
<b>Gemini CLI Provider:</b> Added a new Gemini CLI provider that allows you to use your local Gemini CLI
authentication to access Gemini models for free.
<b>Claude Code for Windows:</b> Improved system prompt handling to fix E2BIG errors and better error messages
with guidance for common setup issues.
</li>
<li>
<b>WebFetch Tool:</b> Gemini 2.5 Pro and Claude 4 models now support the WebFetch tool, allowing Cline to
retrieve and summarize web content directly in conversations.
<b>Hugging Face Provider:</b> Added as a new API provider with support for their inference API models.
</li>
<li>
<b>Self Knowledge:</b> When using frontier models, Cline is self-aware about his capabilities and featureset.
<b>Moonshot Chinese Endpoints:</b> Added ability to choose Chinese endpoint for Moonshot provider and added
Moonshot AI as a new provider.
</li>
<li>
<b>Improved Diff Editing:</b> Improved diff editing to achieve record lows in diff edit failures for frontier
models
<b>Enhanced Stability:</b> Robust checkpoint timeout handling, fixed MCP servers starting when disabled, and
improved authentication sync across multiple VSCode windows.
</li>
</ul>
<Accordion isCompact className="pl-0">
@@ -77,6 +77,26 @@ const Announcement = ({ version, hideAnnouncement }: AnnouncementProps) => {
"text-[var(--vscode-foreground)] mb-0.5 -rotate-180 data-[open=true]:-rotate-90 rtl:rotate-0 rtl:data-[open=true]:-rotate-90",
}}>
<ul style={ulStyle}>
<li>
<b>Optimized for Claude 4:</b> Cline is now optimized to work with the Claude 4 family of models,
resulting in improved performance, reliability, and new capabilities.
</li>
<li>
<b>Gemini CLI Provider:</b> Added a new Gemini CLI provider that allows you to use your local Gemini
CLI authentication to access Gemini models for free.
</li>
<li>
<b>WebFetch Tool:</b> Gemini 2.5 Pro and Claude 4 models now support the WebFetch tool, allowing Cline
to retrieve and summarize web content directly in conversations.
</li>
<li>
<b>Self Knowledge:</b> When using frontier models, Cline is self-aware about his capabilities and
featureset.
</li>
<li>
<b>Improved Diff Editing:</b> Improved diff editing to achieve record lows in diff edit failures for
frontier models.
</li>
<li>
<b>Claude 4 Models:</b> Now with support for Anthropic Claude Sonnet 4 and Claude Opus 4 in both
Anthropic and Vertex providers.
@@ -145,9 +145,10 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
<VSCodeOption value="gemini">Google Gemini</VSCodeOption>
<VSCodeOption value="groq">Groq</VSCodeOption>
<VSCodeOption value="deepseek">DeepSeek</VSCodeOption>
<VSCodeOption value="mistral">Mistral</VSCodeOption>
<VSCodeOption value="openai-native">OpenAI</VSCodeOption>
<VSCodeOption value="cerebras">Cerebras</VSCodeOption>
<VSCodeOption value="vscode-lm">VS Code LM API</VSCodeOption>
<VSCodeOption value="mistral">Mistral</VSCodeOption>
<VSCodeOption value="requesty">Requesty</VSCodeOption>
<VSCodeOption value="fireworks">Fireworks</VSCodeOption>
<VSCodeOption value="together">Together</VSCodeOption>
@@ -162,7 +163,6 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
<VSCodeOption value="asksage">AskSage</VSCodeOption>
<VSCodeOption value="xai">xAI</VSCodeOption>
<VSCodeOption value="sambanova">SambaNova</VSCodeOption>
<VSCodeOption value="cerebras">Cerebras</VSCodeOption>
<VSCodeOption value="sapaicore">SAP AI Core</VSCodeOption>
</VSCodeDropdown>
</DropdownContainer>