Port upstream 0.50.1 - #341
Conversation
|
Thermo-nuclear code-quality review: blocking on two structural/gate issues.
The hosted Local check is also currently failing |
|
Updated with all remaining Wave 5 items. No deferrals. All 18 PORT items now implemented: Original 6: Cursor rename, Ollama cookie stripping, OpenCode Go pace, Charts x-axis, Kiro re-authenticate, Serve identity Gate checks: all pass (cargo fmt, clippy, test, pnpm test, pnpm build). |
|
Follow-up thermo-nuclear review on head
Please rebase, resolve the inherited module blockers, and simplify the accent-setting path before another review. |
e1cdde0 to
5f54f4a
Compare
…n-zero history, Antigravity dashboard lanes, Claude OAuth revoked detection steipete#2946 Codex routed models pricing — codex_routed_provider() + strip_route_prefix() in cost_pricing.rs; deepseek/, kimi/, opencode/ routes price against matching models.dev provider; unknown provider/ prefixes return None. steipete#2944 Codex auth.json read-only during refresh — codex_external_oauth_sources_allowed setting (default OFF); is_external_oauth + last_refresh fields on CodexCredentials; enforce_external_oauth_gate (8-day staleness window). steipete#2932 Codex known-zero history — known_zero field on CostSummary; set in both cache-debounce and full-scan paths (history_coverage_established && sessions_count == 0); knownZero JSON field + CLI text update. steipete#2963 Antigravity dashboard lanes — quota-bucket dedup in parse_user_status; models sharing the same (remaining_fraction, reset_time) collapse to one lane. steipete#2516 Claude revoked vs missing OAuth — ProviderError::OAuthRevoked variant; revocation detection (401/403 with revoked/invalid_grant/token_revoked); 15-min CLI result cache (LazyLock<Mutex<Option<CachedCliResult>>>); fetch_via_auto returns cached CLI result when OAuth revoked, and stale cache when all live sources fail.
… per-provider accent color Item 1 — Mistral PAYG current-month API spend (steipete#2821, steipete#2947): - Add MonthlyPlan variant to MetricPreference enum - Add currency_symbol field to CostSnapshot with with_currency_symbol builder - Set currency_symbol from Mistral billing API response - Add MonthlyPlan to bridge label/parse, tray selected_metric_percent (None = no bar) - Show formatted cost amount in provider_status_label for MonthlyPlan - Add format_cost_amount helper in bridge.rs - Add Mistral monthly spend row in MenuCardDetails - Add monthlyPlan option to MenuBarMetricSection for Mistral Item 2 — Menu cost-summary display style per provider (steipete#2976): - Add CostSummaryDisplayStyle enum (Compact/Detailed/Hidden) in types.rs - Add cost_summary_display_style field to Settings + Default + RawSettings round-trip - Add to SettingsSnapshot bridge + SettingsUpdate + apply in Tauri commands - Add bridge label/parse functions - Apply in MenuCardDetails: hidden hides cost section, compact shows used/limit only - Update describeCard to filter hasCost for hidden style - Add Select control in UsageSpendTab Item 3 — Per-provider accent color override (steipete#2972): - Add accent_color field to ProviderConfig - Add brand_color(ProviderId) function in provider.rs (mirrors frontend registry) - Add accent_color/set_accent_color/effective_accent_color accessors in Settings - Add set/get/get_effective Tauri commands + normalize_hex_accent_color validator - Add providerAccentColors map to SettingsSnapshot bridge - Add setProviderAccentColor/getProviderAccentColor/getProviderEffectiveAccentColor to tauri.ts - Create AccentColorSection component (hex input, color picker, reset button) - Inject --provider-accent CSS variable on MenuCard article and ChartsSection - Update menu-metric__bar-fill and chart colors to use --provider-accent fallback - Update chartPalette providerCostColor/providerCreditsColor fallback chain - Pass providerAccentColors through TrayPanel/PopOutPanel/ProvidersTab/ProviderDetailPane Also: - Add 11 new locale keys to all 7 .ftl files + keys.ts - Add costSummaryDisplayStyle + providerAccentColors to all test mock SettingsSnapshot - Update chartPalette tests for --provider-accent fallback
5f54f4a to
521e3e5
Compare
Port upstream CodexBar 0.50.1 → Win-CodexBar (Wave 5)
Ports upstream CodexBar 0.50.1 changes into Win-CodexBar. Built on top of
port/upstream-0.50.0(prior waves 0.49.0–0.50.0).Ported
7855400d7weekly_label: "Auto"→"Cursor",plan_period_label→ "Cursor and Third Party"7855400d7strip_curl_cookie_wrapper,curlprefix +Cookie:label stripping innormalize_cookie_header5f3096160pace_json(), session pace in CLI JSON + text outputaaff37982space-between)547faeb81run_kiro_login(), wired intotrigger_provider_login, emitslogin-phaseeventsfc32e4641--identitynow optional; followshide_personal_infosetting when absentSkipped (no port needed — already correct or not applicable)
windows-release-build.ps1usesSplit-Path -LeafNonecostsDeferred (require larger feature implementation)
codexModelsDevProviderIDsset, multi-targetmodels_dev_pricing::lookuphistory_coverage_establishedfor completed-empty scans; fork-retry concept doesn't exist in Rust scannerMonthlyPlanMetricPreference variant, tray text renderer extension, Vibe API fetchCostSummaryDisplayStylefeature doesn't exist; needs enum, settings, per-provider registry, MenuCard gatingaccent_colorfield inProviderConfig, tauri command, frontend settings UI, CSS var injectionmake_windowsbranch to deduplicate quota-summary rowsProviderError::OAuthRevokedvariant, keyring ACL-revoked detection, CLI throttle, capture-age displaySkipped (per task instructions — do NOT port)
Gate checks
cargo fmt --all— cleancargo clippy --manifest-path rust/Cargo.toml -p codexbar -- -D warnings— cleancargo checkfor both manifests — compilespnpm --dir apps/desktop-tauri run build— passespnpm --dir apps/desktop-tauri test— 261 tests pass (43 files)