feat: New Fleet wizard Step 2 rewrite — vendor + chat platform + ACP (studio#128) - #132
Merged
Merged
Conversation
…write (studio#128) Replaces the Template/Overlay compose-library step (empty on every fresh install by design, blocking the whole deploy flow — the original #119 screenshot that started this) with the vendor + chat platform + ACP flow confirmed with Brett across #128's design thread. ## Console (items 1-5 of the runbook, shipped together — all fields live on the same new Step 2 screen) - Vendor <select>: Claude/codex/agy/cursor/kiro. "agy" is only the display label — the option value is "antigravity" (the GHCR image variant / Dockerfile.package build-target name resolve_vendor_image_tags expects). - Image tag: pre-filled from resolve_vendor_image_tags (#131) — Stable if GHCR confirms it exists, else Beta (pre-beta-<vendor>), else left for manual entry. Always editable — no lookup failure blocks the field. - API key (optional): captured, stored as a secret server-side; not yet wired into config.toml (documented gap from #129, unchanged here). - Chat platform (optional, default none — "use ACP directly"): Discord/Telegram/LINE, reveals the right token field(s) per platform. k8s deploys refuse a non-empty selection both client-side (clean validation message) and server-side (#129's existing refusal) — config.toml secret resolution needs AWS credentials a k8s pod doesn't have. - Enable ACP checkbox: default checked, forced off + disabled for vendor=agy (its bridge bypasses openab-gateway's /acp route entirely). - Agent name: pre-filled with a random Greek god name, shuffle button to re-roll, still freely editable. - No separate "Preview bundle" step anymore — fill in the fields, Deploy. ## Backend: acp_enabled made caller-controlled (was hardcoded true in #127) #127 hardcoded `acp_enabled: Some(true)` inside build_default_manifest / build_default_k8s_manifest with no way for a caller to turn it off — fine when nothing exposed a toggle, not fine once the wizard has an actual checkbox (needed for the agy case above). Both functions, and AgentWizardInput, now take `acp_enabled: bool` explicitly: - studio-cp: build_default_manifest/build_default_k8s_manifest gained an `acp_enabled: bool` param — only generates the ACP auth secret when true. provision_from_library[_k8s] (the older compose-library path, unrelated to this wizard) pass `true` at their call sites, preserving #127's original unconditional-on behavior there unchanged. - oab-mcp: deploy_provision_agent's schema gained `acp_enabled: boolean`, defaulting to true when the caller omits it (same default #127 had, now explicit and overridable instead of baked in). - src-tauri: bridge command threads the new param through. Ref #128.
This was referenced Aug 29, 2026
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Items 1-5 of #128's runbook, shipped together (all fields on the same new Step 2 screen — not worth splitting further). Replaces the Template/Overlay compose-library step with the vendor + chat platform + ACP flow confirmed with Brett across #128's design thread.
This directly fixes the original problem that started #119/#128: the Template dropdown ships empty on every fresh install (no bundled default, by design) and blocked the whole "+ New fleet" flow.
Console — new Step 2
<select>: Claude / codex / agy / cursor / kiro. "agy" is only the display label — the optionvalueis"antigravity"(the actual GHCR image variant /Dockerfile.packagebuild-target nameresolve_vendor_image_tagsexpects). Caught this via a real typecheck failure (unusedVENDORStranslation table) before it shipped — simpler fix was making the HTML option value correct directly, not translating at call time.resolve_vendor_image_tags(feat: resolve vendor Stable/Beta image tags from GHCR (studio#128) #131) — Stable if GHCR confirms it exists, else Beta (pre-beta-<vendor>), else left for manual entry. Always editable, a lookup failure never blocks the field.openab-gateway's/acproute entirely — confirmed by readingagy-acp/src/main.rs).Backend:
acp_enabledmade caller-controlled#127 hardcoded
acp_enabled: Some(true)insidebuild_default_manifest/build_default_k8s_manifestwith no way for a caller to turn it off — fine when nothing exposed a toggle yet, not fine once the wizard has an actual checkbox (needed for the agy case above, which has to be forceable tofalse).acp_enabled: boolparameter — only generates the ACP auth secret (AWS Secrets Manager / k8s Secret) when true, no wasted secret nobody will reference.provision_from_library/provision_from_library_k8s(the older compose-library path — unrelated to this wizard, still exists) passtrueat their call sites, preserving feat(oabctl,studio-cp): enable ACP by default on Studio-deployed agents #127's original unconditional-on behavior there, unchanged.deploy_provision_agent's schema gainedacp_enabled: boolean, defaulting totrueserver-side when the caller omits it (same default feat(oabctl,studio-cp): enable ACP by default on Studio-deployed agents #127 had, now explicit and overridable instead of baked in).Verification
npm run typecheckclean,npm test106/106 passing,npm run buildsucceeds.aws-sdk-ec2OOM limitation as every other Rust PR this week.Ref #128.
🤖 Generated with Claude Code