Uh oh!
There was an error while loading. Please reload this page.
feat(runtime-host): own multi-account API-key onboarding - #3882
Conversation
Astro-Han
left a comment
There was a problem hiding this comment.
I reviewed this head and found blocking issues.
[P2] /model cannot disambiguate same-provider accounts
Storage writes name="OpenAI" for every new account; /model shows connectionName || slug only — two OpenAI accounts both render as OpenAI, user cannot tell which will be selected. Violates disambiguation requirement.
Fix: render name + slug together with regression test using real same-name onboarding.
Also Standards 3 hard (template, missing trailer, before/after).
Hosted test/windows_recovery: SUCCESS.
简体中文
同名账号无法区分。Automated review notice: This comment was posted by an automated review agent operated by Astro-Han. It is not an independent human review and does not replace one.
92e3427 to
e69f48eCompareme2seeks
commented
Aug 26, 2026
Addressed on head
Validation: CLI typecheck/build; focused TUI 4/4; Runtime Host onboarding projection 6/6; Biome and diff-check. Hosted checks are rerunning for the new head. |
me2seeks
commented
Aug 26, 2026
Hosted freshness is complete for head |
There was a problem hiding this comment.
I reviewed this head and found blocking issues.
[P2] /model new-account path carries only connectionSlug, not connectionId
Multi-account selection sends only slug; if account A deleted and slug reused, server resolves by slug and silently binds to B.
Fix: carry connectionId through ModelChoice/driver/protocol.
[P2] Label dedup collision
modelChoiceConnectionLabels() groups by raw name then appends slug once; OpenAI/openai, OpenAI/openai-2, OpenAI · openai/relay can collide to OpenAI · openai duplicate. Fix: globally unique final labels with regression test.
Hosted test: SUCCESS and windows_recovery: SUCCESS, but code is NO-GO.
简体中文
多账号标识与标签去重问题。Automated review notice: This comment was posted by an automated review agent operated by Astro-Han. It is not an independent human review and does not replace one.
4d2db23 to
b1ab9adCompareb1ab9ad to
77ece33Compareme2seeks
commented
Aug 26, 2026
Addressed both review blockers in |
f1fa3f9 to
a70bc67Compareme2seeks
commented
Aug 26, 2026
Addressed the hosted release-smoke failure on head The Runtime Host resolver already selected the exact Connection entity, but A regression uses two same-provider accounts, selects account 2 by slug, runs through the real Runtime Host context and Session driver, and asserts the exact account-2 triplet on Generated-by: Codex |
Astro-Han
left a comment
There was a problem hiding this comment.
I reviewed this head and found the overall feature is not merge-ready.
Multi-account API-key onboarding (intent create/existing, Storage UUID/slug assignment, recovery intent, Host-committed identity) is necessary and bounded correctness shows no independent P0-P3; hosted test/windows_recovery SUCCESS.
[Feature/Global-design] NO-GO — composed sequence mismatch
This head (a70bc67) still carries the superseded 6-commit #3864 stack (actual parent 26bf00bb, body misstates f5ba1f2d) for 109 files / +4124 -668, and its last two commits are exactly the model-selection/CAS/run/activation work that now belongs to #3926 per #3852. The intended sequence is #3864 (04686a0) → #3926 → #3882 (onboarding-only). Until #3864 and #3926 land and #3882 is rebased/deduped to onboarding-only with corrected dependencies, this composed PR should not be merged.
简体中文
当前组合与既定序列不一致,需等待前置 PR 落地后再重叠为 onboarding-only。Automated review notice: This comment was posted by an automated review agent operated by Astro-Han. It is not an independent human review and does not replace one.
a70bc67 to
19581e8Compare
M4n5ter
left a comment
There was a problem hiding this comment.
I reviewed exact head 19581e83279577de74d1f70083e0159f5f334208 and found no P0/P1 issues and one P2 correctness issue, left inline. The Storage-owned candidate identity, exact existing-account targeting, transaction recovery, and concurrency guards otherwise held up under the affected tests.
Both exact-head hosted checks passed, but this branch currently conflicts with main. The conflict is also a protocol compatibility boundary: current main is epoch 67, while this head assigns epoch 66 to a different closed wire change. Please rebase, assign an epoch strictly newer than current main, and rerun the checks; I am leaving a COMMENT rather than an approval because the reviewed head cannot be merged as-is.
Automated review notice: This comment was posted by an automated review agent operated by M4n5ter. It is not an independent human review and does not replace one.
Uh oh!
There was an error while loading. Please reload this page.
Generated-by: OpenAI Codex
Generated-by: OpenAI Codex
Generated-by: OpenAI Codex
Generated-by: OpenAI Codex
Generated-by: OpenAI Codex
19581e8 to
9dc5669Compare
M4n5ter
left a comment
There was a problem hiding this comment.
Reviewed exact head 9dc56691e01e72c445720b2d6da8bb255ed70d61. No P0-P3 issues remain.
The previous post-commit refresh finding is closed. The onboarding surface now keeps the Host-returned committed Connection identity separate from the follow-up catalog refresh. If refresh fails, the save remains successful with a restart warning, and retrying the same wizard target edits that exact Connection instead of allocating another account. A newly reselected Add Account row receives a fresh target identity, so a late save cannot rebind the user's new create intent; late projections also remain attempt-gated.
The rebase preserves current main and advances the incompatible onboarding protocol shape from epoch 67 to 68. The closed create | existing target still leaves Storage/Runtime Host as the only durable identity authority; the CLI only carries the returned exact identity.
Verification: both hosted checks are green on this exact head. Core, Storage, MCP, Runtime, Runtime Host, Eval, and CLI builds passed locally; 332/332 affected CLI/Host/Storage tests passed, along with the protocol epoch guard, Biome on all 20 changed files, ASF header audit, and diff checking. The sole review thread is resolved.
Automated review notice: This comment was posted by an automated review agent operated by M4n5ter. It is not an independent human review and does not replace one.
Uh oh!
There was an error while loading. Please reload this page.
Summary
Before: Runtime Host onboarding without a Connection ID implicitly targeted the provider's canonical slug. Storage could persist multiple same-provider Connections, but CLI/TUI could only edit that canonical account and could not ask the Host to create another one.
After:
create(providerType)andexisting(connectionId)targets;connectionId + slugat begin, freezes that identity in the ticket and v2 recovery journal, and revalidates it before credential/catalog mutation;Fixes#3869
Verification
9dc56691e.testandwindows_recoveryboth passed on exact head9dc56691e.git diff --checkpassed.Compatibility and scope
openai-2, remain editable by exact Connection ID.AI use
Select exactly one:
Tool(s) and scope: OpenAI Codex assisted with implementation, tests, review remediation, rebase conflict resolution, and verification. Commits contain a
Generated-by: OpenAI Codextrailer.Checklist
Does this PR entail a change in behavior?