Skip to content

feat(settings): move mid-turn steering behind a Settings toggle - #118

Merged
astyfx merged 1 commit into
mainfrom
feat/mid-turn-steering-setting
Jul 8, 2026
Merged

feat(settings): move mid-turn steering behind a Settings toggle#118
astyfx merged 1 commit into
mainfrom
feat/mid-turn-steering-setting

Conversation

@astyfx

@astyfx astyfx commented Jul 8, 2026

Copy link
Copy Markdown
Member

Summary

Mid-turn steering was previously gated solely by the STAVE_ENABLE_MID_TURN_STEERING env var, with no user-facing way to turn it on. This adds a real Settings UI toggle as the primary control, keeping the env var as a backward-compatible fallback for existing dev/ops usage.

Changes

Features

  • settings: add midTurnSteeringEnabled (Settings → Steer / Queue) as the on/off switch for mid-turn steering; the "Active-Turn Keys" selector is disabled when it's off
  • chat-input: hide the steer option entirely when the setting is off, instead of offering it and having it silently rejected by the main process

Fixes

  • provider-runtime: steerTurn now accepts an enabled flag from the renderer setting; steering works if either the setting is true or STAVE_ENABLE_MID_TURN_STEERING=1 is set — neither alone is required, so existing env-var-only setups keep working

Refactors / Chores

  • Thread the new enabled field through the full provider IPC contract: SteerTurnArgsSchemapreload.tswindow-api.d.tsProviderRuntime.steerTurn type → runtime.ts
  • Fix two test files under tests/ that were left broken by the prior Send/Stop composer redesign (fix(prompt-input): unify steer/queue composer into a codex-style morphing button #115) — they asserted on removed UI (the old separate abort button and the floating "Adjust current work" secondary button)

Test Evidence

  • bun run typecheck passes clean
  • bun test tests/prompt-input-queue-mode.test.tsx tests/provider-runtime-steer.test.ts — 19/19 pass, including new coverage for enabled:true overriding the env flag and enabled:false still blocking when the env flag is off
  • Full bun test run has 11 pre-existing failures in provider-executable-resolution.test.ts (test-isolation issue when run as part of the full suite) — confirmed present on main before this change too, unrelated to this diff

Notes

Builds on the composer UX work from #115 (already merged into main); this PR is based on current main and only carries the settings-toggle diff.

Add settings.midTurnSteeringEnabled (Settings → Steer / Queue) as the
primary on/off switch for mid-turn steering, threaded through the
provider IPC contract (schema, preload, main, runtime) to the
existing STAVE_ENABLE_MID_TURN_STEERING env check, which now acts as
a legacy/ops fallback rather than the only way to enable it. The
composer's steer option is now hidden entirely when the setting is
off instead of being offered and then rejected by the main process.
@astyfx
astyfx requested review from JongSikLim and heath-s July 8, 2026 07:11
@astyfx
astyfx enabled auto-merge (squash) July 8, 2026 07:11
@astyfx
astyfx merged commit dbe4cf7 into main Jul 8, 2026
3 checks passed
@astyfx
astyfx deleted the feat/mid-turn-steering-setting branch July 8, 2026 07:25
@astyfx astyfx mentioned this pull request Jul 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants