Sync upstream main - #8
Merged
Merged
Conversation
Add codexbar serve, a localhost-only JSON server for CLI usage and cost endpoints. Includes router/cache tests, docs, changelog entry, numeric option validation, concurrent client handling, and cache safeguards for provider error payloads. Co-authored-by: Thiago Costa <thiago12_fera@hotmail.com> Co-authored-by: ThiagoCAltoe <71539514+ThiagoCAltoe@users.noreply.github.com>
* fix: prefer Codex last token usage * docs: add Codex cost spike changelog * fix: avoid stale divergent Codex token gaps --------- Co-authored-by: Peter Steinberger <steipete@gmail.com>
* Clarify unofficial Kimi K2 provider * docs: add Kimi K2 changelog --------- Co-authored-by: Peter Steinberger <steipete@gmail.com>
Adds xAI Grok provider support via the Grok CLI integration, including local identity detection, billing response decoding, provider registration, docs, tests, and changelog credit.\n\nCo-authored-by: taibaran <taibaran@users.noreply.github.com>
* fix(grok): treat expired credentials as missing in fetch Follow-up to the Codex P1 review on steipete#965 (`cbd30a4e`). Grok session tokens expire after ~7 days. The auth-error suppression in `GrokStatusProbe.fetch` previously only checked `credentials == nil`, so an `auth.json` whose `expires_at` was already in the past still counted as "renderable" and masked the RPC auth failure. The probe would return a successful snapshot carrying stale identity and no `grok login` hint while billing silently 401s — users had to inspect logs to figure out they were logged out. Treat expired records the same as missing credentials when deciding whether to swallow the RPC error, and drop them from the rendered snapshot so the UI doesn't surface a stale email/team for an inactive session. Adds a unit test covering past/future/missing `expires_at`. * test(grok): include grok in SettingsStoreTests provider-order fixture CI on steipete#976 surfaced a hardcoded provider-order list in SettingsStoreTests.swift:1161 that wasn't updated when grok was added in steipete#965. The Grok-only test filter I ran locally before steipete#965 skipped this file, so the breakage only became visible on the next post-merge CI run. Append .grok to the expected ordering so the suite passes. All 2565 tests pass under Xcode 26.5 (51 in CodexBarTests + plenty more). * fix: preserve Grok identity after refreshed billing * style: format Grok auth regression --------- Co-authored-by: taibaran <taibaran@users.noreply.github.com> Co-authored-by: Peter Steinberger <steipete@gmail.com>
Fix provider sidebar trailing control spacing Local proof: - swift test --filter ProvidersPaneCoverageTests - make check - ./Scripts/package_app.sh - autoreview --mode branch --base origin/main Thanks @Yuxin-Qiao!
Improve Claude OAuth 429 rate limit handling Preserve cached Claude OAuth credentials on HTTP 429 responses, persist a bounded background retry cooldown, keep user-initiated refresh available, and cover numeric plus HTTP-date Retry-After parsing. Local proof: - swift test --filter ClaudeOAuthTests - make check - autoreview --mode branch --base origin/main Co-authored-by: Zhongyue Lin <101193087+LeoLin990405@users.noreply.github.com> Thanks @LeoLin990405!
Show Codex Spark usage as a named extra quota lane for Codex OAuth and OpenAI dashboard usage paths.\n\nThanks @LeoLin990405.\n\nProof:\n- swift test --filter CodexAdditionalRateLimitsTests\n- swift test --filter OpenAIDashboardSparkTests\n- swift test --filter MenuCardModelCodexProjectionTests\n- swift test --filter MenuCardAntigravityTests\n- swift test --filter OpenAIDashboardModelsTests\n- swift test --filter CLIOpenAIDashboardCacheTests\n- make check\n- autoreview clean\n- CI green for 4f9c902\n\nFixes steipete#1177\n\nCo-authored-by: Zhongyue Lin <101193087+LeoLin990405@users.noreply.github.com>
Add named AWS profile authentication for Bedrock usage and cost history. Maintainer follow-up preserves credential precedence: explicit profile mode uses the selected profile without projecting saved static keys, AWS CLI source profiles can still read inherited environment credentials, and merged static keys continue to win when no profile mode is explicitly selected. Co-authored-by: Oleksandr Soldatov <oleks.soldatov@gmail.com>
Localize popup panels, menu labels, and provider settings across supported languages. Maintainer follow-up preserves provider-supplied organization names and localizes dynamic cookie-source subtitles through shared templates. Co-authored-by: Shun Min Chang <ji394m6y7@gmail.com>
…bar-cask Update Homebrew cask install command
pt-BR was missing 178 of en.lproj's 785 keys, so those strings fell back to English (a mixed-language UI for Brazilian users). Translate all missing keys to reach full parity with the English base, keeping the same key order as en.lproj. Validated with `plutil -lint`; pt-BR and en key sets and format specifiers (%@, %1$@, %d%%) match exactly (785 keys each, no missing or extra keys).
…localization Complete Brazilian Portuguese (pt-BR) localization
Add Swedish localization
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
origin/main(a90dde77) to upstreamsteipete/CodexBar@6fe01054Validation
swift package resolvepassedswift build -c release --product CodexBarCLIpassedSOURCEKIT_TOOLCHAIN_PATH=/Library/Developer/CommandLineTools DYLD_FRAMEWORK_PATH=/Library/Developer/CommandLineTools/usr/lib .build/lint-tools/bin/swiftlint --strictpassedmake checkpartially passed: SwiftFormat passed, but SwiftLint inside the script cannot loadsourcekitdInProcin this CLT-only environment unless run directly with SourceKit env varspnpm checkis not applicable after upstream removedpackage.jsonNot Verified
./Scripts/compile_and_run.sh/ app bundle restart: blocked locally because this machine is using CommandLineTools only (xcode-select -p=/Library/Developer/CommandLineTools) and has no/Applications/Xcode*.app;KeyboardShortcuts2.4.0 fails on SwiftUI#Previewmacro due missingPreviewsMacrosplugin.