繁體中文

新功能

更新完不再被假標籤糾纏,重整與安裝按鈕更聽話

現在你只要一升級完新版本,畫面底下的「可更新」標籤就會瞬間消失。以前系統因為有 24 小時的冷卻期,就算你已經是最新版了,它還是會看著舊的筆記本死抓著標籤不放,讓你以為自己沒升級成功。另外,當你急著多按幾次「手動重整」按鈕時,系統不會再把你第二次的點擊直接丟進水裡,而是會乖乖排隊等上一輪忙完再幫你重整一次。對於只裝 Codex 的使用者,安裝連線程式的按鈕現在也會正確出現了,不再因為你沒裝 Claude 就把你當邊緣人。就像你剛繳完卡費,網銀首頁的「催繳通知」立刻就消失,不用等到隔天;而你連按兩次電梯按鈕,電梯也確實知道你在急,不會假裝沒看見。

新功能

分析報告不再鬧雙包,全時期與當日數據精準對齊

你的分析報告和面板上的數字現在完全統一了。以前系統看 Codex 的對話紀錄時,分析報告跟主面板是各算各的,有時會發生你明明同一天講的話,報告卻把它算到前一天去;現在它們共用同一套計算規則(把累積數字切成每一筆小變動去算),今天講的絕對只算在今天。而且,當你把專案時間範圍切換成「全期(All Time)」時,報告現在真的會把所有紀錄都挖出來算給你聽,不會像以前一樣只偷懶抓最近 30 天的資料敷衍你。這就像公司裡的財務部跟業務部以前各拿一本帳本,月底對帳永遠對不上,現在他們終於看同一個系統裡的同一份資料,不管你要查今天還是查公司創立以來的總帳,數字都分毫不差。

English

FEATURE

Fake update badges vanish instantly, and buttons behave much better

The moment you upgrade to a new version, the "update available" badge at the bottom of your screen will vanish instantly. Previously, due to a 24-hour cooldown period, the system would stubbornly look at its outdated notes and keep flashing the badge even when you were already fully up-to-date, tricking you into thinking the update failed. Also, if you impatiently click the manual refresh button while the system is already busy updating, it will now politely queue your request to run right after, instead of just tossing your click into the void. And for Codex-only users, the button to install the connection program now correctly shows up, rather than ignoring you just because you don't use Claude. It's like paying off your credit card and seeing the "payment overdue" warning disappear instantly instead of the next morning; and when you double-press the elevator button, the elevator acknowledges your urgency instead of ignoring the second press.

FEATURE

Analysis reports sync perfectly, aligning all-time data and daily usage across the board

The numbers in your analysis reports and your main dashboard are now in perfect harmony. Previously, when interpreting Codex session history, the report and the dashboard used two separate methods to calculate tokens. This sometimes meant usage from a conversation you had today was wrongly attributed to yesterday; they now share the exact same logic (bucketed by exact event deltas), guaranteeing today's usage stays perfectly confined to today. Furthermore, when you switch the project range to "All Time," the report actually digs up your entire history to give you the true total, instead of lazily grabbing just the last 30 days and calling it a day. It's like the sales and finance departments finally ditching their separate spreadsheets to use the same central accounting system—whether you're checking today's revenue or the all-time gross since the company was founded, the numbers finally match up flawlessly.

原始 CHANGELOG

Original changelog更新完不再被假標籤糾纏,重整與安裝按鈕更聽話
**Stale update badge clears immediately after upgrading**: `usage_statusline.py:_read_update_hint` only compared the cached `current_version` against `latest_version` without consulting the actual running version. The menubar app's 24h dismiss cooldown returned early before refreshing the cache, so a user already on v0.11.13 would keep seeing "v0.11.5 available" until cooldown expired. `_check_update_in_background` now refreshes `current_version` in the cache on startup (even during cooldown), and if the running version has caught up to `latest_version`, both fields are leveled so the badge disappears immediately.
**Manual refresh button queues while busy (@ericweichun, #12)**: previously, pressing refresh while one was already running silently dropped the second request. Now a single follow-up is queued, and the completion `finally` block runs in order: `codex_model = result.get("codex_model", "unknown")`, web language injection, clear the busy flag, then drain one queued refresh.
**Setup guidance made agent-neutral (@ericweichun, #16)**: the setup button previously gated on `~/.claude/` existence, hiding it from Codex-only users. The check is now "any status-line target available" (`~/.claude/` or `~/.codex/config.toml`); the existing `setup_hook.setup()` flow already auto-detects which agent to configure. Both README variants (zh-TW + en) reworded to agent-neutral phrasing; ja/ko `hook_not_installed` translations filled in.
Original changelog分析報告不再鬧雙包,全時期與當日數據精準對齊
**Codex usage bucketed by token_count deltas (@ericweichun, #11)**: `analyzer/reporter.py`'s fast path previously parsed Codex `.jsonl` files to extract a cumulative snapshot keyed by session-start timestamp, which diverged from the popover (which uses `codex_loader.load_entries` with per-event delta logic). The reporter now shares the same loader, so today/week/month reports match the popover exactly. Added a reporter-layer test exercising a cross-day cumulative Codex session to verify only the current-day delta is counted.
**All-Time reports tied to the project range selector (@ericweichun, #15)**: v0.11.6's analyze-bridge refactor left out the All-Time period, so clicking All-Time showed 720h cached data instead of true all-time. The bridge now maps `projectRange === "all"` through `_analysis_period_from_project_range("all") → "all"`, and project history loads with `hours_back=0` for true all-time data. All 9 panels gained a `projectRange === "all"` branch; `project_range_all` i18n keys added across all 5 locales.