Repository navigation
feat(meeting): keep every recording on the phone for 90 days #58
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
19 commits
Select commit
Hold shift + click to select a range
73ce9af
feat(meeting): honest mic signal, live level meter, Tailscale auto-co…
WingedGuardian b2ca224
feat(meeting): local backup on the phone, 90/45-day retention, storag…
WingedGuardian 90e1c8d
feat(meeting): mirror every recording to the edge, delete only on proof
WingedGuardian 8e2b961
fix(meeting): resume with the recorded settings; only Tailscale count…
WingedGuardian 35be056
Merge remote-tracking branch 'origin/feat/meeting-mic-honest-status' …
WingedGuardian 124735f
fix(meeting): local backup timestamps, wake lock and recovery after r…
WingedGuardian 7eb1746
Merge remote-tracking branch 'origin/main' into feat/meeting-mic-loca…
WingedGuardian ef0bfcb
fix(meeting): local backup never reports a short or unsynced file as …
WingedGuardian 29883d8
fix(meeting): sync status stays live, migration is resumable, sync is…
WingedGuardian edb0929
fix(meeting): local backup keeps the last frame, one encoder at a tim…
WingedGuardian ac5442b
Merge remote-tracking branch 'origin/feat/meeting-mic-local-backup' i…
WingedGuardian a8b4e50
fix(meeting): send each recording only to the bridge it was captured for
WingedGuardian 7881725
fix(meeting): a new token for the same bridge carries waiting recordi…
WingedGuardian de06bbf
fix(meeting): retry refused files after a new token; honest sync head…
WingedGuardian ee2d73f
feat(meeting): keep every recording on the phone for 90 days
WingedGuardian 5f2b768
fix(meeting): a sync-scheduling or sidecar error never stalls recordi…
WingedGuardian 9d652b2
Merge remote-tracking branch 'origin/feat/meeting-mic-sync' into feat…
WingedGuardian 3d2f2ae
Merge remote-tracking branch 'origin/main' into feat/meeting-mic-keep…
WingedGuardian 9242801
fix(meeting): never purge a recording while its edge copy is being re…
WingedGuardian File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When storage is low and
/havereportsfalse,runPassreceives that answer before acquiringfolderLockto rename the recording back to.aac. A concurrent purge can acquire the lock first, see the still-existing.synced.aachere, and delete it as an early-retention candidate; the subsequent rename then finds no file, leaving neither the edge nor the phone with the recording. The existence check only handles a rename that has already completed, so the negative recheck and purge deletion need coordination that covers this window.Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed in 9242801: the pass claims the recording (SegmentSync.verifying) under folderLock before calling /have and releases it only after acting on the answer; purgeDir skips any claimed recording under the same lock. A "no" therefore always finds the file and re-queues it. Every sync call also has a 10-minute overall timeout so a claim cannot be held indefinitely. Tests: aRecordingIsClaimedAgainstPurgeWhileTheEdgeIsAsked, purgeLeavesARecordingAloneWhileItsEdgeCopyIsBeingRechecked.