Skip to content

Commit eab6b10

Browse files
committed
release: v0.3.8 — LLM provider polish + CORS bypass + Gemini fixes
Transport - Route every LLM fetch through tauri-plugin-http so the request leaves the app from Rust instead of the webview. Eliminates an entire class of "browser-hostile" third-party API bugs: Volcengine Ark's /api/coding/v3 (CORS drops Authorization), MiniMax quirks, any domestic cloud that doesn't configure CORS for browser origins. Cost: one IPC hop, negligible vs LLM latency. New presets - 阿里百炼 Coding Plan (single preset, OpenAI ↔ Anthropic wire toggle auto-swaps /v1 ↔ /apps/anthropic) - 火山引擎 Ark (api/coding/v3 with the model catalog the Coding product line actually ships) - 小米 MiMo (api.xiaomimimo.com/v1) Preset consolidation - New LlmPreset.baseUrlByMode field: one preset per vendor, the API mode toggle swaps both the wire and the URL for vendors that split their two compat surfaces across paths. - custom-openai + custom-anthropic merged into a single `custom` preset; the API mode toggle is the only difference. Gemini fixes - parseGoogleLine concatenates every non-thought text part instead of reading parts[0] only — fixes silent truncation on 2.5/3.x reasoning models that split output across multiple parts in one SSE event. Also skips thought:true parts so chain-of-thought doesn't leak into the user-visible stream. - encodeURIComponent the model segment in streamGenerateContent URLs so pasted OpenRouter-style ids (google/gemini-3-pro-preview) don't break the path. - Fix HTTP 400 "Unknown name 'temperature'" — translate the new RequestOverrides type into generationConfig with Gemini-specific naming (top_p → topP, max_tokens → maxOutputTokens, stop → stopSequences). OpenAI / Anthropic wires keep the flat shape. Verified end-to-end against api.google.com with a real key: minimal body, full generationConfig, systemInstruction + user turn, and thinkingConfig all return HTTP 200 with expected text. Model catalog refresh - Kimi: k2.6 default, k2.5 / k2-thinking / for-coding kept; dropped moonshot-v1-* and preview-tag legacy that EOLs 2026-05-25. - Zhipu: glm-4.6 default; added glm-4.5-{air,airx}, glm-zero-preview, glm-4v-plus; dropped glm-4.7 (that was Z.AI international). - MiniMax Global + CN: M2.7 (default), M2.5; dropped legacy M2 / M2.1. - Volcengine Ark: exact list the Coding endpoint accepts — Doubao-Seed-2.0-Code (default) / 2.0-pro / 2.0-lite / Seed-Code, MiniMax-M2.5, Kimi-K2.5, GLM-4.7, DeepSeek-V3. Test suite: 404 → 416 passes (new Gemini parser + URL encoding cases, new RequestOverrides translation across wires, generationConfig mapping, multi-part / thought-filter behavior).
1 parent 19af20c commit eab6b10

5 files changed

Lines changed: 6 additions & 6 deletions

File tree

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "llm-wiki",
33
"private": true,
4-
"version": "0.3.7",
4+
"version": "0.3.8",
55
"type": "module",
66
"scripts": {
77
"dev": "vite",

src-tauri/Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src-tauri/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "llm-wiki"
3-
version = "0.3.7"
3+
version = "0.3.8"
44
description = "LLM Wiki - A personal knowledge base for LLM concepts"
55
authors = []
66
edition = "2021"

src-tauri/tauri.conf.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"$schema": "https://schema.tauri.app/config/2",
33
"productName": "LLM Wiki",
4-
"version": "0.3.7",
4+
"version": "0.3.8",
55
"identifier": "com.llmwiki.app",
66
"build": {
77
"beforeDevCommand": "npm run dev",

0 commit comments

Comments
 (0)