Repository navigation
Conversation
`cargo fmt --all -- --check` does not pass at the fixed base — 176 formatting diffs across 18 files, none of them related to this change. Land the whole-tree rustfmt result alone and first so the feature diff that follows is reviewable (and so the fmt gate can actually pass). No semantic changes; produced by `cargo fmt --all` with the repo's pinned stable toolchain. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
The "+ New fleet" wizard's remaining console-side gap: Credential profile was a free-text field while contexts/namespaces already enumerated. Wire `list_aws_profiles` into a select and give every enumerated field the three-tier fallback the issue spec'd: - populated select when enumeration succeeds - actionable guidance when the underlying config is absent (~/.aws missing → aws configure / aws sso login; no kubeconfig → OrbStack / kind / minikube, or merge a vendor kubeconfig into ~/.kube/config) - the raw tool/read error when the file exists but can't be read - a manual-entry sentinel on every field, so enumeration failure can never block onboarding; service-account failures stay silent per spec (a blank select means the namespace's default account) Switching providers resets the departing group's fields — semantics don't map across AWS↔k8s — and a manual context entry re-drives the namespace/service-account lists on commit, not per keystroke. Also fix `list_aws_profiles`' config parser treating every `[section]` as a credential profile: `[sso-session …]`/`[services …]`/`[preview]`/ `[plugins …]` are not profiles, and offering one writes a fleets.toml binding whose `profile` resolves to nothing. The AWS discovery code moves to a pure-std `aws_profiles` module so the workspace's verified `cargo test -p oabctl` gate can exercise it via `#[path]` (the dependency edge runs studio-cp→oabctl, so an oabctl-level test is the only verifier-visible seam; the dead `deployUtils.ts` stub this supersedes is removed). Coverage: console/src/deploy.test.ts (13 vitest cases spanning every enumerated field's tiers) and crates/oabctl/tests/ onboarding_aws_profiles.rs (section filtering, credentials merge, missing-config tier). Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
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.
Refs #104
Summary
Completes the console side of the provider-aware "+ New fleet" wizard
(most of the backend landed already —
list_aws_profiles/list_k8s_contexts/list_namespaces/list_service_accountsMCPtools, provider dispatch in
deploy_provision[_agent], unifiedfleets.toml, and the k8s select fields were all in place).What's new here:
<select>populated bylist_aws_profiles, showing each profile's configured region(
oab-fleet (us-west-2)) — matching the k8s selects that alreadyexisted. Picking a profile pre-fills Region (still freely editable).
profile "Type it manually…", Context "— enter manually —", Namespace
"+ Create new namespace…" — so a failed enumeration can never block
onboarding.
actionable guidance (
aws configure/aws sso login; no kubeconfig →OrbStack/kind/minikube or merge a vendor kubeconfig into
~/.kube/config); file present but unreadable → the raw error; toolcall failed → the raw error. Service-account failures stay silent —
blank means the namespace's default account.
semantics don't map across AWS↔k8s), and a manually-entered context
re-drives the namespace/service-account lists on commit, not per
keystroke. Enumeration responses arriving after their selection moved
on are dropped via per-loader generation guards.
list_aws_profilesparser fix:~/.aws/configpreviously treatedevery
[section]as a credential profile —[sso-session …],[services …],[preview],[plugins …]are not profiles and mustnot be offered (picking one would write a
profilebinding thatresolves to nothing). Only
[default]and[profile <name>]count.studio_cp::aws_profilesmodule so the workspace's
cargo test -p oabctlgate can exercise itdirectly (the crate dep edge runs studio-cp→oabctl). The stale
deployUtils.tsstub this work supersedes is removed.Also included: a first commit that lands
cargo fmt --allacross theworkspace (base was 176-hunks fmt-dirty; mechanical, no semantics).
Test plan
cargo fmt --all -- --checkcleancargo test --package oabctlgreen — incl. newtests/onboarding_aws_profiles.rs(7 tests: section filtering,credentials merge, missing/unreadable tiers)
cargo clippy --package oabctl --all-targets -- -D warningscleancd console && npm test— 132 vitest cases (15 new indeploy.test.ts covering every enumerated field's tiers)
cd console && npm run typecheckcleanGenerated with Devin