# 📝 更新履歷 (Changelog)
本專案遵循 [Semantic Versioning (語意化版本)](https://semver.org/lang/zh-TW/) 規範。
---
## [v1.4.3] - 2026-10-08
### ✨ 新增功能與生態系連動
- **KyteView 跨進程生態系連動預覽**:
- 支援在置物架選取檔案後按 Space 空白鍵或透過右鍵選單呼叫 KyteView 快速全功能檔案預覽。
- 內建 Named Pipe 原生 IPC 協議,支援自動背景喚醒與容錯安全處理。
- **偏好設定介面與自訂項大幅升級**:
- 重構為三大模組化分類(召喚與觸發、置物架與拖曳、系統與暫存)。
- 新增開機自動啟動 (`Launch on Startup`)、檔案入架物理提示音效、拖出檔案後自動移除、清空自動隱藏視窗、記憶上次位置等實用選項。
- **Microsoft Outlook 郵件附件支援強化**:
- 支援直接將 Outlook 郵件附件以滑鼠拖曳入架。
- 修復 OLE 剪貼簿串流解碼錯誤,並增強 Windows COM 附件自動提取相容性。
---
## [v1.4.2] - 2026-10-07
### 🛠️ 穩定性與架構優化
- **單一執行個體單例防重複啟動 (Single-Instance IPC)**:
- 採用 `QLocalServer` / `QLocalSocket` 機制,二次啟動時自動喚醒既有置物架視窗。
- **金流結帳與授權模組更新**:
- 整合 ECPay 綠界結帳按鈕與 Lemon Squeezy 結帳流程。
- 序號前綴更新為 `KS`,修復授權對話框多語言參數衝突問題。
- **CI/CD 自動化測試體系**:
- 建立 GitHub Actions 自動化測試工作流程,擴充全核心功能自動化測試套件至 50+ 項。
---
## [v1.4.1] - 2026-10-06
### 🚀 升級與發行管道
- **版本自動檢查與升級模組**:支援檢查最新釋出版本並提供更新指引。
- **套件清單支援**:新增 WinGet 與 Scoop 安裝腳本與發佈流程。
- **英文手冊與雙語安裝檔**:補齊 `guide_en.html` 與英文安裝程式支援。
---
## [v1.4.0] - 2026-10-05
### 🌐 多國語言與國際化支援 (i18n & Multi-Language Support)
- **全新國際化 (i18n) 架構**:
- 新增 `kyteshelf/i18n` 翻譯模組,內建完整 **繁體中文 (`zh_TW`)** 與 **美式英文 (`en_US`)** 雙語字典。
- 支援全系統即時文字查詢函式 `t(key, **kwargs)`,支援插值變數格式化輸出。
- **介面語系動態無縫切換**:
- 設定對話框新增語系選單,支援在「繁體中文」與「English」之間切換。
- 切換語系時立即觸發所有視窗與對話框 `retranslate_ui()`,無需重啟應用程式即刻生效。
- 涵蓋主置物架、工具列按鈕與 ToolTips、空狀態提示卡、右鍵選單、自黏便箋 (Sticky Note)、多置物架列表與管理員、授權啟用對話框與自訂快捷鍵設定。
- **設定檔與系統語系持久化**:
- `ConfigManager` 新增 `language` 設定欄位,記錄使用者自訂偏好,重啟後自動沿用。
---
## [v1.3.0] - 2026-09-22
### ⚡ 效能與響應極速優化 (Performance & Instant Response)
- **徹底消除單筆刪除延遲(600ms 降至 0ms)**:
- 徹底移除 ToolTip 富文字中直接嵌入原始大圖 `
` 的同步解碼機制。
- 改為輕量零延遲的圖片元數據卡片(包含檔名、`📐 寬 × 高 px` 解析度與檔案大小)。
- 徹底根除因超大 ToolTip 分層視窗引發的 Windows DWM 系統報錯 `UpdateLayeredWindowIndirect failed (參數錯誤。)`。
- 所有檔案類型(高畫質大圖、Excel 表格、文件或壓縮檔)的單筆刪除與懸停反饋全面達到 0 延遲秒殺。
### 🛡️ 穩定性與拖曳體驗強化 (Stability & Drag Resilience)
- **拖曳傳遞成功後精準清架**:
- 外部拖曳放開成功(`action != Qt.IgnoreAction`)時,無論是複製或搬移模式,中繼置物架均會即時移除該項目並同步儲存工作階段。
- **拖出未完成(手滑放開)防吞噬機制**:
- 解決拖曳未完全移出、不小心在置物架內或邊界放開時,被自身接收並誤降級轉為便箋的「自吞」Bug。
- 增加落點與游標邊界雙重判定,若尚未拖出置物架,檔案完好保留,不跑版、不轉為便箋、不誤刪。
- 修正 `dropEvent` 本機檔案判定,杜絕實體檔案重複接收時穿透為純文字自黏便箋的問題。
- **彈出對話框防失焦隱藏**:
- 修復未釘選時開啟「重新命名」、「偏好設定」、「打包 ZIP 存檔」或便箋視窗時,置物架因失去焦點瞬間隱藏失蹤的問題。
### 🔧 系統整合與資料持久化 (Persistence & System Integration)
- **PyInstaller 打包環境路徑保護**:
- 偵測 `sys.frozen` 執行階段,打包環境下一律持久化儲存設定檔與 Session 至 `%APPDATA%\KyteShelf\`,避免寫入臨時解壓目錄 `_MEIPASS` 導致重啟資料遺失。
- **工作階段暫存清理防誤刪**:
- 啟動清理超過 7 天的舊暫存檔時,自動比對 `session.json`,排除目前置物架上仍在使用的便箋與截圖,防止重要內容遺失。
- **Windows 深色模式(Dark Mode)適配**:
- 托盤選單與右鍵選單明確指定文字顏色為 `#1E293B`,徹底解決深色模式下的「白底白字」對比問題。
---
## [v1.2.0] - 2026-09-22
### ✨ 新增功能 (Features)
- **剪貼簿快速入架 (Clipboard Quick Paste)**:
- 支援全域快捷鍵 `Ctrl + V` 或點擊「貼上」按鈕,直接將剪貼簿內容入架。
- **多層級智慧格式解析**:
- 本機實體檔案:支援檔案總管複製的多檔案批次貼入。
- 實體影像與截圖:直接讀取點陣圖 (`QImage`),自動存為高品質本機圖片檔案入架。
- 遠端網頁圖片:自動下載遠端圖片 URL 或 HTML 內嵌 `
` 圖片為實體檔案。
- 文字與網址:自動轉換為便箋,支援點擊直接編輯與跨視窗拖出純文字。
- **圖片快速預覽 Tooltip (Instant Thumbnail Preview)**:
- 滑鼠懸停於圖片檔案時,Tooltip 不再只有純路徑,而是即時渲染深色現代卡片預覽。
- 支援等比例縮圖、高精度影像尺寸 (`px`) 與檔案大小 (`KB`/`MB`) 居中展示。
- 隱藏多餘本機路徑文字,畫面乾淨專注。
- 採用 `QImageReader` 快速讀取 Header,即便預覽 4K/8K 巨幅圖檔亦維持 10ms 內零延遲流暢度。
- 支援 `.png`, `.jpg`, `.jpeg`, `.webp`, `.bmp`, `.gif`, `.ico`, `.svg` 等主流格式。
- **單項目獨立刪除與全域 Delete 鍵刪除**:
- 清單項目右側新增懸浮出現的專屬圓形 `✕` 刪除按鈕,滑過高亮提示,可精準移除單一項目。
- 支援按下鍵盤 `Delete` 與 `Backspace` 實體鍵直接刪除選取的項目(支援多選與全選批次刪除)。
### 🎨 介面與視覺重構 (UI Redesign & Aesthetics)
- **頂部 Header 降噪與開闊版面**:
- 將原本擁擠混雜的按鈕分流,頂部僅保留視窗核心控制(`+` 新增、`📌` 釘選、`⚙` 設定、`✕` 關閉),消除視覺壓迫。
- 移除頂部溢出切角的 `border-top`,改用 macOS / iOS 風格的居中 3px 圓角 Accent Handle 飾條與主題色狀態圓點 `●`。
- **全新 Empty State 拖曳引導卡片**:
- 置物架為空時,呈現精緻圓角虛線 Drop Zone,中央配備質感托盤圖示與顯眼的「📋 貼上剪貼簿內容 (Ctrl+V)」主要按鈕。
- **底部快捷操作工具列 (Footer Toolbar)**:
- 左側配置拖曳模式切換膠囊(`📋 複製模式` / `🚚 搬移模式`)。
- 右側整合 `貼上`、`全選`、`ZIP`、`清空` 微按鈕;為空時自動反灰禁用,有檔案時點亮啟用。
- 操作提示升級為 Toast 浮動微膠囊通知,視覺無干擾。
### 🐛 問題修復 (Bug Fixes)
- **修復檔案上下拖曳排序後無法拖出視窗的 BUG**:優化拖曳動作閥值與內部 Reorder 事件流,確保內部自訂排序與外部釋放傳遞互不干擾。
- **修復 Delegate 狀態異常拋錯**:修正 `QStyledItemDelegate` 存取未定義之 `State_Selected` 屬性造成的終端機例外報錯。
- **修復全選後按鍵盤 Delete 沒反應**:解決 UI 按鈕奪取焦點與 `keyPressEvent` 被重複定義覆蓋的問題,並掛載視窗級 `QShortcut` 確保刪除必生效。
---
## [v1.1.0] - 2026-09-22
### ✨ 新增功能 (Features)
- **多置物架自訂命名 (Shelf Renaming)**:
- **雙擊改名**:滑鼠懸停於置物架標題文字有互動反饋,按兩下直接開啟專屬命名對話框。
- **右鍵選單改名**:支援在標題列或清單空白處右鍵點選「✏️ 重新命名置物架...」。
- **專屬精緻命名對話框 (`RenameDialog`)**:
- 自動聚焦與全選文字,支援 `Enter` 確認、`Esc` 取消。
- 提供「還原預設」功能,清空或還原時自動恢復為預設的 `置物架 #N` 編號。
- 對話框設計契合全域主題色與現代卡片圓角陰影。
- **系統托盤「📑 置物架清單」動態管理**:
- 托盤選單動態列出目前所有置物架的自訂名稱、檔案數量與釘選狀態(`📌` 標記)。
- 支援一鍵喚出/置頂指定置物架,並可直接自托盤快速觸發重新命名與清空。
- **工作階段智慧持久化 (Session Persistence)**:
- `session.json` 完整儲存並還原每個架子的自訂名稱、視窗座標、釘選與拖曳模式。
- 即使內容暫時為空,具備自訂名稱或釘選的置物架於重新啟動後亦會自動保留還原。
---
## [v1.0.2] - 2026-09-22
### ✨ 新增功能 (Features)
- **文字與網址改為自黏標籤 (Sticky Notes) 機制**:
- 拖入文字或網址時,不再直接存為冷冰冰的 `.txt` 或 `.url` 檔案項目,而是自動轉化為「自黏標籤 / 便箋」。
- **視覺便箋化**:清單項目具備便籤黃柔和底色、專屬繪製的自黏便箋圖示(📝 便箋 / 🔖 網址標籤)與內容摘要預覽。
- **獨立便箋視窗**:雙擊自黏標籤項目或透過右鍵選單,可彈出獨立、支援縮放與置頂釘選的無邊框便利貼視窗(`StickyNoteWindow`),可自由閱讀、編輯並即時雙向同步回置物架。
- **智慧拖放 (Smart Drag-out)**:拖出自黏標籤時,直接提供純文字 MIME,拖入瀏覽器輸入框、聊天室、Word 或程式編輯器可直接貼入內文或網址;同時相容檔案總管拖曳落地。
- **右鍵選單增強**:新增「📝 開啟自黏便箋」、「📋 複製內容」、「🌐 在瀏覽器開啟(網址專屬)」等快捷功能。
### 🏗️ 架構重構 (Refactoring & Architecture)
- **系統名稱更名為 KyteShelf**:
- 正式將系統與模組命名由 `DropShelf` 更新為 `KyteShelf`(套件路徑 `kyteshelf`,主視窗類別 `KyteShelfWidget`)。
- **專案全面模組化 (Modular Architecture)**:
- 將架構拆解為獨立職責的 `kyteshelf` 套件,提升程式碼可讀性、維護性與擴充性。
- **核心層拆解**:
- `kyteshelf.utils`:收攏平臺資源路徑解析(支援開發環境與 PyInstaller 打包)及 Windows `--noconsole` 模式標準串流重定向防崩潰機制。
- `kyteshelf.config`:獨立 `ConfigManager` 設定管理模組,處理本機與 AppData 路徑優先判定、讀寫持久化與即時變更通知。
- `kyteshelf.input_monitor`:拆分全域滑鼠晃動偵測演算法、修飾鍵轉換與 `pynput` 熱鍵監聽機制。
- **UI 視窗層拆解**:
- `kyteshelf.ui.hotkey_dialog`:獨立熱鍵錄製輸入框 (`HotkeyRecorderEdit`) 與偏好設定視窗 (`SettingsDialog`)。
- `kyteshelf.ui.shelf_list`:獨立清單元件 (`ShelfFileList`),封裝拖曳傳遞、右鍵功能、圖片批次處理與 Outlook 郵件自動掛載。
- `kyteshelf.ui.shelf_widget`:獨立懸浮置物架主視窗 (`KyteShelfWidget`) 與拖放暫存邏輯。
- `kyteshelf.ui.shelf_manager`:獨立多置物架生命週期管理員 (`ShelfManager`)、系統托盤常駐與資料夾變更監控。
- 打包與執行流程全面轉移至 `main.py`。
- **打包配置同步**:
- 更新 `DropShelf.spec` 與 `README.md`,打包與執行流程全面轉移至 `main.py`。
---
## [v1.0.1] - 2026-09-21
### ✨ 新增功能 (Features)
- **視覺化偏好設定面板 (Settings GUI)**:
- **全域快捷鍵自訂**:提供常用組合鍵下拉選單(如 `Ctrl + ~`、`Ctrl + Shift + D`、`Alt + Space`),並支援直接在鍵盤按下組合鍵的**按鍵錄製模式**。
- **晃動靈敏度調節**:新增 1 ~ 5 級滑桿(偏鈍防誤觸 <---> 極靈敏),可即時調整判定閥值。
- **主題色彩自訂**:內建 6 款精選高質感色系,並支援系統調色盤選取任意顏色。
- **即時熱生效 (Live Reload)**:儲存後立即更新目前所有開啟中的置物架主題色與全域監聽器,無需重新啟動程式。
- **設定檔自動持久化**:自動記憶於 `config.json`,開關機均能保留自訂偏好。
- **快速入口**:
- 置物架視窗頂部控制列新增「⚙️」設定按鈕。
- 右下角系統匣(Tray)選單新增「⚙️ 偏好設定...」選項。
### 🐛 問題修復 (Bug Fixes)
- 修復在 Windows 高 DPI/螢幕縮放(如 125% 或 150%)下,設定視窗高度被限制導致快捷鍵輸入框與下拉選單文字被嚴重壓扁裁切的問題。
- 修復 QComboBox 下拉箭頭覆蓋文字與預覽卡片 QSS 選擇器樣式污染問題。
---
## [v1.0.0] - 2026-09-21
### 🚀 初始版本發佈 (Initial Release)
- **晃動召喚 (Shake to Summon)**:拖曳檔案時左右輕晃游標即可喚出置物架。
- **全域快捷鍵**:預設 `Ctrl + ~` 快速開啟或隱藏。
- **檔案暫存與批次管理**:支援跨路徑檔案集中收集,再一口氣拖出至目標資料夾。
- **影像快速處理**:右鍵選單支援圖片快速縮小 50%、轉 JPG 與轉 PNG。
- **Outlook 自動附加**:右鍵直接將選取檔案掛載至當前編輯中的 Outlook 郵件。
- **一鍵打包壓縮**:快速將置物架內所有檔案封裝為 `.zip` 壓縮檔。
- **資料夾變更監控**:可監控指定目錄,新加入的檔案自動送入置物架。
- **系統托盤常駐**:支援背景最小化常駐與多置物架建立。