[Safe Outputs Conformance] PTI-005: Retry-loop integrity-rejection check regex no longer matches error_recovery.cjs guard
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 75/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- bash, github-actions
- Lĩnh vực
- security, testing-qa
Hướng nghiên cứu
Đọc phần kiểm tra PTI-005 gần dòng 2673 trong scripts/check-safe-outputs-conformance.sh và điều kiện bảo vệ vòng lặp thử lại gần dòng 352 trong actions/setup/js/error_recovery.cjs. Xác nhận rằng điều kiện bảo vệ vẫn từ chối các lỗi toàn vẹn trước khi gọi shouldRetry, sau đó điều chỉnh trình kiểm tra để nhận diện cả hai điều kiện khi có các mệnh đề OR khác xen giữa. Chạy bash scripts/check-safe-outputs-conformance.sh; hoàn tất khi PTI-005 và các kiểm tra khác đều đạt.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Conformance Check Failure
Check ID: PTI-005
Severity: HIGH
Category: Security / Implementation
Problem Description
Section 7.3 PTI-005 requires that the retry loop reject ERR_TRANSPORT_INTEGRITY failures before invoking any custom shouldRetry classifier, so a corrupted patch/bundle transport can never be silently retried. The checker verifies this by matching the literal adjacent substring error?.code === "ERR_TRANSPORT_INTEGRITY" || !fullConfig.shouldRetry(error) in actions/setup/js/error_recovery.cjs.
The current guard (line 352) is:
if (error?.code === "ERR_TRANSPORT_INTEGRITY" || (fullConfig.deadline !== undefined && now() >= fullConfig.deadline) || !fullConfig.shouldRetry(error)) {
A deadline-expiry clause was inserted between the integrity check and the shouldRetry check, which breaks the checker's literal adjacency match.
Affected Components
-
Files:
-
actions/setup/js/error_recovery.cjs(retry-loop guard, line 352) -
scripts/check-safe-outputs-conformance.sh(PTI-005 check, ~line 2673)
-
<b>🔍 Current vs Expected Behavior</b>
Current Behavior
|| is left-associative and short-circuits left-to-right, so error?.code === "ERR_TRANSPORT_INTEGRITY" is still evaluated before fullConfig.shouldRetry(error) regardless of the inserted deadline clause — the required ordering (integrity failures rejected before any custom classifier runs) is preserved at runtime. Only the checker's literal substring match fails, because it assumes no other clause can sit between the two conditions.
Expected Behavior
Either confirm the inserted deadline clause truly has no interaction with ERR_TRANSPORT_INTEGRITY classification (it appears not to, since it is its own independent OR-branch), and widen the PTI-005 checker pattern to tolerate additional clauses between the integrity check and the shouldRetry check, or restructure the guard so the integrity check is evaluated in isolation if the spec intends something stricter than left-to-right OR short-circuiting.
Remediation Steps
This task can be assigned to a Copilot coding agent with the following steps:
- Confirm that the deadline-expiry clause in
error_recovery.cjsline 352 cannot mask or suppressERR_TRANSPORT_INTEGRITYrejection (verify via the existing retry-loop tests, adding a regression test if integrity-failure-at-deadline is not already covered). - Update the PTI-005 regex in
scripts/check-safe-outputs-conformance.sh(~line 2673) to tolerate additional OR-clauses between the integrity check and theshouldRetrycheck, e.g. matcherror?.code === "ERR_TRANSPORT_INTEGRITY"and!fullConfig.shouldRetry(error)independently within the sameifcondition rather than as one adjacent literal string. - Re-run the conformance script locally and confirm PTI-005 passes alongside the other PTI-00x checks.
Verification
After remediation, verify the fix by running:
bash scripts/check-safe-outputs-conformance.sh
The check PTI-005 should pass without errors.
References
- Safe Outputs Specification: docs/src/content/docs/specs/safe-outputs-specification.md
- Conformance Checker:
scripts/check-safe-outputs-conformance.sh(line 2667) - Run: §39551296580
- Date: 2026-10-21
Generated by ✅ Daily Safe Outputs Conformance Checker · claude · agent · 81.4 AIC · ⌖ 0.668 AIC · ⊞ 5.4K · ◷
- expires on Oct 21, 2026, 9:53 PM UTC-08:00
- Ngôn ngữ chính
- Go
- Star
- 5.4k
- Fork
- 596
- Merge trung bình
- 3 giờ 24 phút
- Pull request đã merge (30 ngày)
- 824
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- Có Dockerfile hoặc tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của github/gh-aw
-
automation models
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
agent-research
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
agentic-workflows automation aw-essential cookie
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
Maintainer thường phản hồi trong vòng 1 ngày
-
automated conformance safe-outputs
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 75/100
Maintainer thường phản hồi trong vòng 1 ngày
-
automated conformance safe-outputs
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày
Issue tương tự
-
OCIRepository: pick the Helm chart layer automatically when the first layer is a provenance fileĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
fluxcd/source-controller#2198 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
webhook: mutating admission silently allows objects when createPatch fails (error discarded)Có thể đã có người làm @lemonzoey đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
volcano-sh/volcano#6138 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Maintainer thường phản hồi trong vòng 1 ngày
-
[BUG] steve: Updating a resource through /v1 ignores dryRun, fieldManager and fieldValidationĐang mởarea/frameworks area/steve kind/bug team/frameworks
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày