Skip to content

Sync Pete upstream through 1d307430a - #87

Merged
ColumbusLabs merged 91 commits into
mainfrom
codex/upstream-sync-86-20260719
Jul 19, 2026
Merged

Sync Pete upstream through 1d307430a#87
ColumbusLabs merged 91 commits into
mainfrom
codex/upstream-sync-86-20260719

Conversation

@ColumbusLabs

Copy link
Copy Markdown
Owner

Closes #86

Upstream range

  • Base: 2ccb4525687c92ff1cd50c8c57f24420c1fcb71f
  • Head: 1d307430a13de0a385e2b5ab30fa7ed79d363408
  • 62 non-merge commits reviewed (133 upstream-touched files)

Review and QuotaKit adaptations

  • Provider/auth/quota: reviewed Claude account projection, OpenCode Go local usage and cost, Groq presentation, StepFun/ElevenLabs fetchers, and compact/subagent accounting.
  • Process/CLI/runtime: reviewed PTY and pipe capture, login/auth probes, CLI cards, and platform libc behavior.
  • Mobile/widget/sync: preserved shared utilization history and added localized Monthly presentation on iOS with a focused test and same-version release notes.
  • Branding/release: preserved QuotaKit / Columbus Labs identity, .mac-release.env, QuotaKit appcast URLs and history, CloudKit ownership, marketing versions, and all build numbers.
  • CI: combined the QuotaKit iOS gate with upstream Linux-musl coverage and expanded path-gate tests so package, source, workflow, and gate changes trigger the correct jobs.
  • Merge mechanics: preserved upstream history and regenerated the parser hash. UPSTREAM_MONITOR_BASE advances to the reviewed head; shipped UPSTREAM_VERSION remains unchanged.

Validation

  • ./Scripts/check_upstreams.sh (range confirmed before integration)
  • ./Scripts/test_ci_path_gate.sh
  • git diff --check
  • parser hash check
  • swift build
  • PARSER_LINT_BASE=origin/main ./Scripts/lint.sh lint
  • focused Swift provider/process/parser/sync tests: 352 tests passed
  • make test: 758 selections, 64/64 shards passed
  • iOS simulator test (iPhone 17 Pro, signing disabled): 642 tests passed, 0 failures
  • localization audit: 22 catalogs / 1300 Mac keys plus 274 mobile source keys complete
  • customer branding and provider palette audits passed
  • appcast XML and affected localization property lists validated

The exact locally reviewed PR head is 4cb3e83addda5b7f8850340186ca6049c6963908.

possibilities and others added 30 commits July 17, 2026 22:08
Job-Id: 6419f5a3-dcd3-4ce2-8229-2e4266b2b5d2
Keeper-Commit-Id: keeper-commit-work:aed06f8f-6f49-4f80-8f28-601406d6f900
Job-Id: 6419f5a3-dcd3-4ce2-8229-2e4266b2b5d2
Keeper-Commit-Id: keeper-commit-work:47f7a0a4-421f-4d08-9354-e5367074b5b7
Job-Id: 6419f5a3-dcd3-4ce2-8229-2e4266b2b5d2
Keeper-Commit-Id: keeper-commit-work:7fa8d7aa-00ea-4368-8fba-4f832328b770
- Confirm first-turn suffix candidates only when pre-turn totals exactly match the parent snapshot; mismatches remain independent.
- Keep candidate classifications parent-dependent so cache reuse tracks parent changes.
- Add shape, replay, accounting, and invalidation regressions and rotate the generated parser hash.
ElevenLabsUsageSnapshot computed three usedPercent values without the
min(100, max(0, ...)) clamp that sibling credit providers apply
(OpenAIAPICreditBalanceFetcher, CommandCode, Codebuff, Abacus): character
usage applied a max(0, ...) floor but no ceiling, and both voice-slot
windows applied neither bound. ElevenLabs models overage explicitly
(current_overage), so characterCount > characterLimit is a real state; it
flowed e.g. 150000/100000 -> 150 (and voice 12/10 -> 120) straight into
RateWindow.usedPercent, which does not clamp. Follow-up to #2255/#2265.
Mirrors the Codex/Claude menu structure: the top rate-limit pane stays
submenu-free, a "Plan Usage" row hover-expands into 5-hour/weekly/monthly
history tabs, and a "Cost" row hover-expands into a daily $ chart sourced
from the local opencode-go SQLite history (~/.local/share/opencode/opencode.db).

The web-sourced fetch strategy best-effort enriches its rolling/weekly
percentages with the local daily buckets (opencode.ai has no daily-
granularity endpoint), but skips that local read entirely when the user
explicitly selects Web-only source mode.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Web-only source mode and machines without a readable local database
leave opencodegoUsage present but daily empty, which previously still
produced a non-nil CostUsageTokenSnapshot and surfaced a Cost row with
no history to show. Return nil until daily entries exist instead.

Addresses PR review feedback on #2296.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
opencodego was missing from the shared CostUsageTokenSnapshot inline
dashboard path (matching Codex/Claude/Vertex/Bedrock/Cursor), so users
with Cost summary set to "Inline only" saw no OpenCode Go cost data at
all: the Cost row is suppressed in that style, and there was no inline
fallback either. Adds opencodego to that path so it now matches those
providers exactly, including showing both the Cost row and the inline
chart together in "Both" style.

Addresses PR review feedback on #2296.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
tokenCostMenuSectionEnabled reused usesProviderCostHistoryAsPrimaryDashboard
to exclude openai/mistral from the generic "Cost" row. That predicate is
shared with an unrelated concern (inline-dashboard eligibility) and later
gained .groq for its own reasons, which would have silently excluded groq
from this row too. Replace it with an explicit openai/mistral check so this
gate no longer tracks membership changes made for other purposes.

In practice groq's tokenCost.supportsTokenCost is false, so its Cost row
was already unreachable independent of this gate — verified with a test
locking in that groq's cost data stays visible via the inline dashboard
regardless of how this predicate is defined.

Addresses PR review feedback on #2296.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The name implied a provider-native top-pane submenu (matching
hasOpenAIAPIUsageSubmenu's naming), but opencodego satisfies this via
its collapsible "Cost" row, not a top-pane submenu. Unlike the two
predicate-reuse bugs fixed earlier in this PR, this reuse of
tokenCostRequiresProviderSnapshot is intentional: any provider whose
cost is sourced by projecting a UsageSnapshot field can only render
that cost through addMenuCardSections's sectioned layout, so the two
concepts are genuinely coupled here. Renamed to say what it actually
gates and documented why the reuse is safe, so a future reader doesn't
mistake it for the same bug class.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…cent-clamp

fix: clamp ElevenLabs usage percent to 100%
…wap-test-20260718

Harden Linux Claude swap invocation proof
steipete and others added 24 commits July 18, 2026 22:57
Co-authored-by: Zihaoqi <Zihao-Qi@users.noreply.github.com>
Co-authored-by: Zihaoqi <Zihao-Qi@users.noreply.github.com>
Co-authored-by: Zihaoqi <Zihao-Qi@users.noreply.github.com>
…anation

Simplify cost labels and clarify estimate provenance
Co-authored-by: Bobby Wang <yyaustin@bu.edu>
…ating-tests

Serialize flaky Claude CLI platform-gating cases
…providers

Allow up to six Overview providers
The manifest referenced a stale filename (renamed away); the matching
AGCY private key now lives under the Peekaboo-appcast name. Validation
was falling back to Keychain (wrong key) and aborting release. Verified
sparkle-key-status: match against the embedded SUPublicEDKey.
@cursor

cursor Bot commented Jul 19, 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
ColumbusLabs merged commit b444d74 into main Jul 19, 2026
9 checks passed
@ColumbusLabs
ColumbusLabs deleted the codex/upstream-sync-86-20260719 branch July 19, 2026 11:52
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.

Upstream Changes Available for Review

10 participants