Skip to content

fix(docs-noob-tester): add Node.js 22 runtime to prevent Astro 6 version check failures#23133

Merged
pelikhan merged 3 commits intomainfrom
copilot/debug-documentation-noob-tester-again
Mar 26, 2026
Merged

fix(docs-noob-tester): add Node.js 22 runtime to prevent Astro 6 version check failures#23133
pelikhan merged 3 commits intomainfrom
copilot/debug-documentation-noob-tester-again

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 26, 2026

The Documentation Noob Tester was failing because Astro 6.x requires Node.js ≥ 20.3.0 but the runner's Node.js was incompatible. The agent spent ~27 min debugging this (patching astro.mjs, installing alternate Node versions), accumulating 2.6M input tokens until the Copilot API returned 502 "Proxy error" after 5 retries.

Changes

  • docs-noob-tester.md: Add runtimes: node: version: "22" — generates a actions/setup-node@v6 pre-step in the compiled YAML so Node.js 22 is available before the agent runs. Add explicit Playwright timeout fallback: if browser_navigate returns ERR_CONNECTION_TIMED_OUT, skip immediately and use curl-based analysis instead of debugging the network.

  • shared/docs-server-lifecycle.md:

    • Add Node.js ≥ 22 to prerequisites with the required frontmatter snippet
    • Fix server start command to use nohup ... & PID=$! pattern — the previous echo $! > file form was being blocked by the AWF bash guard as a dangerous shell expansion
    • Add Playwright connectivity fallback guidance (same curl-based fallback, 5000 char limit)
  • docs-noob-tester.lock.yml: Recompiled — now includes actions/setup-node with node-version: '22' before the agent executes.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://api.github.com/graphql
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw cfg 64/pkg/tool/linu--show-toplevel git rev-�� --show-toplevel 64/pkg/tool/linux_amd64/vet /usr/bin/git /tmp/go-build327git on 64/pkg/tool/linu--show-toplevel git (http block)
  • https://api.github.com/orgs/test-owner/actions/secrets
    • Triggering command: /usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name --local pull.rebase odules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin/sh (http block)
  • https://api.github.com/repos/actions/ai-inference/git/ref/tags/v1
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq .object.sha --show-toplevel x_amd64/vet /usr/bin/git '**/*.ts' '**/*.git s/ace-editor.md x_amd64/vet git rev-�� --show-toplevel e9tz4e_/ThKvzodBlPIPkS6j74YO /usr/bin/git rd s/auto-triage-isrev-parse x_amd64/vet /usr/bin/git (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v3
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq .object.sha sistency_GoAndJavaScript1565567657/001/test-empty-frontmatter.md -buildtags ache/node/24.14.0/x64/bin/node -errorsas -ifaceassert -nilfunc /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/link t-19�� bility_SameInputSameOutput882122646/001/stability-test.md -importcfg /usr/bin/infocmp -s -w -buildmode=exe infocmp (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v5
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha ate_issue_backward_compat_test.go cfg 64/pkg/tool/linux_amd64/vet ate_pr_review_co/opt/hostedtoolcache/node/24.14.0/x64/bin/node ate_project.go r 64/pkg/tool/linux_amd64/vet ate_�� te '../../../**/*.json' '!../../../pkg/workflow/-p ate_pull_request.go x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha Secret: ${{ secrets.TOKEN }} x_amd64/vet /usr/bin/git *.json' '!../../git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha --show-toplevel ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet /usr/bin/git 3319-13647/test-git (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha /tmp/TestHashStability_SameInputSameOutput882122646/001/stability-test.md uname /usr/bin/git ../pkg/workflow/git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha --show-toplevel us/3YdcVDbgE0y5Gdx8vjli/alK5YuEvsiWHJxF12LLI /usr/bin/git cycle_test.go error_test.go cfg git rev-�� --show-toplevel ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet /usr/bin/git se 247354/b227/vet.rev-parse ache/go/1.25.0/x--show-toplevel git (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v8
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha --local user.name ndor/bin/bash (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha json' --ignore-p-errorsas core.hooksPath odules/npm/node_-nilfunc explorer.md ability-kit.md d s/shared/docs-se-buildtags ules�� s.md sues.md ndor/bin/bash md (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha set-url origin ash (http block)
  • https://api.github.com/repos/actions/setup-go/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq .object.sha /tmp/TestCompileErrorFormatting104057851/001 config /usr/bin/git remote.origin.urgit (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq .object.sha install --package-lock-only /usr/bin/git 247354/b455/workgit test@example.comrev-parse 247354/b455/impo--show-toplevel git rev-�� --show-toplevel q7DkVJ6tlLRCh/On8h-V1HcaSiY_V-SwNV/XrnZ_bZ_AwFGhm7iLoL0/ZL4yv8xq7DkVJ6tlLRCh /usr/bin/git ry=1 x_amd64/vet 247354/b455/_pkg--show-toplevel git (http block)
  • https://api.github.com/repos/actions/setup-node/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha -c uname /opt/hostedtoolcache/node/24.14.0/x64/bin/node ../pkg/workflow/git /deps.go x_amd64/vet node /tmp�� /home/REDACTED/work/gh-aw/gh-aw/.github/workflows/ai-moderator.md x_amd64/vet /usr/bin/git --noprofile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha install --package-lock-only /usr/bin/git 247354/b457/_pkggit x_amd64/vet 247354/b457=> git rev-�� --show-toplevel git /usr/lib/git-core/git Y3uC/65p595wDCDXgit x_amd64/vet /usr/bin/git /usr/lib/git-core/git (http block)
  • https://api.github.com/repos/actions/upload-artifact/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq .object.sha -unreachable=false /tmp/go-build340247354/b100/vet.cfg (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v0.1.2
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq .object.sha -test.paniconexit0 -test.v=true (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq .object.sha -unreachable=false /tmp/go-build340247354/b102/vet.cfg _.a --get-regexp --global e/git-remote-htt--show-toplevel /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet -uns�� -unreachable=false /tmp/go-build340247354/b263/vet.cfg ache/go/1.25.0/x64/pkg/tool/linux_amd64/link om/github/gh-aw --local ndor/bin/bash ache/go/1.25.0/x64/pkg/tool/linux_amd64/link (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.2.3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq .object.sha 3319-13647/test-2519678007 /tmp/go-build340247354/b122/vet.cfg /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet l --global om /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet -uns�� -unreachable=false /tmp/go-build340247354/b258/vet.cfg ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet get flow-12345 (http block)
  • https://api.github.com/repos/github/gh-aw/actions/artifacts/6124079383/zip
    • Triggering command: /usr/bin/gh gh api -H Accept: application/vnd.github+json /repos/github/gh-aw/actions/artifacts/6124079383/zip (http block)
    • Triggering command: /usr/bin/curl curl -sL -H Accept: application/vnd.github+json -H Authorization: ****** -H X-GitHub-Api-Version: 2022-11-28 REDACTED -o agent-artifact.zip (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/1/artifacts
    • Triggering command: /usr/bin/gh gh run download 1 --dir test-logs/run-1 s/claude-code-user-docs-review.md x_amd64/vet ignore (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12345/artifacts
    • Triggering command: /usr/bin/gh gh run download 12345 --dir test-logs/run-12345 s/claude-code-user-docs-review.md x_amd64/vet ignore (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12346/artifacts
    • Triggering command: /usr/bin/gh gh run download 12346 --dir test-logs/run-12346 s/claude-code-user-docs-review.mmain x_amd64/compile ignore (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/2/artifacts
    • Triggering command: /usr/bin/gh gh run download 2 --dir test-logs/run-2 s/claude-code-user-docs-review.m-w 64/pkg/tool/linux_amd64/vet ignore (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/3/artifacts
    • Triggering command: /usr/bin/gh gh run download 3 --dir test-logs/run-3 (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/4/artifacts
    • Triggering command: /usr/bin/gh gh run download 4 --dir test-logs/run-4 (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/5/artifacts
    • Triggering command: /usr/bin/gh gh run download 5 --dir test-logs/run-5 (http block)
  • https://api.github.com/repos/github/gh-aw/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --local pull.rebase (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-workflow-12345 --limit 100 (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-workflow-12345 --limit 6 (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq .object.sha y-test.md (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.2.3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.2.3 --jq .object.sha th .prettierigno-errorsas (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v2.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq .object.sha th .prettierigno-errorsas (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq .object.sha th .prettierignore --log-level=e!../../../pkg/workflow/js/**/*.json (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq .object.sha th .prettierignore --log-level=error (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v3.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v3.0.0 --jq .object.sha th .prettierigno-errorsas (http block)
  • https://api.github.com/repos/nonexistent/action/git/ref/tags/v999.999.999
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq .object.sha (http block)
  • https://api.github.com/repos/nonexistent/repo/actions/runs/12345
    • Triggering command: /usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion nore setup/js/node_morev-parse (http block)
  • https://api.github.com/repos/owner/repo/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo de/node/bin/bash (http block)
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo cal/bin/bash (http block)
  • https://api.github.com/repos/owner/repo/contents/file.md
    • Triggering command: /tmp/go-build340247354/b403/cli.test /tmp/go-build340247354/b403/cli.test -test.testlogfile=/tmp/go-build340247354/b403/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true (http block)
  • https://api.github.com/repos/test-owner/test-repo/actions/secrets
    • Triggering command: /usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name --local pull.rebase sh (http block)

If you need me to access, download, or install something from one of these locations, you can either:


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Copilot AI linked an issue Mar 26, 2026 that may be closed by this pull request
Copilot AI and others added 2 commits March 26, 2026 15:35
…lback guidance

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/2b1c8830-ba7c-41a3-a3b4-4041a871ac6f

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
…llback limit to 5000 chars

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/2b1c8830-ba7c-41a3-a3b4-4041a871ac6f

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix Documentation Noob Tester workflow failure fix(docs-noob-tester): add Node.js 22 runtime to prevent Astro 6 version check failures Mar 26, 2026
Copilot AI requested a review from pelikhan March 26, 2026 15:41
@pelikhan pelikhan marked this pull request as ready for review March 26, 2026 16:05
Copilot AI review requested due to automatic review settings March 26, 2026 16:05
@pelikhan pelikhan merged commit 5131c8f into main Mar 26, 2026
48 of 49 checks passed
@pelikhan pelikhan deleted the copilot/debug-documentation-noob-tester-again branch March 26, 2026 16:05
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

Updates the Documentation Noob Tester workflow to run with a compatible Node.js version for Astro 6 and adds guidance to avoid wasting time when Playwright can’t reach the docs server.

Changes:

  • Configure the docs-noob-tester workflow to use Node.js 22 via runtimes, and regenerate the compiled lock workflow to include an actions/setup-node step.
  • Update shared docs server lifecycle guidance to use a safer background/PID capture pattern and document the Node runtime requirement snippet.
  • Add Playwright connectivity timeout fallback guidance (curl-based content analysis) to both the workflow and shared lifecycle doc.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
.github/workflows/shared/docs-server-lifecycle.md Documents Node/Astro prerequisites, updates server start/PID capture guidance, and adds Playwright connectivity fallback instructions.
.github/workflows/docs-noob-tester.md Pins Node runtime to 22 and adds Playwright timeout/connectivity fallback guidance for the agent.
.github/workflows/docs-noob-tester.lock.yml Recompiled workflow including actions/setup-node (Node 22) before the agent runs.
Comments suppressed due to low confidence (1)

.github/workflows/shared/docs-server-lifecycle.md:12

  • The Node.js requirement is inconsistent within this doc: the prerequisites say "Node.js >= 20.3.0 or >= 22", the later section repeats a slightly different condition, and the usage notes state "Node.js >= 22 is required". Please pick one requirement statement (and, if 22 is the recommended pin, call it out as a recommendation rather than a different requirement) and make all three places consistent to avoid confusing workflow authors.
# - Node.js >= 20.3.0 or >= 22 required (Astro 6.x requirement)
#   Workflows using this import should set: runtimes: node: version: "22"

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

@@ -8,6 +8,8 @@
# - npm install must have been run in docs/ directory
# - Bash permissions: npm *, npx *, curl *, kill *, echo *, sleep *
Copy link

Copilot AI Mar 26, 2026

Choose a reason for hiding this comment

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

This shared lifecycle now recommends commands that aren't covered by the stated bash allowlist in the prerequisites. For example it uses nohup (start command) and python3 (fallback snippet), but the prerequisites only list npm, npx, curl, kill, echo, sleep. Either expand the prerequisites/permissions guidance to include the actual commands used (at least nohup and python3), or adjust the examples to use only the listed commands so consumers don't hit bash-guard blocks.

This issue also appears on line 11 of the same file.

Suggested change
# - Bash permissions: npm *, npx *, curl *, kill *, echo *, sleep *
# - Bash permissions: npm *, npx *, curl *, kill *, echo *, sleep *, nohup *, python3 *

Copilot uses AI. Check for mistakes.
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.

[aw] Documentation Noob Tester failed

3 participants