Option A, chosen 1 Oct 2026. The transcript gets its own Transcript column, and one checkbox per recording fetches everything that belongs to it. A recording whose transcript is still being made waits: its row is greyed, its checkbox is disabled, Status shows a spinner, and it ticks itself when the transcript lands. The only way past the wait is the footer's Include {N} waiting on transcription. Drawn against the window as it is now: the scope is plain text with no capsule, Status is sized to its longest translation, and the window's minimum width comes from its columns.
| Meeting | Recorded | Size | Transcript | Expires | Status | |
|---|---|---|---|---|---|---|
| Wed 24 Sep | ||||||
P07 Interview |
09:34 52m 11s |
1.1 GB | Needs approval |
in 118 days | ||
P08 Interview |
14:03 41m 27s |
874 MB | Needs approval |
in 118 days | ||
Even for meetings you organised, Microsoft needs an administrator to approve before an app can read transcripts. Bristlenose asks to read:
If your organisation uses approval requests, Microsoft emails you the decision. Recordings keep importing meanwhile.
statusKind (30 Sep).| Meeting | Scheduled | Recorded | Size | Transcript | Expires | Status | |
|---|---|---|---|---|---|---|---|
| Today | |||||||
P10 Interview Dana Okonkwo |
10:00 1h | 10:03 48m 20s |
960 MB | Expected |
in 120 days | Waiting for transcript | |
| Wed 24 Sep | |||||||
P07 Interview Priya Raman |
09:30 1h | 09:34 52m 11s |
1.1 GB | Available |
in 118 days | ||
P08 Interview Tomas Lind |
14:00 45m | 14:03 41m 27s |
874 MB | Available |
in 118 days | ||
| Mon 22 Sep | |||||||
P05 Interview Aoife Brennan |
11:00 1h | 11:02 55m 04s |
48 KB transcript | Available |
in 116 days | In this project | |
P06 Interview Femi Adeyemi |
15:00 1h | 15:01 49m 50s |
1.0 GB | No transcript |
in 116 days | ||
| Fri 19 Sep | |||||||
P04 Interview Simon Ellery |
09:00 1h | 09:04 50m 12s |
1.0 GB | In this project |
in 113 days | In this project | |
P03 Interview Ines García |
14:00 1h | 14:02 47m 52s |
1.0 GB | No speaker names |
in 113 days | ||
Weekly research sync Dana Okonkwo · Simon Ellery |
16:00 30m | 16:01 27m 09s |
388 MB | Couldn't match |
in 113 days | ||
| Cell | Kind (glyph and colour from MessageKind, as Status draws them) | Meaning; what the tick does |
|---|---|---|
| Available | plain | fetched with the recording. |
| Expected | glyphless | transcription ran but the file isn't ready. The checkbox is disabled and Status says Waiting for transcript, the same way Status already explains every other disabled box. The only way past it is the footer's Include {N} waiting on transcription, which is off by default. |
| No transcript | info | none was made, or none arrived within the window below. Bristlenose transcribes. |
| No speaker names | info | the words arrived without names. Speakers are left unseparated, not guessed. |
| Couldn't match | warning | the transcript couldn't be lined up with this recording, so it is left out rather than mistimed. |
| Needs approval | glyphless; the bar is the warning | frame 1. Teams only. |
| Needs access | warning | Meet: you declined the Meet permission at sign-in. |
| Unavailable | warning | your organisation, plan or language rules it out; the tooltip says which. |
| No longer available | warning | the platform has deleted it. |
| In this project | info | both halves are here. |
| Imported | success | after a fetch. Regular weight; the row's Status keeps the semibold. |
| Didn't arrive | warning | after a fetch: the recording landed, the transcript didn't. |
| Not imported | skipped | after a fetch: you went ahead without waiting for an Expected transcript. |
showsScheduledColumn), unchanged. Transcript follows the same rule: if no row has a transcript to show or one on its way, the column isn't drawn.STARTED or ENDED state means one is coming. No resource on an ended call means none was made.TRANSCRIPT file.| Meeting | Scheduled | Recorded | Size | Transcript | Status | |
|---|---|---|---|---|---|---|
| Today | ||||||
▾P11 Interview Ana Ruiz · Joan Ferrer |
12:00 1h | — | — | — | ||
Recording 1 |
— | 12:02 31m 10s | — | Available | ||
Recording 2 |
— | 12:36 22m 48s | — | Expected | Waiting for transcript | |
| Yesterday | ||||||
Banyalbufar discussion Tomeu Colom |
23:00 1h | 22:45 58m 04s |
— | Available | ||
| Tue 2 Sep | ||||||
P02 Interview Leo Martin |
10:00 1h | 10:01 50m 02s |
— | No longer available | ||
| Meeting | Scheduled | Recorded | Size | Transcript | Expires | Status | |
|---|---|---|---|---|---|---|---|
P10 Interview |
10:00 | 10:03 | 960 MB | Not imported | in 120 days | Imported | |
P07 Interview |
09:30 | 09:34 | 1.1 GB | Imported | in 118 days | Imported | |
P06 Interview |
15:00 | 15:01 | 1.0 GB | No transcript | in 116 days | Imported | |
P08 Interview |
14:00 | 14:03 | 874 MB | Didn't arrive | in 118 days | Imported |
minus.circle.fill, “deliberate, not empty”), because that was a choice, not a failure. Left unticked, it would have stayed Expected and imported as a pair later.ui_kinds files under warning. The reason is in the tooltip. The row's own Status is still a success. The report marks P08's speakers as identified by Bristlenose (“check names”). No in-window retry: retrying after analysis would re-cut starred quotes, so it waits for Phase 4's per-session choice.| Besprechung | Geplant | Aufgezeichnet | Größe | Transkript | Läuft ab | Status | |
|---|---|---|---|---|---|---|---|
P07 Interview Priya Raman |
09:30 | 09:34 | 1,1 GB | Verfügbar | in 118 T. | ||
P10 Interview Dana Okonkwo |
10:00 | 10:03 | 960 MB | Erwartet | in 120 T. | Wartet auf Transkript | |
P03 Interview Ines García |
14:00 | 14:02 | 1,0 GB | Keine Sprechernamen | in 113 T. | ||
Q3-Roadmap-Review Dana Okonkwo |
16:00 | 16:02 | 402 MB | Nicht zuzuordnen | in 118 T. | Nicht mehr verfügbar |
CloudImportStatusColumn.minimumWidth(i18n) measures every string the column can show, through a real cell. The grid then reports its minimum to the window (onMinimumWidth; floor max(760, grid)). Once that work lands, the measurer is generalised to take a key list, so Status and Transcript share one, rather than copied into a sibling. reportMinimumWidth already sums whatever columns exist, so it needs no change.syncTranscriptColumn shaped like syncScheduledColumn adds it only when some row could have a transcript, so a Zoom account with transcription off, or a consumer Google account, pays no width for it. Removing rather than hiding stops autosaveTableColumns restoring a column stuck hidden.Left: the count. Middle: the waiting checkbox, only when something is waiting. Right: Project and the one button. Teams in English; Meet differs only where noted.
counts.withholding predicate, the one that already decides the permissions link (isWithheld). It covers someone else's meeting, a missing scope, a plan limit or a tenant block. Rows already in the project, not recorded, no longer available, or waiting on transcription never trigger it.| Meeting | Recorded | Size | Transcript | Expires | Status | |
|---|---|---|---|---|---|---|
| Today | ||||||
P14 Interview: triage nurse |
11:02 48m | 44 MB | Expected |
in 29 days | Waiting for transcript | |
| Tue 23 Sep | ||||||
P12 Interview: ward sister |
09:30 55m | 51 MB | Available |
in 5 days | ||
P13 Interview: discharge planner |
14:00 41m | 38 MB | No speaker names |
in 22 days | ||
| Meeting | Recorded | Size | Expires | Status | |
|---|---|---|---|---|---|
| Tue 23 Sep | |||||
P12 Interview: ward sister |
09:30 55m | 51 MB | in 5 days | ||
P13 Interview: discharge planner |
14:00 41m | 38 MB | in 22 days | ||
auto_delete_date, orange under a week as on every platform.ZoomFileSelection prefers the audio-only M4A over the video files.Name: text; Bristlenose rewrites them to voice tags with the existing splitSpeaker.ZoomPreflight.transcriptCaveat, in English and never rendered; it gets a locale key. This bar is info, not a warning: nothing is wrong, the account was simply set up that way.