Resuming sessions
Session windows and Find Session… replace the app/library window. Settings and the background menu-bar service remain available. Provider restoration and the new native window workflows still require release qualification; synthetic protocol tests are not provider certification.
Find and open
Press Option+Shift+M, or choose Find Session… from the menu bar. An empty query shows up to eight recently recorded sessions, with creation time as the fallback for sessions without capture activity. Reading, connecting, or replaying history does not make an older session recent.
Type to search saved conversation text and labels. Search is literal and case-insensitive, debounced by 150 ms, with up to 50 results. It searches each session’s default conversation, not removed messages, other branches, provisional speech, or protocol logs. A diagnostic does not hide healthy results from other roots. Each query rereads current session files; superseded queries stop between reads. Protocol-heavy histories use larger bounded read batches, but very large histories can still take longer to search.
Use Up/Down and Enter to open a result; Escape or clicking away dismisses the picker. Results pin the exact location and conversation leaf that matched, even if another continuation appends afterward. Failed opens keep the picker available.
Opening saved history is offline: it does not start recording, contact a provider, or write a branch. An exact matching conversation window is reused. Different selected leaves can still open independently; the panel does not expose a separate continuation-creation action.
Resume compatibility
The always-visible Resume options section selects a configured provider, model, and interaction (Finish first to change an active connection):
- User only captures transcription without automatic assistant replies.
- Conversation with assistant also offers Request response.
Saved context requires a history-capable realtime model. User-only interaction can use that connection with automatic replies disabled. A dedicated transcription model is usable for a new empty conversation but is not silently replaced by a conversational model when saved history exists. Choose and confirm a compatible replacement explicitly. Credentials always come from current configuration.
Protocol logs are not required for resuming. Saved conversation text still needs a history-capable model even when there are no logs. An empty user-only session can use the configured transcription model; assistant mode needs a realtime model.
The initial adapter implements OpenAI’s realtime v1 text conversation protocol.
It waits for each exact conversation.item.done acknowledgement in predecessor
order. Configuration acknowledgement alone never enables recording. Model names
alone do not certify a compatible third-party endpoint.
Supported context includes user transcripts, assistant text, and text-convertible custom messages. Transcript-source audio is provenance, not a second submission of the old recording. New recordings label this purpose explicitly; older unlabelled audio needs matching retained transcription provenance. Ambiguous or semantic audio, images, reasoning, tool content, and unknown content remain readable but block this text adapter rather than being silently omitted.
Preflight uses a conservative 24,000 UTF-8 byte text budget, not an exact token count or a guarantee about a provider’s context limit. Over-budget histories and remote rejections fail explicitly. There is no automatic truncation or summary. Cancel closes a partial restoration. Retrying uses a fresh connection and the committed selected conversation; replay does not duplicate saved messages or completion actions.
Pause, transfer, and finish
Only one cooperating capture can own the microphone. Other restored connections remain paused. To switch, use Pause other recording and record here. The old capture must quiesce successfully before the new one starts. Busy and failed acquisitions never turn into delayed automatic recording.
Pause releases the device and settles pending input before closing the capture asset boundary. The healthy provider connection stays open. Resume on that connection does not replay history again and creates a distinct audio asset. Recorded duration excludes pauses and gaps between days. A subtle gradient border identifies the window actually recording; paused or merely focused windows do not show it.
Request response requires ready, settled context and works while paused without acquiring the microphone. Responses cannot race restoration or message removal.
Finish drains pending transcription and assistant responses with bounded waiting, saves eligible canonical content, and disconnects. Successful Finish closes the session window automatically, including when triggered from the tray or shortcut. Reopen saved history with Find Session…. Failed or incomplete outcomes keep the view visible and preserve acknowledged history and audio instead of claiming everything was saved. Completion clipboard/notification preferences apply to new work, not history replay alone.
Closing is not stopping
Closing a session window closes only its view, including during restoration or recording. The menu bar still lists active continuations and offers Open, Pause/Resume, Finish, or Cancel. A one-time cue explains this distinction.
Paused connections may incur provider costs and can expire. Network failure or a suspended service host invalidates connections rather than automatically reconnecting or recording. Use explicit Resume to rebuild context after a failure.
Quit attempts bounded cleanup of all local continuations. If cleanup fails, the menu offers a clearly labelled Force Quit option; force quitting is not a claim that all work was saved.
Removal and deletion
Removing a saved message changes only that continuation’s conversation. Original text and audio remain stored; siblings are unaffected. Connected removal first synchronizes every mapped provider item. Partial synchronization disconnects rather than allowing recording with divergent context.
Delete session… requires confirmation and removes every branch and local asset in the selected session directory, stopping its local continuations first and closing its windows after success. Other copies and retained backups are not erased. An external capture owner can make deletion temporarily Busy.
Option+Shift+R targets the capture owner, then a designated paused continuation, otherwise starts a new session. Merely viewing historical content never makes it an implicit recording target. Option+Shift+S finishes the designated active target (or offers target selection). Option+Shift+D is limited to a new session from the current uninterrupted runtime without dependent continuations; use Finish or separately confirmed deletion for historical sessions.
Configure the picker shortcut
The default is Alt+Shift+M (Option+Shift+M on macOS). Set a different accelerator
or disable it in settings:
{ "shortcuts": { "openSessionPicker": null }}Settings reload replaces only the picker’s own registration. A conflict leaves Find Session in the tray and does not unregister the recording shortcuts.