Skip to content

Conversation

@lucasheriques
Copy link
Contributor

@lucasheriques lucasheriques commented Oct 29, 2025

Fixes data loss when app restarts during a recording or when the Recall SDK crashes.

Changes

  • Reset isRecording flag when SDK crashes so it can resume after auto-restart
  • Mark interrupted recordings as 'error' instead of deleting from IDB
  • Keep 'ready' recordings in IDB (user can delete manually)
  • Add Recover/Discard buttons for interrupted recordings
  • Track lastSegmentTime to detect when segments stop coming
  • Clean up verbose meeting detection logs

Now treats IDB as source of truth - recordings survive crashes and users decide what to keep.

Changes to support new backend API structure:
- Renamed segments to localSegmentBuffer in activeRecordingStore
- Updated to use appendTranscriptSegments instead of updateDesktopRecordingTranscript
- Backend now uses append_segments endpoint for incremental updates
- Updated RecordingView to use transcript_segments for past recordings
- Simplified NotetakerView to store only recording ID instead of full item

These changes support the new append-only API pattern which prevents
data loss and makes transcript updates more reliable.
@lucasheriques lucasheriques requested a review from a team as a code owner October 29, 2025 17:37
@lucasheriques lucasheriques changed the title chore: update recording API to use append_segments endpoint Fix recording data loss on crashes and restarts Oct 29, 2025
Copy link
Contributor Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

Fixes critical data loss bugs where recordings would be deleted from IndexedDB
on app restart or when Recall SDK crashed during a meeting.

Changes:
- Reset isRecording flag when SDK crashes to allow recovery
- Mark interrupted recordings as 'error' instead of deleting from IDB
- Keep 'ready' recordings in IDB for fast access (user can delete manually)
- Add lastSegmentTime tracking to detect silent failures
- Add Recover/Discard UI buttons for interrupted recordings
- Simplify meeting-detected log output

The architecture now treats IDB as source of truth with non-destructive
operations, giving users full control over interrupted recordings.
@lucasheriques lucasheriques force-pushed the chore/update-recording-api branch from a7fc98d to f1fef0c Compare October 29, 2025 21:26
async duplicateTask(taskId: string) {
const task = await this.getTask(taskId);
return this.createTask(
// @ts-expect-error (marking it as ignore since unrelated to this PR)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added these because after syncing the latest openai api changed it start failing. let me know if i should remove though

@lucasheriques lucasheriques changed the title Fix recording data loss on crashes and restarts fix: recording data loss on crashes and restarts Nov 3, 2025
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