繁體中文

新功能

App 學會自己檢查更新了,且不會煩死你

你現在不用再時不時跑去 GitHub 網頁看有沒有新版本了。App 啟動時會自動去檢查有沒有新版,如果發現更新,會直接跳出視窗告訴你新版本的改動內容,讓你點「Download」連過去下載。為了不打擾你,這個自動檢查一天最多只會跑一次;如果你覺得這個版本不重要,也可以點「跳過此版本」,它就不會再拿同一個版本煩你。當然,如果你想要手動控制,可以在「更換面板」選單裡關掉「自動檢查更新」,或者隨時點「立刻檢查更新」來強迫它查一次。就像你的汽車導航,現在懂自己在背景偷偷查圖資有沒有更新,有重大改變才問你要不要更新,而不是每次一發動就逼著你按確認。

English

FEATURE

The app now checks for updates automatically without annoying you

You no longer have to manually check the GitHub repository for new releases. On launch, the app now automatically checks for new versions and pops up a dialog with the release notes and a one-click button to download it. To respect your focus, this auto-check runs at most once every 24 hours. If a particular update doesn't interest you, you can hit "Skip this version" and it won't bother you about that specific release again. You are in full control — you can toggle off "Automatically Check for Updates" in the Switch Panel menu, or manually trigger a "Check for Updates Now" whenever you want. It's like your car's GPS silently checking for new maps in the background and only asking if you want to upgrade when there's actually a major new route, instead of forcing you to click OK every time you start the engine.

原始 CHANGELOG

Original changelogApp 學會自己檢查更新了,且不會煩死你
**In-app update check (Stage 1)**: On launch, usage pings GitHub Releases for a newer version (rate-limited to once per 24h so you're not nagged every time you open the app). When a newer version is found, an NSAlert shows the version + release notes with three buttons: **Download**, **Later**, **Skip this version**. "Download" opens the Release page in your default browser — manually replace the old `.app` with the new one. (Stage 2 will bring Sparkle-style auto download + replace.)
**Two new entries in the "Switch panel" menu**:
- **Automatically Check for Updates** (toggleable): unchecking it disables the launch-time auto check entirely; the manual entry below still works.
- **Check for Updates Now**: manually triggers a check, bypassing the 24h cooldown and skip-version preference. If you're already up to date, an alert says so; on network error you see "Update check failed".
Preferences are stored in the existing `~/.claude/usage-preferences.json`, with three new keys: `auto_update_check` (default true), `update_dismissed_at` (Unix timestamp), `update_skipped_version` (skipped version string).
`setup_app.py` now bundles `pyproject.toml` and `update_checker` into the py2app build — so the packaged `.app` can fall back to reading `pyproject.toml` when `importlib.metadata` can't resolve the version.