繁體中文

問題修復

過高面板自動等比縮放,畫面完整呈現不被截斷

當螢幕直向空間不足而面板(popover)內容過長時,視窗現在會等比縮小而非裁切畫面。過去 clamp_content_height() 直接以可見畫面高度為上限,超出高度的資料列完全無法看見也點不到。新模組 panels/panel_scale.py 會計算適應螢幕的縮放比例,且不低於保底的 MIN_PANEL_SCALE;macOS 的 PopoverViewController.applyPanelScale() 與 Windows 的 _WindowsTrayController._apply_panel_zoom() 則透過 window.usageApplyPanelZoom() 將比例套用至整個面板,確保所有列完整呈現。

新功能

Codex 狀態列支援點記法設定,安裝與移除不再靜默失敗

在 Codex 設定檔 config.toml 未使用獨立 [tui] 區段標頭時,安裝與移除狀態列(status line,終端機最底下的即時資訊列)的功能現在能正確運作。以前若設定檔僅透過 [tui.*] 子表格或頂層點記法鍵值宣告,設定與解除流程會靜默跳過寫入卻回報成功。現在 _insert_table_line()、_remove_table_line() 與 _replace_table_line() 同時支援這兩種結構,每次修改皆透過 tomllib.loads 驗證語法,並在無法安全變更時明確回報失敗。

新功能

Windows 建置校正隱藏匯入路徑,清除無效模組設定

Windows 建置腳本修復了打包設定中的過期模組路徑。先前 v0.29.37 修復了遺漏的 wintray.app 與 tui.app 進入點;但在獨立重構後,scripts/build_windows.ps1 仍將 session_hooks 與 setup_hook 列為舊版頂層模組。雖然 main.py 靜態匯入了兩者而未影響執行檔運作,但這些旗標屬於無效設定,正是過去導致 v0.29.34 至 v0.29.36 版無法啟動的同類隱患。現在旗標已更正為 installer.session_hooks 與 installer.setup_hook,讓 PyInstaller 未來能及早診斷遺漏。

問題修復

macOS 雙擊啟動改用萬國碼讀取,切換開機項目不再崩潰

在 macOS 上透過滑鼠連點開啟 App 時,切換開機啟動項目不再無預警失敗。雙擊啟動時環境中常缺少 LANG 變數,導致子行程(subprocess,由主程式分支出來處理特定任務的背景程序)呼叫 subprocess.run(..., text=True) 時預設採用 ASCII 編碼,讀取 launchctl 或 gh 產生的非 ASCII 文字時會拋出 UnicodeDecodeError 錯誤。現在這些讀取動作一律明確指定使用 UTF-8 編碼,並對無效位元組進行容錯替換。

新功能

Claude 費用納入顧問迭代與 1 小時快取,歷史紀錄重算更精準

查看 Claude 的花費總額時,現在已完整納入顧問迭代與 1 小時快取寫入費用。解析器新增讀取 usage.iterations 與 usage.cache_creation.ephemeral_1h_input_tokens 欄位;其中僅有 advisor_message 迭代會拆分為獨立資料列,避免重複計算普通訊息。1 小時快取(cache,將資料暫存以加速讀取的機制)寫入則依基礎輸入費率的 2 倍計價,且歷史快取架構版本已同步更新,讓過往既有紀錄能自動重算。

問題修復

Windows 系統匣拖曳 Grok 卡片修正,視窗移動行為全數統一

在 Windows 系統匣(tray,工作列右下角常駐圖示區)拖曳 Grok 額度卡片時,視窗移動行為不再與其他三家卡片不同步。系統匣的 WebKit 墊片原先會將額度卡片的空白區域轉為 pywebview 原生拖曳區,但其選取器過去僅列出 Claude、Codex 與 Antigravity。這導致 Grok 卡片掉入共用的卡片排序處理器,在第四張卡片上做出與前三張相同的拖曳手勢時卻引發不同反應。現在選取器已涵蓋全部四家服務商,與 macOS 上的 panel_core.js 保持一致。

新功能

指南移至專屬目錄且整理說明文件,專案根目錄全面整潔

專案根目錄進行了結構整理與檔案搬移。公開的貢獻指南與安全政策文件已移至 .github/ 資料夾。各語言版本的說明文件(README,專案首頁介紹檔)與更新日誌 changelog 則統一集中至 docs/ 目錄。這項整理清空了專案根目錄的雜亂檔案,並同步更新了所有相互參照的超連結。

新功能

簡中日韓說明文件補齊 Grok 介紹,功能清單與比較表全面同步

查閱非英文的專案說明文件時,各語言讀者現在都能獲得完整的 Grok CLI 功能介紹。先前在簡體中文、日文與韓文的說明文件(README,專案首頁介紹檔)中,遺漏了 Grok CLI 卡片於功能清單、「隱藏區塊」設定項目以及跨工具比較表中的資料列。本次更新將這三處缺漏逐一回填至三種語言的說明文件中,確保不同語系的使用者都能查閱到一致的規格與選項說明。

新功能

升級 PyObjC 與 ruff 工具,單次鎖定檔結案五項相依更新

專案相依套件與程式碼檢查工具進行了例行升級。本次將 macOS 系統橋接套件 PyObjC 升級至 12.2.2,並將靜態檢查工具 ruff 更新至 0.16.4。這項調整在單次鎖定檔(lockfile,記錄精確套件版本的設定檔)變更中,一次結案了先前分別提出的 5 項相依套件更新提案,確保建置環境與開發工具鏈維持在最新穩定狀態。

English

BUGFIX

Oversized panels scale down to fit screen instead of clipping

When a popover grows too tall for the screen, it now scales down proportionally rather than getting clipped. Previously, clamp_content_height() capped height strictly to the visible screen frame, leaving any lower rows unreachable and invisible. The new panels/panel_scale.py module computes a fit scale that stays above MIN_PANEL_SCALE, and macOS's PopoverViewController.applyPanelScale() together with Windows's _WindowsTrayController._apply_panel_zoom() apply it across the entire panel using window.usageApplyPanelZoom().

FEATURE

Codex status lines install cleanly on dotted and subtable configs

Codex status lines now install and remove reliably even when config.toml lacks a bare [tui] header. Configurations declaring tui solely through [tui.*] subtables or top-level dotted keys previously caused setup and removal routines to write nothing while falsely claiming success. Helper functions _insert_table_line(), _remove_table_line(), and _replace_table_line() now support both config structures, parse and validate every proposed edit with tomllib.loads, and raise a clear failure when no change can be made safely.

FEATURE

Windows builds point hidden imports to current installer modules

Windows build scripts now direct their hidden import flags to the current installer module paths. The v0.29.37 update restored the missing wintray.app and tui.app entry points; after a separate code refactor, scripts/build_windows.ps1 still pointed to session_hooks and setup_hook as obsolete top-level modules. The packaged executable was never broken because main.py imports both statically, but the outdated flags were dead configuration of the exact kind that previously caused broken v0.29.34–36 builds. They now properly specify installer.session_hooks and installer.setup_hook, enabling PyInstaller to diagnose any future omissions.

BUGFIX

Double-clicked macOS app toggles login items safely with UTF-8

Toggling login items on macOS no longer fails when the app is launched via double-click. Without the LANG environment variable, subprocess.run(..., text=True) defaulted to ASCII, causing a UnicodeDecodeError whenever launchctl or gh outputs contained non-ASCII characters. These process outputs are now explicitly parsed using UTF-8 encoding, safely substituting replacement characters for any invalid byte sequences.

FEATURE

Claude cost totals add advisor iterations and one-hour cache writes

Claude cost totals now accurately capture advisor iterations and one-hour cache write expenses. Claude usage parsers now inspect usage.iterations and usage.cache_creation.ephemeral_1h_input_tokens, creating separate breakdown rows solely for advisor_message iterations to avoid double-counting regular turns. One-hour cache writes are priced at twice the base input token rate, and the history cache schema version has been bumped so past sessions are reparsed automatically.

BUGFIX

Dragging Grok card on Windows moves panel consistently with others

Dragging the Grok card in the Windows tray now moves the entire panel smoothly, just like the other three provider cards. The tray's WebKit shim converts empty space on quota cards into native pywebview drag handles, but its element selector previously named only Claude, Codex, and Antigravity. As a result, dragging Grok fell through to the shared card-reordering logic, causing the fourth card to reorder itself rather than moving the window. The drag selector now includes all four providers, matching behavior already established in panel_core.js on macOS.

FEATURE

Contribution guides and localized docs move to dedicated folders

The repository root has been cleaned up and reorganized. Public contribution guidelines and security policies have been relocated into .github/. Multilingual README documentation and changelog history files are now consolidated under docs/. This housekeeping cleans up the root directory and updates all internal navigation links across the project.

FEATURE

Simplified Chinese, Japanese, and Korean READMEs backfill Grok CLI

Readers consulting localized documentation will now find complete coverage for the Grok CLI card. The Simplified Chinese, Japanese, and Korean README files previously missed mentions of the Grok card in their feature lists, the Hide Sections toggle documentation, and the provider comparison tables. This update backfills all three missing entries across all three translations, ensuring readers across every supported language have access to the exact same feature overviews and settings details.

FEATURE

Bump PyObjC to 12.2.2 and ruff to 0.16.4 across dependency updates

Project dependencies and linting toolchains have been upgraded to their latest releases. This update bumps the macOS system bridge PyObjC to 12.2.2 and the static analysis linter ruff to 0.16.4. By consolidating these version bumps into a single lockfile commit, the release cleanly resolves five separate dependency update requests at once, keeping the development environment and automated checks current.

原始 CHANGELOG

Original changelog過高面板自動等比縮放,畫面完整呈現不被截斷
**Panels that are too tall for the screen now scale down instead of clipping.** `clamp_content_height()` used the visible frame as its ceiling, leaving rows beyond that height unreachable. `panels/panel_scale.py` now calculates a fit scale, no lower than `MIN_PANEL_SCALE`, and macOS's `PopoverViewController.applyPanelScale()` and Windows's `_WindowsTrayController._apply_panel_zoom()` apply it to the whole panel through `window.usageApplyPanelZoom()`.
Original changelogCodex 狀態列支援點記法設定,安裝與移除不再靜默失敗
**Codex status lines now install and remove correctly when `config.toml` has no bare `[tui]` header.** Configurations that declare `tui` only through `[tui.*]` subtables or top-level dotted keys previously made the setup and unsetup paths silently write nothing while reporting success. `_insert_table_line()`, `_remove_table_line()`, and `_replace_table_line()` now handle both forms, validate every candidate with `tomllib.loads`, and report failure when no change can be safely made.
Original changelogWindows 建置校正隱藏匯入路徑,清除無效模組設定
**Windows builds now point their hidden imports at the installer modules' current paths.** The v0.29.37 fix restored the missing `wintray.app` and `tui.app` entry points; after a separate refactor, `scripts/build_windows.ps1` still named `session_hooks` and `setup_hook` as obsolete top-level modules. The bundle was never broken — `main.py` imports both statically — but the flags were dead configuration of exactly the kind that shipped the unusable v0.29.34–36 builds. They now name `installer.session_hooks` and `installer.setup_hook`, so PyInstaller can diagnose a future omission.
Original changelogmacOS 雙擊啟動改用萬國碼讀取,切換開機項目不再崩潰
**Toggling the macOS login item no longer fails when the app was opened by double-clicking.** Without `LANG`, `subprocess.run(..., text=True)` used ASCII and could raise `UnicodeDecodeError` while reading `launchctl` or `gh` output containing non-ASCII text. Those reads now explicitly use UTF-8 with replacement for invalid bytes.
Original changelogClaude 費用納入顧問迭代與 1 小時快取,歷史紀錄重算更精準
**Claude cost totals now include advisor iterations and one-hour cache writes.** The Claude parsers now read `usage.iterations` and `usage.cache_creation.ephemeral_1h_input_tokens`; only `advisor_message` iterations get separate entries, avoiding double-counting ordinary messages. One-hour cache writes are priced at twice the base input rate, and the history cache schema is bumped so existing entries are reparsed.
Original changelogWindows 系統匣拖曳 Grok 卡片修正,視窗移動行為全數統一
**Dragging the Grok card no longer moves the panel differently from the other three on Windows.** The tray's WebKit shim turns a quota card's empty area into a native `pywebview` drag region, but its selector listed only Claude, Codex and Antigravity. Grok fell through to the shared card-reorder handler instead, so the same gesture that moved the window from the first three cards did something else from the fourth. The selector now matches all four, as `panel_core.js` already did on macOS.
Original changelog指南移至專屬目錄且整理說明文件,專案根目錄全面整潔
Moved public contribution and security guides to `.github/` and localized README and changelog files to `docs/`, cleaning up the repository root and updating all links.
Original changelog簡中日韓說明文件補齊 Grok 介紹,功能清單與比較表全面同步
Backfilled the Grok CLI card into the Simplified Chinese, Japanese and Korean READMEs, which had missed the feature list entry, the Hide Sections list and the comparison-table row.
Original changelog升級 PyObjC 與 ruff 工具,單次鎖定檔結案五項相依更新
Bumped PyObjC to 12.2.2 and ruff to 0.16.4, closing five separately raised dependency updates in a single lockfile change.