Audio retention doesn't do what the Privacy page and setup say ("bin once approved" bins on transcription) #834

Closed
opened 2026-09-26 14:03:34 +00:00 by claude-bot · 1 comment
Collaborator

Found by the lane 9 survey (#735), read against origin/main at 20dcabd8.

What the product says:

  • the owner's decision, that the default is "bin it once the summary is approved";
  • the setup wizard (Setup.jsx:529);
  • the public Privacy page (Privacy.jsx:69-70).

What the server does:

  • It bins audio as soon as processing succeeds (reminder_tasks.py:3611-3619, retention.py:187-217), before any GM has read the summary.
  • Approving a summary also bins audio under "Keep it" and "Keep for N days" (sessions.py:1292-1303). So "Keep it" really means "until approved", and the drawing's "Approved · Kept 90 days" can't happen.

Why it matters: a public page makes a claim about recordings of real people that the server doesn't honour. Here the server keeps less than promised, not more. It also breaks re-processing a failed or disputed transcript before approval, which the recording architecture relies on: CLAUDE.md says audio is kept "until a GM approves it, so it can be re-processed if transcription fails".

The owner's decision is pending (A1 on the morning list). The recommendation is to make each choice mean what it says:

  • the default bins at approval;
  • "Keep for N days" counts N days from transcription;
  • "Keep it" keeps until removed;
  • failed runs keep their audio.

The fix lands with lane 9 PR B, or sooner if the owner prefers.

Refs #735, #729.

Found by the lane 9 survey (#735), read against `origin/main` at `20dcabd8`. **What the product says:** - the owner's decision, that the default is "bin it once the summary is approved"; - the setup wizard (`Setup.jsx:529`); - the public Privacy page (`Privacy.jsx:69-70`). **What the server does:** - It bins audio as soon as processing succeeds (`reminder_tasks.py:3611-3619`, `retention.py:187-217`), before any GM has read the summary. - Approving a summary also bins audio under "Keep it" and "Keep for N days" (`sessions.py:1292-1303`). So "Keep it" really means "until approved", and the drawing's "Approved · Kept 90 days" can't happen. **Why it matters:** a public page makes a claim about recordings of real people that the server doesn't honour. Here the server keeps *less* than promised, not more. It also breaks re-processing a failed or disputed transcript before approval, which the recording architecture relies on: `CLAUDE.md` says audio is kept "until a GM approves it, so it can be re-processed if transcription fails". **The owner's decision is pending** (A1 on the morning list). The recommendation is to make each choice mean what it says: - the default bins at approval; - "Keep for N days" counts N days from transcription; - "Keep it" keeps until removed; - failed runs keep their audio. The fix lands with lane 9 PR B, or sooner if the owner prefers. Refs #735, #729.
Author
Collaborator

Fixed by #860, merged 2026-09-26, per the owner's A1 answer (D179).

The default is now trash_after_approval. Audio is binned when the GM approves the summary, not when processing succeeds.

The other two modes are no longer cut short by approval:

  • "Keep for N days" keeps the audio for N days after transcription.
  • "Keep it" keeps it until someone removes it.

Unchanged:

  • A failed run keeps its debug window.
  • The nightly sweep bins only approved sessions straight away.

Also:

  • Legacy stored values are normalised on read, so there's no migration.
  • The Privacy page's audio line now matches the stored value. Before, it never matched.

Self-hosters: audio is now kept until approval, which is longer than before. This is noted in the CHANGELOG.

Fixed by #860, merged 2026-09-26, per the owner's A1 answer (D179). **The default is now `trash_after_approval`.** Audio is binned when the GM approves the summary, not when processing succeeds. **The other two modes are no longer cut short by approval:** - "Keep for N days" keeps the audio for N days after transcription. - "Keep it" keeps it until someone removes it. **Unchanged:** - A failed run keeps its debug window. - The nightly sweep bins only approved sessions straight away. **Also:** - Legacy stored values are normalised on read, so there's no migration. - The Privacy page's audio line now matches the stored value. Before, it never matched. Self-hosters: audio is now kept until approval, which is longer than before. This is noted in the CHANGELOG.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
rbrooks/Quest-Board#834
No description provided.