Initial public release of Warp.
Repo-Sync-Origin: warpdotdev/warp-internal@12af1d983b
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
# Restore Fast Forward State Across Sessions — Product Spec
|
||||
|
||||
Figma: none provided
|
||||
|
||||
## Summary
|
||||
|
||||
Persist the last state of the fast-forward button for agent conversations across app restarts using Warp's existing session restoration flow. If a restored conversation had fast forward enabled before quit, it should come back enabled after launch; if it was disabled before quit, it should come back disabled.
|
||||
|
||||
## Problem
|
||||
|
||||
Fast forward is currently a per-conversation control during an active session, but that choice is lost when Warp restarts. Users who intentionally enabled or disabled fast forward for a conversation have to remember and re-apply that choice after session restoration, which makes restored agent conversations feel inconsistent and unreliable.
|
||||
|
||||
## Goals
|
||||
|
||||
- Preserve fast-forward state for restored agent conversations across app restarts.
|
||||
- Keep the behavior per conversation rather than turning it into a global setting.
|
||||
- Make the restored state reflect the user's last explicit choice, even if they toggled it shortly before quitting.
|
||||
- Ship the behavior behind a feature flag that is enabled by default for dogfood builds.
|
||||
|
||||
## Non-goals
|
||||
|
||||
- Changing the user's default autonomy settings or global fast-forward preference.
|
||||
- Changing the visibility or semantics of the existing fast-forward button.
|
||||
- Persisting state for brand-new conversations that were never created/restored through the normal session restoration flow.
|
||||
- Syncing this preference across machines or through server-side conversation storage.
|
||||
|
||||
## Figma
|
||||
|
||||
Figma: none provided
|
||||
|
||||
## User Experience
|
||||
|
||||
### Core behavior
|
||||
|
||||
- Fast-forward state is remembered per agent conversation.
|
||||
- Session restoration is the source of truth for when this behavior applies. If Warp restores a conversation on launch, the restored conversation should use the same fast-forward state it had when the app last saved session state.
|
||||
- The remembered state should apply whether the restored conversation is shown in the standard terminal/blocklist UI or reopened into fullscreen agent view.
|
||||
|
||||
### State rules
|
||||
|
||||
- If fast forward was on for a conversation before quit, it is on after launch.
|
||||
- If fast forward was off for a conversation before quit, it is off after launch.
|
||||
- Different restored conversations can come back with different fast-forward states.
|
||||
- New conversations that do not yet have persisted state continue to use the current default behavior until the user explicitly toggles fast forward.
|
||||
|
||||
### Timing expectations
|
||||
|
||||
- If the user toggles fast forward and then quits or restarts Warp without taking another conversation action, the newly selected state should still be restored.
|
||||
- The user should not need to send another message, receive another response, or otherwise advance the conversation for the new fast-forward state to stick.
|
||||
|
||||
### Feature flag behavior
|
||||
|
||||
- The behavior is gated by a dedicated feature flag for remembering fast-forward state across sessions.
|
||||
- That flag is enabled by default for dogfood builds.
|
||||
- If the flag is disabled, restored conversations fall back to current behavior instead of honoring the persisted fast-forward override.
|
||||
|
||||
## Success Criteria
|
||||
|
||||
1. A restored conversation that had fast forward enabled before app restart still shows fast forward enabled after restore.
|
||||
2. A restored conversation that had fast forward disabled before app restart still shows fast forward disabled after restore.
|
||||
3. Two restored conversations with different pre-restart fast-forward states each restore their own state correctly.
|
||||
4. Toggling fast forward immediately before restart is enough to preserve the new state.
|
||||
5. Restoring a conversation into fullscreen agent view preserves the same fast-forward state.
|
||||
6. Conversations persisted before this feature ships continue to restore safely and default to the existing non-fast-forward behavior.
|
||||
7. Disabling the remember-state feature flag restores the current behavior without breaking conversation restoration.
|
||||
|
||||
## Validation
|
||||
|
||||
- Unit tests covering persistence and restoration of the per-conversation fast-forward state.
|
||||
- A restoration-focused test showing that a persisted conversation round-trips through SQLite-backed restore with the expected fast-forward mode.
|
||||
- Manual verification:
|
||||
- enable fast forward, restart Warp, confirm it stays enabled
|
||||
- disable fast forward, restart Warp, confirm it stays disabled
|
||||
- repeat with multiple restored conversations and fullscreen agent view
|
||||
|
||||
## Open Questions
|
||||
|
||||
None.
|
||||
Reference in New Issue
Block a user