You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Automatic handoff-note generation should be opt-in rather than enabled by default.
New Downshift configurations currently enable handoffBeforeDownshift, and configurations that omit the field are also interpreted as enabled. This means users can receive extra injected user messages and an additional premium-model turn without explicitly choosing that behavior.
Current behavior
Two code paths currently default handoff notes to on:
configureInitial() writes:
handoffBeforeDownshift: true
readConfig() interprets a missing field as enabled:
Handoff notes should be disabled unless the user explicitly enables them.
The default configuration should behave as:
"handoffBeforeDownshift": false
When disabled, reaching the threshold should switch directly to the economy target without injecting HANDOFF_MARKER or CONTINUE_MARKER messages.
Rationale
Handoff generation is useful, but it is not a passive feature. It:
injects a synthetic user message into durable conversation history,
performs an additional premium-model generation,
can enqueue a continuation turn,
increases token usage and latency,
changes the visible lifecycle of an otherwise completed or interrupted task.
The narrower and safer default is therefore direct model switching. Users who want the richer handoff flow can enable it explicitly from the configuration menu.
This does not replace the lifecycle fixes tracked in #30. Explicitly enabled handoffs must still handle terminal and aborted turns safely.
Proposed implementation
Change configureInitial() to write handoffBeforeDownshift: false.
Change the missing-field fallback in readConfig() to false.
Keep explicitly stored true and false values unchanged.
Update the README example and configuration guidance to show handoff notes as disabled by default and opt-in.
Ensure /downshift still exposes the setting and allows users to enable it deliberately.
Summary
Automatic handoff-note generation should be opt-in rather than enabled by default.
New Downshift configurations currently enable
handoffBeforeDownshift, and configurations that omit the field are also interpreted as enabled. This means users can receive extra injected user messages and an additional premium-model turn without explicitly choosing that behavior.Current behavior
Two code paths currently default handoff notes to on:
configureInitial()writes:handoffBeforeDownshift: truereadConfig()interprets a missing field as enabled:The README example also presents:
Expected behavior
Handoff notes should be disabled unless the user explicitly enables them.
The default configuration should behave as:
When disabled, reaching the threshold should switch directly to the economy target without injecting
HANDOFF_MARKERorCONTINUE_MARKERmessages.Rationale
Handoff generation is useful, but it is not a passive feature. It:
The narrower and safer default is therefore direct model switching. Users who want the richer handoff flow can enable it explicitly from the configuration menu.
This does not replace the lifecycle fixes tracked in #30. Explicitly enabled handoffs must still handle terminal and aborted turns safely.
Proposed implementation
configureInitial()to writehandoffBeforeDownshift: false.readConfig()tofalse.trueandfalsevalues unchanged./downshiftstill exposes the setting and allows users to enable it deliberately.Compatibility
"handoffBeforeDownshift": trueremain enabled."handoffBeforeDownshift": falseremain disabled.Because legacy missing-field behavior changes from enabled to disabled, document this in the release notes.
Non-goals
/downshift nowbehavior beyond respecting the configured handoff policy.Acceptance criteria
handoffBeforeDownshift: false.handoffBeforeDownshiftis read asfalse.handoffBeforeDownshift: trueremains enabled.handoffBeforeDownshift: falseremains disabled.handoff note: nofor a fresh config./downshift, after which the existing handoff flow is used.Test coverage
Add focused coverage for: