Runner Doctor Updater: add cache-memory restore fallback key#5888
Conversation
There was a problem hiding this comment.
Pull request overview
This PR adjusts the locked Runner Doctor Updater workflow’s actions/cache restore behavior to reduce cache_memory_miss cold-start failures by adding a broader fallback restore key, and updates CI coverage to guard against regressions in that restore-key behavior.
Changes:
- Added a workflow-level cache restore fallback key (in addition to the existing date-scoped prefix) in
self-hosted-runner-doctor-updater.lock.yml. - Updated the workflow-lock regression test to check for the presence of the new fallback restore key.
Show a summary per file
| File | Description |
|---|---|
| scripts/ci/self-hosted-runner-doctor-updater-workflow.test.ts | Adds a regression assertion for the fallback restore key (but currently too broad to reliably detect regressions). |
| .github/workflows/self-hosted-runner-doctor-updater.lock.yml | Adds a second, less-specific restore-keys entry to allow reuse of prior cache-memory entries when same-day cache is missing. |
Review details
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 2/2 changed files
- Comments generated: 1
- Review effort level: Low
| expect(lock).toContain('🩺 Runner Doctor Update'); | ||
| expect(lock).toContain('shared/self-hosted-failure-modes.md'); | ||
| expect(lock).toContain('Compute scan window'); | ||
| expect(lock).toContain('memory-none-nopolicy-${{ env.GH_AW_WORKFLOW_ID_SANITIZED }}-'); |
|
@copilot address review feedback |
Fixed in the latest commit. The assertion now uses a regex that anchors a newline immediately after the trailing expect(lock).toMatch(/memory-none-nopolicy-\$\{\{ env\.GH_AW_WORKFLOW_ID_SANITIZED \}\}-\n/); |
|
✅ Copilot review passed with no inline comments. @copilot Add the |
|
✅ Smoke Copilot BYOK AOAI (api-key) completed. Copilot AOAI BYOK (api-key) mode operational. 🔓 |
|
🚀 Security Guard has started processing this pull request |
|
📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤 |
|
Chroot tests failed Smoke Chroot failed - See logs for details. |
|
🔑 Smoke Copilot PAT PAT auth validated. All systems operational. ✅ |
|
✅ Contribution Check completed successfully! PR #5888 follows the applicable contribution guidelines; no review comment needed. |
|
✅ Smoke Copilot BYOK AOAI (Entra) completed. Copilot AOAI BYOK (Entra) mode operational. 🔓 |
|
✅ Smoke Claude passed |
|
🌑 The shadows whisper... Smoke Codex failed. The oracle requires further meditation... |
|
✅ Smoke Copilot BYOK completed. Copilot BYOK mode operational. 🔓 |
|
✅ Build Test Suite completed successfully! |
|
🔌 Smoke Services — All services reachable! ✅ |
|
✅ Smoke Gemini completed. All facets verified. 💎 Smoke test completed with failures. Connectivity to GitHub.com is blocked and GitHub MCP tools were not found in the environment. |
|
📡 Smoke OTel Tracing completed. All tracing scenarios validated. ✅ |
✅ Coverage Check PassedOverall Coverage
📁 Per-file Coverage Changes (1 files)
Coverage comparison generated by |
🔥 Smoke Test: PAT Auth — PASS
Auth mode: PAT (COPILOT_GITHUB_TOKEN) — Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "awmgmcpg"See Network Configuration for more information.
|
Smoke Test: Claude Engine Validation
Overall Result: PASS Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "awmgmcpg"See Network Configuration for more information.
|
|
✅ Copilot BYOK (Direct Mode) Smoke Tests - PASS
Running in direct BYOK mode (COPILOT_PROVIDER_API_KEY) via api-proxy → api.githubcopilot.com Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "awmgmcpg"See Network Configuration for more information.
|
Gemini Engine Smoke Test Results
Overall Status: FAIL Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "localhost"See Network Configuration for more information.
|
|
✅ GitHub MCP connectivity & PR data validated Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "awmgmcpg"See Network Configuration for more information.
|
🔥 Smoke Test Results
Overall: PASS Author: Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "awmgmcpg"See Network Configuration for more information.
|
Smoke Test: Services Connectivity
Overall: FAIL — Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "awmgmcpg"See Network Configuration for more information.
|
|
Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "awmgmcpg"See Network Configuration for more information.
|
🏗️ Build Test Suite Results
Overall: 8/8 ecosystems passed — ✅ PASS Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "awmgmcpg"See Network Configuration for more information.
|
📡 Smoke Test: API Proxy OpenTelemetry Tracing
Summary: All core OTEL implementation is in place and all 59 tests pass. Env var forwarding from host service config to the container is a known pending item. No unexpected failures. Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "awmgmcpg"See Network Configuration for more information.
|
The Runner Doctor Updater failed when the agent emitted
missing_data(cache_memory_miss) and then terminated before producing a useful issue payload. This change reduces cache cold-start misses by broadening cache restore fallback behavior in the updater workflow.Cache restore key behavior
self-hosted-runner-doctor-updater.lock.ymlto add a workflow-level fallback restore key in addition to the existing date-scoped key.Regression guard
scripts/ci/self-hosted-runner-doctor-updater-workflow.test.tsto assert presence of the new fallback restore key so future lock updates don’t regress this behavior.