feat(overview): show which notes still have their original audio - #470
Open
Optic00 wants to merge 2 commits into
Open
feat(overview): show which notes still have their original audio#470Optic00 wants to merge 2 commits into
Optic00 wants to merge 2 commits into
Conversation
keep_recordings defaults off, so for most notes the recording is gone - and everything that needs it is then quietly unavailable: re-transcribe, the speaker panel's listening samples, and any future re-diarization. Until now nothing said so until you opened a note and found the action missing. list-meetings gains `has_audio`, derived from ONE directory listing of recordings/ rather than a per-meeting existence check: this command is on the cold-start path and its own docstring calls it "optimized for fast loading", so the cost must not scale with library size. A regression test counts listdir calls to hold it to that. Matching is on the stem alone, never an extension whitelist - the capture pipeline saves whatever the source produced (.webm, .wav, .m4a, .mp3), so a whitelist would silently mark imported meetings audio-less. The row shows a small audio glyph beside the duration, and only when the audio is present: absence is the normal case, so a "missing" marker on most rows would be noise rather than information.
From a cross-family review (Codex) of the previous commit.
A directory in recordings/ named like a recording ("note.wav/") made
os.listdir report the note as having audio it does not have. Now files
only, via scandir so it stays a single listing.
The stem came from `f.stem.replace('_summary', '')`, which strips EVERY
occurrence: a note actually named "client_summary.v1" came back as
"client.v1". That was harmless while the stem only fed the dedup set,
where a wrong-but-consistent key still dedups - matching it against real
filenames on disk is what makes it visible. Now strips only a trailing
marker, the same rule reprocess and app/main.js's delete path already use.
Two further copies of the replace() form live in
_enumerate_meeting_stems (used by the speaker backfill). Left alone
deliberately: different function, outside this change, and worth its own
look rather than being folded into an unrelated PR.
Collaborator
Author
|
Heads-up so this doesn't arrive silently: I merged these two commits into #473 (the speaker-review stack). I needed the audio indicator while testing that branch against real recordings, and one build was easier to reason about than two. Consequence: if #473 lands on Either way works for me. Leave this open for its own review and I'll drop the merge from #473, or review it here and I'll close this once #473 lands. Your call. |
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.
keep_recordingsdefaults off, so for most notes the source recording is gone. Everything that needs it is then quietly unavailable - re-transcribe, speaker listening samples, any future re-diarization - and nothing said so until you opened a note and found the action missing.list-meetingsnow returnshas_audio, and the overview row shows a small audio glyph beside the duration when it is true. Only when true: absence is the normal case, so a "missing" marker on most rows would be noise rather than information.Two implementation notes
Derived from one directory listing of
recordings/, not a per-meeting existence check. This command is on the cold-start path and its own docstring calls it optimized for fast loading, so the cost must not scale with library size. A regression test counts the listings to hold it there.Matching is on the stem alone, never an extension whitelist: the capture pipeline saves whatever the source produced (
.webm,.wav,.m4a,.mp3), so a whitelist would silently mark imported meetings audio-less.Two commits: the feature, and a follow-up fixing two stem-matching edge cases a review turned up - a directory named like a recording, and a note whose own name contains
_summary.Verified
7 new backend tests, 1 new T1 spec,
typecheck:rendererclean,ruff29 - identical tomain.