Protected session capture: `Parse agent logs for step summary` fails when the engine step never ran

Đang mở Phù hợp với người mới
#76,936 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

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
78/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ệ
github-actions, go, javascript
Lĩnh vực
ci-cd, testing

Hướng nghiên cứu

Đọc generateLogParsing trong pkg/workflow/compiler_yaml_ai_execution.go và các bài kiểm thử trình biên dịch gần đó. Kiểm tra cách xử lý ID parser bắt giữ được bảo vệ, rồi bổ sung kiểm thử cho bước phân tích có điều kiện và cho hành vi không thay đổi với các engine khác. Hoàn tất khi cả hai trường hợp đều được xác nhận và parser bắt giữ được bảo vệ chỉ bị bỏ qua khi steps.agentic_execution.outcome là skipped.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

ai-inspected

This issue was posted by Claude Code using claude-opus-5-5 on behalf of David.

Symptom

With protected-session-capture: true, a step that fails before the engine step (a failed PR checkout, a custom pre-agent gate that exits 1) leaves a second error on the agent job:

ERR_VALIDATION: AWF protected session capture could not be verified or published; no shared-log fallback is permitted

The engine step is skipped, so no capture can exist. The error reads as a capture integrity failure and hides the step that actually failed.

Example on v1.2.1 with the pydantic-ai engine: https://github.com/pydantic/pydantic-ai/actions/runs/43072677386. Checkout PR branch fails, Execute Pydantic AI CLI is skipped, and Parse agent logs for step summary fails with the error above.

Cause

generateLogParsing emits the parse step with an unconditional if: always():
https://github.com/github/gh-aw/blob/e478cc24ba638ef0668efd15d244daa4c1b0c405/pkg/workflow/compiler_yaml_ai_execution.go#L252-L254

With protected capture on, runLogParser calls readProtectedCommandOutput on GH_AW_AGENT_OUTPUT before any parsing:
https://github.com/github/gh-aw/blob/e478cc24ba638ef0668efd15d244daa4c1b0c405/actions/setup/js/log_parser_bootstrap.cjs#L282

Its fs.lstatSync throws on the capture directory AWF never created:
https://github.com/github/gh-aw/blob/e478cc24ba638ef0668efd15d244daa4c1b0c405/actions/setup/js/protected_command_output.cjs#L41

The catch block reports that as an unverifiable capture:
https://github.com/github/gh-aw/blob/e478cc24ba638ef0668efd15d244daa4c1b0c405/actions/setup/js/log_parser_bootstrap.cjs#L666-L676

Proposed fix

In generateLogParsing, when the engine has protected session capture enabled (the case protectedSessionCaptureParserID already handles), emit:

if: always() && steps.agentic_execution.outcome != 'skipped'

Keep if: always() for every other engine. Add a compiler test that asserts the new condition for a protected-capture engine and the unchanged one otherwise.

Why this cannot mask a real missing capture

AWF writes the capture only inside the agentic_execution step. If that step started at all (success, failure or cancelled), its outcome is not skipped, the parse step runs, and readProtectedCommandOutput fails closed exactly as today. The Actions runner sets the outcome, so no step in the job can change it. Only the case where no capture can exist is skipped.

The steps that already require steps.parse_agent_logs.outcome == 'success' (Ingest agent output and the agent output uploads) are skipped today when the parse step fails, and stay skipped.

Ngôn ngữ chính
Go
Star
5.6k
Fork
625
Merge trung bình
5 giờ 39 phút
Pull request đã merge (30 ngày)
796

Chuẩn bị môi trường

Mở trong Codespaces

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.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của github/gh-aw

Tất cả issue của github/gh-aw

Issue tương tự

Thêm issue về Go

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.