Skip to content

Commit 70ff74e

Browse files
Copilotpelikhan
andcommitted
Merge branch 'main' into copilot/recreate-pr-for-current-main
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
1 parent ec10111 commit 70ff74e

File tree

124 files changed

+6860
-2405
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

124 files changed

+6860
-2405
lines changed

.changeset/patch-runtime-safe-outputs-tools-generation.md

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.github/workflows/bot-detection.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333
id: precompute
3434
uses: actions/github-script@v8
3535
with:
36-
github-token: ${{ secrets.GH_AW_BOT_DETECTION_TOKEN || secrets.GITHUB_TOKEN }}
36+
github-token: ${{ secrets.GITHUB_TOKEN }}
3737
script: |
3838
const { owner, repo } = context.repo;
3939
const HOURS_BACK = 6;

.github/workflows/ci-coach.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ safe-outputs:
1919
create-pull-request:
2020
expires: 2d
2121
title-prefix: "[ci-coach] "
22+
protected-files: fallback-to-issue
2223
timeout-minutes: 30
2324
imports:
2425
- shared/ci-data-analysis.md

.github/workflows/cli-version-checker.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
description: Monitors and updates agentic CLI tools (Claude Code, GitHub Copilot CLI, OpenAI Codex, GitHub MCP Server, Playwright MCP, Playwright Browser, MCP Gateway) for new versions
2+
description: Monitors and updates agentic CLI tools (Claude Code, GitHub Copilot CLI, OpenAI Codex, GitHub MCP Server, Playwright MCP, Playwright Browser, MCP Gateway, APM) for new versions
33
on:
44
schedule: daily
55
workflow_dispatch:
@@ -31,7 +31,7 @@ timeout-minutes: 45
3131

3232
# CLI Version Checker
3333

34-
Monitor and update agentic CLI tools: Claude Code, GitHub Copilot CLI, OpenAI Codex, GitHub MCP Server, Playwright MCP, Playwright Browser, and MCP Gateway.
34+
Monitor and update agentic CLI tools: Claude Code, GitHub Copilot CLI, OpenAI Codex, GitHub MCP Server, Playwright MCP, Playwright Browser, MCP Gateway, and APM (Agent Package Manager).
3535

3636
**Repository**: ${{ github.repository }} | **Run**: ${{ github.run_id }}
3737

@@ -74,6 +74,11 @@ For each CLI/MCP server:
7474
- Release Notes: https://github.com/github/gh-aw-mcpg/releases
7575
- Docker Image: `ghcr.io/github/gh-aw-mcpg:v{VERSION}`
7676
- Used as default sandbox.agent container (see `pkg/constants/constants.go`)
77+
- **APM (Agent Package Manager)**: `https://api.github.com/repos/microsoft/APM/releases/latest`
78+
- Repository: https://github.com/microsoft/APM
79+
- Release Notes: https://github.com/microsoft/APM/releases
80+
- Pinned via `DefaultAPMVersion` constant in `pkg/constants/constants.go`
81+
- Used as the `version:` input in generated `microsoft/apm-action` steps
7782

7883
**Optimization**: Fetch all versions in parallel using multiple npm view or WebFetch calls in a single turn.
7984

@@ -119,6 +124,9 @@ For each update, analyze intermediate versions:
119124
- Parse release body for changelog entries
120125
- **CRITICAL**: Convert PR/issue references to full URLs (e.g., `https://github.com/github/gh-aw-mcpg/pull/123`)
121126
- Note: Used as default sandbox.agent container in MCP Gateway configuration
127+
- **APM**: Fetch release notes from https://github.com/microsoft/APM/releases/tag/{VERSION}
128+
- Parse release body for changelog entries
129+
- **CRITICAL**: Convert PR/issue references to full URLs (e.g., `https://github.com/microsoft/APM/pull/123`)
122130

123131
**NPM Metadata Fallback**: When GitHub release notes are unavailable, use:
124132
- `npm view <package> --json` for package metadata
@@ -267,6 +275,7 @@ Legacy template reference (adapt to use Report Structure Pattern above):
267275
- GitHub MCP Server: Always fetch from https://github.com/github/github-mcp-server/releases
268276
- Playwright Browser: Always fetch from https://github.com/microsoft/playwright/releases
269277
- MCP Gateway: Always fetch from https://github.com/github/gh-aw-mcpg/releases
278+
- APM: Always fetch from https://github.com/microsoft/APM/releases
270279
- Copilot CLI: Try to fetch, but may be inaccessible (private repo)
271280
- Playwright MCP: Check NPM metadata, uses Playwright versioning
272281
- **EXPLORE SUBCOMMANDS**: Install and test CLI tools to discover new features via `--help` and explore each subcommand

.github/workflows/contribution-check.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ env:
1515
tools:
1616
github:
1717
toolsets: [default]
18-
lockdown: false
18+
repos: all
19+
min-integrity: none
1920
safe-outputs:
2021
create-issue:
2122
title-prefix: "[Contribution Check Report]"

.github/workflows/daily-multi-device-docs-tester.md

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,17 @@ permissions:
1616
tracker-id: daily-multi-device-docs-tester
1717
engine:
1818
id: claude
19-
max-turns: 50 # Prevent runaway token usage (10 devices × ~3 turns + build/setup/report)
19+
max-turns: 80 # 10 devices × ~5 turns each + setup/report overhead
2020
strict: true
2121
timeout-minutes: 30
2222
tools:
23+
timeout: 120 # Playwright navigation on Astro dev server can take >60s; increase to 120s
2324
playwright:
2425
version: "v1.56.1"
2526
bash:
2627
- "npm install*"
27-
- "npm run build*"
28-
- "npm run preview*"
28+
- "npm run dev*"
29+
- "npx astro*"
2930
- "npx playwright*"
3031
- "curl*"
3132
- "kill*"
@@ -70,20 +71,19 @@ You are a documentation testing specialist. Your task is to comprehensively test
7071

7172
## Your Mission
7273

73-
Build the documentation site locally, serve it, and perform comprehensive multi-device testing. Test layout responsiveness, accessibility, interactive elements, and visual rendering across all device types. Use a single Playwright browser instance for efficiency.
74+
Start the documentation development server and perform comprehensive multi-device testing. Test layout responsiveness, accessibility, interactive elements, and visual rendering across all device types. Use a single Playwright browser instance for efficiency.
7475

75-
## Step 1: Build and Serve
76+
## Step 1: Install Dependencies and Start Server
7677

77-
Navigate to the docs folder and build the site:
78+
Navigate to the docs folder and install dependencies:
7879

7980
```bash
8081
cd ${{ github.workspace }}/docs
8182
npm install
82-
npm run build
8383
```
8484

8585
Follow the shared **Documentation Server Lifecycle Management** instructions:
86-
1. Start the preview server (section "Starting the Documentation Preview Server")
86+
1. Start the dev server (section "Starting the Documentation Preview Server")
8787
2. Wait for server readiness (section "Waiting for Server Readiness")
8888

8989
## Step 2: Device Configuration
@@ -100,10 +100,18 @@ Test these device types based on input `${{ inputs.devices }}`:
100100

101101
Playwright is provided through an MCP server interface, **NOT** as an npm package. You must use the MCP Playwright tools:
102102

103-
-**Correct**: Use MCP tools like `mcp__playwright__browser_navigate`, `mcp__playwright__browser_run_code`, etc.
103+
-**Correct**: Use `mcp__playwright__browser_run_code` with `page.goto(..., { waitUntil: 'domcontentloaded' })`
104104
-**Incorrect**: Do NOT try to `require('playwright')` or create standalone Node.js scripts
105105
-**Incorrect**: Do NOT install playwright via npm - it's already available through MCP
106106

107+
**⚠️ CRITICAL: Navigation Timeout Prevention**
108+
109+
The Astro development server uses Vite, which loads many JavaScript modules per page. Using the default `waitUntil: 'load'` or `waitForLoadState('networkidle')` will cause 60s timeouts because the browser waits for all modules to finish. **Always use `waitUntil: 'domcontentloaded'`** for navigation:
110+
111+
-**Correct**: `page.goto(url, { waitUntil: 'domcontentloaded', timeout: 30000 })`
112+
-**Never use**: `page.waitForLoadState('networkidle')` — causes guaranteed timeouts
113+
-**Never use**: `mcp__playwright__browser_navigate` for first load — it uses default 'load' wait which times out
114+
107115
**Example Usage:**
108116

109117
```bash
@@ -117,10 +125,11 @@ echo "Playwright server URL: http://${SERVER_IP}:4321/gh-aw/"
117125
// Use browser_run_code to execute Playwright commands.
118126
// IMPORTANT: Replace 172.30.0.20 below with the actual SERVER_IP from the bash command above.
119127
// Do NOT use "localhost" — Playwright runs with --network host so its localhost differs.
128+
// ALWAYS use waitUntil: 'domcontentloaded' to prevent timeout on the Vite dev server.
120129
mcp__playwright__browser_run_code({
121130
code: `async (page) => {
122131
await page.setViewportSize({ width: 390, height: 844 });
123-
await page.goto('http://172.30.0.20:4321/gh-aw/'); // substitute actual SERVER_IP
132+
await page.goto('http://172.30.0.20:4321/gh-aw/', { waitUntil: 'domcontentloaded', timeout: 30000 }); // substitute actual SERVER_IP
124133
return { url: page.url(), title: await page.title() };
125134
}`
126135
})

.github/workflows/daily-syntax-error-quality.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ tracker-id: daily-syntax-error-quality
1212
engine: copilot
1313
tools:
1414
github:
15-
lockdown: false
1615
toolsets:
1716
- default
1817
bash:

.github/workflows/docs-noob-tester.md

Lines changed: 37 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ permissions:
1111
engine: copilot
1212
timeout-minutes: 30
1313
tools:
14+
timeout: 120 # Playwright navigation on Astro dev server can take >60s; increase to 120s
1415
playwright:
1516
edit:
1617
bash:
@@ -62,16 +63,48 @@ Follow the shared **Documentation Server Lifecycle Management** instructions:
6263
1. Start the preview server (section "Starting the Documentation Preview Server")
6364
2. Wait for server readiness (section "Waiting for Server Readiness")
6465

66+
**Get the bridge IP for Playwright access** (run this after the server is ready):
67+
68+
```bash
69+
SERVER_IP=$(ip -4 route get 1.1.1.1 2>/dev/null | awk '{print $7; exit}')
70+
if [ -z "$SERVER_IP" ]; then SERVER_IP=$(hostname -I | awk '{print $1}'); fi
71+
echo "Playwright server URL: http://${SERVER_IP}:4321/gh-aw/"
72+
```
73+
74+
Use `http://${SERVER_IP}:4321/gh-aw/` (NOT `localhost:4321`) for all Playwright navigation below.
75+
6576
## Step 2: Navigate Documentation as a Noob
6677

78+
**IMPORTANT: Using Playwright in gh-aw Workflows**
79+
80+
Playwright is provided through an MCP server interface. Use the bridge IP obtained in Step 1 for all navigation:
81+
82+
-**Correct**: `browser_run_code` with `page.goto(url, { waitUntil: 'domcontentloaded', timeout: 30000 })`
83+
-**Correct**: `browser_navigate` to `http://${SERVER_IP}:4321/gh-aw/` (use the bridge IP, NOT localhost)
84+
-**Incorrect**: Using `http://localhost:4321/...` — Playwright runs with `--network host` so its localhost is the Docker host, not the agent container
85+
86+
**⚠️ CRITICAL: Navigation Timeout Prevention**
87+
88+
The Astro development server loads many JavaScript modules per page. Always use `waitUntil: 'domcontentloaded'`:
89+
90+
```javascript
91+
// ALWAYS use domcontentloaded - replace SERVER_IP with the actual IP from Step 1
92+
mcp__playwright__browser_run_code({
93+
code: `async (page) => {
94+
await page.goto('http://SERVER_IP:4321/gh-aw/', { waitUntil: 'domcontentloaded', timeout: 30000 });
95+
return { url: page.url(), title: await page.title() };
96+
}`
97+
})
98+
```
99+
67100
Using Playwright, navigate through the documentation site as if you're a complete beginner:
68101

69-
1. **Visit the home page** at http://localhost:4321/gh-aw/
102+
1. **Visit the home page** at `http://${SERVER_IP}:4321/gh-aw/`
70103
- Take a screenshot
71104
- Note: Is it immediately clear what this tool does?
72105
- Note: Can you quickly find the "Get Started" or "Quick Start" link?
73106

74-
2. **Follow the Quick Start Guide** at http://localhost:4321/gh-aw/setup/quick-start/
107+
2. **Follow the Quick Start Guide** at `http://${SERVER_IP}:4321/gh-aw/setup/quick-start/`
75108
- Take screenshots of each major section
76109
- Try to understand each step from a beginner's perspective
77110
- Questions to consider:
@@ -81,12 +114,12 @@ Using Playwright, navigate through the documentation site as if you're a complet
81114
- Do code examples work as shown?
82115
- Are error messages explained?
83116

84-
3. **Check the CLI Commands page** at http://localhost:4321/gh-aw/setup/cli/
117+
3. **Check the CLI Commands page** at `http://${SERVER_IP}:4321/gh-aw/setup/cli/`
85118
- Take a screenshot
86119
- Note: Are the most important commands highlighted?
87120
- Note: Are examples provided for common use cases?
88121

89-
4. **Explore Creating Workflows guide** at http://localhost:4321/gh-aw/setup/creating-workflows/
122+
4. **Explore Creating Workflows guide** at `http://${SERVER_IP}:4321/gh-aw/setup/creating-workflows/`
90123
- Take screenshots of confusing sections
91124
- Note: Is the workflow format explained clearly?
92125
- Note: Are there enough examples?

.github/workflows/docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ jobs:
6868

6969
- name: Install dependencies
7070
working-directory: ./docs
71-
run: npm ci
71+
run: npm ci --legacy-peer-deps
7272

7373
- name: Build documentation
7474
working-directory: ./docs

.github/workflows/plan.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,9 @@ permissions:
1313
engine: copilot
1414
tools:
1515
github:
16-
lockdown: false
1716
toolsets: [default, discussions]
17+
repos: all
18+
min-integrity: none
1819
safe-outputs:
1920
create-issue:
2021
expires: 2d

0 commit comments

Comments
 (0)