Skip to content

bump mcpg image to v0.3.9 (fixes wazero cache EACCES on artifact upload)#32193

Merged
pelikhan merged 4 commits into
mainfrom
copilot/bump-mcpg-image-to-v039
May 14, 2026
Merged

bump mcpg image to v0.3.9 (fixes wazero cache EACCES on artifact upload)#32193
pelikhan merged 4 commits into
mainfrom
copilot/bump-mcpg-image-to-v039

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented May 14, 2026

Bug Fix

What was the bug?

mcpg:v0.3.8 places the wazero compilation cache at /tmp/gh-aw/mcp-logs/wazero-cache/ with 0700 permissions. The "Upload agent artifacts" step zips all of /tmp/gh-aw/mcp-logs/, hitting EACCES on that subdirectory and failing the upload.

How did you fix it?

Bump the pinned image to v0.3.9, which relocates the wazero cache to /tmp/gh-aw/wazero-cache/ — a sibling of mcp-logs/ rather than nested inside it.

Changes

  • pkg/constants/version_constants.goDefaultMCPGatewayVersion v0.3.8v0.3.9
  • .github/aw/actions-lock.json — added v0.3.9 digest pin (sha256:64828b42a4482f58fab16509d7f8f495a6d97c972a98a68aff20543531ac0388)
  • pkg/actionpins/data/action_pins.json, pkg/workflow/data/action_pins.json — synced from actions-lock.json
  • 227 .lock.yml files — recompiled twice per the required update procedure; all now reference ghcr.io/github/gh-aw-mcpg:v0.3.9@sha256:64828b42a4482f58fab16509d7f8f495a6d97c972a98a68aff20543531ac0388
  • pkg/actionpins/actionpins_internal_test.go — added pin assertion for v0.3.9
  • .changeset/patch-bump-mcpg-v0-3-9.md — changeset entry

Copilot AI and others added 2 commits May 14, 2026 18:38
Co-authored-by: lpcox <15877973+lpcox@users.noreply.github.com>
Co-authored-by: lpcox <15877973+lpcox@users.noreply.github.com>
Copilot AI changed the title [WIP] Bump mcpg image to v0.3.9 to fix wazero cache permissions bump mcpg image to v0.3.9 (fixes wazero cache EACCES on artifact upload) May 14, 2026
Copilot finished work on behalf of lpcox May 14, 2026 18:42
Copilot AI requested a review from lpcox May 14, 2026 18:42
@lpcox lpcox marked this pull request as ready for review May 14, 2026 18:50
Copilot AI review requested due to automatic review settings May 14, 2026 18:50
@github-actions github-actions Bot mentioned this pull request May 14, 2026
Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Skills-Based Review 🧠

Applied /diagnose — this is a targeted bug fix for an EACCES error on artifact upload.

Key Themes

  • Root cause clearly addressed: The bug was mcpg:v0.3.8 placing the wazero cache at /tmp/gh-aw/mcp-logs/wazero-cache/ with 0700 permissions, causing the artifact upload step to fail with EACCES. The fix bumps to v0.3.9 which moves the cache outside mcp-logs/, cleanly resolving the issue rather than working around it.
  • Regression test added: TestGetContainerPin_MCPGatewayV039IsPinned follows the exact same pattern as the v0.3.6/v0.3.7/v0.3.8 equivalents — consistent, focused, and sufficient.
  • All mechanical steps completed: constant update, digest pin added to both action_pins.json copies and actions-lock.json, 227 lock files recompiled, changeset entry included. Nothing was missed.

Positive Highlights

  • ✅ PR description is excellent — the bug, root cause, and fix are all explained concisely
  • ✅ Regression test is correctly structured (Arrange → Act → Assert) with descriptive messages
  • ✅ Old v0.3.8 pin is preserved (not removed), maintaining backwards compatibility

Verdict

Approving. This is a well-executed, complete version bump with no gaps.

🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer · ● 3.5M

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR bumps the pinned gh-aw-mcpg (MCP Gateway) container from v0.3.8 to v0.3.9 to avoid artifact upload failures caused by the wazero cache directory being created under /tmp/gh-aw/mcp-logs/ with restrictive permissions.

Changes:

  • Update the default MCP Gateway version constant to v0.3.9.
  • Add/sync the v0.3.9 image digest pin across the various action pin data files.
  • Recompile workflow lockfiles to reference ghcr.io/github/gh-aw-mcpg:v0.3.9@sha256:64828b42... (and include additional cleanup logic in the locked workflows).
Show a summary per file
File Description
pkg/constants/version_constants.go Bumps DefaultMCPGatewayVersion to v0.3.9.
.github/aw/actions-lock.json Adds the gh-aw-mcpg:v0.3.9 digest pin.
pkg/actionpins/data/action_pins.json Syncs embedded container pin data with the new v0.3.9 entry.
pkg/workflow/data/action_pins.json Syncs workflow pin data with the new v0.3.9 entry.
pkg/actionpins/actionpins_internal_test.go Adds a unit test asserting the v0.3.9 container pin is embedded and correct.
.github/workflows/workflow-skill-extractor.lock.yml Updates locked workflow container references to v0.3.9 and adds post-run cleanup.
.github/workflows/video-analyzer.lock.yml Updates locked workflow container references to v0.3.9 and adds post-run cleanup.
.github/workflows/update-astro.lock.yml Updates locked workflow container references to v0.3.9 and adds post-run cleanup.
.github/workflows/test-workflow.lock.yml Updates locked workflow container references to v0.3.9 and adds post-run cleanup.
.github/workflows/test-dispatcher.lock.yml Updates locked workflow container references to v0.3.9 and adds post-run cleanup.
.github/workflows/smoke-workflow-call.lock.yml Updates locked workflow container references to v0.3.9 and adds post-run cleanup.
.github/workflows/smoke-temporary-id.lock.yml Updates locked workflow container references to v0.3.9 and adds post-run cleanup.
.github/workflows/smoke-service-ports.lock.yml Updates locked workflow container references to v0.3.9 and adds post-run cleanup.
.github/workflows/smoke-otel.lock.yml Updates locked workflow container references to v0.3.9 and adds post-run cleanup.
.github/workflows/smoke-ci.lock.yml Updates locked workflow container references to v0.3.9 and adds post-run cleanup.
.github/workflows/repo-tree-map.lock.yml Updates locked workflow container references to v0.3.9 and adds post-run cleanup.
.github/workflows/pr-nitpick-reviewer.lock.yml Updates locked workflow container references to v0.3.9 and adds post-run cleanup.
.github/workflows/pr-code-quality-reviewer.lock.yml Updates locked workflow container references to v0.3.9 and adds post-run cleanup.
.github/workflows/github-remote-mcp-auth-test.lock.yml Updates locked workflow container references to v0.3.9 and adds post-run cleanup.
.github/workflows/github-mcp-tools-report.lock.yml Updates locked workflow container references to v0.3.9 and adds post-run cleanup.
.github/workflows/firewall.lock.yml Updates locked workflow container references to v0.3.9 and adds post-run cleanup.
.github/workflows/example-permissions-warning.lock.yml Updates locked workflow container references to v0.3.9 and adds post-run cleanup.
.github/workflows/dependabot-burner.lock.yml Updates locked workflow container references to v0.3.9 and adds post-run cleanup.
.github/workflows/daily-syntax-error-quality.lock.yml Updates locked workflow container references to v0.3.9 and adds post-run cleanup.
.github/workflows/daily-sentrux-report.lock.yml Updates locked workflow container references to v0.3.9 and adds post-run cleanup.
.github/workflows/daily-malicious-code-scan.lock.yml Updates locked workflow container references to v0.3.9 and adds post-run cleanup.
.github/workflows/copilot-pr-merged-report.lock.yml Updates locked workflow container references to v0.3.9 and adds post-run cleanup.
.github/workflows/codex-github-remote-mcp-test.lock.yml Updates locked workflow container references to v0.3.9 and adds post-run cleanup.
.github/workflows/cli-consistency-checker.lock.yml Updates locked workflow container references to v0.3.9 and adds post-run cleanup.
.github/workflows/bot-detection.lock.yml Updates locked workflow container references to v0.3.9 and adds post-run cleanup.
.github/workflows/ace-editor.lock.yml Updates locked workflow container references to v0.3.9 and adds post-run cleanup.
.changeset/patch-bump-mcpg-v0-3-9.md Adds a changeset documenting the patch bump and the artifact upload fix motivation.

Copilot's findings

Tip

Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

  • Files reviewed: 100/233 changed files
  • Comments generated: 1

Comment on lines +879 to +881
if [ -d /tmp/gh-aw/mcp-logs/wazero-cache ]; then
sudo rm -rf /tmp/gh-aw/mcp-logs/wazero-cache 2>/dev/null || rm -rf /tmp/gh-aw/mcp-logs/wazero-cache
fi
@github-actions
Copy link
Copy Markdown
Contributor

🧪 Test Quality Sentinel Report

Test Quality Score: 70/100

⚠️ Acceptable, with suggestions

Metric Value
New/modified tests analyzed 1
✅ Design tests (behavioral contracts) 1 (100%)
⚠️ Implementation tests (low value) 0 (0%)
Tests with error/edge cases 0 (0%)
Duplicate test clusters 0
Test inflation detected No (ratio: 2:1, threshold: >2:1)
🚨 Coding-guideline violations None

Test Classification Details

Test File Classification Issues Detected
TestGetContainerPin_MCPGatewayV039IsPinned pkg/actionpins/actionpins_internal_test.go:145 ✅ Design Happy-path only; no error/edge cases

Flagged Tests — Requires Review

No tests require mandatory review. One minor suggestion:

💡 TestGetContainerPin_MCPGatewayV039IsPinned

Classification: Design test ✅
Minor gap: Only the happy path is exercised. The test verifies that v0.3.9 is present and has the correct digest, but does not assert the negative case (an unknown image returning ok = false). Adding a table-driven variant with an unknown image would complete the behavioral contract.

Suggested improvement: Extend to a table-driven test with at least one row for an unknown image tag and expectOK: false.


Language Support

Tests analyzed:

  • 🐹 Go (*_test.go): 1 test — unit (//go:build !integration)
  • 🟨 JavaScript (*.test.cjs, *.test.js): 0 tests

Verdict

Check passed. 0% of new tests are implementation tests (threshold: 30%). The single new test enforces a security-critical behavioral contract: that the v0.3.9 mcpg container image is pinned to the correct SHA-256 digest. Build tag is present. No guideline violations detected.


📖 Understanding Test Classifications

Design Tests (High Value) verify what the system does — observable outputs, state changes, error handling.

Implementation Tests (Low Value) verify how the system does it — internal call counts, mocked internals. They break on legitimate refactoring without catching real regressions.


References: §25879050211

🧪 Test quality analysis by Test Quality Sentinel · ● 8.5M ·

Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Test Quality Sentinel: 70/100. Test quality is acceptable — 0% of new tests are implementation tests (threshold: 30%). The single new test (TestGetContainerPin_MCPGatewayV039IsPinned) is a well-structured design test that enforces the security-critical digest-pinning contract for the v0.3.9 mcpg image. Minor suggestion: add a table-driven negative case to complete the behavioral contract.

@pelikhan
Copy link
Copy Markdown
Collaborator

@copilot remove the step that deletes /tmp/gh-aw/mcp-logs/wazero-cache

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented May 14, 2026

@copilot remove the step that deletes /tmp/gh-aw/mcp-logs/wazero-cache

Done. Removed generateWazeroCacheCleanupStep from the compiler, dropped the !/tmp/gh-aw/mcp-logs/wazero-cache/** exclusion from the artifact upload paths, updated the tests, and recompiled all 227 lock files — the "Remove wazero MCP cache" step is no longer present in any of them.

Copilot AI requested a review from pelikhan May 14, 2026 19:12
@pelikhan pelikhan merged commit 1797426 into main May 14, 2026
@pelikhan pelikhan deleted the copilot/bump-mcpg-image-to-v039 branch May 14, 2026 19:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bump mcpg image to v0.3.9 (fixes wazero cache permissions)

4 participants