AITM przechowuje lokalnie sporo stanu, aby działać niezawodnie i pamiętać, czego dowiedział się o projektach. Poniżej znajduje się opisana prostym językiem mapa tego, co jest przechowywane i dlaczego ma to znaczenie.
Jakie dane przechowuje AITM
Mapa danych
| Co to jest | Gdzie się znajduje | Dlaczego ma znaczenie |
|---|---|---|
| Baza danych projektu | Dedykowany plik bazy danych dla każdego zarządzanego projektu | Przechowuje Contracts i historię Tasks danego projektu — oddzielnie dla każdego projektu, więc dane jednego projektu nigdy nie mieszają się z danymi innego |
| Baza globalna | Jedna wspólna baza danych dla samego AITM | Przechowuje ustawienia całej aplikacji, hinty, rejestr zmiennych i inną konfigurację wspólną dla projektów |
| Logi wykonania Tasks | Foldery logów dla każdego projektu | Szczegółowy, wiersz po wierszu zapis tego, co działo się podczas wykonywania Task — przydatny do debugowania Task, który zachował się nieoczekiwanie |
| Foldery danych Tasks | Foldery Tasks dla każdego projektu, jeden podfolder na numer Task | Zawiera pliki wyników, metadane i zrzuty ekranu danego Task — na tym opiera się widok Results & Archive |
| Worktrees | Tymczasowe checkouty Git, po jednym na działający Task | Izolowana kopia robocza, którą faktycznie edytują Agents danego Task; tworzona przy starcie Task i automatycznie usuwana po scaleniu — zob. The Pipeline |
| Dokumenty grafu wiedzy | Automatycznie generowane pliki dokumentacji | Czytelne dla człowieka eksporty Contracts i wiedzy o zależnościach opisanej w Knowledge Sharing; regenerowane automatycznie po każdym scaleniu |
Dlaczego lokalny, trwały stan ma znaczenie
Nic z tego nie jest przypadkową buchalterią — to mechanizm stojący za wszystkim, co opisano w pozostałych częściach tego przewodnika:
- Baza danych projektu pozwala, aby Contracts, historia Tasks i wyszukiwanie precedensów przetrwały między sesjami i między Tasks, zamiast resetować się za każdym zamknięciem aplikacji.
- Foldery danych Tasks sprawiają, że Archive jest naprawdę użytecznym śladem audytowym, a nie listą tytułów — każdy wynik, zrzut ekranu i pole metadanych widoczne tam są odczytywane bezpośrednio z tych folderów.
- Worktrees są mechaniczną podstawą gwarancji izolacji opisanej w The Pipeline — ponieważ każdy Task dostaje naprawdę oddzielny checkout w systemie plików, praca w toku nigdy nie może przypadkowo przedostać się do głównej gałęzi.
- Dokumenty grafu wiedzy sprawiają, że „AI akurat coś zapamiętało" zamienia się w „projekt ma trwały, możliwy do sprawdzenia zapis własnego zachowania" — zob. Knowledge Sharing.
Jak kopie zapasowe bazy danych są chronione przed nieograniczonym wzrostem i cichą utratą danych
Kopie zapasowe baz danych wymagają własnej ochrony — w przeciwnym razie mogłyby albo zapełnić dysk, albo po cichu zniknąć w chwili, gdy są najbardziej potrzebne. AITM utrzymuje je w ramach wielopoziomowej polityki retencji i monitoruje ich rozmiar pod kątem anomalii:
- Retencja wielopoziomowa — zamiast jednego płaskiego progu, który naraz usuwa wszystkie kopie zapasowe starsze niż N dni (co mogłoby wymazać wszystkie kopie bazy za jednym razem, gdyby pominięto jedno dzienne uruchomienie), AITM przerzedza kopie stopniowo: zachowuje kilka najnowszych kopii dziennych, kilka starszych kopii w odstępach kilku dni oraz jedną jeszcze starszą kopię tygodniową. W rezultacie powstaje niewielki, lecz rozłożony w czasie zestaw punktów odzyskiwania, bez nieograniczonego wzrostu przestrzeni na kopie.
- Alerty o anomalii rozmiaru — przed jakimkolwiek przycinaniem AITM porównuje dzisiejszy rozmiar kopii zapasowej bazy z wczorajszym. Znaczący spadek (możliwa utrata danych) lub znaczący nieoczekiwany wzrost wywołuje alert e-mail zawierający poprzedni rozmiar, bieżący rozmiar i zmianę procentową, dzięki czemu o anomalii dowiadujemy się, zanim stara, zdrowa kopia zostałaby nadpisana lub usunięta.
- Zweryfikowane przycinanie kopii przyrostowych (delta) — przyrostowe kopie odzyskiwania starsze niż 3 dni są przycinane na bieżąco, ale dopiero po zweryfikowaniu, że najnowsza zachowywana kopia w danym łańcuchu jest nienaruszona. Jeśli weryfikacja się nie powiedzie, przycinanie dla tej bazy zatrzymuje się i nic starszego nie jest usuwane — dzięki temu jedna uszkodzona najnowsza kopia nigdy nie spowoduje kaskadowego usunięcia starszych, nadal dobrych kopii pod nią.
Wskazówki
- Kod projektu nigdy nie jest modyfikowany poza Worktree — zwykła kopia robocza pozostaje nietknięta, gdy Task działa.
- Z komputera nie jest wysyłane nic poza wywołaniami skonfigurowanego dostawcy AI.
- Ta lokalna, trwała wiedza sprawia, że AITM z czasem coraz lepiej radzi sobie z projektem, zamiast zaczynać od zera przy każdym Task.