Files
OpenTerminal/CHANGELOG.zh-TW.md
T
Bill 14f5963706
CI / typecheck + test + build (windows) (push) Canceled after 0s
build: drop MSI installer, NSIS exe only
electron-updater never supported MSI auto-updates; the exe is the only
installer from v1.0.22 on. release.cjs no longer expects/uploads the msi.
2026-10-08 13:25:01 +08:00

199 lines
16 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# OpenTerminal 更新日誌
## v1.0.22 - 2026-10-08
### 輸入法
- **修復中文輸入法候選視窗不跟隨游標**(v1.0.21 回歸):v1.0.21 的建置環境中終端機元件相依未按鎖定版本安裝,安裝包實際打包的是不含上游輸入法修復的舊版本;本版本恢復 v1.0.20 所用的終端機元件版本,候選視窗重新緊貼游標。
### 安裝包
- 不再提供 MSI 安裝包(electron-updater 本就不支援 MSI 自動更新),統一使用 NSIS exe 安裝包。
### 內部
- 打包流程新增相依一致性校驗:建置前自動比對實際安裝的相依與鎖定清單,不一致即中止,防止同類問題再次發生。
## v1.0.21 - 2026-10-07
### 背景圖體驗
- **淺色主題不再「洗白」**:設定背景圖後,調低透明度在任何主題下都是壓暗圖片(此前淺色主題下調透明度會把圖洗成白色,文字完全看不清)。
- **文字自動提亮**:圖片模式下終端文字對比度提升至 WCAG AA 級別,淺色主題的深色文字在壁紙上也能清晰可讀。
- **新增「背景壓暗」滑桿**(設定 → 主題):在圖片之上疊加獨立壓暗層,圖片保持飽和度的同時整體變暗,亮圖建議 30–50%。
- 背景圖預設透明度從 60% 調整為 30%。
### 效能
- 設定寫入不再讓所有終端窗格重寫參數並重排(欄位級訂閱,只有相關窗格響應)。
- SFTP 檔案列表虛擬捲動:上萬條目的目錄(如 node_modules)不再卡死視窗。
- 單個窗格崩潰不再拖垮整個工作區:每個面板獨立錯誤邊界 + 重試按鈕。
- SSH 底部面板拖動更順暢;傳輸面板與監控圖表的渲染開銷顯著降低。
### 安裝包體積
- 安裝包精簡約 **90MB**(內建依賴 98MB → 8.1MB):純介面依賴不再重複打進安裝包。
### 安全加固
- SFTP 上傳/下載與 ZMODEM 收發的本機路徑,只接受透過系統對話框選擇的位置,阻斷惡意構造路徑的讀寫。
- SSH 私鑰檔案增加校驗(必須是 ≤1MB 的普通檔案)。
- 視窗安全選項顯式固定(contextIsolation / nodeIntegration / webSecurity),不再依賴預設值。
### 穩定性修復
- ZMODEM:寫入錯誤正確終結傳輸、進度事件節流、會話 detach 時補發終結事件。
- 連接/命令設定檔損壞時自動備份舊檔再重建,不再靜默丟配置。
- 佈局範本應用失敗時恢復原佈局;鎖屏期間後彈出的浮層也被正確禁用。
- 發佈通道防降級(拒絕把舊版本蓋到更新通道),資產按 sha512 校驗。
- SFTP 各操作增加超時兜底,半死連接自動重試一次。
- 啟動鏈路與主機金鑰校驗多處加固。
### 其他
- 終端標籤的自動編號標題(「終端 3」)現在跟隨介面語言切換。
- 鎖屏快捷鍵 Ctrl+L 改用實體鍵位判定,Dvorak 等非 QWERTY 佈局也能正確觸發。
- 設定頁移除無效的「更新通道」下拉框。
## v1.0.20 - 2026-10-01
### 輸入法修復
- **修復中文輸入法候選窗不跟隨游標**:此前在終端裡輸入中文時(尤其是 Kimi Code、Claude Code 等高頻刷新的 TUI 介面),候選窗會漂到遠離游標的位置;現已緊貼游標顯示。內建終端元件升級至包含上游輸入法修復的版本。
### 鎖屏加固
- **鎖定期間移除應用選單**:Alt 鍵喚出的選單裡「重新載入 / 開發者工具 / 縮放」可透過滑鼠點擊繞過鍵盤攔截,鎖定期間整個選單摘除,解鎖後自動恢復。
- Ctrl+L 立即鎖屏的按鍵判定重構為獨立模組並補充 29 條測試案例,防止回歸。
- 全域喚起快捷鍵的錄製器保留 Ctrl+L 不允許佔用,避免全域註冊在系統層靜默停用緊急鎖屏。
- 修復:系統休眠或視窗失焦後,鎖屏密碼框的冷卻倒計時可能超過真實截止時間,導致可輸入時間被無謂延長。
## v1.0.19 - 2026-09-28
### 更新機制調整
- **更新來源改為 GitHub 優先**:檢查更新先走 GitHub releases(跟隨系統代理),並帶 20 秒連通性探測——沒有代理或連不通時不會空等,自動改用國內更新通道(強制直連)兜底。
- **GitHub releases 恢復隨版本發佈安裝包**(exe + blockmap + latest.yml),與國內通道保持一致。
### 終端高亮:效能與相容性
- **引擎提速**:顏色序列改為編譯期預計算(不再逐處解析 hex);高亮區間認領從線性掃描改為有序插入(二分搜尋);純文字洪流(如 cat 大檔案)跳過重複掃描。實測 200KB 負載:密集匹配場景提速約 19–56%,純文字流式提速約 54%,輸出與舊版逐位元組一致。
- **跳脫序列覆蓋更全**:新增 DCS/APC/PM/SOS(tmux 透傳、sixel、kitty 圖形協定)與 DEC 單字元序列(儲存/恢復游標等)的辨識,這些場景下同行的正常文字不再遺失高亮。
### 高亮設定頁修復
- 「依分類分組」檢視現在真正依分類聚簇(此前會被優先級排序打散)。
- 規則編輯器新增「基礎規則」開關:可將自建規則加入「僅基礎」模式的生效集合。
- 規則集(profile)編輯器勾選部分規則時,會列出未包含的規則。
- 「取代現有規則」匯入增加確認提示,且每次開啟視窗預設回到「附加」。
- 修復若干小問題:快速連續開關規則可能遺失改動、數值分級列不按閾值排序、清除背景色後色塊殘留等。
## v1.0.18 - 2026-09-24
- **修復 v1.0.17 的嚴重回歸:鎖定後無法輸入密碼**。v1.0.17 在鎖定期間由繪製程序攔截了全部鍵盤輸入(本意是擋住縮放/重新整理快捷鍵),但按鍵的預設行為正是「向聚焦的輸入框插入字元」,導致鎖定畫面密碼框收不到任何輸入、無法解鎖。
- 快捷鍵攔截已全部移到主程序(`before-input-event`),只攔截重新整理/開發者工具/縮放組合鍵,一般輸入不受影響。
- **新增鎖定快捷鍵 Ctrl+L**:應用內任意位置(包括終端機裡)按下立即鎖定;未設定鎖定密碼時不占用該組合鍵(shell 的 Ctrl+L 清畫面不受影響)。
- **已被 v1.0.17 鎖定的使用者恢復方法**:完全結束應用 → 刪除 `%APPDATA%\OpenTerminal\lock.json` → 重新啟動(鎖定資料刪除後不會再彈鎖定畫面),升級到本版本後可重新設定鎖定密碼。
## v1.0.17 - 2026-09-24
- **新增 設定 → 鎖定 分頁**:可設定、修改、移除鎖定畫面密碼(僅存於本機、scrypt 單向雜湊,不存明文、無帳號體系)
- **三種鎖定方式**:立即鎖定、系統閒置指定時長後自動鎖定(1/5/15/30/60 分鐘,預設關閉)、啟動時鎖定
- 鎖定後以完全不透明的遮罩覆蓋視窗,背後的終端機工作階段保持執行、不會中斷,解鎖後恢復原狀
- 密碼輸錯進入漸進冷卻(1 秒→30 秒),防止在鍵盤前暴力猜測
- **結束並重新啟動應用後鎖定仍然生效**:系統匣退出、工作管理員強制結束、當機都繞不過鎖定畫面
- 鎖定期間停用 Ctrl+R / F5 重新載入、開發者工具與縮放快捷鍵,避免誤觸終止遮罩背後的工作階段
- 忘記密碼無法找回,只能刪除本機 `%APPDATA%\OpenTerminal\lock.json` 後重新設定
- 打包版本不再讀取 `ELECTRON_RENDERER_URL` / `OT_UPDATE_URL` 環境變數,阻斷把應用或更新通道指向惡意位址的注入路徑
- 繪製程序 preload 重新啟用沙箱隔離
- known_hosts 儲存無法讀取或損壞時改為拒絕連線、提示修復或刪除檔案,不再靜默覆蓋全部已固定的主機指紋
- 連線時的密碼/通關密語輸入與書籤的認證方式統一(金鑰/agent 認證的書籤不再彈出密碼框、不再送出殘留的已存密碼)
- 修正 SSH 連線異常中斷時工作階段結束通知漏發或重發的問題,終端機不再卡在「連線中」
- 分割面板的系統監控在一側關閉後不再誤停另一側的監控
- 工作階段日誌索引加入路徑校驗,防止被竄改的索引把日誌寫到目錄之外
- 設定儲存改為原子寫入,Windows 下檔案被佔用時自動重試,修正偶發的設定儲存失敗
- 新增 CI(GitHub Actions):型別檢查 + 10 個離線測試 + 建置
- 視窗隱藏到系統匣時,凍結偵測日誌不再把計時器節流誤報為約 1 分鐘的「當機」
## v1.0.16 - 2026-09-23
- **內建規則 11 條 → 22 條**:新增危險/破壞性命令(`rm -rf`、`mkfs`、`dd if=`、`chmod 777`、`drop database`、管線給 `sh` 等)、疑似金鑰/權杖提醒、刪除/移動/覆蓋操作、新建/建立操作、日誌級別、結束代碼、HTTP 狀態碼、耗時(毫秒)、百分比進度、網路與 IP 位址、時間日期、`root@` 提示字元、Shell 關鍵字、字串、環境變數等
- **狀態詞三分配色且不分大小寫**:成功(`Success` / `Succeeded` / `Successfully` / `good` / `done` / `OK` / `✓`)、警告(`Warning` / `Caution` / `Deprecated` / `⚠`)、錯誤與致命(`Error` / `NG` / `err` / `bug` / `fail` / `FATAL` / `CRITICAL` / `PANIC` / `✗`)各自一種顏色
- `not ok` / `not found` 正確顯示為錯誤,不會被誤染成成功綠
- **數值分級取色**:百分比低於 20% 紅、20–50% 黃、50–80% 淺綠、80% 以上綠;結束代碼、HTTP 狀態碼、耗時同樣按數值分級取色
- **高亮模式三檔**:全部 / 僅基礎(只保留錯誤、成功、警告、危險命令、金鑰等關鍵規則,開銷約為全部的 1/4)/ 關閉(零開銷)
- 規則支援「忽略大小寫」與「數值分級」開關,編輯器內可用測試文字即時預覽著色效果
- 規則可匯入 / 匯出 JSON,方便團隊分享同一套配色
- **按主機規則集**:可把規則子集存成命名規則集,並在 SSH 連線編輯裡綁定給某台主機(預設關,未綁定的主機跑全部規則)
- **命中/耗時統計**:每條規則在本工作階段的命中次數與掃描耗時(預設關,關閉時零開銷)
- **高亮顏色跟隨終端機主題**:規則顏色映射到目前主題的調色盤,換主題不再突兀(預設關)
- 高亮設定頁新增分類欄(安全 / 狀態 / 檔案 / 網路 / 文字 / 數值),可按分類分組檢視規則
- 修復高亮設定頁工具列在窄視窗下標籤被擠成直排、按鈕不靠右的問題
- 新增關鍵詞高亮規則迴歸測試(詞邊界、大小寫、反向詞、數值分級、匯入匯出、分塊流),`npm test` 全量通過
## v1.0.15 - 2026-09-20
- **自訂終端機背景圖片**:設定 → 主題 → 背景圖片,可為終端機指定任意本機圖片作為背景,並支援 10%–100% 的圖片不透明度調整;移除圖片後恢復純色背景
- **主題編輯器重名提醒**:新增/編輯主題與內建或其他主題重名時顯示黃色提示(仍可儲存)
- 主題編輯器種子顏色自動規範化,非法顏色值不再能進入自訂主題
- 自訂主題顏色資料損壞時自動修復為預設色,並記錄警告日誌
- 設定彈窗左側導覽選取項文字改為白色,與未選取項對比一致(修復藍色文字在深色背景上看不清的問題)
- 背景圖片、透明度等新控件與四種語言(簡/繁/英/日)文案同步上線
- 渲染程序與主程序新增凍結時長探測日誌,便於後續診斷「卡死無反應」類問題
## v1.0.14 - 2026-09-20
- 修復上傳 **大於約 250KB** 的檔案會被靜默損壞的問題(檔案大小正確但內容出現位元組錯亂)
- 修復每次下載洩漏一個遠端檔案句柄、每次傳輸遺留一個 SFTP 通道的問題;伺服器協定異常不再導致整個應用結束
- 上傳遇到同名檔案時先詢問是否覆蓋;刪除多個檔案時部分失敗會如實報告
- 權限編輯修復:未知權限的檔案不再誤發 `chmod 000`;GID 留空不再被誤改成 UID 的值;正確顯示並保留 setuid / setgid / sticky 特殊位
- chmod / chown 增加逾時,遠端無回應不再永久轉圈
- 修復 SSH 輸出中文亂碼(跨網路封包被截斷的多位元組字元)
- 修復按 Tab 接受補全後命令歷史丟失或記錯亂的問題
- 修復 Ctrl+U / Ctrl+W 等編輯鍵被寫進命令歷史(表現為歷史裡出現「兩條命令拼接」)
- `cd ~/目錄`、`cd $HOME/...` 現在能正確記憶目錄,新終端按此恢復
- 中文行內的網址連結點擊範圍不再錯位;視窗尺寸過小時不再向終端發送異常尺寸
- SSH 連線結束時顯示真實離開代碼;ZMODEM 逾時/出錯不再向終端和日誌傾倒亂碼
- 啟動恢復失敗不再導致本次執行期間工作階段快照永久停止儲存
- 監控面板 CPU / 網路歷史曲線現在會即時重繪;切到本地終端工作區時停止向伺服器輪詢
- 廣播輸入:SSH 分屏關閉一側不再讓另一側丟失廣播目標;取消勾選一個目標不再清空其餘選擇
- 連線失敗時顯示真實原因(密碼錯誤/拒絕連線等),雙擊不再重複建立連線
- 修復「關閉其他 / 關閉右側」會漏關標籤的問題
- 介面語言切換首影格即生效;切換主題後活動標籤文字顏色自動適配,不再出現淺色主題下看不清
- 私鑰路徑欄位提示更正為「本機路徑」(此前提示為伺服器路徑,照做會連線失敗)
- 禁止把檔案拖入視窗導覽;外部連結僅允許 http(s) / ftp;IPC 增加來源校驗
- 僅密碼認證的連線才使用儲存的密碼(金鑰認證的連線不再回退發送密碼)
- 連線書籤、主機指紋等設定改為原子寫入,當機不再導致資料丟失
- 渲染程序異常結束時自動回收其全部終端連線與日誌
- 自訂主題資料損壞不再導致應用無法啟動
- 內建更新通道發布改為原子操作,發布中途失敗不再導致自動更新不可用
## v1.0.13 - 2026-09-20
- 支援簡體中文 / 繁體中文 / English / 日本語,入口在「設定 → 系統 → 介面語言」,切換即時生效並持久化
- 全應用文案完成遷移:設定各頁、工作區、終端右鍵選單與搜尋、SSH 連線管理、檔案面板、系統監控、命令面板、系統匣選單與關閉詢問
- antd 元件內建文案(空狀態、分頁等)隨介面語言切換
- 更新日誌改為**隨安裝包內建**,離線也能查看,不再依賴網路介面
- 更新日誌支援多語言:依目前介面語言顯示,某版本缺翻譯時自動回退簡體中文
- 修正「關閉按鈕行為 = 每次詢問」無效的問題(先前會被靜默改回「最小化到系統匣」)
- 高亮規則不再因欄位形狀問題被靜默丟棄:優先級字串、0/1 布林值、缺少前景色等會自動修復,未知欄位保留
- 設定解析警告寫入 `settings-warnings.log`,設定異常可追溯
- 終端右上角工具列可設定(設定 → 渲染與行為):開啟工作區目錄(預設開啟)、記錄工作階段日誌、開啟日誌目錄
- 「開啟工作區目錄」按鈕:一鍵在檔案總管開啟終端目前目錄,隨 `cd` 即時追蹤
- 全域喚起快速鍵改為**按鍵錄製**:點擊輸入框後直接按組合鍵,Esc 取消、退格清空;需帶修飾鍵或功能鍵,避免誤佔一般按鍵
- 「輸入建議」「記錄命令歷史」預設關閉(既有安裝會一次性重置,之後手動開關不再被覆寫)
- 修正設定對話框內容欄無法捲動的問題(antd v6 容器類名變更),主題頁移除多餘的雙層捲軸
- 介面細節:渲染模式與介面語言按鈕改為連體分段樣式,選取狀態文字對比度修正
發佈時由 `scripts/sync-changelog.cjs` 自動把 `RELEASE_NOTES.zh-TW.md` 合併進此檔案;
內容隨安裝包內建,「關於」頁的更新日誌會依當前介面語言讀取(缺翻譯的版本自動回退簡中)。
## v1.0.12 - 2026-09-20
### 淺色主題對比度修復
- 分頁列/側邊欄顏色改為依主題背景亮度自動調整:淺色主題下分頁列與終端同色系(不再出現混濁灰色條),深色主題外觀不變
- 修復淺色主題下分頁呈深色塊、白字的問題:分頁底色與文字改由主題變數接管,非作用中分頁淺底深字,作用中分頁文字自動加深
- 設定對話框全面適配淺色主題:字型、高亮、主題等頁面的標籤/說明/表格/調色盤文字改為跟隨主題前景色,淺色下清晰可讀
### 穩定性
- 工作階段日誌寫入改為每檔案緩衝 + 單一寫入迴圈:高輸出情境下合併寫入、順序有保障,不再隨寫入次數無限堆積
- 設定儲存序列化:系統匣修改關閉行為與設定介面儲存並行時不再互相覆蓋而遺失更新