* fix(3784): expose adaptive in model_profile settings flow
Split the single 4-option model-profile AskUserQuestion into a two-question
flow: Q1 (Adaptive / Standard tier / Inherit) routes top-level intent; Q2
(Quality / Balanced / Budget) appears only when Standard tier is chosen.
Updates the confirm table and success_criteria to include adaptive.
Adds regression test asserting all five valid profiles are reachable
interactively via the settings UI.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* changeset: add Fixed entry for #3784 / PR #3795
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(3784): correct Q2-skip comment and remove duplicate brace in settings.md
Codex review followup:
- Replaced vague "preserve existing config" comment with accurate description:
Q1 still writes model_profile on Adaptive/Inherit branches; only Q2 is skipped.
- Removed stray duplicate `{` line before the Spawn Plan Researcher question block
(pseudocode had two consecutive `{` openers, one spurious).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(3784): address review — gate Q2 structurally, define cancel rule, harden tests
Addresses gsd-code-reviewer (M1/M2/m1/m2/m3/m4) and codex adversarial
(Q2 gating, save-mapping, Claude-only wording, step-of-2 wording).
- F1: Replace //comment-only Q2 gating with Conditional visibility block
(mirrors code_review_depth / graphify.auto_update structural pattern)
- F2: Define model_profile cancel rule in update_config step (leave
existing value unchanged when Q1="Standard tier…" but Q2 cancelled)
- F3: Fix Adaptive description — remove "Claude only" tail; describe
heavy/light role tiers across all supported runtimes
- F4: Remove "step 1 of 2 for standard profiles" from Q1 question text
(2-step nature now structurally documented by Conditional visibility)
- F5: Fix vacuously-true test disjunct (|| content.includes('Adaptive')
always true — 6+ occurrences); assertion now requires role-based cost
optimization + heavy roles wording
- F6: Add 4-option cap enforcement test (ASK_USER_QUESTION_OPTION_CAP=4
named constant, counts per question object not per AskUserQuestion call)
and brace-balance regression test (guards against bd53925f recurrence)
* docs(3784): list adaptive in model_profile reference docs
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>