Bản dịch máy. Văn bản tiếng Anh là bản gốc có giá trị. English

Bằng chứng

Ai cũng có thể tuyên bố một lỗi đã được sửa. Trang này cho thấy bản sửa, bài test bảo vệ nó, và bằng chứng rằng bài test thất bại khi lỗi quay lại.

Tạo ngày 2026-10-03 từ tools/prove_regressions.py · 4 trên 4 bài kiểm thử hồi quy đã được chứng minh là không rỗng (non-vacuous).

Cách mỗi bằng chứng được tạo ra

  1. Chạy regression test trên mã đã sửa: nó phải pass.
  2. Sửa mã nguồn để đưa lỗi ban đầu trở lại.
  3. Chạy lại cùng bài kiểm thử đó: nó phải thất bại, với một lỗi assertion thực sự. Lỗi collection không được tính: nó có nghĩa là bài kiểm thử chưa hề chạy.
  4. Khôi phục tệp, xác minh SHA-256 của nó khớp với bản gốc, và chạy lại: nó phải đạt trở lại.

Trợ lý nói với khách truy cập rằng webhook mang theo cuộc trò chuyện của họ. Thực tế nó không mang theo chút nào.

commit e027e6b · được bảo vệ bởi apps/gateway/tests/test_webhook_content_claim.py

Payload webhook cố ý chỉ mang HÌNH DẠNG của một lượt: tên sự kiện, dấu thời gian, số bước, credit, và không bao giờ mang nội dung của nó. Khi được hỏi webhook có bao gồm hội thoại không, trợ lý đã trả lời 'Có, mỗi payload webhook bao gồm toàn bộ lịch sử hội thoại của lượt đó.' Đó chính xác là điều ngược lại với bảo đảm mà allow-list được kiểm thử theo. Đo được 2 lần bịa đặt trong 6 lần chạy trước khi sửa.

Mã đã sửa, các lần chạy kiểm thử ĐẠT 21 passed in 1.15s
Khôi phục lỗi, cùng bài test ĐÃ BẮT 8 failed, 13 passed in 1.20s
Tệp đã khôi phục, bài kiểm thử chạy ĐẠT sha256 a8d4cb0b10787eff…

Bài kiểm thử không rỗng nghĩa: nó thất bại khi lỗi quay lại.

Chúng tôi đã bảo chủ doanh nghiệp bấm vào một thẻ dashboard không tồn tại.

commit b4a203a · được bảo vệ bởi apps/gateway/tests/test_card_names.py

Cơ sở tri thức, tài liệu và một ô khởi đầu đều bảo chủ doanh nghiệp tìm một thẻ tên 'Send turns to a webhook'. Thẻ thật trên dashboard ghi 'Send events to your own system'. Cái tên này được bịa ra khi viết phần tri thức và lan sang ba chỗ mà không được kiểm tra. Đo được: 2 trên 2 câu trả lời về thiết lập đã nêu tên một nút điều khiển chưa từng tồn tại.

Mã đã sửa, các lần chạy kiểm thử ĐẠT 5 passed in 1.12s
Khôi phục lỗi, cùng bài test ĐÃ BẮT 3 failed, 2 passed in 1.23s
Tệp đã khôi phục, bài kiểm thử chạy ĐẠT sha256 f6348e1a5bbae209…

Bài kiểm thử không rỗng nghĩa: nó thất bại khi lỗi quay lại.

Lời chào ở chế độ tối hiển thị với độ tương phản 1.73:1, gần như không nhìn thấy được, và cơ chế bảo vệ đã không thể phát hiện ra điều đó.

commit ca47f41 · được bảo vệ bởi apps/studio/test/themeContrast.test.mjs

Phát hiện từ một ảnh chụp màn hình trên một chiếc iPhone thật, không phải từ bất kỳ bài kiểm thử nào. Lời chào mừng bị mã cứng thành #3a3a3c, chỉ đạt 1.73:1 so với bảng ở chế độ tối, thấp hơn nhiều so với mức tối thiểu 4.5:1 và gần như không đọc được. Mọi khách truy cập lần đầu ở chế độ tối đều thấy nó. Bản sửa định tuyến màu qua biến chủ đề --pw-mist để nó theo bảng; cơ chế bảo vệ giờ tính tỷ lệ tương phản thực tế cho từng cặp theo chủ đề thay vì tin rằng một màu đã được đặt.

Mã đã sửa, các lần chạy kiểm thử ĐẠT pass 5, fail 0
Khôi phục lỗi, cùng bài test ĐÃ BẮT pass 3, fail 2
Tệp đã khôi phục, bài kiểm thử chạy ĐẠT sha256 54f8802b444b6194…

Bài kiểm thử không rỗng nghĩa: nó thất bại khi lỗi quay lại.

Một lượt thất bại khiến khách truy cập chờ mãi trên một luồng đã chết.

commit 4bcc691 · được bảo vệ bởi apps/studio/test/streamError.test.mjs

Khi lệnh gọi model thất bại, server đã gửi đúng một error frame, nhưng widget lại ghi thông báo vào một phần tử mà nhánh governance-trace đã ẩn đi từ trước, và không bao giờ thu gọn trace. Khách truy cập thấy dòng 'Reading your message' nhấp nháy mãi trên một lượt đã thất bại: không có lỗi, không có cách khôi phục, không có cách nào để biết. Nội dung lỗi được gán đúng nhưng không được hiển thị ở đâu cả. Phát hiện trong một sự cố thật khi tài khoản API hết credit.

Mã đã sửa, các lần chạy kiểm thử ĐẠT pass 4, fail 0
Khôi phục lỗi, cùng bài test ĐÃ BẮT pass 2, fail 2
Tệp đã khôi phục, bài kiểm thử chạy ĐẠT sha256 54f8802b444b6194…

Bài kiểm thử không rỗng nghĩa: nó thất bại khi lỗi quay lại.

Hồ sơ vận hành

Những gì tồn tại phía sau nền tảng, và những gì chưa được kiểm thử. Chỉ những gì một script hoặc một log có thể cho thấy.

Từ docs/ops-record.json, do diễn tập khôi phục ghi ra (docs/runbooks/db-backup.md).

Điều này không chứng minh được gì

Đây là các kiểm tra tôi tự chạy trên mã của chính mình. Chúng cho thấy những test cụ thể bắt được những lỗi cụ thể: không phải hệ thống không có lỗi nào khác, không phải các đợt audit là toàn diện, và không phải đã có ai độc lập review nó. Bộ harness nằm trong repository; tuyên bố này có thể kiểm chứng bằng cách chạy nó.

PANTHEON · Chứng minh đi, tấn công hệ thống đang chạy · Hồ sơ kiểm toán · Hướng dẫn từng bước · Công việc · CV