Split ucode setup into per-section commands + apply diff + wizard UX - #341
Open
rohita5l wants to merge 2 commits into
Open
Split ucode setup into per-section commands + apply diff + wizard UX#341rohita5l wants to merge 2 commits into
ucode setup into per-section commands + apply diff + wizard UX#341rohita5l wants to merge 2 commits into
Conversation
…zard UX Split the monolithic `ucode setup` into `ucode setup` (agents + models) plus `ucode setup mcp` / `skills` / `budget-policy` / `help`, each editing one section of the same managed config. `ucode setup` now carries the other sections forward on a re-run instead of clearing them. `ucode apply` shows a human-readable ADD/DELETE/CHANGE diff against the published config before confirming, and does nothing when they already match. Wizard UX: step banners, per-agent progress and a uniform per-agent confirmation, a "Selected so far" recap, a Claude family-slot recap, a boxed "What is a budget policy?" explanation, spend-range budget tiers with an anchored default, and a boxed warning when no attachable budget exists. Codex model lists now sort newest-first. Gemini is dropped from the setup picker (still launchable). Co-authored-by: Isaac
Make clear the MCP / skills / budget-policy commands aren't required to publish, so a config with none configured doesn't read as unfinished. Co-authored-by: Isaac
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.
What
Breaks the monolithic
ucode setupinto focused commands and polishes the interactive wizard.Command surface
ucode setupnow configures agents and models only, then prints a checklist of what's left. Each other section is its own command:ucode setupucode setup mcpucode setup skills [--location a.b,c.d]ucode setup budget-policyucode setup helpucode setupcarries the other sections forward instead of clearing them (a re-run afterucode revert/fresh machine falls back to the workspace's published config). A carried budget policy that no longer fits the enabled agents is dropped with a warning rather than blocking the save.ucode setupto have run first; they validate structurally (no model-inventory re-check, since they don't touch models).ucode applydiffBefore the confirmation prompt,
applyshows a human-readable ADD / DELETE / CHANGE diff against the published config (normalized the same way it will be sent, so no phantom changes), and does nothing when the two already match.Wizard UX
step 2 of 3 · Models & settings), per-agent progress counters, and a uniform✔ <agent> configured — <model> · <scope>line per agent.under 50%,50–90%,90%+) anchored by the manifest default; a duplicate agent/model re-asks only the agent/model, keeping the percentage.ucode gemini).Testing
uv run pytest(non-e2e): 1856 pass. The one failure,test_mcp.py::TestConfigureMcpCommand::test_registers_discovered_external_server, is pre-existing onmain(verified on a clean checkout) and unrelated to this change.uv run ruff check .clean.This pull request and its description were written by Isaac.