Skip to content

feat: backup provider accounts, better default models, and a bot-owned model picker - #352

Merged
leoisadev1 merged 8 commits into
mainfrom
t3code/fix-sidebar-overflow
Oct 4, 2026
Merged

leoisadev1 merged 8 commits into
mainfrom
t3code/fix-sidebar-overflow

Conversation

@leoisadev1

@leoisadev1 leoisadev1 commented Oct 4, 2026 •

Copy link
Copy Markdown
Member

Problem

When a bot's subscription hit its usage limit, the bot stopped replying until the limit reset, even if you had a second subscription for the same provider. New bots also started on older models, such as Claude Sonnet 5 and GPT-5.6 Luna on OpenCode Go. A model button in the chat composer duplicated the bot's settings. On macOS desktop, the sidebar crowded the window controls.

Fix

  • Backup accounts. A subscription provider page now lists Accounts in the order bots use them. Each account is named by its plan, such as ChatGPT Pro or Claude Max 20x, never by email. Bots use the first ready account. An account that hits a usage limit sits out until the reset time the provider gives, or for an hour, and the next request uses the next account. You can reorder accounts, sign one in again, replace a key, or remove one, on web and on mobile.
  • Separate accounts stay. feat(web): add provider accounts from the provider page #350's named accounts remain on the page below the list, as Add separate account. They keep their own sign-in and never join the backup order.
  • Outcomes land on the right account. The server records each request's outcome on the account that served that chat, so concurrent chats on different accounts don't charge each other's failures. OpenCode Go reads the key and the endpoint from the same account. The order file merges per provider, so two server processes can't overwrite each other's reorder.
  • Defaults. New bots start on Claude Opus 5.5, Grok 4.7 and GPT-6 Luna on OpenCode Go, and title generation uses GPT-6 Luna. Model lists and names still come from feat(server): load provider model lists live from models.dev #348's models.dev catalog. The server's slug formatter and the shared formatModelSlug are now one function.
  • Model picker. The composer no longer shows a model button. The model shortcut and the command palette's Change model open the bot's settings at Model & usage.
  • Sign-in card. When signing in to the bot's default subscription would fix the chat, the chat shows that sign-in in place of fix(web): say which provider to connect when a bot chat can't start #349's notice. Every other cause still gets fix(web): say which provider to connect when a bot chat can't start #349's notice.
  • Sidebar. On macOS desktop, a titlebar strip runs across the rail and panel while the traffic lights show, and it goes away in fullscreen.

Verification

  • Server, web, mobile, contracts and shared typecheck clean.
  • The targeted suites pass: 394 test files and 3,248 tests before the review fixes, then 203 files and 1,613 tests after. They cover subscription-auth, usage, the harness, controller and driver tests, settings, roster, chat and i18n. New regression tests cover the OpenCode Go key and endpoint race, Disconnect of a reordered account, cooldown recovery after the last backup is removed, and concurrent reorders.
  • An independent review found four server defects; all four are fixed and covered by those tests.
  • Checked in a local browser against fixture data: the provider page with three accounts in mixed states, the Configuration section with Add separate account, and a bot chat with no composer model button.

Not covered: a real usage-limit failover against live provider accounts, and the macOS traffic-light strip on an actual Mac.

Before After
Provider page Provider page on main Provider page with backup accounts
Chat — Chat composer without a model button

Created with Claude Opus 5.5 in Claude Code.


Devin Review

@vercel

vercel Bot commented Oct 4, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
akeru-bot-landing Ready Ready Preview Oct 4, 2026 10:37pm UTC

Request Review

leoisadev1 and others added 2 commits October 4, 2026 18:37
…t-owned model picker

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…r safe

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@leoisadev1
leoisadev1 force-pushed the t3code/fix-sidebar-overflow branch from c67fa44 to 59e6eef Compare October 4, 2026 22:37
@github-actions github-actions Bot added type:provider Agent provider contribution. vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL labels Oct 4, 2026

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 3 potential issues.

Devin Review

Comment thread apps/server/src/subscription-auth/healthService.ts
Comment thread apps/server/src/subscription-auth/accountState.ts Outdated
Comment thread apps/web/src/components/sidebar/ExperimentalSidebar.tsx
…ibuted limits

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@greptile-apps

greptile-apps Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5 Tier: apex

[High risk] Adds backup provider accounts and changes default models across the system.

The PR appears safe to merge, with two non-blocking model-routing and catalog-maintenance issues worth correcting.

Summary

The PR adds ordered backup subscription accounts, updates default models, and moves the web bot model picker into settings. Changes incorporated since the previous review also make mobile model choices bot-owned, forward model-specific reasoning across provider transports, and retire per-bot token hard stops.

  • Two non-blocking issues remain in mobile feedback-command routing and Grok alias capability lookup.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  A[Bot settings] --> B[Saved engine and reasoning]
  B --> C[Controller validates selection]
  C --> D[Select first ready linked account]
  D --> E[Send provider request]
  E --> F[Record outcome on serving account]
  F -->|Account limit: next turn| D
Loading

Reviews (6) · Last reviewed commit: "Merge remote-tracking branch 'origin/mai..."

Comment thread apps/server/src/subscription-auth/healthService.ts Outdated
Comment thread apps/server/src/provider/mastra/AkeruModels.ts Outdated
Comment thread apps/server/src/subscription-auth/accountState.ts
Comment thread apps/web/src/components/roster/GroupThreadLanding.tsx
Comment thread apps/web/src/components/settings/ProviderDetailPage.tsx
leoisadev1 and others added 2 commits October 4, 2026 18:56
…count per request

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…r signs in again

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Comment thread apps/server/src/subscription-auth/healthService.ts
leoisadev1 and others added 3 commits October 4, 2026 19:09
… limited

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…erflow

# Conflicts:
#	apps/server/src/provider/mastra/AkeruModels.ts
#	apps/web/src/components/roster/BotComposerModelControl.tsx
#	apps/web/src/components/roster/botEngineSelection.test.ts
#	apps/web/src/components/roster/botEngineSelection.ts
#	docs/internals/providers.md
#	packages/client-runtime/src/i18n/__snapshots__/coverage.test.ts.snap
#	packages/shared/src/model.test.ts
@greptile-apps

greptile-apps Bot commented Oct 4, 2026

Copy link
Copy Markdown

Comments Outside Diff

These findings could not be posted inline.

  • P2 Grok Alias Uses Old Capabilities apps/server/src/provider/HarnessProviderStatus.ts:211 ▶

    grok-build now runs and is labeled as Grok 4.7, but its reasoning choices still come from Grok 4.6. If a catalog refresh removes 4.6 or gives the versions different effort levels, Grok 4.7 can lose its reasoning controls or reject a saved choice. Read the 4.7 catalog entry for this alias. Review certainty: 4/5.

@leoisadev1
leoisadev1 merged commit 55028ce into main Oct 4, 2026
11 checks passed
@leoisadev1
leoisadev1 deleted the t3code/fix-sidebar-overflow branch October 4, 2026 23:48

This branch was successfully deployed

1 active deployment
Preview — 2723af9e Deployed Oct 4, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL type:provider Agent provider contribution. vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant