Gengchou v2.4.0
·
109 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Gengchou v2.4.0
v2.4.0 reworks first-run setup and consolidates two development cycles of
reliability and user-experience work. It builds on the v2.3.4 first-run
consent-window hotfix and keeps settings and cached usage data compatible with
v2.3.4.
Changes
- Replace the per-provider first-run prompts with a single permission prompt
covering every provider, then detect which providers are actually signed in
on this machine and show only those. Nothing is read before permission is
granted, and revoking access stays per provider. Existing installations keep
their current selection and permissions and are never prompted again. - Distinguish Not detected from Authentication failed. A provider that
was never signed in no longer claims that authentication failed or asks the
user to sign in again, and raises no notification; the alert is reserved
for credentials that exist but expired or were rejected. Both states still
park polling and recover automatically once a credential appears. - Detect providers again periodically and from a new Provider access →
Detect providers again menu entry. The periodic sweep only notifies, once
per provider, and never changes what is displayed on its own. - Read Codex and Antigravity credentials from WSL as well as Windows: Codex
from$CODEX_HOME/auth.jsonand Antigravity from
$HOME/.gemini/antigravity-cli/antigravity-oauth-token. Only distributions
that are already running are read, so the check never starts a WSL virtual
machine. - Shorten the Simplified Chinese first-run prompt around its three user-facing
guarantees: quota checks do not consume model allowance, login information
is not saved, and provider access can be revoked from the context menu. - Prevent update prompts and error dialogs from temporarily disabling the
Windows taskbar, and block duplicate update actions while a prompt is open. - Resolve the Windows task-dialog entry point at runtime so a missing or
temporarily inactive Common Controls v6 assembly can no longer prevent the
app from starting; the consent prompt falls back to a standard Yes/No dialog. - Let the app start normally when a confirmed updater backup (
.old) is still
locked; cleanup is deferred and recorded with the exact path. - Resolve Claude credentials from
CLAUDE_CONFIG_DIRor the standard path in
Windows and every known WSL distribution. A later usable source now beats an
earlier invalid one; renewable access-token expiry gets a silent 90-second
grace before the UI asks for a Claude Code message, while non-renewable and
rejected credentials consistently ask forclaude auth login. - Add an accessible fourth detail control for keeping the popup open. All four
header controls now share one Windows icon family, 32-DP targets, localized
accessible names, keyboard operation, native button semantics, and
keyboard-only focus cues. Refresh is first, state icons show the current
state, hover owns the button highlight, and the keep-open preference persists
across restarts. - Keep the last valid quota values visible during a manual refresh and show
only Refreshing in the detail footer instead of replacing the numbers
with dots. - Keep a known reset countdown visible on compact surfaces even when the
current quota usage is 0%. - Use one consistent four-badge status system: Authentication failed,
Refresh failed, Near limit, and Limit reached. Transient failures
stay quiet; persistent failures mute old values and show their age, while
empty authentication and service-failure states now use distinct, direct
wording. - Isolate 429 cooldowns per provider. Fresh data retries silently in the
background without blocking other providers; a rate-limited provider becomes
Refresh failed only after its data reaches the stale threshold. - Antialias the existing 10-DP segmented progress bars without changing their
height, radius, proportions, or warning thresholds. - Follow the user's provider order in the detail popup and credential alerts,
show the actual scheduled poll countdown, and add concise connection or
automatic-retry guidance only when a failure becomes persistent. - Harden WinGet updates so they never replace a still-running process, restart
only the confirmed executable, verify the installed ProductVersion, and
surface a one-time in-app failure after restart. - Compare Start-with-Windows paths with Windows Unicode case rules, reject
registry commands containing arguments, remove fixed path-length assumptions,
and report startup-setting failures instead of silently ignoring them. - Fall back safely when
%APPDATA%is unavailable and show one storage warning
if settings or the usage cache cannot be persisted. The READMEs now disclose
credential data flow next to installation as well as in the privacy section. - Improve labels, reset notifications, date formatting, and long status badges
across all 11 languages. - Show the in-app brand as 更筹 in Simplified Chinese and 更籌 in
Traditional Chinese while keeping Gengchou for every other language and
for the stable executable, package, data-directory, and update identities. - Remember what the last update check found, so the version menu entry states
the current situation (Up to date, or Update to vX.Y.Z) immediately
after a restart instead of resetting to Check for updates. Acting on a
remembered update re-checks first, because a stored download URL goes stale.
A failed check clears the remembered answer rather than leaving a stale
claim on screen. - Remove the Notify when Claude Code is updated switch and always send that
notification. It reports that Gengchou changed the CLI on this machine rather
than stating a preference, so it no longer sits among the quota-reset
notification toggles.DISABLE_UPDATES=1still stops the update itself. - Place Codex first in the default provider order without changing existing
saved choices. Quota surfaces now use the shared product name Claude,
while actions specific to the Claude Code CLI keep that precise name. - Add a RustSec dependency-advisory and soundness gate to CI and release verification.
Updating
No settings or cache migration is required. Users of v2.3.4 can update
normally or replace the existing executable with gengchou.exe and start it
again.
Do not update an installation older than v2.2.4 directly to this release. The
v2.2.4 release remains available as the required bridge.