fix(ux): zeg wáárom een bestand niet openging (#646) #694
No reviewers
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck!694
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/open-foutmelding-646"
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?
Derde item uit #646, en de laatste die de issue zelf als "echte gebruikersimpact" aanmerkt.
Het probleem
"Kon dit bestand niet openen." — geen reden, geen suggestie. En die ene zin stond voor vier heel verschillende dingen: het bestand bestaat niet meer, het is te groot, het is geen tekst, of de markdown is afgebroken.
Waar het werkelijk zat
Niet in de melding, maar in de vertaling tussen de lagen.
FileService.openDeckDetailedgaf de reden allang terug —OpenFailureonderscheidt zes gevallen — maaropenFileByPathgooide alles behalve "geen presentatie" weg en maakte er éénOpenResult.unreadablevan. Het antwoord lag twee lagen lager voor het oprapen.Dat corrigeert ook mijn eigen inschatting van vanochtend: ik dacht dat dit een enum-refactor over 26 plekken zou vragen. Dat was niet zo.
Wat er nu gebeurt
Die laatste rij is opzet. Er zijn 26 plekken die
unreadableteruggeven en de meeste weten écht niet meer dan dat — een afgebroken open, een tabblad dat verdween. Een reden verzinnen bij een onbekende oorzaak is slechter dan zwijgen: een melding die de verkeerde kant op wijst kost meer tijd dan een vage.De reden wordt vóór elke poging gewist. Anders krijgt de volgende fout een verklaring die niet van hem is — precies de valkuil van een provider die iets onthoudt.
Wat dit níét oplost
Een regelnummer. De parser draagt geen positie mee, dus "beschadigd of half opgeslagen" is zo precies als het nu kan. Dat vraagt een parser die zijn positie bijhoudt; dat is een eigen klus. Het staat zo in de CHANGELOG en in de probleemoplossingsgids in plaats van weggelaten te worden.
Vertalingen
Vier strings × 31 talen = 124 vertalingen, via
make add-l10n. Gedelegeerd; de vertaler heeft per taal het bestaande huisvocabulaire aangehouden (ficheirovoor pt,berkasvoor id) en per taal gemeld waar hij twijfelde — Klingon en Latijn wisselen in het corpus zelf tussen meerdere woorden voor "bestand", en daar is de keuze van de buurstring aangehouden zodat de vijf meldingen samen consistent zijn.De ratchet had gelijk
TabsNotifierging over zijn plafond. Terecht: het vastleggen én het vertalen van de uitkomst horen niet in die klasse. Ze staan nu top-level, en de klasse is netto drie regels kleiner dan ervoor — basislijn meeverlaagd.Ik heb onderweg één keer overwogen om verklarend commentaar weg te knippen om de teller te halen. Dat is de verkeerde prikkel; er is echt gedrag verplaatst in plaats daarvan.
Bijvangst
TROUBLESHOOTING_GUIDE.mdzei nog dat video, audio én de notities niet naar git meereizen. Dat klopt sinds #515 en #541 geen van drieën. Rechtgezet en gedateerd, met een tabel van de nieuwe meldingen erbij.Getoetst
make checkgroen,make check-secretsenmake sastschoon,make l10n-checkgroen.Wat van #646 overblijft
Alleen polijstwerk: de consentmuur die "Akkoord" grijs laat zonder te zeggen waarom, de dubbele opslagdialoog, de half-Engelse macOS-menubalk, en de tijdstempel in de exportnaam. Alle drie de items die je als "echte gebruikersimpact" aanmerkte zijn nu weg.
Werkt aan #646.
"Kon dit bestand niet openen." stond voor vier verschillende dingen: het bestand bestaat niet meer, het is te groot, het is geen tekst, of de markdown is afgebroken. Voor een product dat om Markdown draait is dat mager — je kon er niet uit opmaken of je het verkeerde bestand koos, of dat er iets stuk was, of dat je er iets aan kon doen. **Het venijn zat tussen de lagen, niet in de melding.** `openDeckDetailed` gaf de reden allang terug — `OpenFailure` onderscheidt zes gevallen — maar `openFileByPath` gooide alles behalve "geen presentatie" weg en maakte er één `OpenResult.unreadable` van. Het antwoord lag twee lagen lager voor het oprapen. Bewust géén reden door alle 26 `unreadable`-plekken heen gedragen. De meeste weten écht niet meer dan dat — een afgebroken open, een tabblad dat verdween — en dáár is de algemene zin eerlijk. Alleen waar de oorzaak vaststaat wordt hij vastgelegd, via een provider in dezelfde vorm als `importSecurityAlarmProvider`. De reden wordt vóór elke poging gewist: die van de vorige keer zou de volgende fout een verklaring geven die niet van hem is, en een melding die de verkeerde kant op wijst kost meer tijd dan een vage. Vier nieuwe meldingen, elk in 31 talen. De onleesbaar-melding draagt de suggestie in zijn tweede zin ("OciDeck opent Markdown"), want dat is het geval waarin de gebruiker meestal simpelweg het verkeerde bestand koos. **Wat dit níét oplost: een regelnummer.** De parser draagt geen positie mee, dus "beschadigd of half opgeslagen" is zo precies als het nu kan. Dat staat zo in de CHANGELOG en in de probleemoplossingsgids, in plaats van het weg te laten. De klasseratchet viel onderweg en had gelijk: het vastleggen én het vertalen van de uitkomst horen niet in `TabsNotifier`. Ze staan nu top-level, en de klasse is netto drie regels kleiner dan ervoor — basislijn meeverlaagd. Onderweg rechtgezet in TROUBLESHOOTING_GUIDE: die zei nog dat video, audio en de notities niet naar git meereizen. Dat klopt sinds #515 en #541 geen van drieën. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>