Skip to content

Prevent Avenger startup failure from npm symlink mount - #57946

Closed
pelikhan with Copilot wants to merge 18 commits into
mainfrom
copilot/aw-debug-avenger-failure
Closed

Prevent Avenger startup failure from npm symlink mount#57946
pelikhan with Copilot wants to merge 18 commits into
mainfrom
copilot/aw-debug-avenger-failure

Conversation

Copilot AI commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Avenger failed before Codex execution because the sandbox rejected /usr/local/bin/npm as a symlink bind mount.

  • Sandbox configuration: Remove the invalid npm bind mount while retaining Node.js and global module mounts.
  • Generated workflow: Regenerate avenger.lock.yml to keep it synchronized.
mounts:
  - "/usr/bin/make:/usr/bin/make:ro"
  - "/usr/local/bin/node:/usr/local/bin/node:ro"
  - "/usr/local/lib/node_modules:/usr/local/lib/node_modules:ro"

Run: https://github.com/github/gh-aw/actions/runs/33679827993

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • github.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "github.com"

See Network Configuration for more information.

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 59.2 AIC · ⌖ 8.76 AIC · ⊞ 8.7K ·
Comment /souschef to run again


Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 22.6 AIC · ⌖ 8.6 AIC · ⊞ 9.2K ·
Comment /souschef to run again


pr-sous-chef https://github.com/github/gh-aw/actions/runs/33831313247

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 40.5 AIC · ⌖ 8.81 AIC · ⊞ 8.9K ·
Comment /souschef to run again


pr-sous-chef https://github.com/github/gh-aw/actions/runs/33834943677

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • github.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "github.com"

See Network Configuration for more information.

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 41.7 AIC · ⌖ 8.84 AIC · ⊞ 8.9K ·
Comment /souschef to run again


Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 31.7 AIC · ⌖ 8.68 AIC · ⊞ 8.7K ·
Comment /souschef to run again


pr-sous-chef https://github.com/github/gh-aw/actions/runs/33865510093

Warning

Firewall blocked 2 domains

The following domains were blocked by the firewall during workflow execution:

  • github.com
  • registry.npmjs.org

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "github.com"
    - "registry.npmjs.org"

See Network Configuration for more information.

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 18.6 AIC · ⌖ 8.56 AIC · ⊞ 8.7K ·
Comment /souschef to run again


Run: https://github.com/github/gh-aw/actions/runs/33875422710

Warning

Firewall blocked 2 domains

The following domains were blocked by the firewall during workflow execution:

  • github.com
  • registry.npmjs.org

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "github.com"
    - "registry.npmjs.org"

See Network Configuration for more information.

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 18.9 AIC · ⌖ 8.77 AIC · ⊞ 8.7K ·
Comment /souschef to run again


Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 54.6 AIC · ⌖ 9.63 AIC · ⊞ 9.2K ·
Comment /souschef to run again

Copilot AI linked an issue Sep 2, 2026 that may be closed by this pull request
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot AI changed the title [WIP] Debug Avenger workflow failure issue Prevent Avenger startup failure from npm symlink mount Sep 2, 2026
Copilot AI requested a review from pelikhan September 2, 2026 13:22
@pelikhan pelikhan added the awf label Sep 2, 2026
@pelikhan
pelikhan marked this pull request as ready for review September 2, 2026 13:35
Copilot AI balanced review requested due to automatic review settings September 2, 2026 13:35
@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

🧠 Matt Pocock Skills Reviewer has completed the skills-based review. ✅

🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer

@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Design Decision Gate 🏗️ completed the design decision gate check. See the comment below for the result and any generated ADR draft.

No ADR enforcement needed: PR does not have the 'implementation' label and has ≤100 new lines of code in business logic directories.

🏗️ ADR gate enforced by Design Decision Gate 🏗️

@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

PR Code Quality Reviewer completed the code quality review.

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • github.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "github.com"

See Network Configuration for more information.

🔎 Code quality review by PR Code Quality Reviewer

@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

⚠️ Security scanning failed for Ponytail Reviewer. Review the logs for details.

Lean already. Ship.

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • ab.chatgpt.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "ab.chatgpt.com"

See Network Configuration for more information.

Generated by Ponytail Reviewer for #57946

@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Test Quality Sentinel completed test quality analysis.

No test files were added or modified in this PR. Test Quality Sentinel skipped.

🧪 Test quality analysis by Test Quality Sentinel

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Reviewed the diff: removing /usr/local/bin/npm:/usr/local/bin/npm:ro from sandbox.mounts in avenger.md, with avenger.lock.yml regenerated to match (updated frontmatter_hash, mount flags dropped from the awf command). This is a minimal, config-only change — no UI/component code, so no Impeccable UX modes apply.

Correctness check: the codex harness script still runs npm root -g inside the container (GH_AW_NPM_GLOBAL_ROOT="$(npm root -g 2>/dev/null || true)"). Without the npm binary mounted, this fails silently (|| true), leaving GH_AW_NPM_GLOBAL_ROOT empty and NODE_PATH unset for the global node_modules mount. If globally-installed npm packages were previously relied on via NODE_PATH, they may no longer resolve. Since node_modules mount is retained, worth confirming this doesn't silently break any global-module resolution in Avenger's actual run — but not blocking given the PR's stated goal (fixing the symlink-mount startup crash) takes priority and this was already broken.

No blocking issues found. Lock file and source are in sync.

🧵 Reviewed using Impeccable skills by Impeccable Skills Reviewer · copilot · sonnet50 · 13.2 AIC · ⌖ 13.3 AIC · ⊞ 8.3K

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟢 Approval recommended

The targeted change directly addresses the audited failure without weakening workflow protections.

Pull request overview

Removes the invalid npm symlink mount that caused Avenger’s sandbox startup failure.

Changes:

  • Removes the /usr/local/bin/npm bind mount.
  • Regenerates the compiled workflow and metadata hash.
File summaries
File Description
.github/workflows/avenger.md Removes the failing npm mount.
.github/workflows/avenger.lock.yml Synchronizes generated configuration.
Review details
  • Files reviewed: 2/2 changed files
  • Comments generated: 0
  • Review effort level: Balanced

💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Comment Memory

reviewed_at: 2026-09-02T13:39:00.508+00:00
review_event: REQUEST_CHANGES
top_themes:
  - runtime dependency on npm remains after mount removal
files_reviewed:
  - .github/workflows/avenger.md
  - .github/workflows/avenger.lock.yml
comment_count: 1

Note

This comment is managed by comment memory.

It stores persistent context for this thread in the code block at the top of this comment.
Edit only the text inside the backtick fences; workflow metadata and the footer are regenerated automatically.

Learn more about comment memory

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • github.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "github.com"

See Network Configuration for more information.

🔎 Code quality review by PR Code Quality Reviewer · copilot · gpt54 · 17.3 AIC · ⌖ 7.36 AIC · ⊞ 23.5K ·
Comment /review to run again

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Verdict

Blocking issue: the sandbox mount was removed, but the generated harness still shells out to npm root -g, so this can just fail one step later on runners where npm is not otherwise on PATH.

Why this blocks

The change only fixes the bind-mount shape. It does not remove the runtime dependency on npm, and the reviewed diff still contains that direct npm invocation inside the agent bootstrap command. That leaves Avenger with another startup failure mode instead of making startup robust.

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • github.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "github.com"

See Network Configuration for more information.

🔎 Code quality review by PR Code Quality Reviewer · copilot · gpt54 · 17.3 AIC · ⌖ 7.36 AIC · ⊞ 23.5K
Comment /review to run again

Comments that could not be inline-anchored

.github/workflows/avenger.lock.yml:16

This removes the symlink mount, but the generated bootstrap still calls npm root -g, so Avenger can still die during startup on runners where npm is not otherwise available on PATH.

<details><summary>💡 Why this is still a blocker</summary>

The fix only changes how the sandbox exposes Node tooling; it does not remove the runtime dependency on npm. The reviewed diff still contains a direct npm root -g call inside the container bootstrap command, so this PR trades one startup failure …

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Skills-Based Review 🧠

Applied /diagnosing-bugs — small, well-scoped fix, but flagging one risk worth confirming before merge.

📋 Key Themes & Highlights

Key Themes

  • Symptom vs. root cause: removing the /usr/local/bin/npm bind mount fixes the immediate sandbox rejection (symlink mounts aren't supported), but the harness still shells out to npm root -g to build NODE_PATH (see pkg/workflow/copilot_engine_execution.go's nodePathSetupCommand). With npm absent from the sandbox, that call is silently swallowed by || true, so it's worth confirming module resolution still works via the retained /usr/local/lib/node_modules:ro mount rather than assuming it does.
  • No regression test: the PR is a config-only change (mounts list + regenerated lock file) with no test verifying the sandbox still boots or that NODE_PATH/global-module resolution isn't silently broken.

Positive Highlights

  • ✅ Correctly identifies and removes the actual cause of the reported startup failure (symlink bind mount unsupported by the sandbox).
  • ✅ Minimal, targeted diff — avenger.md source and its generated .lock.yml are kept in sync.

🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer · copilot · sonnet50 · 44.6 AIC · ⌖ 14.7 AIC · ⊞ 10.3K
Comment /matt to run again

Comment thread .github/workflows/avenger.md
@gh-aw-bot

Copy link
Copy Markdown
Collaborator

@copilot Please review the current PR state, address the outstanding review feedback, refresh the branch if needed, and run the pr-finisher skill before handing back to maintainers.

  • PR Code Quality Reviewer requested changes on .github/workflows/avenger.md and .github/workflows/avenger.lock.yml, noting the runtime dependency on npm remains after mount removal.
  • Please update the implementation to fully remove the startup regression, then summarize what changed and any remaining blocker.

Generated by 👨🍳 PR Sous Chef
Comment /souschef to run again

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • github.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "github.com"

See Network Configuration for more information.

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 25.3 AIC · ⌖ 8.8 AIC · ⊞ 8.7K ·
Comment /souschef to run again

Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>

Copilot AI commented Sep 2, 2026

Copy link
Copy Markdown
Contributor Author

@copilot Please review the current PR state, address the outstanding review feedback, refresh the branch if needed, and run the pr-finisher skill before handing back to maintainers.

  • PR Code Quali...

Addressed in f61074f: nodePathSetupCommand no longer requires npm on PATH. It now calls npm root -g only when npm is available, otherwise it derives the global node_modules path directly from the resolved node executable (<node prefix>/lib/node_modules). This removes the remaining runtime dependency on npm for avenger's sandbox (which mounts node and node_modules but not npm), while preserving existing behavior on runners where npm is present. All 298 workflow lock files were regenerated via make recompile since this is a shared command used by all node-based engines. No remaining blockers.

@gh-aw-bot

Copy link
Copy Markdown
Collaborator
pr-sous-chef

@copilot Please take the next forward-progress pass on this PR.

  • Recent updates say the Avenger npm-mount fix and NODE_PATH regression coverage still hold, with no unresolved review threads or code changes left.
  • Please run the pr-finisher skill on the current head and restate the maintainer-facing status clearly.
  • If the remaining blockers are only active CI completion and maintainer approval / branch protection, say that explicitly.

Generated by PR Sous Chef: https://github.com/github/gh-aw/actions/runs/33868135047

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 27.1 AIC · ⌖ 8.74 AIC · ⊞ 9.2K ·
Comment /souschef to run again

Copilot AI commented Sep 4, 2026

Copy link
Copy Markdown
Contributor Author
pr-sous-chef
```...

Current head 13a9593 is clean and up to date with main; the Avenger npm-mount fix and NODE_PATH regression coverage remain intact, and the sole review thread is resolved. The active CI run is still in progress; no failed job is available yet. No code changes are needed. Remaining merge blockers are CI completion and maintainer approval/branch protection.

@gh-aw-bot

Copy link
Copy Markdown
Collaborator

@copilot Please take the next forward-progress pass on this PR.

  • The fix and regression coverage appear intact on current HEAD, but this PR still needs a fresh maintainer-facing status pass.
  • Please review any outstanding checks or follow-up feedback, refresh the branch if needed, and run the pr-finisher skill on the current branch state.
  • If no code work remains, say explicitly that only routine CI or maintainer review is left.

Generated by PR Sous Chef: https://github.com/github/gh-aw/actions/runs/33875422710

Warning

Firewall blocked 2 domains

The following domains were blocked by the firewall during workflow execution:

  • github.com
  • registry.npmjs.org

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "github.com"
    - "registry.npmjs.org"

See Network Configuration for more information.

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 18.9 AIC · ⌖ 8.77 AIC · ⊞ 8.7K ·
Comment /souschef to run again

Copilot AI commented Sep 4, 2026

Copy link
Copy Markdown
Contributor Author

@copilot Please take the next forward-progress pass on this PR.

  • The fix and regression coverage appear intact on current HEAD, but this PR still needs a fresh maintainer-facing status pass....

Current head 13a9593 is clean and up to date with main. The Avenger npm-mount fix and NODE_PATH regression coverage remain intact, and the only review thread is resolved. Targeted workflow tests pass locally. No code work remains; only routine CI completion and maintainer review/approval under branch protection are needed.

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Category: bug | Risk: high | Score: 71 (impact 36 urgency 20 quality 15) | Action: fast_track | Batch: workflow-reliability

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • api.github.com

[!TIP]
api.github.com is blocked because GitHub API access uses the built-in GitHub tools by default. Instead of adding api.github.com to network.allowed, use tools.github.mode: gh-proxy for direct pre-authenticated GitHub CLI access without requiring network access to api.github.com:

tools:
  github:
    mode: gh-proxy

See GitHub Tools for more information on gh-proxy mode.

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "api.github.com"

See Network Configuration for more information.

Generated by 🔧 PR Triage Agent · copilot · mai10 · 25.2 AIC · ⌖ 2.93 AIC · ⊞ 15.1K ·

@gh-aw-bot

Copy link
Copy Markdown
Collaborator
pr-sous-chef

@copilot Please take the next forward-progress pass on this PR.

  • Review the latest branch state, outstanding feedback, and any failing checks on current HEAD.
  • Refresh the branch if needed, then run the pr-finisher skill and provide a concise maintainer-facing status handoff.
  • If no code changes are needed and the remaining blocker is only maintainer approval, stale review state, or routine CI handling, say that explicitly.

Generated by PR Sous Chef: https://github.com/github/gh-aw/actions/runs/33920455377

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 24.6 AIC · ⌖ 8.73 AIC · ⊞ 9.2K ·
Comment /souschef to run again

…ger-failure

Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>

Copilot AI commented Sep 4, 2026

Copy link
Copy Markdown
Contributor Author
pr-sous-chef
```...

Refreshed the branch with the latest main and pushed the merge update. The Avenger npm-mount fix and NODE_PATH regression coverage remain intact; targeted workflow tests, formatting checks, and all 299 workflow lock validations pass. No unresolved review threads or code issues remain. Only routine CI completion and maintainer approval/review remain.

@gh-aw-bot

Copy link
Copy Markdown
Collaborator
pr-sous-chef

@copilot Please take the next forward-progress pass on this PR.

  • Your latest update says no code work remains and only routine CI / maintainer approval are left.
  • Please run the pr-finisher skill on the current head and restate the maintainer-facing status concisely so maintainers can confirm whether any blocker remains beyond approval.

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 31.1 AIC · ⌖ 8.7 AIC · ⊞ 9K ·
Comment /souschef to run again

…ger-failure

Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>

Copilot AI commented Sep 4, 2026

Copy link
Copy Markdown
Contributor Author
pr-sous-chef
```...

Refreshed the branch with the newest main and pushed the merge update. The Avenger npm-mount fix and NODE_PATH regression coverage remain intact. Targeted workflow tests, formatting checks, and all 299 workflow lock validations pass; secret scanning is clean. No unresolved review threads or code blockers remain. Only routine CI completion and maintainer approval/review remain.

@gh-aw-bot

Copy link
Copy Markdown
Collaborator
pr-sous-chef

@copilot Please take the next forward-progress pass on this PR.

  • Review the current branch state, address any unresolved reviewer feedback, refresh the branch if needed, and run the pr-finisher skill before handing back to maintainers.
  • Summarize the current maintainer-facing blocker clearly once you finish.

Generated by PR Sous Chef: https://github.com/github/gh-aw/actions/runs/33927496336

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 17 AIC · ⌖ 9.78 AIC · ⊞ 9.2K ·
Comment /souschef to run again

…ger-failure

Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>

Copilot AI commented Sep 4, 2026

Copy link
Copy Markdown
Contributor Author
pr-sous-chef
```...

Refreshed the branch with the latest main and pushed the update. The Avenger npm-mount fix and NODE_PATH regression coverage remain intact; targeted workflow tests and repository progress validation pass. The sole review thread is resolved and no code blockers remain. Maintainer-facing blockers are routine CI completion and required approval/branch protection.

Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
@gh-aw-bot

Copy link
Copy Markdown
Collaborator

@copilot PR sous-chef triage: there is still blocking review feedback about the retained npm root -g dependency in the generated harness. Please address the blocking review, refresh the branch if needed, and run the pr-finisher skill after pushing updates. Review: #57946 (review)

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • github.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "github.com"

See Network Configuration for more information.

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 24.2 AIC · ⌖ 8.7 AIC · ⊞ 8.9K ·
Comment /souschef to run again

Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>

Copilot AI commented Sep 5, 2026

Copy link
Copy Markdown
Contributor Author

@copilot PR sous-chef triage: there is still blocking review feedback about the retained npm root -g dependency in the generated harness. Please address the blocking review, refresh the branch if ne...

Addressed the blocking concern in pushed commit d8f6c1e (current head): the generated Node bootstrap no longer invokes npm root -g or depends on npm. It derives /lib/node_modules from the resolved Node executable, with regression coverage proving an npm binary is not invoked, and regenerated workflow locks/goldens. Targeted workflow tests, formatting, and pre-PR validation pass.

…ger-failure

# Conflicts:
#	.github/workflows/smoke-service-ports.lock.yml

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[aw] Avenger failed

4 participants