Move cache-memory and repo-memory restore steps before user steps: in agent job#43984
Conversation
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
steps: in agent job
There was a problem hiding this comment.
Pull request overview
This PR updates the gh-aw workflow compiler so cache-memory and repo-memory restore/setup steps are emitted before a workflow author’s frontmatter steps: block, ensuring user-defined deterministic steps can read from /tmp/gh-aw/cache-memory/ and /tmp/gh-aw/repo-memory/ without re-implementing restore logic.
Changes:
- Reordered main-job step emission so cache-memory and repo-memory setup run before user custom steps.
- Added a unit test asserting the generated YAML places both memory restore sections before custom steps.
- Regenerated many compiled
.lock.ymlworkflows to reflect the new step ordering.
Show a summary per file
| File | Description |
|---|---|
| pkg/workflow/compiler_yaml_main_job.go | Reorders step emission so memory restore/setup occurs before user steps:. |
| pkg/workflow/compiler_yaml_main_job_test.go | Adds a test asserting cache-memory/repo-memory steps are emitted before custom steps. |
| .github/workflows/workflow-health-manager.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/weekly-issue-summary.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/weekly-blog-post-writer.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/unbloat-docs.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/technical-doc-writer.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/super-linter.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/step-name-alignment.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/static-analysis-report.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/stale-repo-identifier.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/slide-deck-maintainer.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/safe-output-health.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/repository-quality-improver.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/python-data-charts.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/prompt-clustering-analysis.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/portfolio-analyst.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/org-health-report.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/jsweep.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/hippo-embed.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/gpclean.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/go-logger.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/glossary-maintainer.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/github-mcp-structural-analysis.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/detection-analysis-report.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/dependabot-burner.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/deep-report.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/dead-code-remover.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/dataflow-pr-discussion-dataset.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/daily-spdd-spec-planner.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/daily-sentrux-report.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/daily-security-observability.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/daily-safe-output-optimizer.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/daily-repo-chronicle.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/daily-performance-summary.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/daily-news.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/daily-issues-report.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/daily-hippo-learn.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/daily-fact.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/daily-experiment-report.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/daily-community-attribution.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/daily-code-metrics.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/copilot-session-insights.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/copilot-pr-prompt-analysis.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/copilot-pr-nlp-analysis.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/copilot-pr-merged-report.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/copilot-opt.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/copilot-centralization-optimizer.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/copilot-agent-analysis.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/ci-doctor.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/ci-coach.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/aw-failure-investigator.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/audit-workflows.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/api-consumption-report.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/agentic-token-optimizer.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
| .github/workflows/agentic-token-audit.lock.yml | Regenerated to reflect new memory/custom-step ordering. |
Review details
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 56/56 changed files
- Comments generated: 1
- Review effort level: Low
| // Add cache steps if cache configuration is present | ||
| compilerYamlLog.Printf("Generating cache steps for workflow") | ||
| generateCacheSteps(yaml, data, c.verbose) | ||
|
|
||
| // Add cache-memory steps if cache-memory configuration is present | ||
| // Add cache-memory steps before custom steps so that user steps: code can read |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Hey The PR is well-scoped, includes a dedicated test ( Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "patchdiff.githubusercontent.com"See Network Configuration for more information.
|
🤖 PR Triage · Run §28868091227
Score breakdown: Impact 40 · Urgency 25 · Quality 13 Rationale: Fixes critical ordering bug — cache-memory + repo-memory steps emitted AFTER user Labels:
|
|
@copilot merge main and recompile. Fix conflicts with comment memory |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
@copilot please run the
|
Branch is already up to date with |
|
@copilot please run the
|
cache-memoryandrepo-memoryrestore steps were emitted after the user's frontmattersteps:block, so custom steps always saw empty/tmp/gh-aw/cache-memory/and/tmp/gh-aw/repo-memory/directories — forcing authors to manually duplicate state via rawactions/cache.Changes
compiler_yaml_main_job.go— ingenerateRuntimeAndWorkspaceSetupSteps, movegenerateCacheMemoryStepsandgenerateRepoMemoryStepscalls to beforeemitCustomSteps. New order:create_gh_aw_tmp_dir+ GHE config + DIFC proxygenerateCacheSteps→generateCacheMemorySteps→generateRepoMemorySteps← moved hereemitCustomSteps(usersteps:)compiler_yaml_main_job_test.go— addsTestMemoryRestoreStepsOrderBeforeCustomStepsasserting by string position that both memory restore sections appear before user custom steps in the generated YAML.54
.lock.ymlfiles — regenerated; affected workflows now have memory populated before any user step runs.