Skip to content

Sync upstream CodexBar through 02b4ba278 - #93

Merged
ColumbusLabs merged 51 commits into
mainfrom
automation/upstream-tail-20260728
Jul 28, 2026
Merged

Sync upstream CodexBar through 02b4ba278#93
ColumbusLabs merged 51 commits into
mainfrom
automation/upstream-tail-20260728

Conversation

@ColumbusLabs

Copy link
Copy Markdown
Owner

Upstream range

  • Base: cc8da27cec92029a6435bfee4a703a719290234e
  • Head: 02b4ba278c81e667d2e5587d0ceb9eaf1d83f854
  • 29 non-merge commits from steipete/CodexBar

Reviewed risk areas

  • Claude OAuth/web quota parsing, duplicate weekly-window handling, and status probing
  • Kimi quota-window identity, pace, and iCloud sync compatibility
  • Ollama local discovery/retry behavior
  • CLI/menu/runtime presentation and widget burn-down refresh behavior
  • Provider configuration hooks and Linux Alibaba coverage
  • QuotaKit identity, release/appcast ownership, CloudKit/mobile boundaries, and build-number preservation

QuotaKit adaptations

  • Preserved QuotaKit's Claude all-models weekly fallback while adopting upstream scoped-window ordering and null-window omission.
  • Preserved QuotaKit's expanded usage snapshot fields and moved weekly switcher selection to the new upstream extension.
  • Preserved QuotaKit's explicit configuration encoding and existing Cursor/DeepSeek normalization while adding upstream decode hooks.
  • Hardened Kimi weekly-window sync coverage with duration, identity, and pace assertions.
  • Kept QuotaKit/Columbus Labs changelog and release metadata; iOS marketing/build versions are unchanged.

Validation

  • git diff --check
  • swift build
  • PARSER_LINT_BASE=origin/main ./Scripts/lint.sh lint
  • Focused Claude, Kimi, sync, CLI, localization, menu, spend dashboard, and widget suites
  • make test: 764 selections, 64/64 groups passed, no retries or failures

No CodexBarMobile/ or Shared/ files changed, so the iOS simulator lane is not implicated by this range.

kiranmagic7 and others added 30 commits July 20, 2026 06:14
sourceModeRequiresWebSupport blanket-rejects web-source providers off
macOS, but carries per-provider escape hatches for opencodego,
commandcode, cursor, and qoder when their cookie source is manual - the
fetch is plain URLSession + cookies, only browser auto-import needs
macOS. alibabatokenplan was missing this exemption, so
codexbar usage --provider alibaba-token-plan failed on Linux even with a
manually configured cookie header. Add the same exemption. Part of #2328.
Ignore model-scoped Claude weeklies (Fable, Routines, Sonnet) when picking the overview progress so an exhausted carve-out no longer empties the bar while Weekly remains.

Co-authored-by: Cursor <cursoragent@cursor.com>
Prefer the most-constrained Claude weekly window that still has remaining (including Fable). Only fall back to account Weekly when carve-outs are exhausted so the overview bar stays informative in both cases.

Co-authored-by: Cursor <cursoragent@cursor.com>
Overview switcher ignores Fable/Sonnet/Routines carve-outs and tracks account Weekly; those scoped lanes remain on the Claude detail card.

Co-authored-by: Cursor <cursoragent@cursor.com>
UsageFetcher was already at the file_length warning ceiling; moving the
switcher helpers out keeps the Claude overview fix under the limit.

Co-authored-by: Cursor <cursoragent@cursor.com>
Clock rollover tests called selectDays(7) on UserDefaults.standard,
which leaked into later ControllerTests and, once wall-clock moved past
the Jul 15 fixtures, made totalCost nil under a 7-day window.

Co-authored-by: Cursor <cursoragent@cursor.com>
The Claude CLI renders /usage as a redrawing TUI. A half-painted capture frame can drop a character from "Current week (all models)" (e.g. "all modls"), and the exact-string all-models guard in extractScopedWeeklyUsages let that garbled copy through, surfacing it as a bogus second weekly row ("all modls only") next to the real Weekly limit.

Match the all-models bucket with a small edit-distance tolerance so minor capture corruption no longer escapes the filter, and cover it with a StatusProbe parse test.
Address review: apply the tolerant all-models match in the weekly percent/reset extraction too, so a capture where only the corrupted "all modls" label survived still populates the Weekly limit instead of dropping it. Move the new cases into their own test type to stay under type_body_length.
Address review: extractPercent/extractReset now try an exact label match first and only fall back to the fuzzy (garbled-capture) match, so a clean 'all models' row always wins the Weekly percent/reset even when a corrupted 'all modls' copy is captured earlier. Expand tests: exact-wins-over-earlier-garbled, scoped-only leaves weekly nil, single-char insertion is all-models, and a distance-3 corruption stays a visible scoped row (documenting the tolerance boundary).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…ard-ci

test(repo-hygiene): restore macOS test baseline
# Conflicts:
#	Tests/CodexBarTests/SpendDashboardControllerTests.swift
steipete and others added 21 commits July 27, 2026 23:33
Prevent WidgetKit reload loop in BurnDownRefreshSchedule (fix #2369)
…an-linux-manual-cookie

fix: allow Alibaba/Qwen Token Plan usage on Linux with a manual cookie
The Claude OAuth and web usage parsers synthesized a placeholder 0%
"Daily Routines" window whenever a routines key (seven_day_cowork,
seven_day_routines, ...) was present with a null payload. claude.ai
renders from the limits array and shows no routines bar in that case.
Treat present-but-null keys as absent so the row only appears with
real utilization data.
…scoped-weeklies

fix: keep Claude switcher bar on account weekly quota
…ookie-import

Support LongCat Firefox cookie imports
…-20260724

Preserve hooks in config persistence
Hide Daily Routines bar when the routines payload is null
…s-weekly-duplicate

Fix duplicate weekly row from garbled Claude all-models capture
…outines

Show model-scoped weekly rows before Daily Routines
…ie-fallback

Cache validated Ollama browser sessions
@cursor

cursor Bot commented Jul 28, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@ColumbusLabs

Copy link
Copy Markdown
Owner Author

Ownership review complete for upstream cc8da27..02b4ba2 (29 commits). Focused review covered Claude auth/quota parsing, Kimi window identity and sync, Ollama discovery/retries, CLI/menu/widget runtime behavior, config hooks, Linux coverage, and QuotaKit release/branding boundaries. QuotaKit-specific adaptations and validation are documented in the PR body. Local gates are green: swift build, full lint, focused suites, and make test (764 selections; 64/64 groups; zero failures/retries). Waiting on required CI for exact head 26b90b1.

@ColumbusLabs
ColumbusLabs merged commit 4774f86 into main Jul 28, 2026
9 checks passed
@ColumbusLabs
ColumbusLabs deleted the automation/upstream-tail-20260728 branch July 28, 2026 12:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.