Bewaarde opnames staan in de tempmap; macOS wist ze na 3 dagen, Linux bij herstart #2761

Open
opened 2026-11-02 23:47:03 +00:00 by brenno · 1 comment
Owner

Gevonden in de kritische review van 03-11-2026 (stabiliteit, gegevensverlies).

Wat er misgaat

Opnames staan tot ze in een transcript belanden in <temp>/ocideck-recordings/<sessie>/ (lib/services/transcription/recording_staging_io.dart r. 31–34, getTemporaryDirectory()). De documentatie belooft dat zo'n opname zeven dagen bewaard blijft en dat die map het herstelpad is:

  • TRANSCRIPTION_SETUP.md r. 28: "keep for seven days, or discard";
  • r. 160: "Staged recordings live in the app's staging folder for seven days after you choose keep";
  • r. 215: "The staged seven-day folder is also the recovery path".

Het besturingssysteem ruimt die map eerder op:

  • macOS (de app draait niet in de sandbox, dus temp = /var/folders/…/T/): com.apple.bsd.dirhelper draait dagelijks om 03:35 met CLEAN_FILES_OLDER_THAN_DAYS=3. Op deze machine nagelezen in /System/Library/LaunchDaemons/com.apple.bsd.dirhelper.plist. Een bewaarde opname is na drie dagen weg.
  • Linux: /tmp is tmpfs op Fedora, Arch en Debian 13. Een herstart wist hem, en een herstart is precies wat er na een vastgelopen call vaak gebeurt.
  • Windows: Opslaginzicht ruimt %TEMP% op als het aanstaat.

Een vergadering is niet opnieuw op te nemen. Dit gegevensverlies is dus niet te herstellen.

Daarnaast klopt "seven days after you choose keep" niet: de veeg (sweep, r. 77–98) rekent vanaf de tijdstempel in de mapnaam, en dat is het begin van de opname.

Voorstel

  • De staging naar de app-supportmap verplaatsen (<support>/transcription/recordings/). Daar staan de whisper-runmap en de herstelmap van RecoveryService ook, en het OS ruimt hem niet op. De Linux-700-hardening blijft.
  • Een bestaande temp-staging bij de eerste start overzetten, zodat niemand bij de update zijn bewaarde opnames kwijtraakt.
  • TRANSCRIPTION_SETUP.md en PRIVACY.md bijwerken: de nieuwe plek, en dat de zeven dagen vanaf de opname tellen.

Wat overeind moet blijven

  • De veeg na zeven dagen: privacy vraagt dat opnames niet onbeperkt blijven liggen.
  • De lijst met bewaarde opnames, herstel van een afgebroken WAV, en web (mem:) ongewijzigd.

Test

Staging-toets: de standaardwortel ligt onder de supportmap, niet onder temp, en een sessiemap in de oude temp-wortel verschijnt na migrate in de nieuwe wortel.

Gevonden in de kritische review van 03-11-2026 (stabiliteit, gegevensverlies). ## Wat er misgaat Opnames staan tot ze in een transcript belanden in `<temp>/ocideck-recordings/<sessie>/` (`lib/services/transcription/recording_staging_io.dart` r. 31–34, `getTemporaryDirectory()`). De documentatie belooft dat zo'n opname zeven dagen bewaard blijft en dat die map het herstelpad is: - TRANSCRIPTION_SETUP.md r. 28: *"keep for seven days, or discard"*; - r. 160: *"Staged recordings live in the app's staging folder for seven days after you choose keep"*; - r. 215: *"The staged seven-day folder is also the recovery path"*. Het besturingssysteem ruimt die map eerder op: - **macOS** (de app draait niet in de sandbox, dus temp = `/var/folders/…/T/`): `com.apple.bsd.dirhelper` draait dagelijks om 03:35 met `CLEAN_FILES_OLDER_THAN_DAYS=3`. Op deze machine nagelezen in `/System/Library/LaunchDaemons/com.apple.bsd.dirhelper.plist`. Een bewaarde opname is na drie dagen weg. - **Linux**: `/tmp` is tmpfs op Fedora, Arch en Debian 13. Een herstart wist hem, en een herstart is precies wat er na een vastgelopen call vaak gebeurt. - **Windows**: Opslaginzicht ruimt `%TEMP%` op als het aanstaat. Een vergadering is niet opnieuw op te nemen. Dit gegevensverlies is dus niet te herstellen. Daarnaast klopt "seven days *after you choose keep*" niet: de veeg (`sweep`, r. 77–98) rekent vanaf de tijdstempel in de mapnaam, en dat is het begin van de opname. ## Voorstel - De staging naar de app-supportmap verplaatsen (`<support>/transcription/recordings/`). Daar staan de whisper-runmap en de herstelmap van `RecoveryService` ook, en het OS ruimt hem niet op. De Linux-`700`-hardening blijft. - Een bestaande temp-staging bij de eerste start overzetten, zodat niemand bij de update zijn bewaarde opnames kwijtraakt. - TRANSCRIPTION_SETUP.md en PRIVACY.md bijwerken: de nieuwe plek, en dat de zeven dagen vanaf de opname tellen. ## Wat overeind moet blijven - De veeg na zeven dagen: privacy vraagt dat opnames niet onbeperkt blijven liggen. - De lijst met bewaarde opnames, herstel van een afgebroken WAV, en web (`mem:`) ongewijzigd. ## Test Staging-toets: de standaardwortel ligt onder de supportmap, niet onder temp, en een sessiemap in de oude temp-wortel verschijnt na `migrate` in de nieuwe wortel.
Author
Owner

Opgepakt (kritische review 03-11-2026). Tak: fix/recording-staging-support-2761. Verwachte reikwijdte: lib/services/transcription/recording_staging_io.dart, docs/TRANSCRIPTION_SETUP(.nl).md, docs/PRIVACY.md, test/transcription/.

Opgepakt (kritische review 03-11-2026). Tak: fix/recording-staging-support-2761. Verwachte reikwijdte: lib/services/transcription/recording_staging_io.dart, docs/TRANSCRIPTION_SETUP(.nl).md, docs/PRIVACY.md, test/transcription/.
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
LibreKAT/Ocideck#2761
No description provided.