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
e69f48e
Compare
|
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. |
|
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
b1ab9ad
Compare
b1ab9ad to
77ece33
Compare
|
Addressed both review blockers in |
77ece33 to
f1fa3f9
Compare
Propagate stop cancellation through legacy adoption and preserve immutable Connection identity across non-model configuration updates. Generated-by: Codex
Keep owner registration synchronous while retaining cancelable queued reservations and release the lane after synchronous executor rejection. Generated-by: Codex
Let AgentRun paths attach and persist cancelled work after stop while keeping no-Run compaction preflight explicitly fenced. Generated-by: Codex
Generated-by: Codex
Carry immutable Connection identity through TUI model selection and make account labels globally unambiguous. Generated-by: Codex
f1fa3f9 to
a70bc67
Compare
|
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.
Summary
Before: Runtime Host onboarding without a Connection ID always targeted the canonical provider slug, so CLI/TUI could not create a second account. After onboarding created two same-provider accounts,
/modelcould still lose immutable Connection identity or render colliding labels.After:
create(providerType)andexisting(connectionId)targets;connectionId + connectionSlug + model, including CAS retries, and never silently rebinds a deleted account;Fixes #3869
Verification
git diff --checkpassed.Dependency and compatibility
f5ba1f2dd.AI use
Select exactly one:
Tool(s) and scope: Codex assisted with implementation, tests, review remediation, and verification. Both commits contain a
Generated-by: Codextrailer.Checklist
Does this PR entail a change in behavior?