Home's Needs you never showed "A transcript to review" under the default retention (bin once transcribed) #819

Closed
opened 2026-09-25 17:02:26 +00:00 by claude-bot · 0 comments
Collaborator

Found by J5 (lane 4, #730) on 2026-09-25. Fixed in the J5 PR.

What happened. attention_service.get_attention_items raised the GM's approve_transcript item only while audio_processing_status == ready. The instance default, "bin once transcribed" (trash_after_processing), moves the audio to trashed the moment the transcript is saved. So on a default install:

  • the GM got the bell row ("A transcript to review");
  • Review said "Waiting for you";
  • Home's Needs you said nothing.

A withdrawn approval also dropped off Home in the same way.

The fix. The item is keyed on content approval, which is what D95 and D96 make approval mean. It shows when content_approved_at IS NULL and either:

  • the audio is ready, or
  • the audio is trashed but still in the bin (audio_trashed_at set), with a non-empty summary.

The bin bound keeps sessions binned long ago under the old audio-gated approval off Home, where migration e0f1a2b3c4d5's backfill couldn't reach. It also stops restored audio of an already-approved summary from showing as waiting.

Tests. Four regression tests are in test_attention.py. The binned-on-transcription and restored-approved tests failed before the fix. J5 also exercises it end to end: withdrawing approval puts the row back on Home.

🤖 Generated with Claude Code

**Found by J5 (lane 4, #730) on 2026-09-25. Fixed in the J5 PR.** **What happened.** `attention_service.get_attention_items` raised the GM's `approve_transcript` item only while `audio_processing_status == ready`. The instance default, **"bin once transcribed"** (`trash_after_processing`), moves the audio to `trashed` the moment the transcript is saved. So on a default install: - the GM got the bell row ("A transcript to review"); - Review said "Waiting for you"; - **Home's Needs you said nothing.** A withdrawn approval also dropped off Home in the same way. **The fix.** The item is keyed on **content approval**, which is what D95 and D96 make approval mean. It shows when `content_approved_at IS NULL` and either: - the audio is `ready`, or - the audio is `trashed` but still in the bin (`audio_trashed_at` set), with a non-empty summary. The bin bound keeps sessions binned long ago under the old audio-gated approval off Home, where migration `e0f1a2b3c4d5`'s backfill couldn't reach. It also stops restored audio of an already-approved summary from showing as waiting. **Tests.** Four regression tests are in `test_attention.py`. The binned-on-transcription and restored-approved tests failed before the fix. J5 also exercises it end to end: withdrawing approval puts the row back on Home. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
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#819
No description provided.