howmuchleft v0.14.1 /Changelog
On this page

#Changelog

#0.14.1

Repair the publish pipeline: allowlist the public OAuth client ID so the release secret scan stops blocking binary builds.

Context

The 0.14.0 scaffold update added a gitleaks dir . source scan to the publish workflow. It flagged internal/oauth/oauth.go's OAuthClientID -- Claude Code's public OAuth client identifier, which is not a credential -- as a generic-api-key, so goreleaser never ran and the v0.14.0 GitHub Release shipped without its binary archives.

This release adds a .gitleaks.toml allowlist for that one public identifier and re-runs the publish pipeline, restoring the pre-built binaries. It carries no user-facing code changes, hence bump = "infra".

#Infrastructure

  • Repair the publish pipeline: allowlist the public OAuth client ID so the release secret scan stops blocking binary builds.

#0.14.0

Migrate to the go-strictcli effect model: every command declares its effect, and --dry-run, --quiet and --verbose are now framework-provided on every invocation.

Context

go-strictcli 0.29.0 made effect classification mandatory: each command must declare whether it reads, writes, or performs a consequential action. Adopting it means the framework now supplies the --dry-run/--quiet/--verbose flag quartet uniformly across every command, replacing per-command ad-hoc handling.

Known ceiling in this release: --dry-run does not yet suppress the embedded config migration that runs on startup, so a dry-run invocation can still migrate the config file. This is documented in the effect classification and will be addressed separately.

#Features

  • Effect classification and the framework flag quartet. Every command now declares its strictcli effect, and --dry-run, --quiet and --verbose are provided by the framework on every invocation.

#0.13.0

Add Fable model support with separate usage tracking, fix cache bugs, and consolidate duplicated code

#Breaking

  • Breaking. Upgrade go-strictcli to v0.17.0: --live BoolFlag now has explicit default.

#Features

  • New feature. Add Fable model support with separate usage tracking (F5 alias, 4th progress bar, Fable-specific rate limit display).

#Fixes

  • Bug fix. Fix WriteUsageFromStdin reading wrong keys from stdin data.

#0.12.2

Fix OAuth detection to use stdin rate_limits

Context

v0.12.1 checked CLAUDE_CODE_OAUTH_TOKEN env var, but Claude Code doesn't pass it to statusline subprocesses. Now uses the presence of rate_limits in stdin instead, which is reliable and requires no external files or env vars.

#Fixes

  • Fix. Detect OAuth from stdin rate_limits instead of relying on env var or credentials file, fixing tier display for claudewheel-launched sessions.

#0.12.1

Fix subscription tier detection for claudewheel-launched sessions

Context

When claudewheel launches Claude Code, it sets CLAUDE_CODE_OAUTH_TOKEN instead of writing .credentials.json. howmuchleft now checks this env var as a fallback, showing 'OAuth' instead of incorrectly displaying 'API'.

#Fixes

  • Fix. Detect OAuth authentication from CLAUDE_CODE_OAUTH_TOKEN env var when .credentials.json is absent, showing "OAuth" instead of "API" for claudewheel-launched sessions.

#0.12.0

#Breaking

  • Breaking. CLI migrated from Cobra to go-strictcli. No user-facing command changes, but the underlying framework is now strictcli.
Search