Herstelopruiming wist de momentopname van een nog open vuil tabblad #2722
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
release-blocker
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#2722
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Wat er mis is
Een vuil tabblad dat zeven dagen niet meer verandert terwijl de app open blijft, verliest zijn herstelbestand. De autosave schrijft niet opnieuw, want de inhoud is identiek. Daarna is een crash het onopgeslagen werk kwijt. Het tabblad leeft alleen nog in dat proces.
Bewijs
lib/state/tabs_provider.dart: de tik slaat een schrijfactie over bij een identiek deck en roept welpruneIfDueaan.lib/services/recovery_service.dartpruneOlderThan: verwijdert elk.jsonouder dan zeven dagen op wijzigingstijd, zonder te kijken of het sessielock van deze sessie nog leeft. Dat lock bestaat juist om momentopnames van een levend exemplaar te herkennen. De prune gebruikt het niet.test/recovery_service_test.darttoetst alleen leeftijd.Voorstel
Bestanden van de eigen levende sessie overslaan, of de wijzigingstijd bij elke tik verversen zolang het tabblad vuil is.
Regressietest: een momentopname met de sessie-id van een levend lock, ouder dan
defaultMaxAge, moetpruneOlderThanoverleven. Dezelfde leeftijd zonder levend lock moet weg.Het bestandsformaat verandert niet.