Releases: teddashh/multi-ai-chat-desktop
Release list
v1.7.0 — Configurable collaboration roles and resilient workflows
v1.7.0 — Configurable collaboration roles and resilient workflows
Stable release / 正式版本
Multi-AI Chat Desktop v1.7.0 makes structured collaboration easier to start and safer to finish. Users can assign providers to workflow roles, consecutive sends recover from provider-page timing races, and unrecoverable provider errors stop cleanly instead of contaminating later prompts.
Multi-AI Chat Desktop v1.7.0 讓結構化協作更容易開始,也更安全地結束。使用者可以指定 workflow 角色的 provider;連續送出會處理 provider 網頁的 timing race;無法恢復的 provider 錯誤會乾淨停止,不再污染後續 prompt。
Configurable collaboration roles / 可自訂協作角色
- Settings now exposes the role assignment for Debate, Consult, Coding, Roundtable, and Brainstorm. The selected roles drive readiness badges, preflight, execution, snapshots, replay, and transcript labels consistently.
- 「設定」現在可調整四方辯證、多方諮詢、Coding、道理辯證與腦力激盪的角色配置;選定角色會一致套用於就緒狀態、preflight、執行、snapshot、replay 與逐字稿標籤。
- Serial roles may reuse one provider. Roles that execute in parallel still reject a collision before turn one.
- 依序執行的角色可以重複使用同一家 provider;同時執行的角色若重複,仍會在第一步前拒絕啟動。
Resilient provider handoff / 穩定的 provider 交接
- After a provider session resets, the workflow now waits for that provider to become sendable again instead of treating reset completion as composer readiness.
- Provider session 重設後,workflow 會等待該 provider 真正恢復可送出,不再把 reset 完成誤認為 composer 已就緒。
- If a provider rejects the first send immediately after a previous response, the workflow waits briefly and retries once. The retry remains bounded and cancellation-aware.
- 若 provider 在前一則回答剛完成時拒絕下一次送出,workflow 會短暫等待並只重試一次;重試有明確上限,也能被取消。
- Remaining engine errors terminate the structured run, stop unfinished parallel siblings, and never become untrusted “answers” in downstream prompts.
- 其餘引擎錯誤會終止結構化流程、停止尚未完成的平行工作,也不會成為後續 prompt 裡的不可信「回答」。
Grok-safe defaults and honest guidance / 避開 Grok 阻擋的預設與誠實指引
- Grok security challenges can block embedded login on some platforms and networks. Default structured roles therefore use ChatGPT, Claude, and Gemini so every guided workflow can start with three working logins.
- Grok 的安全驗證在部分平台或網路可能阻擋嵌入式登入;因此結構化角色預設使用 ChatGPT、Claude、Gemini,讓所有引導流程可由三個可用登入直接開始。
- Grok remains available in the provider dock, Free mode, and manual role assignment. The app does not bypass login or provider-controlled security challenges.
- Grok 仍保留在 provider dock、自由模式與手動角色配置中;app 不會繞過登入或 provider 控制的安全驗證。
- Roundtable and Brainstorm retain four seats. Brainstorm gives the four seats distinct creative lenses even when one provider fills two seats, preserving 48 contributions across 12 rounds.
- 道理辯證與腦力激盪仍保留四個席位;即使同一 provider 擔任兩席,腦力激盪的四席仍使用不同創作視角,維持 12 輪共 48 次發言。
- External-browser fallback copy now states that it cannot authenticate the app's isolated WebView session.
- 外部瀏覽器備援文案現在明確說明:它無法替 app 內隔離的 WebView session 完成登入。
Contributors / 貢獻者
- Thank you to Dave Tseng (
@DaveTseng2019) for the session-reset readiness repair in #44, the clearer blocked-login guidance in #48, and the Grok-safe default role proposal and implementation in #49. - 感謝 Dave Tseng(
@DaveTseng2019) 透過 #44 修正 session reset 後的就緒判斷、透過 #48 改善登入阻擋說明,並在 #49 提案與實作避開 Grok 阻擋的預設角色。 - Thank you to CE Lin (
@ChingEnLin) for designing and implementing configurable structured-mode role assignments in #46. - 感謝 CE Lin(
@ChingEnLin) 透過 #46 設計並實作結構化模式的可自訂角色配置。
Validation / 驗證
- The release candidate passes 439 frontend tests across 52 files, 21 Agent contract tests, TypeScript type-checking, ESLint, adapter schema/seed checks, and production injected-script builds.
- Release candidate 通過 52 個檔案共 439 個 frontend tests、21 個 Agent contract tests、TypeScript type-check、ESLint、adapter schema/seed checks 與 production injected-script build。
- It also passes 60 Rust tests,
cargo fmt --check, warnings-denied Clippy, and pull-request CI on Windows, macOS, and Linux. - 同時通過 60 個 Rust tests、
cargo fmt --check、warnings-denied Clippy,以及 Windows、macOS、Linux 的 pull-request CI。 - The immutable
v1.7.0tag rebuilds the Windows installer and portable zip, Apple Silicon DMG, and Linux AppImage before the draft release is reviewed. - Immutable
v1.7.0tag 會重新建置 Windows installer/portable zip、Apple Silicon DMG 與 Linux AppImage,完成後再檢查 Draft Release。
Downloads / 下載
- Windows x64 installer and portable zip
- Apple Silicon macOS DMG
- Linux x86_64 AppImage
Notes / 注意事項
- Windows artifacts remain unsigned and may trigger SmartScreen.
- Windows 產物仍未簽章,可能觸發 SmartScreen。
- The macOS package is ad-hoc signed and signature-verified in CI, but is not Apple-notarized; follow the README first-launch steps if Gatekeeper blocks it.
- macOS package 使用 ad-hoc 簽章並由 CI 驗證,但尚未 Apple notarize;若 Gatekeeper 阻擋,請依 README 的首次啟動步驟操作。
- Provider pages, login flows, and security challenges are third-party behavior and can change without notice. Grok is optional in the safe defaults because successful embedded challenge completion cannot be guaranteed.
- Provider 網頁、登入流程與安全驗證屬第三方行為,可能隨時變動;由於無法保證嵌入式 Grok 驗證一定完成,安全預設將 Grok 保留為選用。
- The current Tauri/Wry Linux GTK3 dependency graph retains the documented medium-severity
glib::VariantStrIteradvisory. The app does not directly call the affected API, and the compatible upstream graph does not yet provide the newerglibline. - 目前 Tauri/Wry 的 Linux GTK3 dependency graph 仍有已記錄的 medium-severity
glib::VariantStrIteradvisory;本 app 未直接呼叫受影響 API,而相容的上游 graph 尚未提供新版glibline。 - Linux remains CI-packaged without a new maintainer-owned real-device launch report.
- Linux 仍由 CI 封裝,沒有 maintainer 自有實機的最新啟動回報。
Full changelog: v1.6.4...v1.7.0
v1.6.4 — Provider recovery and expanded real-page focus
v1.6.4 — Provider recovery and expanded real-page focus
Stable maintenance release / 正式維護版本
Multi-AI Chat Desktop v1.6.4 repairs provider connection-state detection and security-challenge recovery, while making the focused real provider page easier to inspect. It is a maintenance release within the frozen product scope: no provider, workflow, persistence format, or background service was added.
Multi-AI Chat Desktop v1.6.4 修正 provider 連線狀態與安全驗證頁的恢復流程,並讓目前聚焦的真實 provider 頁面更容易閱讀。這是凍結產品範圍內的維護版本:沒有新增 provider、workflow、持久化格式或背景服務。
Accurate provider state / 正確的 provider 狀態
- Logged-out ChatGPT and Grok pages can retain a visible composer. Logged-out detectors now take precedence, so these pages no longer appear connected or accept workflow work that cannot complete.
- ChatGPT 與 Grok 登出頁可能仍保留 composer;現在登出 detector 具有優先權,不再誤顯示已連線,也不會接下無法完成的 workflow 工作。
- Grok's text-based sign-in detection covers common English, Traditional and Simplified Chinese, Japanese, and German labels.
- Grok 的文字登入偵測涵蓋常見英文、繁體與簡體中文、日文及德文標籤。
- Adapter schema v2 adds typed object-form logged-out detectors while preserving schema v1 string adapters. Unknown fields, empty selectors or filters, and unsupported schema versions fail closed.
- Adapter schema v2 新增強型別物件式登出 detector,同時保留 schema v1 字串 adapter;未知欄位、空 selector/filter 與不支援的 schema 版本都會 fail closed。
Passive challenge recovery / 被動恢復安全驗證
- Gemini may redirect an embedded session to Google's
https://www.google.com/sorry/index?...anti-bot page. The app now permits only Gemini's HTTPSwww.google.com/sorrypath family, reports it as blocked instead of indefinitely checking, and allows the user to complete the provider-controlled page. - Gemini 的嵌入式 session 可能被導向 Google
https://www.google.com/sorry/index?...防機器人頁面;app 現在只允許 Gemini 使用 HTTPSwww.google.com/sorry路徑範圍,會顯示阻擋而非無限檢查,並讓使用者處理 provider 控制的頁面。 - The automation bridge and permission shim remain passive on that Google page. Sibling paths, lookalike hosts, non-HTTPS URLs, and cross-provider use stay denied.
- 該 Google 頁面不會啟動 automation bridge 或 permission shim;相鄰路徑、仿冒 host、非 HTTPS 與跨 provider 使用仍會拒絕。
- Grok Cloudflare and hCaptcha pages likewise keep the bridge deferred. Known challenge titles are surfaced through Tauri's native title observer, providing a clear blocked state without attempting to bypass the challenge.
- Grok 的 Cloudflare/hCaptcha 頁面同樣會延後 bridge;已知驗證標題由 Tauri 原生 title observer 顯示清楚的阻擋狀態,但不嘗試繞過驗證。
Expanded real-page focus / 放大真實頁面
- A temporary Expand/Restore control lets the focused provider WebView reclaim the workflow shelf, process trace, and connection-strip space for easier reading.
- 新增暫時性的「放大/還原」,讓聚焦中的 provider WebView 可使用 workflow shelf、流程追蹤與連線區原本占用的空間。
- Expansion is deliberately not persisted. Checkpoint cards and timeout decisions automatically restore the controls, so an actionable prompt cannot remain hidden.
- 放大狀態刻意不保存;checkpoint 卡片或逾時決策出現時會自動恢復控制區,避免需要操作的提示被隱藏。
Contributors / 貢獻者
- Thank you to Dave Tseng (
@DaveTseng2019) for the original Grok challenge-state repair in #39 and the expanded focus-stage proposal and implementation in #40. - 感謝 Dave Tseng(
@DaveTseng2019) 透過 #39 提出 Grok 驗證狀態修正,並在 #40 提案與實作放大 focus stage。 - Thank you to CE Lin (
@ChingEnLin) for the reproducible provider-status report in #41 and the ChatGPT, Gemini, and Grok repair contributed through #42. - 感謝 CE Lin(
@ChingEnLin) 在 #41 提供可重現的 provider 狀態回報,並透過 #42 貢獻 ChatGPT、Gemini 與 Grok 修正。
Validation / 驗證
- The release candidate passes 425 frontend tests across 51 files, 21 Agent contract tests, TypeScript type-checking, ESLint, adapter schema/seed checks, and production injected-script builds.
- Release candidate 通過 51 個檔案共 425 個 frontend tests、21 個 Agent contract tests、TypeScript type-check、ESLint、adapter schema/seed checks 與 production injected-script build。
- It also passes 60 Rust tests,
cargo fmt --check, warnings-denied Clippy, and pull-request CI on Windows, macOS, and Linux. - 同時通過 60 個 Rust tests、
cargo fmt --check、warnings-denied Clippy,以及 Windows、macOS、Linux 的 pull-request CI。 - The immutable
v1.6.4tag rebuilds the Windows installer and portable zip, Apple Silicon DMG, and Linux AppImage before the draft release is reviewed. - Immutable
v1.6.4tag 會重新建置 Windows installer/portable zip、Apple Silicon DMG 與 Linux AppImage,完成後再檢查 Draft Release。
Downloads / 下載
- Windows x64 installer and portable zip
- Apple Silicon macOS DMG
- Linux x86_64 AppImage
Notes / 注意事項
- Windows artifacts remain unsigned and may trigger SmartScreen.
- Windows 產物仍未簽章,可能觸發 SmartScreen。
- The macOS package is ad-hoc signed and signature-verified in CI, but is not Apple-notarized; follow the README first-launch steps if Gatekeeper blocks it.
- macOS package 使用 ad-hoc 簽章並由 CI 驗證,但尚未 Apple notarize;若 Gatekeeper 阻擋,請依 README 的首次啟動步驟操作。
- Provider security challenges remain third-party behavior. The app surfaces and defers them; it does not bypass login, challenge, age, subscription, or provider policy requirements.
- Provider 安全驗證仍屬第三方行為;app 只會顯示並延後自動化,不會繞過登入、驗證、年齡、訂閱或 provider 政策要求。
- The current Tauri/Wry Linux GTK3 dependency graph retains the documented medium-severity
glib::VariantStrIteradvisory. The app does not directly call the affected API, and the compatible upstream graph does not yet provide the newerglibline. - 目前 Tauri/Wry 的 Linux GTK3 dependency graph 仍有已記錄的 medium-severity
glib::VariantStrIteradvisory;本 app 未直接呼叫受影響 API,而相容的上游 graph 尚未提供新版glibline。 - Linux remains CI-packaged without a new maintainer-owned real-device launch report. Live completion of Gemini and Grok challenge pages also remains dependent on provider, account, network, and platform behavior.
- Linux 仍由 CI 封裝,沒有 maintainer 自有實機的最新啟動回報;Gemini 與 Grok 驗證頁能否完成,也仍取決於 provider、帳號、網路與平台行為。
Full changelog: v1.6.3...v1.6.4
v1.6.3 — Lifecycle stability and release hygiene
v1.6.3 — Lifecycle stability and release hygiene
Stable maintenance release / 正式維護版本
Multi-AI Chat Desktop v1.6.3 is a focused stability patch for asynchronous UI, provider WebView, and session-reset lifecycles. It also tightens release supply-chain pinning and restores machine-readable MIT license detection. The frozen product scope is unchanged: no provider, workflow, or product surface was added.
Multi-AI Chat Desktop v1.6.3 是針對非同步 UI、provider WebView 與 session reset 生命週期的穩定性修正版,同時強化 release supply-chain pinning,並恢復可由工具辨識的標準 MIT 授權。已凍結的產品範圍完全不變:沒有增加 provider、workflow 或新產品介面。
UI and WebView lifecycle reliability / UI 與 WebView 生命週期可靠性
- Provider WebView hide/show commands are serialized per provider. A modal opened and closed rapidly can no longer finish an older hide command after the restore command and leave the live page invisible.
- 每個 provider 的 WebView hide/show 命令會依序執行;快速開關 modal 時,較舊的 hide 不會在 restore 之後才完成,避免真實頁面持續隱藏。
- Adapter notice subscriptions now dispose correctly even when an asynchronous listener registration resolves after React StrictMode cleanup.
- 即使非同步 listener 註冊在 React StrictMode cleanup 後才完成,adapter notice subscription 也會正確解除,不會留下重複 listener。
- Settings update checks are bound to one modal session and request sequence, preventing a late result from overwriting a newly reopened Settings view.
- Settings 的版本檢查綁定單一 modal session 與 request sequence,過晚結果不會覆蓋重新開啟後的新狀態。
Provider focus and session recovery / Provider 焦點與 session 恢復
- Opening an already-existing provider WebView no longer steals keyboard focus during background restoration. Explicit login or focus actions continue to request focus normally.
- 背景恢復已存在的 provider WebView 時不再搶走鍵盤焦點;明確的登入或聚焦操作仍會正常要求 focus。
- A timed-out new-session operation clears its pending boot filter before returning an error. The current document can immediately resume status reporting instead of remaining rejected until another navigation.
- New session 逾時時會先清除 pending boot filter 再回報錯誤,讓目前 document 立即恢復狀態回報,不必再等下一次導覽。
Supply chain and licensing / Supply chain 與授權
- CI and release workflows pin
dtolnay/rust-toolchainto an immutable commit rather than a movingstablereference. - CI 與 release workflow 將
dtolnay/rust-toolchain鎖定 immutable commit,不再使用會移動的stablereference。 - The
LICENSEfile now contains the unmodified standard MIT text. Project provenance is preserved in a separateNOTICE.md, allowing license scanners to identify the repository correctly without losing attribution. LICENSE現在保留未修改的標準 MIT 文字;專案來源資訊移至獨立NOTICE.md,讓 license scanner 能正確辨識,同時保留 attribution。
Review scope / 審核範圍
- The stability audit found no open pull requests, issues, Dependabot alerts, code-scanning alerts, or secret-scanning alerts at review time. npm audit reported no known package vulnerabilities.
- 穩定性稽核當下沒有未處理的 pull request、issue、Dependabot alert、code-scanning alert 或 secret-scanning alert;npm audit 也沒有已知套件漏洞。
- Major React, Tailwind, Vite, Vitest, ESLint, and TypeScript upgrades remain intentionally deferred. A feature-frozen maintenance patch should not absorb unrelated major-version migration risk.
- React、Tailwind、Vite、Vitest、ESLint 與 TypeScript 的 major upgrade 刻意延後;feature-frozen 維護版不應承擔無關的大版本遷移風險。
- Large structural refactors such as splitting
App.tsxremain deferred until a concrete defect requires them. App.tsx拆分等大型結構重構持續延後,除非未來有具體缺陷需要處理。
Validation / 驗證
- The release candidate passes 417 frontend tests across 51 files, 21 Agent contract tests, TypeScript type-checking, ESLint, adapter checks, production build, and npm audit.
- Release candidate 通過 51 個檔案共 417 個 frontend tests、21 個 Agent contract tests、TypeScript type-check、ESLint、adapter checks、production build 與 npm audit。
- It also passes 55 Rust tests,
cargo fmt --check, warnings-denied Clippy, pull-request CI, and CodeQL on Windows, macOS, and Linux. - 同時通過 55 個 Rust tests、
cargo fmt --check、warnings-denied Clippy,以及 Windows、macOS、Linux 的 pull-request CI 與 CodeQL。 - The immutable
v1.6.3tag rebuilds the Windows installer and portable zip, Apple Silicon DMG, and Linux AppImage before the release is published. - Immutable
v1.6.3tag 會重新建置 Windows installer/portable zip、Apple Silicon DMG 與 Linux AppImage;全部產物完成後才發布正式版本。
Accepted upstream risk / 已接受的上游風險
- The current Tauri/Wry Linux GTK3 dependency graph retains the documented medium-severity
glib::VariantStrIteradvisory. The app does not directly call the affected API, and the compatible upstream graph does not yet provide the newerglibline. - 目前 Tauri/Wry 的 Linux GTK3 dependency graph 仍有已記錄的 medium-severity
glib::VariantStrIteradvisory。本 app 未直接呼叫受影響 API,而相容的上游 graph 尚未提供新版glibline。
Downloads / 下載
- Windows x64 installer and portable zip
- Apple Silicon macOS DMG
- Linux x86_64 AppImage
Notes / 注意事項
- Windows artifacts remain unsigned and may trigger SmartScreen.
- Windows 產物仍未簽章,可能觸發 SmartScreen。
- The macOS package is ad-hoc signed and signature-verified in CI, but is not Apple-notarized; follow the README first-launch steps if Gatekeeper blocks it.
- macOS package 使用 ad-hoc 簽章並由 CI 驗證,但尚未 Apple notarize;若 Gatekeeper 阻擋,請依 README 的首次啟動步驟操作。
- Grok login and Cloudflare verification remain third-party behavior and may vary by network, account, or provider changes. The app defers rather than bypasses provider security checks.
- Grok 登入與 Cloudflare 驗證屬第三方行為,可能因網路、帳號或 provider 改版而異;本 app 只會延後自動化,不會繞過 provider 安全驗證。
- Linux remains CI-packaged without a new maintainer-owned real-device launch report.
- Linux 仍由 CI 封裝,本版沒有 maintainer 自有實機的最新啟動回報。
- Provider websites can change independently. Attach a sanitized exported debug log when reporting automation failures.
- Provider 網頁可能獨立改版;回報自動化失敗時,請附上已去識別化的匯出 debug log。
Full changelog: v1.6.2...v1.6.3
v1.6.2 — Complete Brainstorm and provider resilience
v1.6.2 — Complete Brainstorm and provider resilience
Stable maintenance release / 正式維護版本
Multi-AI Chat Desktop v1.6.2 completes the intended 12-round Brainstorm design, makes long provider responses activity-aware, and hardens Claude and Grok entry around current login and challenge pages. It remains within the frozen scope: this release corrects and stabilizes shipped workflows rather than adding a new product surface.
Multi-AI Chat Desktop v1.6.2 完成原定的 12 輪腦力激盪設計、讓 provider 長回覆能依活動狀態延長等待,並針對目前 Claude 與 Grok 的登入及安全驗證頁強化進入流程。本版仍遵守 feature-frozen 範圍:修正並穩定既有 workflow,不增加新的產品介面。
Complete Brainstorm workflow / 完整腦力激盪流程
- Every Brainstorm round now includes Claude, Gemini, Grok, and ChatGPT once. Twelve rounds produce 48 contributions instead of treating 12 as a total turn count.
- 每輪都由 Claude、Gemini、Grok 與 ChatGPT 各回答一次;12 輪共 48 次發言,不再把 12 誤當成總發言數。
- Speaking order rotates between rounds so no provider permanently owns the opening or closing position.
- 每輪輪換發言順序,不讓任何 provider 固定取得開場或收尾位置。
- Five phases guide the session through framing, divergence, cross-pollination, harvesting and selection, then testable concepts. Each turn receives the complete history of the same local conversation.
- 五個階段依序完成問題框定、發散、交叉激發、收整選擇與可測試概念;每次發言都會收到同一本機 session 的完整前文。
- Prompts require direct contributions and synthesis instead of asking the user to choose from follow-up options or offering to continue later.
- Prompt 會要求直接貢獻與整合,不再自行丟出選項要求使用者選擇,也不會只提議稍後繼續。
Reliable long responses / 可靠的長時間回覆
- Provider thinking state, newly received response chunks, bulk-ready content, completion signals, and a new document boot all count as activity and refresh the inactivity timeout.
- Provider 的思考狀態、新回覆片段、批次就緒內容、完成訊號與新的 document boot 都視為活動,會刷新 inactivity timeout。
- A separate 60-minute absolute cap remains in force even when a stale page keeps reporting
thinking, preventing an infinite workflow wait. - 即使過期頁面持續回報
thinking,仍受獨立的 60 分鐘絕對上限限制,避免 workflow 永久等待。 - Regression tests cover long thinking, chunk activity, completion activity, new boots, inactivity expiry, and the absolute timeout.
- Regression tests 涵蓋長時間思考、片段活動、完成活動、新 boot、inactivity 到期與 absolute timeout。
Claude and Grok entry hardening / Claude 與 Grok 進入流程強化
- Claude adapter version 4 recognizes current account login fields and Google SSO entry without attempting to automate credentials.
- Claude adapter version 4 能辨識目前的帳號登入欄位與 Google SSO 入口,不會嘗試自動操作帳號密碼。
- Cloudflare and hCaptcha signals defer bridge startup for every provider until the challenge page clears. The app does not bypass provider security checks.
- 所有 provider 遇到 Cloudflare 或 hCaptcha 訊號時,都會延後 bridge 啟動直到驗證頁結束;本 app 不會繞過 provider 安全驗證。
- Grok pages continue without History API monkey-patching, reducing interference with login and challenge navigation.
- Grok 頁面不再 monkey-patch History API,降低對登入與安全驗證導覽的干擾。
Contributor thanks / 貢獻者致謝
Thanks to Dave Tseng (@DaveTseng2019) for identifying the fixed-timeout root cause and proposing the core keepalive implementation in PR #34. Commit 1d7ebb3 preserves his co-authorship; the release integration extends the fix to every response activity signal, adds the absolute safety cap, and supplies regression coverage.
感謝 Dave Tseng(@DaveTseng2019)在 PR #34 找出固定逾時的 root cause,並提出 keepalive 核心實作。Commit 1d7ebb3 保留其共同作者資訊;release 整合再補齊所有回覆活動訊號、absolute safety cap 與 regression coverage。
Validation / 驗證
- The release branch passes 416 frontend tests across 51 files, 21 Agent contract tests, TypeScript type-checking, ESLint, adapter checks, production build, npm audit, 54 Rust tests,
cargo fmt --check, and warnings-denied Clippy. - Release branch 通過 51 個檔案共 416 個 frontend tests、21 個 Agent contract tests、TypeScript type-check、ESLint、adapter checks、production build、npm audit、54 個 Rust tests、
cargo fmt --check與 warnings-denied Clippy。 - Pull-request CI and CodeQL pass, including warnings-denied Clippy on Windows, macOS, and Linux.
- Pull-request CI 與 CodeQL 全數通過,包含 Windows、macOS、Linux 的 warnings-denied Clippy。
- The immutable
v1.6.2tag rebuilds the Windows installer and portable zip, Apple Silicon DMG, and Linux AppImage before the release is published. - Immutable
v1.6.2tag 會重新建置 Windows installer/portable zip、Apple Silicon DMG 與 Linux AppImage;全部產物完成後才發布正式版本。
Accepted upstream risk / 已接受的上游風險
- The current Tauri/Wry Linux GTK3 dependency graph retains the documented medium-severity
glib::VariantStrIteradvisory. The app does not directly call the affected API, and the compatible upstream graph does not yet provide the newerglibline. - 目前 Tauri/Wry 的 Linux GTK3 dependency graph 仍有已記錄的 medium-severity
glib::VariantStrIteradvisory。本 app 未直接呼叫受影響 API,而相容的上游 graph 尚未提供新版glib。
Downloads / 下載
- Windows x64 installer and portable zip
- Apple Silicon macOS DMG
- Linux x86_64 AppImage
Notes / 注意事項
- Windows artifacts remain unsigned and may trigger SmartScreen.
- Windows 產物仍未簽章,可能觸發 SmartScreen。
- The macOS package is ad-hoc signed and signature-verified in CI, but is not Apple-notarized; follow the README first-launch steps if Gatekeeper blocks it.
- macOS package 使用 ad-hoc 簽章並由 CI 驗證,但尚未 Apple notarize;若 Gatekeeper 阻擋,請依 README 的首次啟動步驟操作。
- Grok login and Cloudflare verification remain third-party behavior and may vary by network, account, or provider changes. CI verifies packaging and challenge deferral but does not claim a real-account login result.
- Grok 登入與 Cloudflare 驗證屬第三方行為,可能因網路、帳號或 provider 改版而異;CI 會驗證封裝與 challenge deferral,但不宣稱已完成真實帳號登入測試。
- A full 48-contribution live Brainstorm run requires four authenticated provider accounts and is not represented as an automated end-user smoke result.
- 完整 48 次發言的 live Brainstorm 需要四個已登入 provider 帳號,不會被描述為自動化 end-user smoke 結果。
- Linux remains CI-packaged without a new maintainer-owned real-device launch report.
- Linux 仍由 CI 封裝,本版沒有 maintainer 自有實機的最新啟動回報。
- Provider websites can change independently. Attach a sanitized exported debug log when reporting automation failures.
- Provider 網頁可能獨立改版;回報自動化失敗時,請附上已去識別化的匯出 debug log。
Full changelog: v1.6.1...v1.6.2
v1.6.1 — Localized workflows and safer conversations
v1.6.1 — Localized workflows and safer conversations
Stable maintenance release / 正式維護版本
Multi-AI Chat Desktop v1.6.1 closes three conversation and workflow edge cases while completing runtime UI localization. It does not expand the frozen product scope: the same six presets, five workflow engines, local-first data model, and optional AI-Sister commemorative theme remain in place.
Multi-AI Chat Desktop v1.6.1 修正三項對話與 workflow 邊界狀況,並完成執行中 UI 的在地化。此版本沒有擴張已凍結的產品範圍:仍維持六個預設、五套 workflow 引擎、local-first 資料模型,以及可選的 AI-Sister 紀念 Theme。
Complete workflow localization / Workflow 完整在地化
- Mode status, round and phase text, role labels, process traces, and Replay now follow the selected English, Traditional Chinese, Japanese, or German UI locale.
- 模式狀態、輪次與階段、角色名稱、流程追蹤及 Replay 現在都會跟隨 English、繁體中文、日本語或 Deutsch UI 語系。
- English and other non-Chinese interfaces no longer expose hard-coded labels such as
第一輪or開場立論. - 英文及其他非中文介面不再混入
第一輪、開場立論等硬編碼中文標籤。
Safer conversation boundaries / 更安全的對話邊界
- Switching local history keeps provider WebViews connected and defers remote reset until the next message, avoiding unnecessary reloads while the user is only reading history.
- 切換本機歷史記錄時會維持 provider WebView 連線,並將遠端 reset 延後到下一次送出;只閱讀歷史時不再造成不必要的重載。
- Before sending a restored follow-up, only participating providers start clean remote threads. Rust waits for a different document boot, a ready bridge, and a matching live WebView boot before the workflow can continue.
- 恢復舊 session 後第一次追問前,只有實際參與本次 workflow 的 provider 會建立乾淨遠端 thread;Rust 會等待不同的 document boot、ready bridge,並確認目前 WebView 的 boot 相符後才放行。
- Reset rejection or timeout blocks the send, retains failed providers for retry, preserves the draft, and records a provider-specific diagnostic event. No same-session replay context is injected into an unverified old thread.
- Reset 被拒或逾時時會阻擋送出、保留失敗 provider 供重試、保留草稿並記錄 provider 專屬診斷;未驗證的舊 thread 不會收到 same-session replay context。
Session and Consult fixes / Session 與 Consult 修正
- Repeated New conversation clicks reuse the active blank session instead of creating duplicate sidebar entries, while still resetting mode, preset, transcript state, and the next remote send.
- 連按 新對話 會沿用目前空白 session,不再產生重複側欄項目;模式、preset、逐字稿狀態與下一次遠端送出仍會完整重設。
- Consult stops after the two parallel first answers when both are canonical errors or skips. If either answer is usable, review and summary continue normally.
- Consult 的兩份平行首輪回答若都只是標準錯誤或略過,流程會直接停止;只要其中一份可用,審查與總結仍會照常繼續。
- The Consult graph is now version 3. Existing version-2 snapshots remain preserved and require the existing explicit “use current graph” choice before replay.
- Consult graph 已升為 version 3。既有 version-2 snapshot 仍會保留,Replay 前需使用現有的明確「改用目前 graph」選項。
Contributor thanks / 貢獻者致謝
Thanks to Dave Tseng (@DaveTseng2019) for the diagnosis and original implementations in PR #23, PR #31, and PR #32. His commits are preserved with original authorship; the release integration adds the new-boot gate, failure-safe send path, participant-only reset, full blank-session reset, graph version bump, localization, and regression coverage.
感謝 Dave Tseng(@DaveTseng2019)在 PR #23、PR #31 與 PR #32 提供診斷及原始實作。這些 commit 均保留原作者資訊;release 整合另外補上 new-boot gate、失敗安全的送出路徑、participant-only reset、完整空白 session 重設、graph version bump、語系與 regression coverage。
Validation / 驗證
- The release branch passes 406 frontend tests across 51 files, 21 Agent contract tests, TypeScript type-checking, ESLint, adapter checks, npm audit, 54 Rust tests, and warnings-denied Clippy.
- Release branch 通過 51 個檔案共 406 個 frontend tests、21 個 Agent contract tests、TypeScript type-check、ESLint、adapter checks、npm audit、54 個 Rust tests,以及 warnings-denied Clippy。
- Pull-request CI validates warnings-denied Clippy on Windows, macOS, and Linux before the release tag is created.
- 建立 release tag 前,pull-request CI 會在 Windows、macOS 與 Linux 驗證 warnings-denied Clippy。
- The immutable
v1.6.1tag rebuilds the Windows installer and portable zip, Apple Silicon DMG, and Linux AppImage before the release is published. - Immutable
v1.6.1tag 會重新建置 Windows installer/portable zip、Apple Silicon DMG 與 Linux AppImage;全部產物完成後才發布正式版本。
Accepted upstream risk / 已接受的上游風險
- The current Tauri/Wry Linux GTK3 dependency graph retains the previously documented medium-severity
glib::VariantStrIteradvisory. - 目前 Tauri/Wry 的 Linux GTK3 dependency graph 仍保留先前記錄的 medium-severity
glib::VariantStrIteradvisory。 - This app does not directly call the affected API, and the compatible upstream GTK graph does not yet provide the newer
glibline. The transitive risk remains documented rather than being represented as fixed. - 本 app 未直接呼叫受影響 API,而相容的上游 GTK graph 尚未提供新版
glib;因此繼續如實記錄此 transitive risk,不會宣稱已修復。
Downloads / 下載
- Windows x64 installer and portable zip
- Apple Silicon macOS DMG
- Linux x86_64 AppImage
Notes / 注意事項
- Windows artifacts remain unsigned and may trigger SmartScreen.
- Windows 產物仍未簽章,可能觸發 SmartScreen。
- The macOS package is ad-hoc signed and signature-verified in CI, but is not Apple-notarized; follow the README first-launch steps if Gatekeeper blocks it.
- macOS package 使用 ad-hoc 簽章並由 CI 驗證,但尚未 Apple notarize;若 Gatekeeper 阻擋,請依 README 的首次啟動步驟操作。
- Grok login and Cloudflare verification remain third-party behavior and may vary by network, account, or provider changes.
- Grok 登入與 Cloudflare 驗證屬第三方行為,可能因網路、帳號或 provider 改版而異。
- Linux remains CI-packaged without a new maintainer-owned real-device launch report.
- Linux 仍由 CI 封裝,本版沒有 maintainer 自有實機的最新啟動回報。
- Provider websites can change independently. Attach a sanitized exported debug log when reporting automation failures.
- Provider 網頁可能獨立改版;回報自動化失敗時,請附上已去識別化的匯出 debug log。
Full changelog: v1.6.0...v1.6.1
v1.6.0 — Brainstorm and accessibility
v1.6.0 — Brainstorm and accessibility
Stable feature release / 正式功能版本
Multi-AI Chat Desktop v1.6.0 completes the feature-frozen product with a dedicated Brainstorm preset and a focused large-text layout fix. Brainstorm is a sixth guided preset built on the proven Free fan-out graph, not a sixth workflow engine. The five stable engines and the local-first privacy model remain unchanged.
Multi-AI Chat Desktop v1.6.0 以專用腦力激盪預設與聚焦的大字體版面修正,完成 feature-frozen 產品。Brainstorm 是建立在既有自由分送 fan-out graph 上的第六個引導預設,不是第六套 workflow 引擎;五套穩定引擎與 local-first 隱私模型皆維持不變。
Brainstorm preset / 腦力激盪預設
- ChatGPT, Claude, Gemini, and Grok receive complementary creative lenses so parallel answers explore distinct directions instead of repeating the same generic prompt.
- ChatGPT、Claude、Gemini 與 Grok 會收到互補的創意視角,讓平行回答探索不同方向,而不是重複同一份通用 prompt。
- All four providers are selected by default; providers that are unavailable or not ready are still filtered by the existing sendability rules.
- 預設選取四家 provider;無法使用或尚未就緒者仍會依既有 sendability 規則排除。
- The preset identity and provider-specific instructions survive local session restore, snapshots, replay, and Markdown export.
- 本機 session 還原、snapshot、replay 與 Markdown 匯出都會保留 preset 身分及 provider 專屬指示。
- Existing Free-mode behavior remains unchanged because Brainstorm compiles to the same stable parallel graph with different prompt metadata.
- 既有自由模式行為不變;Brainstorm 只是以不同 prompt metadata 編譯到同一套穩定平行 graph。
Accessibility and layout / 無障礙與版面
- The provider connection strip remains reachable when users choose very large text or run the app in a short window.
- 使用者採用超大字體或較矮視窗時,仍可捲動到 provider 連線區。
- Native provider WebView bounds now follow scroll changes through a
requestAnimationFrame-throttled update, preserving alignment without flooding native reposition calls. - 原生 provider WebView 的邊界會透過
requestAnimationFrame節流更新跟隨捲動,保持對齊且不會大量觸發 native reposition。 - Regression coverage protects both the reachable connection strip and the focused-WebView alignment behavior.
- Regression tests 同時保護連線區可達性與聚焦 WebView 對齊行為。
Contributor thanks / 貢獻者致謝
Thanks to Dave Tseng (@DaveTseng2019) for reporting and implementing the large-font connection-strip fix in PR #25, including the WebView synchronization improvement and regression tests.
感謝 Dave Tseng(@DaveTseng2019)在 PR #25 回報並實作大字體連線區修正,也一併改善 WebView 同步並補上 regression tests。
Validation / 驗證
- The release branch passes 394 frontend tests, 21 Agent contract tests, TypeScript type-checking, ESLint, adapter checks, npm audit, 52 Rust tests, and warnings-denied Clippy.
- Release branch 通過 394 個 frontend tests、21 個 Agent contract tests、TypeScript type-check、ESLint、adapter checks、npm audit、52 個 Rust tests,以及 warnings-denied Clippy。
- Pull-request CI validates warnings-denied Clippy on Windows, macOS, and Linux before the release tag is created.
- 建立 release tag 前,pull-request CI 會在 Windows、macOS 與 Linux 驗證 warnings-denied Clippy。
- The immutable
v1.6.0tag rebuilds the Windows installer and portable zip, Apple Silicon DMG, and Linux AppImage before the release is published. - Immutable
v1.6.0tag 會重新建置 Windows installer/portable zip、Apple Silicon DMG 與 Linux AppImage;全部產物完成後才發布正式版本。
Accepted upstream risk / 已接受的上游風險
- The current Tauri/Wry Linux GTK3 dependency graph retains the previously documented medium-severity
glib::VariantStrIteradvisory. - 目前 Tauri/Wry 的 Linux GTK3 dependency graph 仍保留先前記錄的 medium-severity
glib::VariantStrIteradvisory。 - This app does not directly call the affected API, and the compatible upstream GTK graph does not yet provide the newer
glibline. The transitive risk remains documented rather than being represented as fixed. - 本 app 未直接呼叫受影響 API,而相容的上游 GTK graph 尚未提供新版
glib;因此繼續如實記錄此 transitive risk,不會宣稱已修復。
Downloads / 下載
- Windows x64 installer and portable zip
- Apple Silicon macOS DMG
- Linux x86_64 AppImage
Notes / 注意事項
- Windows artifacts remain unsigned and may trigger SmartScreen.
- Windows 產物仍未簽章,可能觸發 SmartScreen。
- The macOS package is ad-hoc signed and signature-verified in CI, but is not Apple-notarized; follow the README first-launch steps if Gatekeeper blocks it.
- macOS package 使用 ad-hoc 簽章並由 CI 驗證,但尚未 Apple notarize;若 Gatekeeper 阻擋,請依 README 的首次啟動步驟操作。
- Grok login and Cloudflare verification remain third-party behavior and may vary by network, account, or provider changes.
- Grok 登入與 Cloudflare 驗證屬第三方行為,可能因網路、帳號或 provider 改版而異。
- Linux remains CI-packaged without a new maintainer-owned real-device launch report.
- Linux 仍由 CI 封裝,本版沒有 maintainer 自有實機的最新啟動回報。
- Provider websites can change independently. Attach a sanitized exported debug log when reporting automation failures.
- Provider 網頁可能獨立改版;回報自動化失敗時,請附上已去識別化的匯出 debug log。
Full changelog: v1.5.1...v1.6.0
v1.5.1 — Security and release hardening
v1.5.1 — Security and release hardening
Stable maintenance release / 正式維護版本
Multi-AI Chat Desktop v1.5.1 is a focused security and maintenance release. It hardens Windows source-agent command execution, tightens Gemini hostname validation, replaces insecure identifier fallbacks, clears actionable development-dependency advisories, and upgrades the repository's release automation to Node 24-compatible actions. It adds no new product features and preserves the feature-frozen scope.
Multi-AI Chat Desktop v1.5.1 是聚焦於安全與維護的版本。它強化 Windows source agent 的命令執行、收緊 Gemini hostname 驗證、替換不安全的識別碼備援、清除可處理的開發依賴警示,並把 release automation 升級到 Node 24 相容 Actions。本版不新增產品功能,維持 feature-frozen 範圍。
Runtime fixes / Runtime 修補
- Windows Agent-Ready Source Release commands now pass through a strict allowlist of the fixed tokens required for
pnpmor Corepack launch. Whitespace and shell metacharacters are rejected instead of being incompletely escaped. - Windows Agent-Ready Source Release 命令現在只允許
pnpm/Corepack 啟動真正需要的固定 token;空白與 shell 特殊字元會被拒絕,不再使用不完整的 escaping。 - Gemini's blocked-state fallback requires the exact
gemini.google.comhostname rather than accepting an arbitrary URL substring. - Gemini 的 blocked-state 備援改為精確比對
gemini.google.com,不再接受任意 URL substring。 - Conversation and message identities use
crypto.randomUUID()orcrypto.getRandomValues()when available, with a process-local monotonic fallback rather thanMath.random(). - 對話與訊息識別碼會優先使用
crypto.randomUUID()/crypto.getRandomValues(),並以 process-local 單調序列取代Math.random()備援。
Repository security / Repo 安全
- Vitest is upgraded to
3.2.7and esbuild to0.25.12, removing the six actionable npm Dependabot alerts discovered when repository scanning was enabled. - Vitest 升級到
3.2.7、esbuild 升級到0.25.12,排除啟用掃描後找到的六筆可處理 npm Dependabot 警示。 - GitHub Actions use Node 24-compatible releases pinned to immutable commits, checkout credentials are not persisted, and workflow permissions follow least privilege.
- GitHub Actions 改用 Node 24 相容版本並固定 immutable commit;checkout 不保留 credentials,workflow 權限採 least privilege。
- Dependabot security updates, monthly GitHub Actions update checks, weekly CodeQL analysis, and protected
mainstatus checks are enabled for future maintenance. - 已啟用 Dependabot security updates、每月 GitHub Actions 更新檢查、每週 CodeQL,以及受保護的
mainstatus checks。
Accepted upstream risk / 已接受的上游風險
- The Linux GTK3 dependency graph from the current Tauri
2.11.5/ Wry0.55.1stack still resolves toglib 0.18.5, which has a medium-severity advisory forglib::VariantStrIter. - 目前 Tauri
2.11.5/Wry0.55.1的 Linux GTK3 依賴仍會解析到glib 0.18.5;其glib::VariantStrIter有一筆 medium advisory。 - This application does not directly call that API, and
glib >=0.20is not compatible with the upstreamgtk 0.18graph. The alert is documented as a tolerable transitive risk until Tauri/Wry migrates upstream; it is not represented as fixed. - 本 app 未直接呼叫該 API,而
glib >=0.20與上游gtk 0.18dependency graph 不相容。此警示會以可接受的 transitive risk 留存,等待 Tauri/Wry 上游遷移,不會被宣稱為已修復。
Validation / 驗證
- The release branch passed 384 frontend tests, 21 Agent contract tests, TypeScript type-checking, ESLint, adapter checks, npm audit, Rust tests, and warnings-denied Clippy on Windows, macOS, and Linux.
- Release branch 通過 384 個前端測試、21 個 Agent contract 測試、TypeScript type-check、ESLint、adapter checks、npm audit、Rust tests,以及 Windows/macOS/Linux 的 warnings-denied Clippy。
- CodeQL analysis passed for GitHub Actions, JavaScript/TypeScript, and Rust with no open code-scanning alerts on
main. - CodeQL 的 GitHub Actions、JavaScript/TypeScript 與 Rust 分析全部通過,
main沒有 open code-scanning alert。 - The immutable
v1.5.1tag rebuilds the Windows installer and portable zip, Apple Silicon DMG, and Linux AppImage before this draft is published. - Immutable
v1.5.1tag 會重新建置 Windows installer/portable zip、Apple Silicon DMG 與 Linux AppImage;draft 只有在這些產物成功後才會發布。
Downloads / 下載
- Windows x64 installer and portable zip
- Apple Silicon macOS DMG
- Linux x86_64 AppImage
Notes / 注意事項
- Windows artifacts remain unsigned and may trigger SmartScreen.
- The macOS package is ad-hoc signed and signature-verified in CI, but is not Apple-notarized; follow the README first-launch steps if Gatekeeper blocks it.
- Live macOS provider compatibility, especially Grok through Cloudflare verification, still depends on third-party behavior and has not been re-confirmed on a maintainer-owned Apple Silicon device for this patch.
- Linux remains CI-packaged without a new real-device launch report.
- Provider websites can change independently. Attach a sanitized exported debug log when reporting automation failures.
Full changelog: v1.5.0...v1.5.1
v1.5.0 — Reliable sends and calmer session navigation
v1.5.0 — Reliable sends and calmer session navigation
Stable maintenance release / 正式維護版本
Multi-AI Chat Desktop v1.5.0 hardens ChatGPT sending and provider response capture, adds direct navigation from connection chips to transcript answers, and makes conversation history calmer and more predictable. It deliberately preserves the clean-provider-session boundary when switching history so unrelated remote conversations cannot contaminate a continued local session.
Multi-AI Chat Desktop v1.5.0 強化 ChatGPT 送出與 provider 回答擷取,加入從 AI 連線 chip 直接跳到逐字稿回答的導覽,也讓對話歷史更穩定、更符合預期。切換歷史時仍刻意維持乾淨的 provider session 邊界,避免其他遠端對話污染要延續的本機 session。
Highlights / 更新重點
- A cancelable Enter event consumed by ChatGPT is accepted as a successful send instead of being misreported as an input-injection failure.
- ChatGPT 已接收並攔截 Enter 時會視為成功送出,不再誤報 input injection failed。
- Provider prompt echoes and leaked response-language policy text are rejected; when multiple answer candidates appear, the latest real response wins.
- 會排除 provider 的 prompt 回音與外洩的 response-language policy;同時出現多個回答候選時,以最新的真實回答為準。
- Selecting a provider connection chip scrolls to that provider's latest transcript message and briefly highlights it; repeated selections restart the full highlight duration.
- 點選 provider 連線 chip 會跳到該 provider 最新一則逐字稿並短暫醒目標示;重複點選會重新計算完整標示時間。
- The conversation sidebar remembers its collapsed state across restarts without placing storage side effects inside React state updates.
- 對話側邊欄會跨重啟記住收合狀態,且儲存副作用不再放在 React state updater 內。
- Unchanged conversations keep their original history date, using field-level message comparison rather than serialization order; saved author labels are preserved on restore.
- 未變更的對話會保留原本歷史日期,改用逐欄位訊息比較而非依賴序列化順序;作者標籤也會在還原時保留。
- History switching continues to prepare a clean provider session before bounded same-session replay. Keeping an arbitrary live provider tab would risk mixing unrelated remote context into the next workflow.
- 切換歷史後仍會先準備乾淨的 provider session,再有限度重播同一 session。若直接保留任意真實頁面,可能把不相關的遠端上下文混入下一個 workflow。
Contributors / 貢獻者
Special thanks to Dave Tseng (@DaveTseng2019) for the connection-chip transcript navigation in #20, persisted sidebar preference in #21, stable history dates in #22, and the thoughtful session-continuity discussion in #23.
特別感謝 Dave Tseng(@DaveTseng2019):他在 #20 貢獻連線 chip 的逐字稿導覽、在 #21 保存側邊欄偏好、在 #22 穩定歷史日期,也在 #23 提出值得深入檢視的 session 延續方案。
Thank you as well to the users who supplied sanitized roundtable transcripts, debug bundles, and precise ChatGPT prompt-loss reproductions.
也感謝提供已清理 roundtable 對話、debug bundle 與精確 ChatGPT prompt 消失重現步驟的使用者。
Validation / 驗證
- Local release gates pass: 384 frontend tests, 20 Agent contract tests, adapter schema checks, TypeScript type-checking, ESLint, production build, 52 Rust tests,
cargo fmt --check, and Clippy with warnings denied. - 本機發布閘門全數通過:384 個前端測試、20 個 Agent contract 測試、adapter schema 檢查、TypeScript type-check、ESLint、production build、52 個 Rust 測試、
cargo fmt --check,以及 warnings denied 的 Clippy。 - The tag-driven release workflow rebuilds and verifies Windows installer/portable, Apple Silicon DMG, and Linux AppImage artifacts from the immutable
v1.5.0tag. - macOS packaging is ad-hoc signed and signature-checked, but not Apple-notarized.
- Live Grok completion through a macOS Cloudflare challenge remains dependent on third-party behavior and has not been confirmed on a maintainer-owned Apple Silicon device.
Downloads / 下載
- Windows x64 installer and portable zip
- Apple Silicon macOS DMG
- Linux x86_64 AppImage
Notes / 注意事項
- No provider API keys are required; prompts go directly to the logged-in provider pages selected by the user.
- Windows artifacts are unsigned and may trigger SmartScreen.
- The macOS package is ad-hoc signed rather than Apple-notarized; follow the README first-launch steps if macOS blocks it.
- Provider websites can change independently. Attach a sanitized exported debug log when reporting automation failures.
Full changelog: v1.4.0...v1.5.0
v1.4.0 — Conversation continuity and answer fidelity
v1.4.0 — Conversation continuity and answer fidelity
Stable maintenance release / 正式維護版本
Multi-AI Chat Desktop v1.4.0 makes restored conversations genuinely continuous, preserves more of each provider's answer structure, stops transcript streaming from moving the whole app, and hardens local session persistence. ChatGPT adapter v5 also repairs stale or mismatched editor drafts before sending.
Multi-AI Chat Desktop v1.4.0 讓恢復後的對話能真正延續、保留更多 provider 回答結構、避免串流文字帶動整個 app 捲動,並強化本機 session 儲存。ChatGPT adapter v5 也會在送出前修復殘留或不一致的編輯器草稿。
Highlights / 更新重點
- Restored sessions replay one bounded, same-session transcript on the first follow-up; new conversations remain isolated.
- 恢復 session 後的第一個追問只會帶入同一 session 的有限歷史;新對話仍完全隔離。
- Stable response identities prevent serial workflows from overwriting restored message bubbles.
- 穩定的 response identity 可避免序列 workflow 覆寫已恢復的訊息。
- Provider DOM is serialized into safe semantic Markdown with paragraphs, nested lists, links, fenced code, and tables; GFM tables render as scrollable tables.
- Provider DOM 會轉成安全的語意化 Markdown,保留段落、巢狀清單、連結、fenced code 與表格;GFM 表格會以可捲動表格顯示。
- Transcript auto-follow scrolls only the transcript container and pauses while the user reads older messages.
- 自動跟隨只捲動 transcript;使用者閱讀舊訊息時不會被拉回底部。
- Session eviction runs only for recognized quota failures, and the UI reflects the sessions that were actually persisted.
- 只有確認為 quota 問題時才淘汰舊 session,UI 也會反映真正保存成功的資料。
- ChatGPT adapter v5 replaces stale or mismatched rich-editor drafts before send and can reach existing installations through adapter hot-update.
- ChatGPT adapter v5 會在送出前替換殘留或不一致的 rich-editor 草稿,並可透過 adapter hot-update 提供給既有安裝版。
Contributors / 貢獻者
Special thanks to Dave Tseng (@DaveTseng2019) for the v1.3.1 overlay reliability fix; the detailed reproductions and original proposals in #10, #11, and #12; and the serializer regression tests merged in #14.
特別感謝 Dave Tseng(@DaveTseng2019):他貢獻了 v1.3.1 overlay 可靠性修正、在 #10、#11、#12 提供詳細重現與原始方案,並在 #14 補上已合併的 serializer regression tests。
Thank you as well to community testers who shared reproducible Windows and macOS reports and sanitized debug logs.
也感謝提供 Windows、macOS 可重現回報與已清理 debug log 的社群測試者。
Validation / 驗證
- Local release gates pass: 368 frontend tests, 20 Agent contract tests, adapter schema checks, TypeScript type-checking, ESLint, 52 Rust tests,
cargo fmt --check, and Clippy with warnings denied. - 本機發布閘門全數通過:368 個前端測試、20 個 Agent contract 測試、adapter schema 檢查、TypeScript type-check、ESLint、52 個 Rust 測試、
cargo fmt --check,以及 warnings denied 的 Clippy。 - GitHub CI passes frontend checks plus Clippy on Windows, macOS, and Linux with warnings denied.
- The release workflow rebuilds and verifies Windows installer/portable, Apple Silicon DMG, and Linux AppImage artifacts from the immutable
v1.4.0tag. - macOS packaging is ad-hoc signed and signature-checked, but not Apple-notarized.
- Live Grok completion through a macOS Cloudflare challenge remains dependent on third-party behavior and has not been confirmed on a maintainer-owned Apple Silicon device.
Artifact verification / 產物核對
- Release workflow 29387392219 passed Windows, macOS, and Linux builds; the macOS job also verified the ad-hoc app signature inside the DMG.
- Windows、macOS、Linux 建置已在 Release workflow 29387392219 全數通過;macOS job 也驗證了 DMG 內 app 的 ad-hoc 簽章。
- All four downloaded assets matched GitHub's SHA-256 digests. The portable ZIP contents and the setup
MZ, AppImageELF, and DMGkolystructures were also checked before publication. - 四個下載產物的 SHA-256 均與 GitHub digest 相符;發布前也核對了 portable ZIP 內容,以及安裝程式
MZ、AppImageELF、DMGkoly結構。
Downloads / 下載
- Windows x64 installer and portable zip
- Apple Silicon macOS DMG
- Linux x86_64 AppImage
Notes / 注意事項
- No provider API keys are required; prompts go directly to the logged-in provider pages selected by the user.
- Windows artifacts are unsigned and may trigger SmartScreen.
- The macOS package is ad-hoc signed rather than Apple-notarized; follow the README first-launch steps if macOS blocks it.
- Provider websites can change independently. Attach a sanitized exported debug log when reporting automation failures.
Full changelog: v1.3.1...v1.4.0
v1.3.1 — Overlay reliability patch
Stable maintenance release / 正式維護修補版
Multi-AI Chat Desktop v1.3.1 keeps the centered native provider WebView behind Settings and other control-pane overlays. It is a focused reliability patch contributed by @DaveTseng2019.
Multi-AI Chat Desktop v1.3.1 修正置中的原生 provider WebView 可能重新浮到設定與其他控制視窗上方的問題。這是一個聚焦於操作可靠性的維護修補版,感謝 @DaveTseng2019 貢獻。
Fixed / 修正
- Prevents the 2.5-second layout sync and center-stage ResizeObserver from moving a hidden native WebView back over an open overlay.
- 防止 2.5 秒版面同步與置中區 ResizeObserver 在 overlay 開啟期間,把已隱藏的原生 WebView 再移回畫面上。
- Restores the centered provider immediately after the overlay closes instead of waiting for the next sync tick.
- Overlay 關閉後會立即恢復置中的 provider,不必等待下一次同步。
- Covers Settings, preflight, step-timeout, report preview, and process-trace detail overlays.
- 涵蓋設定、執行前檢查、步驟逾時、問題回報預覽與流程細節視窗。
Validation / 驗證
- 351 frontend tests and 20 Agent contract tests passed.
- 52 Rust tests passed; formatting and Clippy passed with warnings denied.
- Windows, macOS, and Linux release builds completed successfully.
- macOS signature verification passed inside the generated DMG.
Downloads / 下載
- Windows installer and portable zip
- Apple Silicon macOS DMG
- Linux x86_64 AppImage
Notes
- No provider API keys are required.
- Windows artifacts are unsigned.
- The macOS package is ad-hoc signed rather than Apple-notarized; follow README troubleshooting if macOS shows a warning.
- Provider websites can change independently; attach an exported debug log when reporting automation issues.
Full Changelog: v1.3.0...v1.3.1