Let chat move a recording onto the correct meeting - #6929
Conversation
Add a move_meeting_contents tool so a finished recording, transcript, summaries, notes, and action items can be moved onto the correct existing meeting. Co-authored-by: John Jeong <ComputelessComputer@users.noreply.github.com>
✅ Deploy Preview for anarlog canceled.
|
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 3 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 3976037. Configure here.
| ); | ||
| if (copiedAudio) { | ||
| await catalogLocalSessionAudio(targetSessionId); | ||
| } |
There was a problem hiding this comment.
Moved audio stays marked processing
Medium Severity
catalogLocalSessionAudio always stamps the destination recording with transcript_status processing, and a successful move never marks it complete. Retention treats that flag as “still transcribing,” so a moved recording is skipped by every cleanup policy even when transcripts were moved with it.
Reviewed by Cursor Bugbot for commit 3976037. Configure here.
| sourceSessionId, | ||
| ], | ||
| expectedRowsAffected: 1, | ||
| }, |
There was a problem hiding this comment.
Note move keys the wrong document id
Medium Severity
Note copy/clear updates session_documents with id equal to the session id and expectedRowsAffected: 1. Snapshots already expose rawNoteId because the canonical note is not always session.id. When that fallback applies, the note statements affect zero rows, the transaction fails, and the whole move (including the recording) is aborted.
Reviewed by Cursor Bugbot for commit 3976037. Configure here.
| enqueueSessionAudioOperation, | ||
| [sourceSessionId, targetSessionId], | ||
| () => copySessionAudio(sourceSessionId, targetSessionId), | ||
| ); |
There was a problem hiding this comment.
Failed copy leaves target audio
Medium Severity
copiedAudio is set only after audioCopy returns success, and rollback runs only when that flag is true. A failed std::fs::copy can still leave a primary audio file in the target directory. The catch path then reports that nothing changed, later moves see that file as an existing recording, and the destination is stuck.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 3976037. Configure here.


When overlapping calendar events start the wrong session, recordings, transcripts, and notes can land on the wrong meeting. Chat could search and edit text, but it had no way to reassign that content.
This adds a
move_meeting_contentschat tool. After resolving both meeting IDs, Anarlog AI can move:onto another existing meeting.
Safety limits:
Usage from chat, on the meeting that has the misplaced recording:
Or from the destination: