Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions .github/prompts/update-dependencies.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,20 +83,20 @@ All tests must pass. If a test fails, run the failing package's tests directly (

### Step 2c: Validate the rsbuild sample app

Use `pnpx agent-browser` for all browser interactions in this step. Read the locally installed agent skill at `.agents/skills/agent-browser/` to learn the available commands. **Important**: the skill examples use bare `agent-browser` commands, but you MUST always prefix with `pnpx` (e.g., `agent-browser open <url>` becomes `pnpx agent-browser open <url>`). Running a build is NOT sufficient — you must start the dev server and validate in a real browser.
Use `agent-browser` for all browser interactions in this step. It is installed as a workspace devDependency. Read the locally installed agent skill at `.agents/skills/agent-browser/` to learn the available commands. **Important**: do NOT use `screenshot` — always use `snapshot` for page verification (it returns an accessibility tree which is faster and more reliable for validation). Running a build is NOT sufficient — you must start the dev server and validate in a real browser.

1. Start the dev server in the background using the shell `&` operator (do NOT use `run_in_background: true`): `pnpm dev-rsbuild > /tmp/rsbuild-dev.log 2>&1 &`
2. The rsbuild app listens on port **8080**. Wait for it to be ready — do NOT use `sleep`, do NOT write polling loops, do NOT parse the log file for a URL. Instead, immediately run: `curl --retry 30 --retry-delay 5 --retry-connrefused --silent --output /dev/null http://localhost:8080`
3. Navigate to the following pages and check that each renders without errors:
- `/` (Home page)
- `/about`
- `/fetch`
4. For each page, use `pnpx agent-browser snapshot` to verify the page rendered content, and use `pnpx agent-browser console` to check for console errors (ignore warnings and known noise like network errors from `/api/pokemons` when MSW is not enabled)
4. For each page, use `agent-browser snapshot` to verify the page rendered content, and use `agent-browser console` to check for console errors (ignore warnings and known noise like network errors from `/api/pokemons` when MSW is not enabled)
5. Stop the dev server process when done: `kill $(lsof -t -i:8080) 2>/dev/null || true; fuser -k 8080/tcp 2>/dev/null || true`

### Step 2d: Validate the webpack sample app

Use `pnpx agent-browser` for all browser interactions in this step. Running a build is NOT sufficient — you must start the dev server and validate in a real browser.
Use `agent-browser` for all browser interactions in this step. It is installed as a workspace devDependency. **Important**: do NOT use `screenshot` — always use `snapshot` for page verification. Running a build is NOT sufficient — you must start the dev server and validate in a real browser.

1. Ensure port 8080 is free (it was used by the rsbuild app in Step 2c).
2. Start the dev server in the background using the shell `&` operator (do NOT use `run_in_background: true`): `pnpm dev-webpack > /tmp/webpack-dev.log 2>&1 &`
Expand All @@ -105,17 +105,17 @@ Use `pnpx agent-browser` for all browser interactions in this step. Running a bu
- `/` (Home page)
- `/about`
- `/fetch`
5. For each page, use `pnpx agent-browser snapshot` to verify the page rendered content, and use `pnpx agent-browser console` to check for console errors (ignore warnings and known noise like network errors from `/api/pokemons` when MSW is not enabled)
5. For each page, use `agent-browser snapshot` to verify the page rendered content, and use `agent-browser console` to check for console errors (ignore warnings and known noise like network errors from `/api/pokemons` when MSW is not enabled)
6. Stop the dev server process when done: `kill $(lsof -t -i:8080) 2>/dev/null || true; fuser -k 8080/tcp 2>/dev/null || true`

### Step 2e: Validate the rsbuild storybook

Use `pnpx agent-browser` for all browser interactions in this step. Running a build is NOT sufficient — you must start the dev server and validate in a real browser.
Use `agent-browser` for all browser interactions in this step. It is installed as a workspace devDependency. **Important**: do NOT use `screenshot` — always use `snapshot` for page verification. Running a build is NOT sufficient — you must start the dev server and validate in a real browser.

1. Start the dev server in the background using the shell `&` operator (do NOT use `run_in_background: true`): `pnpm dev-storybook-rsbuild > /tmp/storybook-rsbuild-dev.log 2>&1 &`
2. The storybook app listens on port **6006**. Wait for it to be ready — do NOT use `sleep`, do NOT write polling loops, do NOT parse the log file for a URL. Instead, immediately run: `curl --retry 30 --retry-delay 5 --retry-connrefused --silent --output /dev/null http://localhost:6006`
3. Navigate to http://localhost:6006 and verify it loads correctly
4. Click on at least one story in the sidebar (e.g., the **Button** story) and verify it renders without errors. Use `pnpx agent-browser snapshot` to verify the rendered content and `pnpx agent-browser console` to check for console errors (ignore warnings and known noise)
4. Click on at least one story in the sidebar (e.g., the **Button** story) and verify it renders without errors. Use `agent-browser snapshot` to verify the rendered content and `agent-browser console` to check for console errors (ignore warnings and known noise)
5. Stop the dev server process when done: `kill $(lsof -t -i:6006) 2>/dev/null || true; fuser -k 6006/tcp 2>/dev/null || true`

## Step 3: Success
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/code-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ permissions:
id-token: write

concurrency:
group: code-review-${{ github.event.pull_request.number }}
group: code-review-${{ github.ref }}
cancel-in-progress: true

jobs:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/sync-agent-skill.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ permissions:
actions: write

concurrency:
group: sync-agent-skill
group: sync-agent-skill-${{ github.ref }}
cancel-in-progress: true

jobs:
Expand Down
17 changes: 13 additions & 4 deletions .github/workflows/update-dependencies.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,22 @@ jobs:
cache: pnpm
cache-dependency-path: pnpm-lock.yaml

- name: Install workspace dependencies
run: pnpm install --frozen-lockfile

# Expose workspace binaries (e.g. agent-browser) as bare commands.
# This aligns with the agent-browser skill which expects `agent-browser <cmd>`
# without a `pnpm exec` prefix.
- name: Add node_modules/.bin to PATH
run: echo "$PWD/node_modules/.bin" >> $GITHUB_PATH

- name: Install browser dependencies
run: pnpx agent-browser install --with-deps
run: agent-browser install --with-deps

- name: Warm up browser
run: |
pnpx agent-browser open about:blank
pnpx agent-browser close
agent-browser open about:blank
agent-browser close

- name: Update dependencies
uses: anthropics/claude-code-action@v1
Expand All @@ -53,7 +62,7 @@ jobs:
show_full_output: true
claude_args: >-
--max-turns 200
--allowedTools Edit,Read,Write,Glob,Grep,Bash(pnpm:*),Bash(git:*),Bash(node:*),Bash(gh:*),Bash(pnpx agent-browser:*),Bash(agent-browser:*),Bash(kill:*),Bash(lsof:*),Bash(curl:*),Bash(fuser:*)
--allowedTools Edit,Read,Write,Glob,Grep,Bash(pnpm:*),Bash(git:*),Bash(node:*),Bash(gh:*),Bash(agent-browser:*),Bash(kill:*),Bash(lsof:*),Bash(curl:*),Bash(fuser:*)
env:
# Required by gh CLI to create PRs and issues.
GH_TOKEN: ${{ github.token }}
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@
"@typescript/native-preview": "7.0.0-dev.20260209.1",
"@workleap/eslint-configs": "workspace:*",
"@workleap/typescript-configs": "workspace:*",
"agent-browser": "0.15.1",
"cross-env": "10.1.0",
"eslint": "9.39.2",
"pkg-pr-new": "0.0.63",
Expand Down
Loading
Loading