Summary
Copilot workflows compiled with the latest stable release can omit the Agentic Conversation section from the agent job summary because the structured events.jsonl session log is not copied out of the AWF container.
Observed in https://github.com/github/actions-nudger/actions/runs/36697083106#summary-109828879119 using:
- gh-aw
v0.89.21
- Copilot CLI
1.0.87
- gh-aw-firewall/AWF
v0.28.23
Evidence
The run's AWF output reports:
Agent session state preserved at: /tmp/awf-agent-session-state-EF2Df8
The later copy step instead reads the host runner path:
Copying Copilot session state from /home/runner/.copilot/session-state to /tmp/gh-aw/sandbox/agent/logs/copilot-session-state
Session state directory copied successfully
However, the uploaded agent artifact contains no events.jsonl. The parser therefore has no structured Copilot events from which to render Agentic Conversation.
The compiled AWF invocation mounts /tmp/gh-aw but does not pass AWF's --session-state-dir option. copy_copilot_session_state.sh still reads $HOME/.copilot/session-state, which is not the container's persisted session-state location.
This is the same host/container handoff problem previously addressed for AWF smoke workflows in github/gh-aw-firewall#1945.
Expected behavior
Copilot session state must be written to a deterministic host-accessible directory under /tmp/gh-aw, copied into the agent logs artifact, and parsed into the job summary.
Proposed fix
- Pass
--session-state-dir /tmp/gh-aw/sandbox/agent/session-state to AWF for Copilot executions.
- Copy from that deterministic path into
/tmp/gh-aw/sandbox/agent/logs/copilot-session-state.
- Keep a compatibility fallback to
$HOME/.copilot/session-state where appropriate.
- Add compiler and copy-script tests that verify the AWF argument and source path.
Acceptance criteria
- Compiled Copilot workflows configure AWF with a deterministic session-state directory.
events.jsonl is included in the uploaded agent artifact.
- The parser can render Agentic Conversation from a sandboxed Copilot run.
- Non-Copilot engines are unchanged.
Summary
Copilot workflows compiled with the latest stable release can omit the Agentic Conversation section from the agent job summary because the structured
events.jsonlsession log is not copied out of the AWF container.Observed in https://github.com/github/actions-nudger/actions/runs/36697083106#summary-109828879119 using:
v0.89.211.0.87v0.28.23Evidence
The run's AWF output reports:
The later copy step instead reads the host runner path:
However, the uploaded
agentartifact contains noevents.jsonl. The parser therefore has no structured Copilot events from which to render Agentic Conversation.The compiled AWF invocation mounts
/tmp/gh-awbut does not pass AWF's--session-state-diroption.copy_copilot_session_state.shstill reads$HOME/.copilot/session-state, which is not the container's persisted session-state location.This is the same host/container handoff problem previously addressed for AWF smoke workflows in github/gh-aw-firewall#1945.
Expected behavior
Copilot session state must be written to a deterministic host-accessible directory under
/tmp/gh-aw, copied into the agent logs artifact, and parsed into the job summary.Proposed fix
--session-state-dir /tmp/gh-aw/sandbox/agent/session-stateto AWF for Copilot executions./tmp/gh-aw/sandbox/agent/logs/copilot-session-state.$HOME/.copilot/session-statewhere appropriate.Acceptance criteria
events.jsonlis included in the uploaded agent artifact.