feat(consent): per-sensitivity audio retention (restricted_audio_days)#356
Merged
Conversation
Wave 2 of the consent layer (bead minutes-3yub.3). Restricted meetings carry sensitive content, so their audio is held on a tighter retention window than normal recordings. - config: new `retention.restricted_audio_days` (default 7) with a compiled default and doc comment. Normal successful audio stays at 30 days. - retention engine: new `RetentionAudioClass::Restricted`. A meeting marked `sensitivity: restricted` classifies as Restricted and uses `restricted_audio_days`; sensitivity takes precedence over the successful/failed classification. An explicit `audio_retention: pinned` still wins (operator intent). As before, nothing is deleted unless the user runs `minutes cleanup --apply` or enables auto_cleanup. - CLI: `minutes storage` / `minutes cleanup` policy summaries now show the restricted window. - docs: CONFIG.md retention table + note. Audit prerequisite (bead "audit first") is satisfied by the existing docs/plans/retention-audit-2026-06-10.md. Tests: restricted audio becomes a delete-candidate on the tight window while a same-age normal recording is kept; pinned-restricted audio is kept. 803 core tests pass; clippy -D warnings + fmt clean.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Wave 2 of the consent layer (bead
minutes-3yub.3). Restricted meetings carry sensitive content, so their audio is held on a tighter retention window than normal recordings. This pairs with the agent-layer exclusion from #350: asensitivity: restrictedmeeting is both excluded from agent surfaces and kept on disk for less time.The bead's "audit first" prerequisite is satisfied by the existing
docs/plans/retention-audit-2026-06-10.md.What changed
retention.restricted_audio_days(default7) with a compiled default and doc comment. Normal successful audio stays at 30 days, failed/needs-review at 90.retention.rs): newRetentionAudioClass::Restricted. A meeting markedsensitivity: restrictedclassifies asRestrictedand usesrestricted_audio_days. Sensitivity takes precedence over the successful/failed classification (sensitive audio is held tightly even if transcription succeeded). An explicitaudio_retention: pinnedstill wins (operator intent).minutes storageandminutes cleanuppolicy summaries now show the restricted window.CONFIG.mdretention table and a note explaining precedence and the0setting.Safety / behavior
No change to the deletion model: nothing is deleted automatically.
minutes cleanupis preview-only; deletion requires explicitminutes cleanup --apply(or enablingauto_cleanup, which defaults off).restricted_audio_daysonly changes which audio is flagged a delete-candidate and when. Set it to0to make restricted audio delete-eligible the day after recording.Note that the no-capture sensitive-meeting flow (from
minutes-3yub.2) records no audio at all;restricted_audio_daysgoverns the case where a captured meeting is marked restricted.Tests
restricted_audio_uses_tighter_window_than_successful: a 10-day-old restricted recording is a delete-candidate (7-day window) while the same age would be kept as a normal recording (30-day window).pinned_restricted_audio_is_kept: explicit pin overrides the restricted window.cargo clippy --all --no-default-features -- -D warningsclean;cargo fmtclean;site/lib/release.tstest count synced (1221).