Fix Copilot session state collection - #64461
Conversation
Configure AWF to persist Copilot session state in a deterministic host-visible directory, copy it into parser logs with a legacy fallback, and version-gate the new flag. Recompile affected workflows and update compiler goldens. Fixes #64460 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
The copy-script test does not exercise its newly introduced source-selection, fallback, or recursive-copy behavior.
Review effort: Balanced
Findings: 1
What changed in this PR
Adds deterministic, host-visible Copilot session-state persistence so structured events reach artifact parsing and the Agentic Conversation summary.
Changes:
- Adds version-gated Copilot
--session-state-dirsupport. - Copies AWF-managed state with legacy
$HOMEfallback. - Recompiles affected workflows and golden fixtures.
| File | Description |
|---|---|
.github/workflows/agent-performance-analyzer.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/agent-persona-explorer.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/agentic-token-audit.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/agentic-token-optimizer.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/archie.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/architecture-guardian.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/breaking-change-checker.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/ci-coach.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/cli-consistency-checker.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/cli-version-checker.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/code-scanning-fixer.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/code-simplifier.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/constraint-solving-potd.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/contribution-check.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/copilot-cli-deep-research.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/copilot-opt.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/copilot-pr-merged-report.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/copilot-pr-nlp-analysis.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/copilot-pr-prompt-analysis.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/craft.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-action-setup-security-audit.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-agent-of-the-day-blog-writer.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-ambient-context-optimizer.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-arxiv-researcher.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-assign-issue-to-user.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-byok-ollama-test.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-code-debt-aider.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-code-metrics.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-community-attribution.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-compiler-quality.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-compiler-threat-spec-optimizer.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-credit-limit-test.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-ecosystem-explorer.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-experiment-report.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-file-diet.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-firewall-report.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-formal-spec-verifier.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-function-namer.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-geo-optimizer.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-github-docs-seo-optimizer.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-go-test-stubs-aider.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-graft-intelligence.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-hippo-learn.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-issues-report.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-malicious-code-scan.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-mcp-concurrency-analysis.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-model-inventory.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-model-resolution.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-multi-device-docs-tester.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-news.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-performance-summary.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-pr-review-cursor.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-regression-audit-kiro.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-reliability-review.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-repo-chronicle.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-safe-output-integrator.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-schema-audit-cursor.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-secrets-analysis.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-security-observability.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-security-red-team.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-spdd-spec-planner.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-spec-coverage-kiro.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-squid-image-scan.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-syntax-error-quality.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-team-evolution-insights.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-team-status.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-testify-uber-super-expert.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-token-consumption-report.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-trajectory-grader-implementer.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/daily-workflow-updater.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/dataflow-pr-discussion-dataset.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/dead-code-remover.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/delight.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/dependabot-burner.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/deployment-incident-monitor.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/design-decision-gate.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/dev-hawk.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/dictation-prompt.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/docs-noob-tester.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/draft-pr-cleanup.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/duplicate-code-detector.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/eslint-miner.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/evoskill-evolver.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/firewall-escape.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/firewall.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/glossary-maintainer.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/impeccable-skills-reviewer.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/issue-monster.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/jsweep.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/layout-spec-maintainer.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/linter-miner.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/mattpocock-skills-reviewer.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/mcp-inspector.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/mergefest.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/necromancer.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/objective-impact-report.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/org-health-report.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/plan.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/pr-code-quality-reviewer.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/pr-description-caveman.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/pr-nitpick-reviewer.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/pr-sous-chef.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/pr-triage-agent.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/q.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/refactoring-cadence.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/refiner.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/release.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/repo-tree-map.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/repository-quality-improver.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/research.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/security-compliance.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/slide-deck-maintainer.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/smoke-aider.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/smoke-checkout-pr-dispatch.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/smoke-copilot-aoai-apikey.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/smoke-copilot-aoai-entra.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/smoke-copilot-arm.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/smoke-copilot-auto.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/smoke-copilot-mai.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/smoke-copilot-sdk.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/smoke-copilot-small.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/smoke-copilot-sub-agents.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/smoke-copilot.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/smoke-create-cross-repo-pr.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/smoke-crush.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/smoke-cursor.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/smoke-deepseek-harness.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/smoke-gemini.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/smoke-goose.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/smoke-issues.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/smoke-kiro.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/smoke-multi-pr.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/smoke-opencode.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/smoke-pi.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/smoke-project.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/smoke-pydantic.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/smoke-repo-memory-ledger.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/smoke-service-ports.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/smoke-temporary-id.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/smoke-test-tools.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/smoke-update-cross-repo-pr.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/smoke-workflow-call-with-inputs.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/spec-extractor.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/spec-librarian.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/squad-game-planner.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/squad-implement-worker.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/squad-plan.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/squad.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/stale-pr-cleanup.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/stale-repo-identifier.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/sub-issue-closer.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/super-linter.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/technical-doc-writer.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/terminal-stylist.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/test-quality-sentinel.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/tidy.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/ubuntu-image-analyzer.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/uk-ai-operational-resilience.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/unbloat-docs.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/video-analyzer.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/visual-regression-checker.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/weekly-blog-post-writer.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/weekly-editors-health-check.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/weekly-issue-summary.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/weekly-network-domains-audit.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/weekly-safe-outputs-spec-review.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/workflow-generator.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/workflow-health-manager.lock.yml |
Recompiled with session-state persistence. |
.github/workflows/workflow-skill-extractor.lock.yml |
Recompiled with session-state persistence. |
actions/setup/sh/copy_copilot_session_state.sh |
Prefers AWF-managed state and retains legacy fallback. |
pkg/constants/spec_test.go |
Verifies the minimum AWF version constant. |
pkg/constants/version_constants.go |
Defines AWF v0.25.15 as the feature minimum. |
pkg/workflow/awf_command_builder.go |
Adds the gated Copilot AWF argument. |
pkg/workflow/awf_command_builder_test.go |
Covers argument emission by engine and version. |
pkg/workflow/awf_feature_flags.go |
Adds session-state capability detection. |
pkg/workflow/awf_feature_flags_test.go |
Tests feature-version boundaries. |
pkg/workflow/copilot_engine_execution.go |
Updates session-copy documentation. |
pkg/workflow/copilot_session_copy_test.go |
Adds static checks for copy-script paths. |
pkg/workflow/testdata/TestWasmGolden_AllEngines/copilot.golden |
Updates generated Copilot output. |
pkg/workflow/testdata/TestWasmGolden_CompileFixtures/basic-copilot.golden |
Updates basic Copilot output. |
pkg/workflow/testdata/TestWasmGolden_CompileFixtures/playwright-cli-mode.golden |
Updates Playwright Copilot output. |
pkg/workflow/testdata/TestWasmGolden_CompileFixtures/with-imports.golden |
Updates imported-workflow output. |
|
@copilot This PR still needs forward progress: please address the outstanding review feedback at #64461 (comment), refresh the branch if needed, and then run the pr-finisher skill.
|
Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
|
@copilot This PR still needs forward progress: please address the outstanding review feedback from Copilot at #64461 (comment), refresh the branch if needed, and then run the pr-finisher skill.
|
Addressed the linked review feedback and ran the PR-finisher checks. The changes are committed and pushed as |
This request was completed in |
|
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Updated in |
|
@copilot This PR still needs forward progress: please address the outstanding review feedback, refresh the branch if needed, and then run the pr-finisher skill.
|
…onversation-session-state # Conflicts: # .github/workflows/daily-arxiv-researcher.lock.yml Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
Refreshed the branch from |
|
@copilot create a shared agentic workflow that injects post agent steps that ensures the session file is available and fail tbe run i not. Inject in many argentic workflows using different sandbox runtimes as a sanity check. |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
Thanks for the fix, @dsyme! 👋 The Copilot session state collection change is well described and validated. Per CONTRIBUTING.md, non-core members should file issues rather than open PRs; if you are on the core team, please disregard.
|
|
@copilot this PR still needs forward progress before a maintainer can investigate efficiently. Please address the outstanding review feedback, then run the Outstanding review feedback
A branch refresh was also requested by PR Sous Chef in this run.
|
I checked the current PR review-thread data, but it does not include the three linked discussions (4151755483, 4151755485, or 4151755489); fetching their permalinks also failed. The visible review feedback has already been addressed and replied to in |
|
Please address the outstanding review feedback, refresh the branch if needed, then run the Outstanding review threads:
A branch refresh was also requested by PR Sous Chef in this run.
|
I repeated the PR review-thread query and it still returns only 13 threads; none contains comments 4151755483, 4151755485, or 4151755489. The linked pages and direct API requests are unavailable here, so their feedback text cannot be reviewed or safely acted on. The current PR metadata shows |
|
Please address the remaining unresolved review thread below, refresh the branch if needed, then run the Outstanding review feedback
A branch refresh was also requested by PR Sous Chef in this run.
|
The specifically cited review thread ( |
|
@copilot please move this PR toward maintainer review: address any remaining feedback, refresh the branch if useful, and run the
|
Ran the |
|
I reran PR-finisher triage. No new actionable review feedback or code change was found; the previously raised Copilot scope and artifact-redaction concerns are addressed in |
|
@copilot review changes and suggest a list of AW to run to validate. Add runtime check steps in these aw to canary check file correct present. |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Reviewed the Copilot session-state change: it remains Copilot-only, copies only redactor-supported files, and has execution tests for source precedence/fallback and filtering. Commit Recommended canary order: Smoke Copilot Auto (default CLI path), Smoke Copilot Small (alternate model), Smoke Copilot AOAI Entra (alternate auth), then Smoke Copilot ARM64. To cover every CLI variant with an assertion, also run Smoke Copilot AOAI API-key and Smoke Copilot MAI. I excluded Copilot SDK and SDK sub-agent workflows because they use a separate SDK execution path. |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
/smoke-copilot |
|
📰 BREAKING: Smoke Copilot is now investigating this issue comment. Sources say the story is developing... |
|
Smoke Copilot: build ✅, PR query ✅, Serena/Playwright/curl/file ❌ (bash denied), rest not run. Overall: FAIL. cc
|
|
Please address the outstanding review feedback, branch refresh, and then run the Outstanding review feedback
A branch refresh was also requested by PR Sous Chef in this run.
|
PR-finisher pass complete: the branch already includes current
Smoke Copilot ran on HEAD |
|
🎉 This pull request is included in a new release. Release: |

Summary
copilot-session-statelogs, with a legacy$HOMEfallback--session-state-dirfor AWF v0.25.15 and newerThe linked run preserved the real Copilot state under
/tmp/awf-agent-session-state-*, while the summary step copied an empty host$HOME/.copilot/session-state. Withoutevents.jsonl, the parser could not render Agentic Conversation.Fixes #64460
Validation
make agent-report-progressgo test ./pkg/workflow -count=1go test ./pkg/constants -count=1bash -n actions/setup/sh/copy_copilot_session_state.shshellcheck actions/setup/sh/copy_copilot_session_state.shRun: https://github.com/github/gh-aw/actions/runs/36705489092
Branch refresh requested by PR Sous Chef run https://github.com/github/gh-aw/actions/runs/36721750745
Run: https://github.com/github/gh-aw/actions/runs/36736658192
Run: https://github.com/github/gh-aw/actions/runs/36746690122
Run: https://github.com/github/gh-aw/actions/runs/36765079107
Branch refresh requested by PR Sous Chef run https://github.com/github/gh-aw/actions/runs/36766302125
Branch refresh requested by PR Sous Chef run https://github.com/github/gh-aw/actions/runs/36774731083
Run: https://github.com/github/gh-aw/actions/runs/36785232614
Branch refresh requested by PR Sous Chef run https://github.com/github/gh-aw/actions/runs/36788332137
Run: https://github.com/github/gh-aw/actions/runs/36799719793
✨ PR Review Safe Output Test - Run 36812703027
Warning
Firewall blocked 1 domain
The following domain was blocked by the firewall during workflow execution:
clients2.google.comTo allow these domains, add them to the
network.allowedlist in your workflow frontmatter:See Network Configuration for more information.
Branch refresh requested by PR Sous Chef run https://github.com/github/gh-aw/actions/runs/36815294059
pr-sous-chefbranch refresh requested in run https://github.com/github/gh-aw/actions/runs/36883904989