Skip to content

fix: rootless AWF install uses $HOME/.local and exports $GITHUB_PATH#41310

Merged
pelikhan merged 8 commits into
mainfrom
copilot/fix-rootless-awf-install
Jun 24, 2026
Merged

fix: rootless AWF install uses $HOME/.local and exports $GITHUB_PATH#41310
pelikhan merged 8 commits into
mainfrom
copilot/fix-rootless-awf-install

Conversation

Copilot AI commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

install_awf_binary.sh --rootless hard-coded /usr/local/{bin,lib/awf} as install targets and aborted when those root-owned dirs weren't writable — breaking every network-isolation workflow on standard ubuntu-latest runners.

actions/setup/sh/install_awf_binary.sh

  • Retarget rootless install dirs to $HOME/.local/{bin,lib/awf} after flag parsing — always writable, no pre-chown or sudo required:
    if [ "$ROOTLESS" = "true" ]; then
      AWF_INSTALL_DIR="${HOME}/.local/bin"
      AWF_LIB_DIR="${HOME}/.local/lib/awf"
    fi
  • Replace the failing rootless preflight — instead of checking writability of /usr/local and erroring, create the user dirs with mkdir -p and verify they're writable
  • Fix the bundle wrapper — replace the hardcoded /usr/local/lib/awf/awf-bundle.js path with ${AWF_LIB_DIR}/awf-bundle.js
  • Expose the install dir to subsequent steps — append ${AWF_INSTALL_DIR} to $GITHUB_PATH so the bare awf invocation in later steps resolves without full path

pkg/workflow/copilot_engine_installation.go

  • Comment-only update to generateAWFInstallationStep reflecting that --rootless now targets $HOME/.local and exports $GITHUB_PATH

Generated by 👨‍🍳 PR Sous Chef · 46.7 AIC · ⌖ 1.08 AIC · ⊞ 17.4K ·



✨ PR Review Safe Output Test - Run 28136014835

Warning

Firewall blocked 6 domains

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

  • accounts.google.com
  • android.clients.google.com
  • clients2.google.com
  • contentautofill.googleapis.com
  • safebrowsingohttpgateway.googleapis.com
  • www.google.com

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

network:
  allowed:
    - defaults
    - "accounts.google.com"
    - "android.clients.google.com"
    - "clients2.google.com"
    - "contentautofill.googleapis.com"
    - "safebrowsingohttpgateway.googleapis.com"
    - "www.google.com"

See Network Configuration for more information.

💥 [THE END] — Illustrated by Smoke Claude · 110.3 AIC · ⌖ 37.2 AIC · ⊞ 8.7K ·

Copilot AI and others added 2 commits June 24, 2026 22:47
- Retarget AWF_INSTALL_DIR/AWF_LIB_DIR to $HOME/.local/{bin,lib/awf} in
  rootless mode so standard GitHub-hosted runners (root-owned /usr/local)
  work without pre-chowning or sudo
- Replace the erroring rootless preflight with mkdir+verify so user dirs
  are created on demand
- Fix bundle wrapper to use ${AWF_LIB_DIR} instead of hardcoded
  /usr/local/lib/awf so the wrapper finds awf-bundle.js in the right place
- Export $GITHUB_PATH after rootless install so the bare awf invocation in
  later steps resolves correctly
- Update comment in copilot_engine_installation.go to reflect new behavior

Closes #41309

Co-authored-by: lpcox <15877973+lpcox@users.noreply.github.com>
The export PATH line in rootless mode was redundant: GitHub Actions
subsequent steps inherit PATH additions only via $GITHUB_PATH (not shell
exports), and the --version check at the end of the script already uses
the full path ${AWF_INSTALL_DIR}/${AWF_INSTALL_NAME} directly.

Co-authored-by: lpcox <15877973+lpcox@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix rootless AWF install on standard runners fix: rootless AWF install uses $HOME/.local and exports $GITHUB_PATH Jun 24, 2026
Copilot finished work on behalf of lpcox June 24, 2026 22:49
Copilot AI requested a review from lpcox June 24, 2026 22:49
@lpcox lpcox marked this pull request as ready for review June 24, 2026 22:49
Copilot AI review requested due to automatic review settings June 24, 2026 22:49

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.

Pull request overview

This PR fixes rootless AWF installation on standard ubuntu-latest runners by moving install targets from root-owned /usr/local/... to user-writable $HOME/.local/... and persisting the install directory via $GITHUB_PATH, ensuring later workflow steps can invoke awf without a full path.

Changes:

  • Updates install_awf_binary.sh --rootless to install into $HOME/.local/{bin,lib/awf} and to create/validate those directories instead of failing on /usr/local permissions.
  • Fixes the bundle wrapper to execute the bundle from ${AWF_LIB_DIR} rather than a hardcoded /usr/local/lib/awf/... path.
  • Updates the workflow generator comment to reflect the new rootless install behavior and $GITHUB_PATH usage.
Show a summary per file
File Description
pkg/workflow/copilot_engine_installation.go Updates inline documentation for the generated AWF installation step to match new rootless install semantics.
actions/setup/sh/install_awf_binary.sh Implements rootless install path changes, updated preflight behavior, bundle wrapper path fix, and $GITHUB_PATH export.

Copilot's findings

Tip

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

  • Files reviewed: 2/2 changed files
  • Comments generated: 3

Comment thread actions/setup/sh/install_awf_binary.sh
Comment thread actions/setup/sh/install_awf_binary.sh Outdated
Comment thread actions/setup/sh/install_awf_binary.sh Outdated
@lpcox

lpcox commented Jun 24, 2026

Copy link
Copy Markdown
Collaborator

@copilot run pr-finisher skill

@github-actions

github-actions Bot commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Design Decision Gate 🏗️ completed the design decision gate check.

No ADR enforcement needed: PR #41310 does not have the 'implementation' label and has only 3 new lines of code in business logic directories (≤100 threshold). Both enforcement conditions are false.

@github-actions

github-actions Bot commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

PR Code Quality Reviewer completed the code quality review.

@github-actions

github-actions Bot commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Test Quality Sentinel completed test quality analysis.

@github-actions

github-actions Bot commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

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

@github-actions github-actions Bot mentioned this pull request Jun 24, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🧪 Test Quality Sentinel Report

⏭️ No test files were modified in this PR — analysis skipped.

PR #41310 (fix: rootless AWF install uses $HOME/.local and exports $GITHUB_PATH) changed 2 production files (install_awf_binary.sh, copilot_engine_installation.go) but no test files (*_test.go, *.test.cjs, *.test.js). Test Quality Sentinel has nothing to score.

Verdict

⏭️ Check skipped. No new or modified tests to analyze.

🧪 Test quality analysis by Test Quality Sentinel · 23.4 AIC · ⌖ 15.5 AIC · ⊞ 8.4K ·

…paths

Co-authored-by: lpcox <15877973+lpcox@users.noreply.github.com>

Copilot AI commented Jun 24, 2026

Copy link
Copy Markdown
Contributor Author

@copilot run pr-finisher skill

Done. All three reviewer threads addressed in 8062dec:

  • Removed 2>/dev/null from both rootless mkdir calls so CI logs show the real failure cause
  • Quoted ${node_bin} and ${AWF_LIB_DIR}/awf-bundle.js in the generated wrapper script to handle spaces in $HOME

Local make fmt, make lint, and make test-unit all pass. CI needs a human re-trigger before merge.

Copilot finished work on behalf of lpcox June 24, 2026 23:04

@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 /diagnose and /tdd — approving with minor suggestions.

📋 Key Themes & Highlights

Key Themes

  • Unquoted path in generated wrapper (line 184): ${AWF_LIB_DIR} expands unquoted inside the heredoc, so a $HOME with spaces would produce a broken wrapper at runtime. Low-probability in practice, but trivially fixable.
  • Missing regression test: All neighbouring shell scripts have a _test.sh counterpart; install_awf_binary.sh is the only one that doesn't. The rootless dir-override and GITHUB_PATH export are both unit-testable without network access.
  • Silent GITHUB_PATH skip: When GITHUB_PATH is unset (local dev / non-GHA), the install quietly drops the PATH update — a one-line informational message would save future debugging.

Positive Highlights

  • ✅ Root cause correctly addressed: hardcoded /usr/local paths and the overly strict preflight are both fixed in a single, coherent changeset.
  • AWF_USER_PREFIX intermediate variable keeps the two user-dir paths DRY without over-engineering.
  • ✅ Verification step (line 284) correctly uses the full ${AWF_INSTALL_DIR}/... path, so in-step verification works without relying on GITHUB_PATH (which only takes effect in subsequent steps).
  • ✅ Go comment updated in sync — the call-site documentation accurately reflects the new --rootless contract.

🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer · 64.5 AIC · ⌖ 9.08 AIC · ⊞ 6.5K

Comment thread actions/setup/sh/install_awf_binary.sh Outdated
maybe_sudo tee "${AWF_INSTALL_DIR}/${AWF_INSTALL_NAME}" > /dev/null <<WRAPPER
#!/bin/bash
exec ${node_bin} /usr/local/lib/awf/awf-bundle.js "\$@"
exec ${node_bin} ${AWF_LIB_DIR}/awf-bundle.js "\$@"

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.

[/diagnose] The generated wrapper script has ${AWF_LIB_DIR} unquoted — on a runner where $HOME contains spaces the wrapper will fail at runtime with argument-splitting errors.

💡 Suggested fix

The outer "..." are written literally into the wrapper file (the \$@ is already handled this way), so quoting the path in the heredoc produces a safe generated script:

exec ${node_bin} "${AWF_LIB_DIR}/awf-bundle.js" "\$@"

This is a low-probability failure in practice (runner $HOME paths almost never contain spaces), but it costs nothing to guard against.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Already addressed — 8062dec quotes both "${node_bin}" and "${AWF_LIB_DIR}/awf-bundle.js" in the wrapper heredoc, which is more defensive than the suggested single-quote fix.

# In rootless mode, install into the user's home directory instead of /usr/local
# so that standard GitHub-hosted runners (where /usr/local is root-owned) work
# without requiring any pre-chowning or sudo.
if [ "$ROOTLESS" = "true" ]; then

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.

[/tdd] This is the only script in actions/setup/sh/ that fixes a real regression but has no _test.sh counterpart — every neighbouring script (e.g. sanitize_path_test.sh, configure_gh_for_ghe_test.sh) has one.

💡 What a minimal test file could cover

A install_awf_binary_test.sh using the same pattern as siblings could include:

  1. Rootless dir override — source the flag-parsing + override block in a subshell, assert AWF_INSTALL_DIR is $HOME/.local/bin and AWF_LIB_DIR is $HOME/.local/lib/awf.
  2. Non-rootless unchanged — assert AWF_INSTALL_DIR stays /usr/local/bin when --rootless is not passed.
  3. GITHUB_PATH export — with a temp file as GITHUB_PATH, assert the install dir line is written after a rootless install.

These tests would have caught the original regression and will guard against future drift.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Added install_awf_binary_test.sh in 60f4c4a — covers all three cases suggested: rootless dir override, non-rootless unchanged, GITHUB_PATH export, and the new GITHUB_PATH-unset warning.

# In rootless mode, add the install dir to PATH for subsequent steps.
# $GITHUB_PATH is the mechanism for persisting PATH additions across steps in GitHub Actions.
if [ "$ROOTLESS" = "true" ]; then
if [ -n "${GITHUB_PATH:-}" ]; then

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.

[/diagnose] When GITHUB_PATH is unset (local dev, non-GHA CI), the PATH update silently does nothing — a developer running --rootless locally will have awf in ~/.local/bin with no hint that $PATH needs updating.

💡 Consider a fallback hint

Emitting a message when outside GHA costs nothing and removes a head-scratcher:

if [ -n "${GITHUB_PATH:-}" ]; then
  echo "${AWF_INSTALL_DIR}" >> "${GITHUB_PATH}"
else
  echo "info: awf installed to ${AWF_INSTALL_DIR} — add it to PATH manually outside GitHub Actions" >&2
fi

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Fixed in 60f4c4a — added an else branch that emits a WARNING to stderr when $GITHUB_PATH is unset so the developer gets an actionable message rather than silent nothing.

@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.

REQUEST_CHANGES — Three open threads from the prior reviewer plus one new issue found here block this merge.

Blocking themes

1. Unquoted paths in the generated wrapper (existing, unfixed — line 185)

${node_bin} and ${AWF_LIB_DIR} are expanded unquoted in the exec line written into the wrapper script. On any system where $HOME contains a space (macOS usernames with spaces, non-standard environments), the wrapper will silently word-split the path and fail at runtime for every awf invocation after install. Fix: quote both in the heredoc body — exec "${node_bin}" "${AWF_LIB_DIR}/awf-bundle.js" "$@".

2. Suppressed mkdir stderr in rootless preflight (existing, unfixed — lines 77–84)

Both preflight checks use mkdir -p ... 2>/dev/null, which silently drops all filesystem-level errors (permission denied, read-only FS, quota exceeded). When mkdir fails the only visible output is the generic error message; the actual OS error is gone. Drop the 2>/dev/null redirects so the raw failure reason appears in CI logs.

3. Silent GITHUB_PATH skip when unset in rootless mode (new — lines 266–269)

See inline comment. The guard [ -n "${GITHUB_PATH:-}" ] silently does nothing when $GITHUB_PATH is absent, leaving awf installed but not on PATH — a deferred, opaque failure in every downstream step.

🔎 Code quality review by PR Code Quality Reviewer · 74 AIC · ⌖ 7.91 AIC · ⊞ 5.2K

Comment on lines +266 to +269
if [ -n "${GITHUB_PATH:-}" ]; then
echo "${AWF_INSTALL_DIR}" >> "${GITHUB_PATH}"
fi
fi

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.

Silent success-with-broken-install when GITHUB_PATH is unset: if $GITHUB_PATH is absent (non-Actions environment, misconfigured runner, or future executor that uses a different PATH mechanism), the install completes with exit 0 but awf is unreachable from every subsequent step — producing a cryptic command not found rather than an actionable error here.

💡 Suggested fix

Add a warning (or error) when the guard condition is not met:

if [ "$ROOTLESS" = "true" ]; then
  if [ -n "${GITHUB_PATH:-}" ]; then
    echo "${AWF_INSTALL_DIR}" >> "${GITHUB_PATH}"
  else
    echo "WARNING: --rootless install complete but \$GITHUB_PATH is unset; add ${AWF_INSTALL_DIR} to PATH manually" >&2
  fi
fi

If rootless mode outside GitHub Actions is not a supported use case, promote the warning to exit 1 so the failure is explicit rather than deferred to a mystery downstream failure.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Fixed in 60f4c4a — the else warning branch is now in place. Since --rootless outside GitHub Actions is not a tested use case (and $GITHUB_PATH is always set in a real Actions runner), the warning is surfaced as >&2 rather than a hard exit, giving a clear hint without breaking local invocations that may stub the script.

@pelikhan

Copy link
Copy Markdown
Collaborator

@copilot run pr-finisher skill

@github-actions

Copy link
Copy Markdown
Contributor

@copilot review all comments and address unresolved review feedback.

Generated by 👨‍🍳 PR Sous Chef · 46.7 AIC · ⌖ 1.08 AIC · ⊞ 17.4K ·

@github-actions

Copy link
Copy Markdown
Contributor

@copilot refresh this branch from main and rerun checks.

Generated by 👨‍🍳 PR Sous Chef · 46.7 AIC · ⌖ 1.08 AIC · ⊞ 17.4K ·

@github-actions

Copy link
Copy Markdown
Contributor

📰 BREAKING: Smoke Copilot - AOAI (apikey) is now investigating this pull request. Sources say the story is developing...

@github-actions

Copy link
Copy Markdown
Contributor

📰 BREAKING: Smoke Copilot - AOAI (Entra) is now investigating this pull request. Sources say the story is developing...

@github-actions

Copy link
Copy Markdown
Contributor

✅ GitHub MCP Testing
✅ Web Fetch Testing
✅ File Writing Testing
✅ Bash Tool Testing
❌ Build gh-aw

Overall Status: FAIL

Warning

Firewall blocked 1 domain

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

  • localhost

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

network:
  allowed:
    - defaults
    - "localhost"

See Network Configuration for more information.

Smoke Gemini — Powered by Gemini ·

@github-actions

Copy link
Copy Markdown
Contributor

Smoke test FAIL

  • ✅ gh: 2 merged PRs
  • ❌ web-fetch unavailable
  • ✅ file write
  • ✅ bash verify
  • ❌ build: Go toolchain download Forbidden

Warning

Firewall blocked 1 domain

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

  • proxy.golang.org

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

network:
  allowed:
    - defaults
    - "proxy.golang.org"

See Network Configuration for more information.

🥧 Smoke Pi — Powered by Pi · 4.71 AIC · ⌖ 11.3 AIC · ⊞ 2.8K ·

@github-actions

Copy link
Copy Markdown
Contributor

Agent Container Tool Check

Tool Status Version
bash 5.2.21
sh available
git 2.54.0
jq 1.7
yq v4.53.3
curl 8.5.0
gh 2.95.0
node v22.23.0
python3 3.11.15 (PyPy 7.3.23)
go 1.24.13
java openjdk 21.0.11
dotnet 10.0.301

Result: 12/12 tools available ✅

Overall Status: PASS

🔧 Tool validation by Agent Container Smoke Test · 17.4 AIC · ⌖ 21.6 AIC · ⊞ 5.5K ·

@github-actions

Copy link
Copy Markdown
Contributor

Caution

agentic threat detected
Threat detection flagged this output in warn mode. Manual review is REQUIRED before any follow-up automation.

Details

The threat detection engine failed to produce results.

Review the workflow run logs for details.

Smoke Test: Codex - 28136014851
✅ 1,2,3,5,6,7,8,9,10
❌ 4
Overall: FAIL

Warning

Firewall blocked 6 domains

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

  • accounts.google.com
  • android.clients.google.com
  • clients2.google.com
  • contentautofill.googleapis.com
  • safebrowsingohttpgateway.googleapis.com
  • www.google.com

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

network:
  allowed:
    - defaults
    - "accounts.google.com"
    - "android.clients.google.com"
    - "clients2.google.com"
    - "contentautofill.googleapis.com"
    - "safebrowsingohttpgateway.googleapis.com"
    - "www.google.com"

See Network Configuration for more information.

🔮 The oracle has spoken through Smoke Codex · 3.77 AIC · ⊞ 12.8K ·

@github-actions

Copy link
Copy Markdown
Contributor

Caution

agentic threat detected
Threat detection flagged this output in warn mode. Manual review is REQUIRED before any follow-up automation.

Details

The threat detection engine failed to produce results.

Review the workflow run logs for details.

Comment Memory

Morning build hums low
Git leaves footprints in the dark
Smoke drifts, tests remain

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 6 domains

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

  • accounts.google.com
  • android.clients.google.com
  • clients2.google.com
  • contentautofill.googleapis.com
  • safebrowsingohttpgateway.googleapis.com
  • www.google.com

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

network:
  allowed:
    - defaults
    - "accounts.google.com"
    - "android.clients.google.com"
    - "clients2.google.com"
    - "contentautofill.googleapis.com"
    - "safebrowsingohttpgateway.googleapis.com"
    - "www.google.com"

See Network Configuration for more information.

🔮 The oracle has spoken through Smoke Codex · 3.77 AIC · ⊞ 12.8K ·

@github-actions

Copy link
Copy Markdown
Contributor

Smoke tests results:
Test 1: ✅
Test 2: ✅
Test 3: ✅
Test 4: ✅
Test 5: ✅
Test 6: ✅
Test 7: ✅
Test 8: ✅
Test 9: ✅
Test 10: ✅
Test 11: ✅
Test 12: ✅
Test 13: ✅
Test 14: ✅
Test 15: ✅

Overall: PASS
@app/copilot-swe-agent @lpcox @Copilot

📰 BREAKING: Report filed by Smoke Copilot - AOAI (apikey) · 58.8 AIC · ⌖ 16.1 AIC · ⊞ 18.3K ·

@github-actions

Copy link
Copy Markdown
Contributor

Caution

agentic threat detected
Threat detection flagged this output in warn mode. Manual review is REQUIRED before any follow-up automation.

Details

The threat detection engine failed to produce results.

Review the workflow run logs for details.

Pull request created: #41321

Generated by Changeset Generator

@github-actions

Copy link
Copy Markdown
Contributor

Comment Memory

Soft keys tap at dusk
Bots breathe through the build pipeline
Green sparks bloom in logs

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 5 domains

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

  • accounts.google.com
  • clients2.google.com
  • contentautofill.googleapis.com
  • safebrowsingohttpgateway.googleapis.com
  • www.google.com

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

network:
  allowed:
    - defaults
    - "accounts.google.com"
    - "clients2.google.com"
    - "contentautofill.googleapis.com"
    - "safebrowsingohttpgateway.googleapis.com"
    - "www.google.com"

See Network Configuration for more information.

📰 BREAKING: Report filed by Smoke Copilot · 291.6 AIC · ⌖ 12 AIC · ⊞ 19.2K ·

@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.

Smoke review tooling check complete.

Warning

Firewall blocked 5 domains

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

  • accounts.google.com
  • clients2.google.com
  • contentautofill.googleapis.com
  • safebrowsingohttpgateway.googleapis.com
  • www.google.com

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

network:
  allowed:
    - defaults
    - "accounts.google.com"
    - "clients2.google.com"
    - "contentautofill.googleapis.com"
    - "safebrowsingohttpgateway.googleapis.com"
    - "www.google.com"

See Network Configuration for more information.

📰 BREAKING: Report filed by Smoke Copilot · 291.6 AIC · ⌖ 12 AIC · ⊞ 19.2K

@github-actions

Copy link
Copy Markdown
Contributor

🤖 Smoke Test: Claude — Run 28136014835

Core #1-12: 1✅ 2✅ 3✅ 4✅ 5❌(Tavily no tools) 6✅ 7✅ 8✅ 9✅ 10✅ 11✅ 12✅
PR Review #13-19: 13✅ 14✅ 15✅ 16⚠️ 17✅ 18✅ 19⚠️

Overall: FAIL (Tavily MCP exposes no tools)

Warning

Firewall blocked 6 domains

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

  • accounts.google.com
  • android.clients.google.com
  • clients2.google.com
  • contentautofill.googleapis.com
  • safebrowsingohttpgateway.googleapis.com
  • www.google.com

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

network:
  allowed:
    - defaults
    - "accounts.google.com"
    - "android.clients.google.com"
    - "clients2.google.com"
    - "contentautofill.googleapis.com"
    - "safebrowsingohttpgateway.googleapis.com"
    - "www.google.com"

See Network Configuration for more information.

💥 [THE END] — Illustrated by Smoke Claude · 110.3 AIC · ⌖ 37.2 AIC · ⊞ 8.7K ·

@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.

💥 Automated smoke test review - all systems nominal!

Warning

Firewall blocked 6 domains

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

  • accounts.google.com
  • android.clients.google.com
  • clients2.google.com
  • contentautofill.googleapis.com
  • safebrowsingohttpgateway.googleapis.com
  • www.google.com

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

network:
  allowed:
    - defaults
    - "accounts.google.com"
    - "android.clients.google.com"
    - "clients2.google.com"
    - "contentautofill.googleapis.com"
    - "safebrowsingohttpgateway.googleapis.com"
    - "www.google.com"

See Network Configuration for more information.

💥 [THE END] — Illustrated by Smoke Claude · 110.3 AIC · ⌖ 37.2 AIC · ⊞ 8.7K

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"

TESTS_PASSED=0
TESTS_FAILED=0

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.

Nice helper functions — consider also printing a final summary count to make CI failures easier to scan.

# Test 5: GITHUB_PATH export — install dir is written when GITHUB_PATH is set
echo "Test 5: AWF_INSTALL_DIR is appended to GITHUB_PATH in rootless mode..."
FAKE_GITHUB_PATH=$(mktemp)
bash -c '

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.

Good coverage of the GITHUB_PATH export path. Using mktemp here is the right call for isolation.

@pelikhan pelikhan merged commit 7613926 into main Jun 24, 2026
204 checks passed
@pelikhan pelikhan deleted the copilot/fix-rootless-awf-install branch June 24, 2026 23:37
@github-actions

Copy link
Copy Markdown
Contributor

Caution

agentic threat detected
Threat detection flagged this output in warn mode. Manual review is REQUIRED before any follow-up automation.

Details

Potential security threats were detected in the agent output.

Review the workflow run logs for details.

Smoke tests run 28136048826: 1✅ 2✅ 3❌ 4❌ 5✅ 6✅ 8✅ 9❌ 10✅ 11✅ 12❌ 13✅ 14✅ 15✅. Overall: FAIL. @app/copilot-swe-agent

📰 BREAKING: Report filed by Smoke Copilot - AOAI (Entra) · 224.8 AIC · ⌖ 20.4 AIC · ⊞ 18.3K ·

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.

4 participants