Bukti
Siapa pun bisa mengklaim sebuah bug sudah diperbaiki. Halaman ini menunjukkan perbaikannya, tes yang menjaganya, dan bukti bahwa tes itu gagal saat bug kembali.
Dibuat 2026-10-03 dari tools/prove_regressions.py · 4 dari 4 uji regresi terbukti tidak hampa (non-vacuous).
Bagaimana setiap bukti dihasilkan
- Jalankan tes regresi terhadap kode yang sudah diperbaiki: tes itu harus lulus.
- Sunting kode sumber untuk memunculkan kembali bug aslinya.
- Jalankan tes yang sama lagi: tes itu harus gagal, dengan kegagalan assertion yang nyata. Error saat koleksi tidak dihitung: artinya tes tidak pernah berjalan.
- Pulihkan file, verifikasi bahwa SHA-256-nya cocok dengan aslinya, lalu jalankan ulang: uji harus lulus lagi.
Asisten memberi tahu pengunjung bahwa webhook membawa percakapan mereka. Padahal webhook tidak membawa sedikit pun darinya.
commit e027e6b · dijaga oleh apps/gateway/tests/test_webhook_content_claim.py
Payload webhook sengaja hanya membawa BENTUK sebuah giliran: nama event, timestamp, jumlah langkah, kredit, dan tidak pernah isinya. Saat asisten ditanya apakah webhook menyertakan percakapan, ia menjawab 'Ya, setiap payload webhook menyertakan riwayat percakapan lengkap untuk giliran tersebut.' Itu kebalikan persis dari jaminan yang diuji oleh allow-list. Terukur 2 kali mengarang dalam 6 run sebelum perbaikan.
| Kode diperbaiki, tes dijalankan |
LULUS |
21 passed in 1.15s |
| Bug dikembalikan, tes yang sama |
TERTANGKAP |
8 failed, 13 passed in 1.20s |
| File dipulihkan, uji dijalankan |
LULUS |
sha256 a8d4cb0b10787eff… |
Tes ini tidak hampa: ia gagal ketika bug itu muncul kembali.
Kami menyuruh pemilik mengklik kartu dasbor yang tidak ada.
commit b4a203a · dijaga oleh apps/gateway/tests/test_card_names.py
Basis pengetahuan, dokumentasi, dan sebuah tile awal semuanya menyuruh pemilik mencari kartu bernama 'Send turns to a webhook'. Kartu dasbor yang sebenarnya bertuliskan 'Send events to your own system'. Nama itu dikarang saat bagian pengetahuan ditulis dan menyebar ke tiga tempat tanpa diperiksa. Terukur: 2 dari 2 jawaban penyiapan menyebut kontrol yang tidak pernah ada.
| Kode diperbaiki, tes dijalankan |
LULUS |
5 passed in 1.12s |
| Bug dikembalikan, tes yang sama |
TERTANGKAP |
3 failed, 2 passed in 1.23s |
| File dipulihkan, uji dijalankan |
LULUS |
sha256 f6348e1a5bbae209… |
Tes ini tidak hampa: ia gagal ketika bug itu muncul kembali.
Sapaan mode gelap dirender pada 1.73:1, praktis tidak terlihat, dan guard tersebut tidak mungkin menangkapnya.
commit ca47f41 · dijaga oleh apps/studio/test/themeContrast.test.mjs
Ditemukan dari tangkapan layar di iPhone sungguhan, bukan dari pengujian mana pun. Sapaan selamat datang di-hardcode ke #3a3a3c, yang hanya mencapai 1.73:1 terhadap panel mode gelap, jauh di bawah batas minimum 4.5:1 dan nyaris tidak terbaca. Setiap pengunjung pertama kali dalam mode gelap melihatnya. Perbaikannya mengarahkan warna melalui variabel tema --pw-mist sehingga mengikuti panel; guard kini menghitung rasio kontras sebenarnya untuk setiap pasangan bertema, bukan sekadar percaya bahwa sebuah warna sudah diatur.
| Kode diperbaiki, tes dijalankan |
LULUS |
pass 5, fail 0 |
| Bug dikembalikan, tes yang sama |
TERTANGKAP |
pass 3, fail 2 |
| File dipulihkan, uji dijalankan |
LULUS |
sha256 54f8802b444b6194… |
Tes ini tidak hampa: ia gagal ketika bug itu muncul kembali.
Giliran yang gagal membuat pengunjung menunggu selamanya pada stream yang sudah mati.
commit 4bcc691 · dijaga oleh apps/studio/test/streamError.test.mjs
Saat panggilan model gagal, server dengan benar mengirim frame error, tetapi widget menulis pesannya ke elemen yang sudah disembunyikan oleh cabang governance-trace, dan tidak pernah menutup trace-nya. Pengunjung melihat 'Reading your message' berkedip tanpa henti pada giliran yang sudah gagal: tanpa error, tanpa pemulihan, tanpa cara untuk tahu. Teks error ditetapkan dengan benar tetapi tidak ditampilkan di mana pun. Ditemukan saat gangguan nyata ketika akun API kehabisan kredit.
| Kode diperbaiki, tes dijalankan |
LULUS |
pass 4, fail 0 |
| Bug dikembalikan, tes yang sama |
TERTANGKAP |
pass 2, fail 2 |
| File dipulihkan, uji dijalankan |
LULUS |
sha256 54f8802b444b6194… |
Tes ini tidak hampa: ia gagal ketika bug itu muncul kembali.
Catatan operasional
Apa yang ada di balik platform, dan apa yang belum diuji. Hanya yang bisa ditunjukkan oleh skrip atau log.
- Cadangan: setiap malam pukul 03:17 UTC, pg_dump --clean --if-exists, gzip; didorong ke remote git privat setelah setiap run; terbaru
20261003T031701Z; 29 dump disimpan.
- Latihan pemulihan 2026-10-03: dump
20261003T031701Z dipulihkan dalam 2 s ke kontainer sekali pakai pgvector/pgvector:pg16 di host yang sama: 34 tenant, 270 baris knowledge, 47 tabel. Dump berasal dari 03:17 UTC; pada 13:26 UTC pembersihan demo terjadwal menghapus satu tenant demo terbengkalai yang berumur lebih dari 30 hari (log gateway), sehingga hasil pemulihan menunjukkan satu tenant lebih banyak dibanding kondisi live saat latihan.
- Rollback: situs: tools/deploy-site.sh --rollback (pembalikan symlink kedua ke rilis sebelumnya); Studio: tools/deploy-studio.sh --rollback (image sebelumnya, dengan health check).
- Target pemulihan: tidak ada yang dijanjikan. Dump harian membatasi kehilangan data paling banyak satu hari; tidak ada waktu pemulihan yang dinyatakan.
- Belum diuji: beban di atas satu instance; failover multi-region; pemulihan ke host yang berbeda.
Dari docs/ops-record.json, ditulis oleh latihan pemulihan (docs/runbooks/db-backup.md).
Apa yang tidak dibuktikan oleh ini
Ini adalah pemeriksaan yang saya jalankan sendiri atas kode saya sendiri. Pemeriksaan ini menunjukkan bahwa tes tertentu menangkap bug tertentu: bukan bahwa sistem bebas dari bug lain, bukan bahwa audit bersifat menyeluruh, dan bukan bahwa ada pihak independen yang telah meninjaunya. Harness-nya ada di repositori; klaim ini dapat diperiksa dengan menjalankannya.
PANTHEON · Buktikan, serang sistem live · Catatan audit · Walkthrough · Karya · CV
Tanyakan tentang cacat mana pun di sini dan bagaimana tesnya membuktikan perbaikannya.
- Tunjukkan bug nyata yang ia temukan dan perbaiki
- Bagaimana Anda tahu sebuah tes bisa gagal?
- Apa yang masih terbuka?