M2-01: Read a memo's transcript on the phone #27

Closed
opened 2026-08-08 15:26:53 -04:00 by agent · 1 comment
Member

Tapping a memo opens it and shows what was said, read from the transcript beside it.

Why

There is no way to read a stored transcript on the phone. Settings → Diagnostics shows the cues
of the recording the current process just made — those live in memory and are gone on relaunch —
and every memo offers a ShareLink for its .vtt. So checking that a memo from yesterday
transcribed correctly means sending the file to another machine and opening it there.

Wes, on the first build of M1-11: "Theres no way to see the transcription right now correct?"

That is the gap. M1's goal is recording reliably and getting memos off the phone by hand, and
knowing whether the transcript is any good is part of trusting the first half.

Scope

  • Tapping a row pushes a detail view for that memo.
  • It reads <base>_transcription.vtt off disk and shows the cues with their timestamps.
  • A memo with no transcript says so plainly, and says why it might not have one — nobody spoke,
    or the speech model was not installed. Both are ordinary outcomes, not errors.
  • A transcript assembled short says so. TranscriptAssembly keeps the .parts folder beside a
    capture precisely when a part never landed, and that folder is the only thing on disk that
    records it. A transcript that reads as whole while missing a minute of speech is the failure
    worth surfacing here.

Reading, not editing

Read-only. There is no naming UI and no editor in M1, and a transcript nobody can edit cannot
disagree with the file the vault consumes. Editing belongs to whatever owns area/editor later.

Parsing

The app writes WebVTT and does not currently read it. VTT.assemble composes parts; nothing
parses cues back out. That parser is the substance of this issue, and it is pure — string in,
cues out — so it belongs in StashTests with synthetic fixtures rather than needing a device.

It must tolerate a transcript this app did not write. Once #12 exposes the documents directory,
a .vtt in it may have been edited, truncated or replaced by hand.

Playback is not in this

Tapping a cue does not seek anything, because nothing plays a memo yet. If playback ever lands,
the timestamps are already there to hang it on.

Done when

  • Tapping a memo recorded on a previous launch shows its transcript.
  • A memo with no transcript says why rather than showing an empty screen.
  • A short transcript is marked as short.

Came out of M1-11 (#11), which put real memos in the list — and made it obvious that the list is
the only thing you can see about them.

Tapping a memo opens it and shows what was said, read from the transcript beside it. ## Why There is no way to read a stored transcript on the phone. Settings → Diagnostics shows the cues of the recording the current process just made — those live in memory and are gone on relaunch — and every memo offers a `ShareLink` for its `.vtt`. So checking that a memo from yesterday transcribed correctly means sending the file to another machine and opening it there. Wes, on the first build of M1-11: *"Theres no way to see the transcription right now correct?"* That is the gap. M1's goal is recording reliably and getting memos off the phone by hand, and knowing whether the transcript is any good is part of trusting the first half. ## Scope - Tapping a row pushes a detail view for that memo. - It reads `<base>_transcription.vtt` off disk and shows the cues with their timestamps. - A memo with no transcript says so plainly, and says why it might not have one — nobody spoke, or the speech model was not installed. Both are ordinary outcomes, not errors. - A transcript assembled short says so. `TranscriptAssembly` keeps the `.parts` folder beside a capture precisely when a part never landed, and that folder is the only thing on disk that records it. A transcript that reads as whole while missing a minute of speech is the failure worth surfacing here. ## Reading, not editing Read-only. There is no naming UI and no editor in M1, and a transcript nobody can edit cannot disagree with the file the vault consumes. Editing belongs to whatever owns `area/editor` later. ## Parsing The app writes WebVTT and does not currently read it. `VTT.assemble` composes parts; nothing parses cues back out. That parser is the substance of this issue, and it is pure — string in, cues out — so it belongs in `StashTests` with synthetic fixtures rather than needing a device. It must tolerate a transcript this app did not write. Once #12 exposes the documents directory, a `.vtt` in it may have been edited, truncated or replaced by hand. ## Playback is not in this Tapping a cue does not seek anything, because nothing plays a memo yet. If playback ever lands, the timestamps are already there to hang it on. ## Done when - [ ] Tapping a memo recorded on a previous launch shows its transcript. - [ ] A memo with no transcript says why rather than showing an empty screen. - [ ] A short transcript is marked as short. --- *Came out of M1-11 (#11), which put real memos in the list — and made it obvious that the list is the only thing you can see about them.*
agent changed title from Read a memo's transcript on the phone to M1-16: Read a memo's transcript on the phone 2026-08-08 19:49:17 -04:00
agent changed title from M1-16: Read a memo's transcript on the phone to M2-01: Read a memo's transcript on the phone 2026-08-08 19:50:30 -04:00
Author
Member

Moved from M1 to M2-01. The milestone/M1 label is removed; there is no milestone/M2 label
yet because creating org labels needs owner rights, so the title carries it for now.

This issue was filed as a loose end of M1-11 — the memo list made it obvious you could not see
anything about a memo. On review it is the first slice of M2's detail view rather than the last
piece of M1: the same screen grows playback (M2-02), transcript seeking (M2-03) and the map
(M2-08). Building it as a detail view now avoids building it twice.

Nothing in the scope above changes. The VTT parser is still the substance, it is still read-only,
and it still has to tolerate a transcript this app did not write.

Moved from M1 to **M2-01**. The `milestone/M1` label is removed; there is no `milestone/M2` label yet because creating org labels needs owner rights, so the title carries it for now. This issue was filed as a loose end of M1-11 — the memo list made it obvious you could not see anything about a memo. On review it is the first slice of M2's detail view rather than the last piece of M1: the same screen grows playback (M2-02), transcript seeking (M2-03) and the map (M2-08). Building it as a detail view now avoids building it twice. Nothing in the scope above changes. The VTT parser is still the substance, it is still read-only, and it still has to tolerate a transcript this app did not write.
wk closed this issue 2026-08-09 13:54:00 -04:00
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
Stash/stash-ios#27
No description provided.