PIME 2.0.0-beta2 測試版釋出
PIME 2.0.0-beta2 主要針對 2.0.0-beta 用戶回報的 Windows 10/11 穩定性問題、處理程序生命週期控制、IPC 通訊異常崩潰及各語言後端進行了大量修復與健全化。
核心與 Launcher 穩定性改善 (Process Lifecycle & IPC)
- 防止後端行程繼承客戶端管道控制代碼:解決具名管道代碼洩漏與關閉延遲問題。
- 增強行程監控與清理機制:透過 Windows Job Object 確保 Launcher 退出時確實終止後端行程。
- 命令列參數處理修復:Launcher 改以 raw arguments 傳遞後端啟動參數,避免 Windows 下特殊字元逸出問題。
- 多使用者/Session 隔離與強韌化:Watchdog 結束事件與 Mutex 依 Session 隔離,並修復使用者名稱取得邏輯。
- 精確追蹤 Pending Requests:依
(client_id, seqNum)追蹤未處理請求,並在後端重啟時正確處理客戶端斷線。
TSF 客戶端容錯與崩潰修復 (Client Robustness)
- 修復 Launcher 異常時宿主崩潰:防止在 PIMELauncher 崩潰後應用程式按鍵時跟著崩潰。
- RPC 例外處理與回應防護:修正收到 null 或格式異常 RPC 回應時的崩潰,並攔截 JSON 剖析例外。
- 候選字與游標保護:限制候選字數量不超過按鍵數,並限制游標位置在組字區範圍內防止越界。
- 多執行緒防護:針對語言列圖示快取加入保護鎖;管道 I/O 取消時等待非同步作業結束再返回。
- 修正 API 介面型別:修正
PIMEClient::getPipeName回傳型別錯誤問題。
輸入法模組與執行期修復 (IME Modules & Runtimes)
- 新酷音 (Chewing):
- 修復儲存設定時可能造成
config.json被清空的問題。 - 改用按鍵事件狀態取代
GetAsyncKeyState,提升按鍵處理精確度。 - 移除
sys.pathhack,修正config_tool.py模組引入問題。 - 候選字選擇增加邊界防護,並在後端關閉時確實關閉 SQLite 連線。
- 修復儲存設定時可能造成
- CIN 基礎模組 / RIME:
- Node.js 輸入法模組:
- 移除 emojime 過時的 devDependencies,修復現代 Node.js 環境建置失敗問題。
- 建置流程導入 Webpack 打包與最小化 (bundle & minify),大幅精簡發行體積。
- CIN 轉 JSON 工具:
cin2json預設移除格式縮排以最小化輸出體積,減少記憶體與磁碟佔用。
- 子模組更新:
- 更新
libIME2至最新版本。
- 更新
建置與 CI
- 建置系統全面採用現代化
CMAKE_MSVC_RUNTIME_LIBRARY設定。 - CI 簽章流程加入保護,若無憑證 Token 時可平順跳過簽章以確保建置暢通。