diff --git a/README.md b/README.md index 275b4e8..d41c8e8 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@

- version + version electron typescript license @@ -231,7 +231,7 @@ npm start ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/ npm run dist ``` -产出:`release/Metona Ollama Setup v0.10.2.exe` +产出:`release/Metona Ollama Setup v0.10.3.exe` ## 🛠️ 常用命令 @@ -454,7 +454,7 @@ npm start ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/ npm run dist ``` -Output: `release/Metona Ollama Setup v0.10.2.exe` +Output: `release/Metona Ollama Setup v0.10.3.exe` ## 🛠️ Common Commands diff --git a/docs/BUILD.md b/docs/BUILD.md index e9ae18c..393ccc2 100644 --- a/docs/BUILD.md +++ b/docs/BUILD.md @@ -91,7 +91,7 @@ npm run dist # NSIS 安装包 | 文件 | 说明 | |------|------| -| `release/Metona Ollama Setup v0.10.2.exe` | NSIS 安装包(可选目录、创建快捷方式) | +| `release/Metona Ollama Setup v0.10.3.exe` | NSIS 安装包(可选目录、创建快捷方式) | > 仅提供 NSIS 安装包。 @@ -103,7 +103,7 @@ npm run dist # NSIS 安装包 TOKEN="your_access_token" curl -X POST "https://gitee.com/api/v5/repos/thzxx/metona-ollama-desktop/releases?access_token=$TOKEN" \ -H "Content-Type: application/json" \ - -d '{"tag_name":"v0.10.2","name":"v0.10.2","body":"Release notes","target_commitish":"master"}' + -d '{"tag_name":"v0.10.3","name":"v0.10.3","body":"Release notes","target_commitish":"master"}' ``` ### 上传附件 @@ -112,7 +112,7 @@ curl -X POST "https://gitee.com/api/v5/repos/thzxx/metona-ollama-desktop/release TOKEN="your_access_token" RELEASE_ID="" curl -X POST "https://gitee.com/api/v5/repos/thzxx/metona-ollama-desktop/releases/$RELEASE_ID/attach_files?access_token=$TOKEN" \ - -H "Content-Type: multipart/form-data" -F "file=@release/Metona Ollama Setup v0.10.2.exe" + -H "Content-Type: multipart/form-data" -F "file=@release/Metona Ollama Setup v0.10.3.exe" ``` ## 故障排查 diff --git a/docs/DEVELOPMENT.md b/docs/DEVELOPMENT.md index a705a81..f9b384e 100644 --- a/docs/DEVELOPMENT.md +++ b/docs/DEVELOPMENT.md @@ -1,6 +1,6 @@ # Metona Ollama Desktop — 开发规范 -> 版本: v0.10.2 | 更新: 2026-06-05 | 维护: 项目团队 +> 版本: v0.10.3 | 更新: 2026-06-05 | 维护: 项目团队 --- diff --git a/package-lock.json b/package-lock.json index 0c2d44c..8e76fcc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "metona-ollama-desktop", - "version": "0.10.2", + "version": "0.10.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "metona-ollama-desktop", - "version": "0.10.2", + "version": "0.10.3", "license": "MIT", "dependencies": { "sql.js": "^1.11.0" diff --git a/package.json b/package.json index e82ff10..0bb0e9a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "metona-ollama-desktop", - "version": "0.10.2", + "version": "0.10.3", "description": "Metona Ollama - TypeScript + Electron 桌面 AI 聊天客户端", "main": "dist/main/main.js", "author": "thzxx", diff --git a/src/main/menu.ts b/src/main/menu.ts index 0c0a0f2..c87b55f 100644 --- a/src/main/menu.ts +++ b/src/main/menu.ts @@ -101,7 +101,7 @@ export function createMenu(): void { dialog.showMessageBox(mainWindow!, { type: 'info', title: '关于 Metona Ollama', - message: 'Metona Ollama Desktop v0.10.2', + message: 'Metona Ollama Desktop v0.10.3', detail: 'TypeScript + Electron Ollama AI 聊天客户端\n\nhttps://gitee.com/thzxx/metona-ollama', icon: getIconPath() }); diff --git a/src/renderer/components/input-area.ts b/src/renderer/components/input-area.ts index 76c13d4..7dfb077 100644 --- a/src/renderer/components/input-area.ts +++ b/src/renderer/components/input-area.ts @@ -418,7 +418,7 @@ async function handleRetry(): Promise { ...s, messages: [...s.messages, lastMsg], updatedAt: Date.now() })); } - updateLastAssistantMessage(finalContent, retryThinkContent || null, loopStats || null, undefined, Date.now(), toolRecords?.length ? toolRecords : undefined); + updateLastAssistantMessage(finalContent, retryThinkContent || null, loopStats || null, getSelectedModel(), Date.now(), toolRecords?.length ? toolRecords : undefined); } else { const assistantMsg: ChatMessage = { role: 'assistant', content: finalContent || '', timestamp: Date.now(), @@ -431,7 +431,7 @@ async function handleRetry(): Promise { state.update(KEYS.CURRENT_SESSION, (s: any) => ({ ...s, messages: [...s.messages, assistantMsg], updatedAt: Date.now() })); - updateLastAssistantMessage(finalContent, retryThinkContent || null, loopStats || null, undefined, Date.now(), toolRecords?.length ? toolRecords : undefined); + updateLastAssistantMessage(finalContent, retryThinkContent || null, loopStats || null, getSelectedModel(), Date.now(), toolRecords?.length ? toolRecords : undefined); } renderMessages(); await saveCurrentSession(); @@ -984,7 +984,7 @@ async function sendMessageWithAgentLoop(text: string, currentSession: ChatSessio updatedAt: Date.now() })); } - updateLastAssistantMessage(assistantContent, thinkContent || null, loopStats || null, undefined, Date.now(), toolRecords?.length ? toolRecords : undefined); + updateLastAssistantMessage(assistantContent, thinkContent || null, loopStats || null, getSelectedModel(), Date.now(), toolRecords?.length ? toolRecords : undefined); } else { // 单迭代模式:正常保存 const assistantMsg: ChatMessage = { @@ -1002,7 +1002,7 @@ async function sendMessageWithAgentLoop(text: string, currentSession: ChatSessio messages: [...session.messages, assistantMsg], updatedAt: Date.now() })); - updateLastAssistantMessage(assistantContent, thinkContent || null, loopStats || null, undefined, Date.now(), toolRecords?.length ? toolRecords : undefined); + updateLastAssistantMessage(assistantContent, thinkContent || null, loopStats || null, getSelectedModel(), Date.now(), toolRecords?.length ? toolRecords : undefined); } renderMessages(); await saveCurrentSession(); diff --git a/src/renderer/components/model-bar.ts b/src/renderer/components/model-bar.ts index 2512451..36a9635 100644 --- a/src/renderer/components/model-bar.ts +++ b/src/renderer/components/model-bar.ts @@ -224,12 +224,15 @@ function applyCapability(_modelName: string, caps: { think: boolean; vision: boo function setThinkAvailable(available: boolean): void { if (available) { + thinkCheckbox.checked = true; thinkCheckbox.disabled = false; + state.set('thinkEnabled', true); thinkWrap.title = 'Think 模式:启用深度推理'; thinkWrap.classList.remove('unavailable'); } else { thinkCheckbox.checked = false; thinkCheckbox.disabled = true; + state.set('thinkEnabled', false); thinkWrap.title = '当前模型不支持 Think 模式'; thinkWrap.classList.add('unavailable'); } diff --git a/src/renderer/index.html b/src/renderer/index.html index 20cd891..c6fa438 100644 --- a/src/renderer/index.html +++ b/src/renderer/index.html @@ -28,7 +28,7 @@

Metona Ollama - v0.10.2 + v0.10.3