Protected session capture: `Parse agent logs for step summary` fails when the engine step never ran
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 78/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- github-actions, go, javascript
Direzione di ricerca
Leggi generateLogParsing in pkg/workflow/compiler_yaml_ai_execution.go e i test del compilatore nelle vicinanze. Verifica come viene gestito l’ID del parser di acquisizione protetto, quindi aggiungi test per il passaggio di parsing condizionale e per il comportamento invariato con gli altri motori. Il lavoro è completato quando entrambi i casi sono verificati e il parser di acquisizione protetto viene ignorato solo quando steps.agentic_execution.outcome è skipped.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- Go
- Stelle
- 5.6k
- Fork
- 625
- Merge medio
- 5h 39m
- PR unite (30g)
- 796
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di github/gh-aw
-
agent-research cookie
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
automation observability optimization traces
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
awf community
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
github/gh-aw#76385 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
automation cli-tools testing
Difficoltà 1/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Pi on arc-dind: an aliased model reaches pi empty (`Model "aw-gateway/" not found`)Forse già presa @pelikhan l’ha presa 15 giorni fa. Apertaai-inspected community
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
github/gh-aw#72530 · 1 reazione · 2 assegnatari ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di github/gh-aw
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
prime-radiant-inc/evener#6325 ·
I maintainer di solito rispondono entro 1 giorno
-
team:library-maintainers
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
padok-team/burrito#1208 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
bazel-contrib/rules_go#4784 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
betterleaks/betterleaks#484 ·
I maintainer di solito rispondono entro 1 giorno