github EasyIME/PIME v2.0.0-beta5
PIME 2.0.0-beta5 測試版釋出

pre-release49 minutes ago

PIME 2.0.0-beta5 更新內容

本版本包含多項穩定性強化、後端容錯機制改善,以及新酷音、Rime、大易、倉頡等輸入法的錯誤修正。

核心架構、PIMELauncher 與 TSF 客戶端

  • 修正 Watchdog 誤殺正常後端行程的問題 (#1002):當客戶端視窗斷線或送出不需回應的 close 通知時,自動清除殘留的等待中請求,避免 15 秒後觸發 watchdog 誤判後端無回應而強制重啟。
  • 確保視窗關閉通知 (close) 正確轉發至後端 (#990, #997):修正 PIMELauncher 誤丟棄正常斷線通知的問題,確保後端能正常釋放已關閉視窗的資源,並在後端異常終止時立即排空輸入佇列。
  • 強化 IPC 訊息格式驗證 (#998):在轉發訊息至後端前驗證 Client ID 長度與分隔符號,過濾格式異常的輸入。
  • PIMELauncher 改為靜態連結 MSVC CRT (#975, #983, #990):移除對外部 VCRUNTIME140.dll 的動態相依,解決部分環境缺少 VC++ 可轉散發套件導致無法啟動的問題。
  • 管理員權限啟動警告 (#973, #1016):當偵測到 PIMELauncher 以提升權限(Elevated)執行時,於日誌中記錄警告與 icacls 權限修復指令說明。
  • 修正 PIMEClient 初始化狀態切換順序 (#994):在派發 init 回應前先將連線狀態設為 Ready,確保初始化期間的回呼能正常運作。
  • 修正候選字視窗版面配置套用順序 (#1019):在 PIMETextService::updateStatus() 中先套用 customizeUI(例如每列候選字數)再更新候選字清單,避免首次顯示使用舊版面。
  • 修正 DLL 註冊時的圖示索引傳遞與成員初始化 (#992, #993):確保 Windows 8+ 專用圖示索引(iconIndex)於註冊時正確傳入,並明確初始化 PIMETextService 成員變數。

新酷音輸入法 (Chewing)

  • 修正使用者詞庫編輯器無法刪除詞彙與狀態回報錯誤的問題 (#393, #417, #456, #1022):移除在傳統字碼頁主控台下會引發 UnicodeEncodeError 的除錯輸出,使刪除詞彙能正常執行,並正確回報新增/刪除結果與重新整理列表。
  • 強化詞庫載入容錯機制 (#988):若磁碟上的使用者詞庫無法開啟,自動退回使用記憶體內(in-memory)資料庫,避免後端崩潰。

CIN 表格輸入法引擎與各輸入法 (倉頡、大易、行列、輕鬆、注音、拼音、速成、嘸蝦米)

  • 碼表改為非同步背景載入 (#1004):引入 CinTableBase 與 ThreadPoolExecutor 非阻塞載入主碼表、反查碼表與同音字碼表,移除原本耗用 CPU 的 busy-wait 輪詢迴圈。
  • 修正設定檔參數容錯與空值崩潰問題 (#864, #933):自動驗證並修正 candPerPage、candPerRow 與 fontSize 等設定值,避免設定檔空白或異常時引發崩潰。
  • 修正萬用字元查詢崩潰問題 (#627, #934):完整初始化低頻字集並最佳化萬用字元查詢,解決 KeyError 異常。
  • 修正大易輸入法符號輸入卡住組字狀態的問題 (#856, #935):補齊 dsymbols.json 中的 = 與 - 定義,並在無候選字按下空白鍵、Enter 或 Esc 時正確重置組字狀態。
  • 補齊大易三碼遺漏的官方字碼 (#520, #1018):補回 tf8(續)等 10 組遺漏字碼。
  • 修正倉頡系列與速成五代碼表中「㤘」的部首編碼 (#390, #1020, #1023):將誤置於手部(qnsm / qm)的「㤘」修正為心部(pnsm / pm)。
  • 修正設定工具 (ConfigApp) 無法自動結束的問題 (#1027, #1028):確保設定視窗逾時關閉時先停止事件迴圈再關閉,避免背景處理程序殘留。

Rime 輸入法

  • 修正共用 librime 引擎生命週期問題 (#1003):移除單一視窗關閉鍵盤或重新部署時過早呼叫的 rime.finalize(),改於後端行程結束時統一釋放,避免其他視窗的 Rime 輸入法失效。

Python / Node.js / Go 後端與其他輸入法

  • 修正設定檔與日誌目錄的 NTFS 權限問題 (#988):移除 os.makedirs 中的 mode=0o700,避免在 Windows 上產生異常的目錄權限(DACL)。
  • 修正按鍵狀態位元遮罩檢查 (#1000):修正 Python 後端對 Windows API GetAsyncKeyState 與 GetKeyState 回傳值的位元檢查邏輯。
  • 提升 Node.js 後端 (nime) 穩定性 (#936, #937, #945, #946, #951, #952, #971):加入全域例外捕捉,並妥善處理未初始化客戶端請求、損毀的 ime.json 或格式錯誤的訊息,防止單一錯誤導致整個 Node.js 後端終止。
  • 修正 Emoji 輸入法候選字游標與選字邊界檢查 (#999):防止空清單時產生 NaN 游標位移,並修正候選字滿 10 個時的數字鍵選字問題。
  • 修正 Go 後端「喵喵輸入法」語系設定 (#1024):將語系註冊由 zh-CN 修正為繁體中文 zh-TW。

安裝程式與文件

  • 修正 Node.js 輸入法設定工具缺少 Python 環境的問題 (#977, #989):勾選安裝小麥注音、狐狸輸入法或行列 30 時,自動一併安裝設定工具所需的內建 Python 執行環境。
  • 安裝程式最低系統需求調整為 Windows 10 (#966, #976, #1005):於安裝初期檢查 Windows 10 以上版本,並移除過時的 VC++ 可轉散發套件下載步驟。
  • 更新開發與建置文件 (#832, #981, #1008):更新 README.md 與 HACKING.txt 中的建置環境與 Python 版本說明。

完整變更對比: v2.0.0-beta4...v2.0.0-beta5

Don't miss a new PIME release

NewReleases is sending notifications on new releases.