Sync fork with upstream steipete/CodexBar (OAuth-first auth)#12
Merged
johnlarkin1 merged 156 commits intomainfrom Feb 22, 2026
Merged
Sync fork with upstream steipete/CodexBar (OAuth-first auth)#12johnlarkin1 merged 156 commits intomainfrom
johnlarkin1 merged 156 commits intomainfrom
Conversation
- Add parsing for new 'Plan: X' format from kiro-cli 1.24+ - Handle 'managed by admin' cases for enterprise plans - Add isUsageOutputComplete checks for new format - Add 3 test cases for Q Developer plan formats Fixes steipete#287
Address review feedback: only bypass parse error for managed plans that don't expose usage data. Non-managed plans with Plan: header but no usage data will now correctly throw parse error instead of falling back to default 50 credits.
Fix provider switcher progress to update immediately when “Show usage as used” changes by treating the setting as a switcher rebuild trigger. Split cached state between “last observed” and “switcher built with” to keep smart menu updates safe and avoid stale tab indicators.
Extracted from steipete#324 (thanks @JosephDoUrden).
Extracted from steipete#324 (thanks @JosephDoUrden).
Global region users with API keys (sk-cp-...) were getting "credentials invalid" errors because the fetcher used a hardcoded China endpoint. - Add apiBaseURLString and apiRemainsURL to MiniMaxAPIRegion for region-specific API hosts (api.minimax.io vs api.minimaxi.com) - Update fetchUsage(apiToken:) to accept region parameter - Pass region from settings through MiniMaxAPIFetchStrategy - Make API region picker always visible in settings UI - Default to global when settings are absent (CLI/library contexts) Fixes steipete#276
When fetching with an API token and region defaults to .global, retry the China mainland API host if the global host rejects the token. This preserves upgrade behavior for users who previously depended on the China endpoint by default. Credit: @apoorvdarshan (PR steipete#277, issue steipete#276 investigation).
If global host rejects the API token and the China host is unreachable, keep returning invalidCredentials so the pipeline can fall back to web.
…llowup MiniMax: make region picker visible + retry China API host
The z.ai API has changed the TOKENS_LIMIT response schema. The usage, currentValue, and remaining fields are now omitted from the response. This caused JSON decoding to fail with "The data couldn't be read because it is missing." Changes: - Make usage, currentValue, remaining optional in ZaiLimitEntry struct - Make usage, currentValue, remaining optional in ZaiLimitRaw struct - Update computedUsedPercent to handle nil values by using percentage directly - Update toLimitEntry() to handle optional values with nil defaults - Update zaiLimitDetailText() to handle optional fields gracefully - Add tests for new API schema with missing token limit fields - Fix test expectation for correct window minutes calculation (300 not 15) Fixes parsing errors for z.ai provider with updated API schema while maintaining backward compatibility with old responses.
Avoid inventing zeros when quota fields are missing; fix SwiftFormat and add tests.
Add explicit empty-body guards for z.ai quota fetch/parse to avoid opaque JSON decoding errors. thanks @halilertekin
Avoid logging full quota URL when response body is empty; log only host/port/path to prevent leaking credentials or query params.
…s-4.6-pricing fix: add claude opus 4.6 pricing
When Claude Code reports model names without date suffixes (e.g., 'claude-opus-4-6' instead of 'claude-opus-4-6-20260205'), the cost tracking lookup fails because only the full dated versions existed in the pricing dictionary. This adds short aliases matching other models like 'claude-sonnet-4-5' and 'claude-opus-4-1' which already had short versions. Fixes steipete#349
Add short aliases for opus-4-5, opus-4-6, haiku-4-5 models
Co-Authored-By: Craft Agent <agents-noreply@craft.do>
OpenRouter provider follow-up
Consider usageBarsShowUsed in smart menu updates
Show Codex credits in menu bar when session/weekly are exhausted
…-subscription-273 fix(opencode): handle null subscription responses without POST retry
fix(kimi): prioritize 5-hour window in automatic mode
Syncs fork with upstream main, pulling in ~80+ commits including: - PR steipete#388: Claude OAuth security CLI reader (fixes keychain error) - OpenRouter, Ollama, Warp providers - Codex credits display - Various bug fixes (Kimi, OpenCode, WebKit navigation) Fork customization: OAuth (keychain CLI) strategy is now first in both .app and .cli auto modes, matching the auth flow used by the `claude` CLI tool. Fork-specific features preserved: color-coded icons, time window selection, weekly projection, pace display. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
SecKeychainSearchCopyNext: The specified item could not be found in the keychainerror.appand.cliauto modes, matching the auth flow used by theclaudeCLI tool0.18.0-beta.3-jl.3Key upstream changes
Fork customization
OAuth (
ClaudeOAuthFetchStrategy) is now first in.cliauto mode strategy resolution, not just.appauto mode. This ensures the keychain-based auth (same asclaudeCLI) is always tried first.Test plan
swift build— compiles cleanswift test— 782 tests pass, 0 failures./Scripts/lint.sh format— 0/457 files needed formatting./Scripts/compile_and_run.sh— manual verification of keychain auth flow🤖 Generated with Claude Code