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 jestGdzie się znajdujeDlaczego ma znaczenie
Baza danych projektuDedykowany plik bazy danych dla każdego zarządzanego projektuPrzechowuje Contracts i historię Tasks danego projektu — oddzielnie dla każdego projektu, więc dane jednego projektu nigdy nie mieszają się z danymi innego
Baza globalnaJedna wspólna baza danych dla samego AITMPrzechowuje ustawienia całej aplikacji, hinty, rejestr zmiennych i inną konfigurację wspólną dla projektów
Logi wykonania TasksFoldery logów dla każdego projektuSzczegółowy, wiersz po wierszu zapis tego, co działo się podczas wykonywania Task — przydatny do debugowania Task, który zachował się nieoczekiwanie
Foldery danych TasksFoldery Tasks dla każdego projektu, jeden podfolder na numer TaskZawiera pliki wyników, metadane i zrzuty ekranu danego Task — na tym opiera się widok Results & Archive
WorktreesTymczasowe checkouty Git, po jednym na działający TaskIzolowana kopia robocza, którą faktycznie edytują Agents danego Task; tworzona przy starcie Task i automatycznie usuwana po scaleniu — zob. The Pipeline
Dokumenty grafu wiedzyAutomatycznie generowane pliki dokumentacjiCzytelne 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.