Tłumaczenie maszynowe. Wiążący jest tekst angielski. English

Dowody

Każdy może twierdzić, że błąd został naprawiony. Ta strona pokazuje poprawkę, test, który jej pilnuje, i dowód, że test nie przechodzi, gdy błąd wraca.

Wygenerowano 2026-10-03 z tools/prove_regressions.py · 4 z 4 testów regresji z wykazaną niepustością.

Jak powstaje każdy dowód

  1. Uruchom test regresyjny na poprawionym kodzie: musi przejść.
  2. Zmodyfikuj kod źródłowy, żeby przywrócić pierwotny błąd.
  3. Uruchom ten sam test ponownie: musi nie przejść, z prawdziwym błędem asercji. Błąd kolekcji się nie liczy: oznacza, że test w ogóle się nie wykonał.
  4. Przywróć plik, sprawdź, czy jego SHA-256 zgadza się z oryginałem, i uruchom ponownie: test musi znowu przejść.

Asystent mówił odwiedzającym, że webhook przenosi ich rozmowę. Nie przenosi z niej niczego.

commit e027e6b · chroniony przez apps/gateway/tests/test_webhook_content_claim.py

Ładunki webhooków celowo zawierają tylko KSZTAŁT tury - nazwę zdarzenia, znacznik czasu, liczbę kroków, kredyty - i nigdy jej treści. Asystent zapytany, czy webhooki zawierają rozmowę, odpowiedział: 'Tak - każdy ładunek webhooka zawiera pełną historię rozmowy dla tej tury.' To dokładne przeciwieństwo gwarancji, względem której testowana jest lista dozwolonych. Zmierzono 2 zmyślenia na 6 uruchomień przed poprawką.

Poprawiony kod, przebiegi testów PASS 21 passed in 1.15s
Błąd przywrócony, ten sam test WYKRYTO 8 failed, 13 passed in 1.20s
Plik przywrócony, test uruchomiony PASS sha256 a8d4cb0b10787eff…

Test nie jest pusty: nie przechodzi, gdy błąd wraca.

Kazaliśmy właścicielom kliknąć kartę w panelu, która nie istnieje.

commit b4a203a · chronione przez apps/gateway/tests/test_card_names.py

Baza wiedzy, dokumentacja i kafelek startowy mówiły właścicielom, żeby szukali karty 'Send turns to a webhook'. Prawdziwa karta w panelu nazywa się 'Send events to your own system'. Nazwę wymyślono przy pisaniu sekcji wiedzy i bez sprawdzenia rozpropagowano w trzech miejscach. Zmierzono: 2 z 2 odpowiedzi dotyczących konfiguracji wskazywały kontrolkę, która nigdy nie istniała.

Poprawiony kod, przebiegi testów PASS 5 passed in 1.12s
Błąd przywrócony, ten sam test WYKRYTO 3 failed, 2 passed in 1.23s
Plik przywrócony, test uruchomiony PASS sha256 f6348e1a5bbae209…

Test nie jest pusty: nie przechodzi, gdy błąd wraca.

Powitanie w trybie ciemnym renderowało się z kontrastem 1.73:1, praktycznie niewidoczne, a zabezpieczenie nie mogło tego wychwycić.

commit ca47f41 · chroniony przez apps/studio/test/themeContrast.test.mjs

Wykryte na zrzucie ekranu z prawdziwego iPhone'a, a nie w żadnym teście. Powitanie miało na sztywno ustawiony kolor #3a3a3c, co daje 1.73:1 względem panelu w trybie ciemnym, znacznie poniżej minimum 4.5:1 i ledwo czytelne. Widział to każdy odwiedzający po raz pierwszy w trybie ciemnym. Poprawka kieruje kolor przez zmienną motywu --pw-mist, więc podąża on za panelem; zabezpieczenie oblicza teraz rzeczywisty współczynnik kontrastu dla każdej pary w motywie, zamiast ufać, że kolor został ustawiony.

Poprawiony kod, przebiegi testów PASS pass 5, fail 0
Błąd przywrócony, ten sam test WYKRYTO pass 3, fail 2
Plik przywrócony, test uruchomiony PASS sha256 54f8802b444b6194…

Test nie jest pusty: nie przechodzi, gdy błąd wraca.

Nieudana tura zostawiała odwiedzającego w nieskończonym oczekiwaniu na martwym strumieniu.

commit 4bcc691 · chroniony przez apps/studio/test/streamError.test.mjs

Gdy wywołanie modelu się nie powiodło, serwer poprawnie wysłał ramkę błędu, ale widżet wpisał komunikat do elementu, który gałąź śladu nadzoru już ukryła, i nigdy nie zwinął śladu. Odwiedzający widział pulsujące bez końca „Czytam twoją wiadomość” przy turze, która już się nie powiodła: bez błędu, bez odzyskania, bez możliwości, by się o tym dowiedzieć. Tekst błędu był przypisany poprawnie i nigdzie nie został wyświetlony. Wykryte podczas prawdziwej awarii, gdy na koncie API skończyły się środki.

Poprawiony kod, przebiegi testów PASS pass 4, fail 0
Błąd przywrócony, ten sam test WYKRYTO pass 2, fail 2
Plik przywrócony, test uruchomiony PASS sha256 54f8802b444b6194…

Test nie jest pusty: nie przechodzi, gdy błąd wraca.

Zapis operacyjny

Co istnieje za platformą, a co nie zostało przetestowane. Tylko to, co może pokazać skrypt lub log.

Z docs/ops-record.json, zapisanego przez ćwiczenie odtwarzania (docs/runbooks/db-backup.md).

Czego to nie dowodzi

To są kontrole, które sam uruchamiam na własnym kodzie. Pokazują, że konkretne testy wyłapują konkretne błędy: nie to, że system jest wolny od innych, nie to, że audyty były wyczerpujące, i nie to, że ktokolwiek niezależny go przejrzał. Harness jest w repozytorium; twierdzenie można sprawdzić, uruchamiając go.

PANTHEON · Udowodnij to, zaatakuj działający system · Zapis audytu · Omówienia · Projekty · CV