Przejdź do treści

Aktualizacje i samonaprawa

Zasada

Samonaprawa oznacza zdolność wykrycia problemu, zebrania dowodów, zbudowania i przetestowania kandydata oraz przedstawienia bezpiecznej rekomendacji. Nie oznacza prawa do cichej modyfikacji aktywnego systemu. NORBI może autonomicznie pracować nad naprawą, ale promocja kodu, instalacja pakietu, aktualizacja firmware, restart krytycznej usługi i zwiększenie uprawnień są odrębnymi skutkami.

Karta modułu

Pole Kontrakt
Odpowiedzialności health, detekcja regresji, diagnoza hipotez, candidate patch/config, test, canary, rollback plan, raport.
Wejścia alerty, logi redagowane, metryki, traces, wersje, manifesty, testy, zgłoszenia użytkownika.
Wyjścia incident, diagnosis, candidate, evidence bundle, update proposal, recovery action.
Zależności observability, Execution Fabric, worktrees, Tool/Agent Registry, backup, Approval Center.
Uprawnienia read diagnostics, write/test candidate; brak automatycznego main, install, activate i restart poza pre-approved safe class.
Autonomia triage i iteracja kandydata w budżecie; nie rozszerza zakresu incydentu.
Walidacja reprodukcja, regression suite, security gates, canary, post-change health i rollback readiness.
Awaria freeze updates, powrót do known-good, recovery mode i człowiek przez Management Node/KVM.

Polityka aktualizacji

Każda aktualizacja ma kanał (security, stable, preview), pochodzenie, podpis, checksum, SBOM, zgodność platformy, wymagania migracji, przewidywany downtime, rollback i testy. Auto-download może być dozwolony dla publicznych metadanych, lecz download nie oznacza install. Pakiet trafia do quarantine, przechodzi weryfikację i staje się candidate.

Typowe klasy:

Klasa Przykład Wymagana decyzja
dane niskiego ryzyka indeks kompatybilności, sygnatury wykrywania według zatwierdzonej polityki kanału
model nowe wagi lub quant test benchmark + approval aktywacji
plugin/adapter nowa wersja integracji capability diff + review + activation
core/control plane broker, policy, migracja DB maintenance approval + backup + recovery plan
system/firmware sterownik GPU, BIOS, KVM, UPS jawne okno serwisowe i operator

Pętla samonaprawy

flowchart LR
    A["Wykrycie"] --> B["Triage i zakres"]
    B --> C["Hipotezy"]
    C --> D["Reprodukcja izolowana"]
    D --> E["Candidate fix"]
    E --> F["Testy + porównanie"]
    F --> G["Review evidence"]
    G --> H["Approval wdrożenia"]
    H --> I["Canary"]
    I --> J{"Health OK?"}
    J -->|tak| K["Kontrolowany rollout"]
    J -->|nie| L["Rollback / recovery"]

Diagnoza rozważa kilka hipotez i wybiera test rozróżniający. System nie powtarza nieskutecznego patcha. Jeśli trzy iteracje nie poprawiają miernika, eskaluje z pełną historią, zamiast zwiększać losowo zakres zmian.

Kod i konfiguracja

Zmiana kodu powstaje w dedykowanym worktree. Main pozostaje read-only dla zwykłych tools. Candidate zawiera base commit, diff hash, changed paths i test receipts. Przed review jest zamrażany. Każda dalsza edycja unieważnia evidence i approvals. Promocję realizuje oddzielny principal/tool, który ponownie sprawdza main oraz candidate.

Konfiguracja runtime również jest wersjonowanym artefaktem. „Mała zmiana flagi” może zmienić granicę bezpieczeństwa, dlatego ma schema, diff, validator i rollback. Dynamiczny tuning dopuszcza się wyłącznie dla pól oznaczonych jako bezpieczne i w zatwierdzonym zakresie, np. limit równoległości 2–4; nie dla capability czy protected roots.

Backup i migracje

Przed migracją powstaje zweryfikowany copy-only backup. Migracja działa pod maintenance lock, zapisuje wersję kodu/schema i checksums, jest transakcyjna, gdy to możliwe. Po zmianie wykonywane są integrity checks oraz próba kluczowych workflow. Nieudana migracja przywraca pre-migration DB przed wznowieniem dispatch. Backup uznaje się za wiarygodny dopiero po odtworzeniu w izolacji.

Przykładowe polecenia

  • „Zdiagnozuj wzrost błędów transkrypcji i przygotuj kandydata, nie zmieniaj aktywnego modelu.”
  • „Sprawdź aktualizację pluginu Adobe w shadow i pokaż diff uprawnień.”
  • „Przygotuj bezpieczne okno aktualizacji sterownika GPU z planem wycofania.”
  • „Po awarii odtwórz stan do izolowanej lokalizacji i zatrzymaj się przed przełączeniem.”

Walidacja i obserwacja po zmianie

Gates obejmują schema, UTF-8, secret scan, testy jednostkowe, integracyjne, concurrency, restart/crash, security invariants i scenariusze domenowe. Canary ma jawne SLO i czas obserwacji. Brak błędów w logu nie wystarcza: sprawdza się rezultaty biznesowe, latency, queue depth, zasoby i alarmy użytkowników.

Ryzyka i scenariusz awaryjny

Ryzyka to błędna diagnoza, naprawa objawu, supply chain, migracja niekompatybilna w dół, canary bez reprezentatywnego ruchu i rollback niszczący nowe dane. Dlatego downgrade nie może automatycznie usuwać rekordów powstałych w nowym schemacie; może wymagać forward fix.

W razie nieudanego rollout system zatrzymuje kolejne węzły, odcina wersję od routingu, zachowuje receipty i przechodzi do known-good, jeśli plan wycofania jest dowiedziony. Gdy stan jest niepewny, uruchamia Recovery Console. Awaryjne sterowanie z KVM/Management Node przywraca infrastrukturę, ale nie jest używane do omijania approvali normalnej pracy.