Skip to content

Fix one-shot rate detection for all non-Claude providers#355

Merged
iamtoruk merged 5 commits into
mainfrom
fix/oneshot-combined
May 18, 2026
Merged

Fix one-shot rate detection for all non-Claude providers#355
iamtoruk merged 5 commits into
mainfrom
fix/oneshot-combined

Conversation

@iamtoruk
Copy link
Copy Markdown
Member

Summary

Combines the best of #352 and #353 to fix 100% one-shot rates across all non-Claude providers:

  • Gemini + Mistral Vibe: emit per-assistant-message ParsedProviderCalls grouped by turnId, so the existing multi-call retry detector sees Edit -> Bash -> Edit flows naturally (from Fix Gemini and Vibe one-shot rates #352)
  • Kiro + Goose: record per-message tool ordering via toolSequence on aggregated calls, expanded in the classifier (from Fix 100% one-shot rate for Gemini/Mistral/Kiro/Goose #353)
  • Vibe cost: prefers meta.json.stats.session_cost over price-derived estimates when available
  • Session cache: bumped to v2 so existing Gemini/Vibe cache entries are re-derived
  • Menubar: insight pill switcher scrolls horizontally instead of wrapping

Supersedes #352 and #353. Closes #351.

Changed files

Area Files
Types providers/types.ts, session-cache.ts, types.ts
Pipeline parser.ts (turnId grouping + toolSequence carry-through)
Classifier classifier.ts (expand toolSequence in countRetries)
Providers gemini.ts, mistral-vibe.ts, kiro.ts, goose.ts
Docs docs/providers/mistral-vibe.md
UI HeatmapSection.swift (ScrollView pills)
Tests classifier.test.ts, mistral-vibe.test.ts, provider-turn-grouping.test.ts

Test plan

  • tsc --noEmit clean
  • npm test -- --run - 61 files, 868 tests pass
  • npm run build clean
  • swift build clean
  • git diff --check clean
  • Verify Gemini/Vibe one-shot rates change for users with actual retry sessions
  • Verify insight pills scroll without wrapping on narrow popovers

iamtoruk added 5 commits May 18, 2026 15:52
SwiftUI MenuBarExtra with litellm-snapshot pricing, Claude/Codex/Copilot
parsers, session discovery, auto-refresh timer, and dashboard UI matching
the real menubar design.
Private Mac App Store build, not for the public repo.
Gemini and Mistral Vibe now emit per-assistant-message calls grouped
by user turn via turnId, so the classifier sees Edit->Bash->Edit as
retries instead of independent one-shot turns. Kiro and Goose record
per-message tool ordering via toolSequence for the same effect on
aggregated sessions.

Vibe now prefers meta.json.stats.session_cost over price-derived
estimates. Session cache bumped to v2. Insight pill switcher scrolls
horizontally instead of wrapping.

Closes #351.
@iamtoruk iamtoruk force-pushed the fix/oneshot-combined branch from 8f3594e to 1bfe4b8 Compare May 18, 2026 22:56
@iamtoruk iamtoruk merged commit 06f6948 into main May 18, 2026
3 checks passed
@iamtoruk iamtoruk deleted the fix/oneshot-combined branch May 18, 2026 22:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Validate Mistral Vibe and Gemini one-shot rates

1 participant