Skip to content

feat(web): add provider accounts from the provider page - #350

Merged
leoisadev1 merged 7 commits into
mainfrom
feat/provider-add-account
Oct 3, 2026
Merged

leoisadev1 merged 7 commits into
mainfrom
feat/provider-add-account

Conversation

@leoisadev1

@leoisadev1 leoisadev1 commented Oct 3, 2026 •

Copy link
Copy Markdown
Member

The Add account dialog was still T3 Code's provider-instance wizard. It opened from one provider's page but asked which driver to use, listed Copilot, Gemini, ACP Registry, and Pi Agent as coming soon, and asked for a CLI binary path, home paths, launch arguments, an account ID, and an accent color. Akeru runs its providers through its own controller, so none of those fields did anything for a new account.

The dialog now adds an account of the page's provider:

  • ChatGPT, Claude, Grok, Kimi For Coding, and OpenCode Go ask only for a name. Sign-in happens from the new account's card, and the success toast no longer claims the account is signed in.
  • Custom API keeps its three steps: pick a service, name it, then paste the base URL and key.
  • The name is optional and says so. A blank name saves a numbered one such as "ChatGPT 2", so a second account never looks like the default.
  • The account ID is always derived from the name, with a numeric suffix on collision, and stays inside the contract's 64-character limit.
  • Enter submits or advances, except while an IME candidate is being confirmed.
  • The unused agent catalog icons are deleted.

Existing account cards still show the old CLI and accent color fields. Removing those from the card and the settings schema is a separate change.

Before After
Old wizard asking for a driver New ChatGPT dialog asking only for a name

Custom API keeps a service step: Custom API service picker

Verification: web typecheck passes, the touched settings tests pass along with the Custom API key and model tests (46 tests across 6 files, including the IME Enter cases and an id-collision case validated against the ProviderInstanceId contract), and vp lint and vp fmt --check are clean on the changed files. The screenshots come from an isolated dev build of this branch and of main.

Created with Claude Opus 5.5 in T3 Code.


Devin Review

leoisadev1 and others added 6 commits October 3, 2026 13:09
The add dialog was T3 Code's provider-instance wizard: it asked which driver
to use even though it opens from one provider's page, and it listed Copilot,
Gemini, ACP Registry, and Pi Agent as coming soon. Akeru runs its own harness
and supports none of those.

The dialog now adds an account of the page's provider. Custom API asks for the
service, then a name, then the connection; other providers ask for a name and
their settings. The unused agent catalog icons are gone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Name the provider page in the title, space the fields, and default the
account ID to a free one so an empty or repeated name never blocks Next.
The dialog now requires a known provider instead of falling back to
Codex, and the success toast no longer claims a new account is signed in.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Add account dialog showed the CLI fields inherited from T3 Code:
binary path, home paths, and launch arguments. Akeru runs these
providers through its own controller, so the fields do nothing for a
new account. ChatGPT, Claude, Grok, Kimi, and OpenCode Go accounts now
take a name and sign in from their card. Custom API keeps its service,
name, and connect steps.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The dialog asked for an account ID and an accent color, both carried over
from T3 Code. The ID is now always generated from the name, with a numeric
suffix when it is taken, so validation and blocked step navigation go too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Name field says it is optional, shows the name a blank entry gets
(such as ChatGPT 2), takes focus, and submits on Enter. A blank name now
saves that numbered name so the new account never looks like the default.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Enter that confirms an IME candidate no longer advances or saves, and
derived account ids stay inside the 64-character contract limit even
with a collision suffix.

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

vercel Bot commented Oct 3, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated
akeru-bot-landing Building Building Preview Oct 3, 2026 5:20pm UTC

Request Review

@github-actions github-actions Bot added size:XL vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. labels Oct 3, 2026
@greptile-apps

greptile-apps Bot commented Oct 3, 2026 •

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5

[Medium risk] Refactors the add-provider dialog to open from a provider page.

The PR appears safe to merge; no new actionable issue or outstanding previous finding remains.

Summary

The PR replaces the provider-instance wizard with a provider-specific Add account dialog.

  • Subscription accounts ask for a name; Custom API retains service, name, and connection steps.
  • Account IDs and blank-name fallbacks are generated automatically, and Enter advances or submits outside IME composition.
  • Provider-page labels, translations, tests, and documentation are updated.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart TD
  Page[Provider page] --> Dialog[Add account]
  Dialog -->|Subscription| Name[Name]
  Dialog -->|Custom API| Service[Service] --> ApiName[Name] --> Connect[URL and key]
  Name --> Save[Save account]
  Connect --> Save
Loading

Reviews (2) · Last reviewed commit: "fix(web): require a Custom API address a..."

@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 5 potential issues.

Devin Review

Comment thread apps/web/src/components/settings/AddProviderInstanceDialog.tsx Outdated
Comment thread apps/web/src/components/settings/AddProviderInstanceDialog.logic.ts
Comment thread .changeset/provider-add-account.md Outdated
Comment thread apps/web/src/components/settings/AddProviderInstanceDialog.tsx Outdated
Comment thread apps/web/src/components/settings/AddProviderInstanceDialog.tsx
Comment thread apps/web/src/components/settings/AddProviderInstanceDialog.tsx
Comment thread apps/web/src/components/settings/AddProviderInstanceDialog.tsx Outdated
Comment thread apps/web/src/components/settings/AddProviderInstanceDialog.tsx Outdated
Connect saved a Custom API account with no base URL, which the driver
cannot reach, so it now stays disabled until a URL is entered. Enter in
the Connect step submits like it does on the Name step. A blank name now
skips numbers whose display name another account already uses. The
changeset is minor, since adding accounts from the provider page is a
compatible feature.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@leoisadev1
leoisadev1 merged commit 4c23d3e into main Oct 3, 2026
11 checks passed
@leoisadev1
leoisadev1 deleted the feat/provider-add-account branch October 3, 2026 17:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL 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