Skip to content

Install Playwright OS dependencies before launching browsers - #57951

Merged
pelikhan merged 9 commits into
mainfrom
copilot/aw-fix-blog-auditor-tool
Sep 2, 2026
Merged

Install Playwright OS dependencies before launching browsers#57951
pelikhan merged 9 commits into
mainfrom
copilot/aw-fix-blog-auditor-tool

Conversation

Copilot AI commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Blog Auditor (and any workflow using tools.playwright) failed at runtime because all three bundled browser engines (Chromium, Firefox, WebKit) were non-functional — their shared library dependencies (libnspr4, libnss3, libatk-bridge2.0-0, etc.) were never installed on the runner.

Root cause

install_playwright_browsers.sh downloaded browser binaries via playwright-cli install-browser but never provisioned the OS-level packages those binaries need to actually launch.

Fix

  • actions/setup/sh/install_playwright_browsers.sh: before installing each requested browser, resolve the playwright package bundled alongside the globally-installed @playwright/cli and invoke its install-deps <browsers> command, which installs missing apt packages via sudo (matching other setup scripts that already do system package installs this way).
  • Since only playwright-cli's bin is symlinked into the global npm bin dir (not playwright's own CLI), the script resolves the real path of playwright-cli and locates node_modules/playwright/cli.js relative to it, checking both the package-root and one-level-up locations to tolerate npm layout differences.
# before: only downloads the browser binary
playwright-cli install-browser chromium

# after: installs system deps first, then the browser binary
node "$playwright_js" install-deps chromium
playwright-cli install-browser chromium

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

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


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

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 · 57.1 AIC · ⌖ 10 AIC · ⊞ 9.2K ·
Comment /souschef to run again

Copilot AI linked an issue Sep 2, 2026 that may be closed by this pull request
Copilot AI and others added 2 commits September 2, 2026 13:21
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
…erences

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix missing credentials for Blog Auditor Install Playwright OS dependencies before launching browsers Sep 2, 2026
Copilot AI requested a review from pelikhan September 2, 2026 13:23
@pelikhan
pelikhan marked this pull request as ready for review September 2, 2026 13:25
Copilot AI balanced review requested due to automatic review settings September 2, 2026 13:25
@pelikhan

pelikhan commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

@copilot add integration tests for this script - in a separate job

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.

🟡 Changes recommended

Dependency-resolution failure currently skips required setup and permits broken browsers at runtime.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Installs Playwright browser OS dependencies before downloading browser binaries.

Changes:

  • Normalizes requested browser names.
  • Resolves Playwright’s bundled CLI and runs install-deps.
  • Retains retry logic for browser downloads.
File summaries
File Description
actions/setup/sh/install_playwright_browsers.sh Adds system dependency provisioning.
Review details
  • Files reviewed: 1/1 changed files
  • Comments generated: 1
  • Review effort level: Balanced

echo "Installing Playwright system dependencies for: ${normalized_browsers[*]}"
node "$playwright_js" install-deps "${normalized_browsers[@]}"
else
echo "::warning::Could not locate playwright/cli.js next to playwright-cli; skipping system dependency install"

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 ecca38d — the dependency install now fails closed. There is no warn-and-continue path left:

  • playwright-cli missing on PATH → ::error:: + exit 1
  • bundled playwright CLI unresolvable → ::error:: + exit 1
  • install-deps itself failing → ::error:: + exit 1

All three exit before playwright-cli install-browser runs, so a failed dependency install can no longer leave downloaded-but-unlaunchable browsers behind. Covered by Test 2 in install_playwright_browsers_integration_test.sh, which asserts non-zero exit, the error message, and that PLAYWRIGHT_BROWSERS_PATH was never created.

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

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 #57951

@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

Test Quality Sentinel completed test quality analysis.

No test files were added or modified in this PR (only actions/setup/sh/install_playwright_browsers.sh changed). Test Quality Sentinel skipped.

🧪 Test quality analysis by Test Quality Sentinel

@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 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 — this is a solid root-cause fix (installs OS-level Playwright deps via install-deps before browser install, addressing the actual missing-shared-library failure rather than retrying downloads). One gap: no regression test.

📋 Key Themes & Highlights

Key Themes

  • Root cause correctly addressed: the fix targets missing shared libraries, not just symptom retries.
  • Missing regression test: sibling scripts in actions/setup/sh/ follow a <script>_test.sh pattern; this PR doesn't add one, so a future path-resolution regression could silently reintroduce the original failure (browsers download but can't launch).
  • Silent fallback preserved (pre-existing note by Copilot review): if playwright_js resolution fails, the script only emits ::warning:: and continues — this matches the author's stated intent to avoid hard-failing on layout differences, but is worth confirming is deliberate given the bug this PR fixes was exactly this kind of silent gap.

Positive Highlights

  • ✅ Clear root-cause diagnosis and fix, well explained in the PR description with before/after.
  • ✅ Reasonable defensive path resolution across two npm layout candidates.

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

playwright_js="$candidate"
break
fi
done

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.

[/diagnosing-bugs] This bug fix (missing OS deps causing runtime browser launch failures) has no regression test guarding the new path-resolution/install-deps logic, even though sibling scripts in this dir follow a <script>_test.sh convention. @copilot please address this.

Why this matters

The root cause here was silent: browsers downloaded fine but failed to launch. Without a test, a future refactor of the npm/playwright-cli layout (or removal of this block) could silently reintroduce the exact same failure mode, and CI would not catch it until a workflow run fails at runtime.

Consider adding install_playwright_browsers_test.sh that stubs a fake playwright-cli/node_modules/playwright/cli.js layout (both package-root and one-level-up cases) and asserts install-deps is invoked with the normalized browser list, plus a case where resolution fails and the warning path is exercised.

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 in b529a43 / ecca38d: actions/setup/sh/install_playwright_browsers_integration_test.sh, run by a dedicated sh-playwright-browsers CI job (matrix: chromium, firefox, webkit).

It guards both new code paths:

  • unsupported browser names are rejected
  • the resolution/install-deps path fails closed and downloads nothing when it cannot run
  • system deps and browser binaries are installed on the happy path
  • the installed browser actually launches and renders a page — the direct regression test for the missing shared libraries, since the download succeeds even when they are absent

Verified locally for chromium: 9/9 assertions pass.

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

A small simplification is available in the new Playwright CLI path lookup logic. net: -2 lines possible.

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 #57951 · codex · mai10 · 5.76 AIC · ⌖ 0.267 AIC · ⊞ 12.8K
Comment /ponytail to run again

# node_modules/. Depending on npm layout, the resolved playwright-cli script
# may live at the package root (sibling of node_modules) or one level deeper
# in a bin/ subdirectory, so check both candidate locations.
search_dir="$(dirname "$playwright_cli_real")"

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.

L33-40: shrink: manual two-location search for the bundled Playwright CLI. Resolve the sibling playwright/cli.js directly from the resolved playwright-cli path instead of checking both candidate directories.

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.

Done in ecca38d. The two-candidate directory loop is gone; the bundled CLI is now resolved in one step by letting Node do the node_modules walk-up from the resolved playwright-cli path and reading the entry point from the playwright package's own bin field. The same simplification was applied to the launch step in the integration test.

…e CI job

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Comment Memory

reviewed_at: 2026-09-02T13:38:43Z
review_event: REQUEST_CHANGES
top_themes:
  - setup silently skips mandatory Playwright system dependencies when local package layout differs
files_reviewed:
  - actions/setup/sh/install_playwright_browsers.sh
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 · 14.5 AIC · ⌖ 7.38 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.

Request changes

The new dependency-install path still has a fail-open branch, so this does not reliably fix the runner setup.

Blocking theme

If playwright/cli.js is not found in one of the two guessed relative locations, the script emits a warning and keeps going. That recreates the exact broken behavior this PR is trying to remove: browser downloads succeed, but runtime still fails later with missing system libraries. Setup needs to fail closed when the dependency installer cannot be resolved.

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 · 14.5 AIC · ⌖ 7.38 AIC · ⊞ 23.5K
Comment /review to run again

echo "Installing Playwright system dependencies for: ${normalized_browsers[*]}"
node "$playwright_js" install-deps "${normalized_browsers[@]}"
else
echo "::warning::Could not locate playwright/cli.js next to playwright-cli; skipping system dependency install"

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.

This fallback makes the setup step non-deterministic again: if playwright/cli.js is not found in one of those two guessed paths, the script only emits a warning and continues downloading browsers that still cannot start, so the original runtime failure survives under a slightly different npm layout.

💡 The dependency-install step needs to fail closed, not silently degrade.

install-deps is the entire fix here. Treating lookup failure as a warning means any packaging drift in @playwright/cli puts us right back in the broken state this PR is meant to eliminate, but without failing setup loudly.

A safer pattern is to abort when the bundled Playwright CLI cannot be resolved, or to resolve it from a source that is guaranteed by the install step instead of hard-coding two relative paths. For example:

if [ -z "$playwright_js" ]; then
  echo "::error::Could not locate playwright/cli.js required for Playwright system dependency installation"
  exit 1
fi
node "$playwright_js" install-deps "${normalized_browsers[@]}"

That keeps the workflow honest: either dependencies were installed, or setup fails before later jobs hit missing shared-library errors.

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 ecca38d, along the lines you suggested. The lookup failure is now fatal rather than a warning, and the resolution no longer hard-codes relative paths:

playwright_js="$(node -e '
const path = require("path");
const pkgPath = require.resolve("playwright/package.json", { paths: [process.argv[1]] });
const pkg = require(pkgPath);
const bin = typeof pkg.bin === "string" ? pkg.bin : pkg.bin && pkg.bin.playwright;
if (!bin) { process.exit(1); }
process.stdout.write(path.resolve(path.dirname(pkgPath), bin));
' "$(dirname "$playwright_cli_real")" 2>/dev/null || true)"

if [ ! -f "$playwright_js" ]; then
  echo "::error::Could not resolve the playwright CLI bundled with ${playwright_cli_real}; Playwright system dependencies cannot be installed"
  exit 1
fi

Node performs the node_modules walk-up itself and the entry point comes from the package's own bin field, so npm layout drift is tolerated — and if resolution still fails, setup aborts before any browser is downloaded. install-deps returning non-zero is now also fatal.

Note require.resolve("playwright/cli.js", ...) cannot be used directly: cli.js is not listed in the playwright package's exports, so resolving package.json and reading bin is the supported route.

@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 via Impeccable-informed lens (harden/audit — this is a bash setup script, not a UI change, so most Impeccable modes don't apply directly).

Outstanding blocking issue (already flagged, not duplicating inline): the fallback path when playwright_js can't be resolved only prints ::warning:: and then proceeds to install browsers anyway (see existing comment on line 47). This silently reintroduces the exact failure mode this PR fixes — browsers get downloaded but can't launch due to missing OS deps — with no clear signal at runtime beyond a warning easy to miss in CI logs. Recommend failing hard (exit 1) in that branch, or at minimum surfacing it as a workflow-level error/annotation.

No other correctness or security issues found in the diff; the rest of the path-resolution and browser install logic looks sound.

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

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>

Copilot AI commented Sep 2, 2026

Copy link
Copy Markdown
Contributor Author

@copilot add integration tests for this script - in a separate job

Added in b529a43: actions/setup/sh/install_playwright_browsers_integration_test.sh plus a separate sh-playwright-browsers CI job (matrix: chromium, firefox, webkit).

The test runs the real install path and asserts:

  • unsupported browser names are rejected
  • the system-dependency install step runs (and does not fall back to the "could not locate playwright/cli.js" warning path)
  • browser binaries land in PLAYWRIGHT_BROWSERS_PATH
  • the installed browser actually launches and renders a page — this is the assertion that catches the original regression, since downloads succeed even when the OS shared libraries are missing

Verified locally for chromium (7/7 assertions pass).

@gh-aw-bot

Copy link
Copy Markdown
Collaborator

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

  • The latest author update says integration tests were added in response to maintainer feedback.
  • PR Code Quality Reviewer still has a request-changes review noting actions/setup/sh/install_playwright_browsers.sh can silently skip mandatory Playwright system dependencies when local package layout differs.
  • Please reconcile the current branch against that review, confirm whether the fix fully covers the fallback path, and summarize 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

Copilot AI and others added 2 commits September 2, 2026 13:59
Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
…uditor-tool

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 latest review feedback, refresh the branch if needed, and run the pr-finisher skill before handing back to maintainers.

  • The latest author ...

Reconciled. Summary of this pass:

  • Reviews — The reviewer's request-changes was valid: the previous commit warned and continued when playwright/cli.js could not be found, which recreated the original failure mode. Fixed in ecca38d. The fallback path is fully gone: missing playwright-cli, unresolvable bundled CLI, and a failing install-deps all now emit ::error:: and exit 1 before any browser is downloaded. Resolution also no longer guesses two relative paths — Node resolves playwright/package.json from the playwright-cli location and the entry point is read from the package's own bin field. Replied on all four unresolved threads (r3914629997, r3914711114, r3914713250, r3914723229).
  • Checks (local)make lint clean (0 issues, shellcheck passed) and make agent-report-progress green on the merged tree. The integration test passes 9/9 for chromium locally, including a real headless launch and the new fail-closed assertions.
  • Checks (CI) — CI has never actually run on this branch: every CGO/CJS run is action_required, i.e. queued pending maintainer approval, and there are no failing runs to root-cause. It is also stale after my push.
  • Mergeable — Branch was behind main; merged origin/main cleanly in 6a999d3 (no conflicts). mergeable_state was blocked on required review approval, not conflicts.

Remaining blockers (human-only):

  1. A maintainer must approve/re-trigger the workflow runs — the agent's pushes do not trigger CI and the pending runs need approval.
  2. Human review approval for the required check.

Notes: I could not resolve the review threads (no GraphQL token in this environment), so they remain open despite being addressed. The code_review tool was unavailable this run (model registry error) and codeql_checker timed out on the prior pass with an instruction not to re-run; the changes are a bash setup script, a bash test script, and a CI job definition. One drift item worth flagging from the main merge: it dropped the actions/checkout@v6.0.2 pin from .github/aw/actions-lock.json, while ci.yml still references that SHA in 22 places — pre-existing and repo-wide, not introduced here, but it may need a follow-up.

@gh-aw-bot

Copy link
Copy Markdown
Collaborator

@copilot Please review the current PR state, verify whether the addressed review feedback can now be resolved, refresh the branch if needed, and run the pr-finisher skill before handing back to maintainers.

  • Branch refresh was requested from this run: https://github.com/github/gh-aw/actions/runs/33641605189
  • Addressed review follow-ups remain visible on the PR discussion; please confirm whether any maintainer-facing blockers still remain.
  • Please summarize check status and any remaining blocker for maintainers when done.

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

Copilot AI commented Sep 2, 2026

Copy link
Copy Markdown
Contributor Author

@copilot Please review the current PR state, verify whether the addressed review feedback can now be resolved, refresh the branch if needed, and run the pr-finisher skill before handing back to main...

Ran pr-finisher. No code changes were needed this pass — the branch was already refreshed by run 33641605189 (merge 27702f9, base 13d4bd7, no conflicts), so this was verification only.

  • Reviews — All four threads are addressed on their merits, each has a substantive reply, and all four are now marked outdated by GitHub, confirming the code they pointed at has since changed. Content-wise they are resolvable.
  • Checks (local)make fmt clean (no drift from the new main commits), make lint passes with 0 errors, make test-unit reports no changed Go files. Playwright compiler tests in pkg/workflow and pkg/constants pass.
  • Integration tests — I had previously only verified chromium, so this pass I ran the full CI matrix locally: chromium, firefox and webkit each pass 9/9, including a real headless launch per engine. Webkit matters most here since it pulls the largest set of system libraries. The chromium run also exercised the cold-start path (playwright-cli absent → installed from scratch).
  • Checks (CI) — Still never executed on this branch. All 18 CGO/CJS runs sit at action_required pending maintainer approval, including both on current HEAD 27702f9. There are zero failures across all 41 runs; the single cancelled CGO run on ebbeb64 was superseded by a later commit. Nothing to root-cause.
  • Mergeable — Open, not draft, no conflicts. mergeable_state: blocked is required-review approval only.

Correction to my previous summary: I flagged the main merge dropping actions/checkout@v6.0.2 from .github/aw/actions-lock.json as possible drift. Having checked, that was a false alarm — actions-lock.json feeds the compiler's pin database for generated .lock.yml files, and that SHA appears in 0 generated lock files, only in handwritten workflows (ci.yml, cgo.yml, codeql.yml, etc.). The setup-node pin used throughout ci.yml is likewise absent from the lock. Handwritten workflow pins are not governed by that file, so there is no drift and no follow-up needed. My new job uses the same checkout SHA as the other 21 steps in ci.yml.

Remaining blockers — both human-only:

  1. A maintainer must approve the pending workflow runs. Agent pushes do not trigger CI, so CI on HEAD is unverified until then.
  2. Human review approval for the required check.

One caveat worth stating plainly: I still cannot resolve the review threads — no GraphQL token is available in this environment — so they will stay open on the PR despite being addressed. That is a tooling limit, not an outstanding code concern. code_review reported no changed files (nothing new since the last commit), and codeql_checker timed out on an earlier pass with an instruction not to re-run; the change set is two bash scripts and a CI job definition.

@gh-aw-bot

Copy link
Copy Markdown
Collaborator

@copilot Please verify the current PR state, confirm the addressed Playwright setup review feedback is fully closed on the latest head, and run the pr-finisher skill before handing back to maintainers.

  • Prior passes reported the blocking review comments are addressed and now outdated.
  • Please summarize whether anything actionable remains beyond maintainer CI/review approval.
  • If all remaining blockers are human-only, state that clearly for maintainers.

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 · 57.1 AIC · ⌖ 10 AIC · ⊞ 9.2K ·
Comment /souschef to run again

Copilot AI commented Sep 2, 2026

Copy link
Copy Markdown
Contributor Author

@copilot Please verify the current PR state, confirm the addressed Playwright setup review feedback is fully closed on the latest head, and run the pr-finisher skill before handing back to maintaine...

Ran pr-finisher. Nothing actionable remains on my side — all remaining blockers are human-only.

No code changes this pass. The branch was refreshed again by an earlier run (merge 593a055, base cf526ed); the only new commit from main was a docs blog post, so there was no tooling drift to absorb.

  • Reviews — Confirmed fully closed on the latest head. All four threads are marked outdated by GitHub against 593a055 and each has a substantive reply. No new review threads have appeared. The diff versus base is still scoped to exactly three files (ci.yml + the two shell scripts), so nothing has drifted out of scope.
  • Checks (local)make fmt clean (no diff produced), make lint 0 errors with shellcheck passing, make test-unit reports no changed Go files. Playwright compiler tests in pkg/workflow and pkg/constants pass. Integration test re-run on the current head: 9/9. All three matrix legs (chromium, firefox, webkit) were each verified 9/9 on the previous pass, including a real headless launch per engine.
  • Checks (CI) — Still never executed. I paginated all 116 runs on this branch: zero failures, zero timeouts. The single cancelled CGO run is on the stale sha ebbeb64 and was superseded. Everything else is either success or action_required — including both CGO and CJS on current head 593a055 — meaning they are queued pending maintainer approval and have never actually started. There is nothing to root-cause.
  • Mergeable — Open, not draft, no conflicts. mergeable_state: blocked reflects required review approval only.

Remaining blockers, both human-only:

  1. Approve the pending workflow runs. Agent pushes do not trigger CI, so CI on 593a055 is unverified until a maintainer approves or re-triggers.
  2. Human review approval for the required check.

One caveat, unchanged: no GraphQL token is available in this environment, so I cannot mark the four threads resolved — they will stay visibly open despite being addressed and outdated. That is a tooling limitation on my end, not an outstanding code concern; the underlying feedback is closed. code_review reports no changed files (nothing new since the last commit), and codeql_checker timed out on an earlier pass with an instruction not to re-run. The change set remains two bash scripts and a CI job definition.

@pelikhan
pelikhan merged commit 3c48a22 into main Sep 2, 2026
39 checks passed
@pelikhan
pelikhan deleted the copilot/aw-fix-blog-auditor-tool branch September 2, 2026 17:21
@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

🎉 This pull request is included in a new release.

Release: v0.88.2

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] Blog Auditor is missing required tool

4 participants