Jak sprawiliśmy, że plik nie ulegnie uszkodzeniu, nawet jeśli program wyłączy się podczas zapisywania
Co stanie się z dokumentem, jeśli podczas zapisywania wyłączy się laptop? W mote odpowiedź brzmi: „albo stan sprzed zapisu, albo stan po zapisie”.

Co się stanie, jeśli zasilanie zostanie odłączone dokładnie w chwili zapisywania pliku?
Zwykle plik może zostać zapisany tylko częściowo. W edytorze przeznaczonym do wieloletniego użytkowania nie powinno się to zdarzać. Dlatego nawet jeśli zapis się nie powiedzie, mote chroni pierwotny plik.
Najpierw w tym samym folderze co dokument tworzony jest plik tymczasowy. Po zapisaniu całej zawartości dane są synchronizowane z dyskiem, a uprawnienia pierwotnego pliku zostają skopiowane. Gdy wszystko jest gotowe, plik tymczasowy otrzymuje nazwę pierwotnego pliku.
Zmiana nazwy następuje w jednej operacji. Nawet jeśli w jej trakcie zasilanie zostanie odłączone, pozostanie albo poprzedni plik, albo nowy. Plik zapisany tylko częściowo nie pozostanie.
Uprawnienia również pozostają bez zmian. Zapis ma zmieniać zawartość, a nie to, kto może odczytać plik.
mote nie ingeruje także w bajty dokumentu. Zapisuje bez zmian zakończenia wierszy CRLF, BOM, mieszane zakończenia wierszy, a nawet obecność lub brak końcowego znaku nowej linii. Jeśli plik został otwarty i niczego w nim nie zmieniono, po ponownym zapisaniu nie powinien różnić się ani jednym bajtem. mote testuje tę zasadę przy każdym wydaniu.
Łącza pozostają nienaruszone
Nawet bezpiecznej metody zapisu nie można stosować w identyczny sposób do wszystkich plików.
Jeśli łącze symboliczne zostanie zastąpione tak jak zwykły plik, łącze zniknie. Zmieniona zawartość nie zostanie też zapisana w dokumencie, na który wskazywało. mote podąża za łączem i zapisuje rzeczywisty plik. Samo łącze pozostaje bez zmian.
Łącza twarde sprawiają, że wiele nazw wskazuje na ten sam plik. Jeśli tylko jedna z tych nazw zostanie zastąpiona nowym plikiem, połączenie zostanie zerwane. Dlatego plik mający łącza twarde jest nadpisywany w miejscu. Rezygnujemy wtedy z atomowości, ale ograniczamy ryzyko za pomocą kopii zapasowej utworzonej tuż przed zapisem.
Nie zapisujemy plików, których nie udało się odczytać
Przed zapisaniem mote najpierw odczytuje plik z dysku.
Jeśli plik nie istnieje, tworzy nowy. Jeśli można go odczytać, tworzy kopię zapasową, a następnie go zapisuje. Jeśli plik istnieje, lecz nie można go odczytać, zapis zostaje przerwany.
Dotyczy to starych dokumentów w nieobsługiwanym kodowaniu, folderów oraz plików, do których brakuje uprawnień. Gdyby nieodczytany plik został pokazany jako pusty dokument, a następnie nadpisany, cała niewidoczna dla użytkownika zawartość mogłaby zniknąć.
Jeśli pliku nie można odczytać, nie można też utworzyć jego kopii zapasowej. Dlatego rezygnacja z zapisu jest jedynym sposobem, by go ochronić.
Kopie zapasowe i wersje robocze nie powstają obok dokumentu
Plik sprzed zapisu jest kopiowany do folderu stanu. Nazwa kopii zawiera nazwę dokumentu oraz czas zapisu.
문서이름.2026-09-07-153914.md
Dla każdego dokumentu przechowywanych jest 20 najnowszych kopii zapasowych, a najstarsze są usuwane jako pierwsze. Już po samej nazwie pliku można rozpoznać, kiedy utworzono kopię, i od razu otworzyć ją w używanym na co dzień edytorze.
Dokument, którego jeszcze ani razu nie zapisano, nie ma oryginału, z którego można utworzyć kopię zapasową. Zamiast tego powstaje wersja robocza. Po upływie sekundy od zatrzymania edycji jej kopia zostaje zapisana w folderze stanu. Nazwa zawiera czas oraz pierwszy nagłówek dokumentu.
Gdy plik zostanie zapisany albo użytkownik odrzuci dokument, wersja robocza również zostaje usunięta. Tak samo dzieje się przy zamykaniu aplikacji. Jeśli istnieje miejsce docelowe zapisu, dokument zostaje zapisany jako plik, a jeśli go nie ma, pozostaje jako wersja robocza.
Pliki tymczasowe pozostałe po awarii są sprzątane przy następnym otwarciu dokumentu. Jeśli jednak proces, który utworzył dany plik, nadal działa, mote go nie rusza. Inne okno może właśnie zapisywać dokument.
Dokumenty w /tmp lub folderze pamięci podręcznej mogą zniknąć po ponownym uruchomieniu systemu. Po otwarciu takiego dokumentu wyświetlana jest wskazówka, by zapisać go w innym miejscu.
Poza tym w folderze dokumentu nie są tworzone żadne pliki pomocnicze. Ustawienia, kopie zapasowe, wersje robocze oraz informacje o ostatnio otwieranych plikach są przechowywane w folderze stanu w katalogu domowym użytkownika. Nie dodaliśmy funkcji, które wymagałyby osobnego zapisywania stanu niemieszczącego się w Markdownie.

Kopia zapasowa jest potrzebna wtedy, gdy nie można już wrócić za pomocą funkcji cofania. Na przykład po ponownym uruchomieniu aplikacji albo gdy błędny zapis zostanie zauważony dopiero po dłuższym czasie. Po otwarciu pliku kopii zapasowej można zobaczyć dokument dokładnie w stanie sprzed nadpisania przez dany zapis.
Pliki i sieć są używane tylko za zgodą użytkownika
Automatyczny zapis trzeba włączyć samodzielnie w ustawieniach. Można również wybrać czas oczekiwania przed zapisem.
Po jego włączeniu dokument jest zapisywany, gdy od zatrzymania edycji upłynie ustawiony czas. Metoda zapisu jest taka sama jak przy zapisie ręcznym. Najpierw tworzona jest kopia zapasowa, następnie plik tymczasowy, który później zastępuje pierwotny plik. Automatyczny zapis nie jest osobną funkcją zapisywania, lecz minutnikiem uruchamiającym ten sam zapis w imieniu użytkownika. Działa tylko podczas edycji.

Sprawdzanie aktualizacji również trzeba włączyć samodzielnie. Gdy jest wyłączone, mote nie korzysta z sieci.
Po jego włączeniu aplikacja po uruchomieniu jednokrotnie sprawdza aktualizacje w tle. Zasada „raz dziennie” nie jest pilnowana przez odmierzanie czasu przez aplikację, lecz za pomocą pliku znacznika w folderze stanu. Dopóki aplikacja pozostaje uruchomiona, nie sprawdza ponownie i nie działa żaden stale aktywny minutnik.
Nawet jeśli dostępna jest nowa wersja, nie zostaje od razu pobrana. W prawym dolnym rogu ekranu pojawia się jedynie powiadomienie. Dopóki użytkownik go nie kliknie, aplikacja niczego nie pobiera, nie instaluje ani nie uruchamia ponownie.
Jedynym formatem, który aplikacja może aktualizować samodzielnie, jest AppImage. Wynika to z tego, że wystarczy zastąpić jeden plik. Jeśli mote zainstalowano przez apt lub Flatpak, aplikacja pokazuje tylko odpowiednie polecenie. Użytkownik uruchamia je samodzielnie.
Podczas sprawdzania aktualizacji wysyłane są wyłącznie informacje o platformie i kanale dystrybucji. Informacje identyfikujące użytkownika ani dane o otwartych dokumentach nie są wysyłane.
Bezpieczny zapis nie jest zapisem, który zawsze się udaje. Jest zapisem, który nie powoduje utraty danych nawet wtedy, gdy się nie powiedzie.