fixOS ma dwie ścieżki diagnostyczne: natychmiastową analizę heurystyczną oraz opcjonalną analizę pogłębioną.
CLI
├── quick ──> lokalny snapshot ──> historia trendu ──> wynik bez LLM
├── cleanup ──> skaner usług ──> klasyfikacja ryzyka ──> plan/potwierdzenie
├── projects ──> artefakty + sieci Compose projektu ──> plan/potwierdzenie
├── scan ──> moduły diagnostyczne ──> raport tekstowy/JSON/YAML
└── fix ──> quick + diagnostyka ──> anonimizacja ──> LLM ──> HITL/auto
Pakiet fixos/cli/ definiuje komendy Click i formatowanie wyjścia. Główny
punkt wejścia znajduje się w fixos.cli:main; fixos/__main__.py zapewnia
równoważne uruchomienie przez python -m fixos.
CLI deleguje logikę do diagnostyki i agentów. Nie powinien samodzielnie rekurencyjnie skanować systemu ani wykonywać surowych operacji usuwania.
fixos/diagnostics/ zawiera:
quick_snapshot.py— ograniczony czasowo pomiar CPU, RAM, dysku, kontekstu systemu i znanych cache,system_checks.pyorazchecks/— równoległe moduły diagnostyczne,service_scanner.pyiservice_cleanup.py— wykrywanie danych usług, klasyfikację ryzyka i bezpieczne plany; osobne ścieżki dladocker-unused/docker-old(prune unused images + osierocone sieci) orazollama-old(modele pomodified_at, z pominięciem/api/ps),docker_network_cleanup.py— inwentaryzacja siecidangling, ponowna ochrona endpointów i sieci wbudowanych, usuwanie po dokładnym ID oraz create/remove probe dostępności domyślnej puli adresowej,project_scanner.py— artefakty zależne od projektu, np..venv,node_modulesitarget; opcjonalna ścieżkaprojects --docker-networksfiltruje siecidanglingpo dokładnej etykiecie projektu Compose.
Skaner raportuje ścieżkę, rozmiar, poziom ryzyka i dokładną operację. Cleaner otrzymuje wybrany wpis planu, dzięki czemu nie przelicza celu na inną ścieżkę tuż przed wykonaniem.
fixos/providers/ ujednolica komunikację z providerami zgodnymi z API OpenAI.
Przed wysłaniem danych fixos/utils/anonymizer.py maskuje ścieżki użytkownika,
hosty, adresy oraz tokeny.
fixos/agent/ udostępnia:
- HITL — każda zmiana wymaga decyzji użytkownika,
- autonomous — ograniczoną liczbę samodzielnych akcji,
- wspólny timeout z
fixos/utils/timeout.py.
fixos/orchestrator/ modeluje zależności problemów, wykonanie i rollback.
fixos/plugins/ zawiera wbudowane moduły oraz rejestr z autodetekcją pluginów
przez grupę entry points fixos.diagnostics.
Każdy znaleziony wpis otrzymuje jeden poziom:
safe— odbudowywalny cache z bezpieczną operacją zbiorczą,review— dane możliwe do odzyskania, ale wymagające decyzji,dangerous— dane rzeczywiste lub mieszane; bez automatycznego zbiorczego kasowania.
Tryb dry-run nigdy nie uruchamia komendy usuwającej. Dla wpisów chronionych pokazuje diagnostykę lub komendę podglądu.
fixos quick przechowuje małą historię w
~/.local/state/fixos/quick-history.json. Jest to lokalny punkt odniesienia,
nie telemetria. Historia służy do pokazania wzrostu dysku, RAM, swapu i znanych
magazynów w ostatnich godzinach oraz od początku dnia.
tests/unit/— logika klasyfikacji, cleanup, snapshoty i parsery,tests/e2e/— zachowanie CLI i warstwy anonimizacji,testql-scenarios/— scenariusze kontraktowe CLI.
Podstawowa weryfikacja:
python -m pytest
python -m fixos --help
python -m fixos quick --json --no-save