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
4 changes: 2 additions & 2 deletions .github/prompts/update-dependencies.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,15 +92,15 @@ The build must complete successfully with zero errors. This step validates that

### Step 2d: Validate the "honeycomb/api-key" 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 `agent-browser screenshot` — screenshots are not used by this workflow. Use `agent-browser snapshot` (DOM snapshot) instead. 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-honeycomb-api-key > /tmp/honeycomb-dev.log 2>&1 &`
2. The app listens on port **8080** and the Express server on port **1234**. Wait for both 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 && curl --retry 30 --retry-delay 5 --retry-connrefused --silent --output /dev/null http://localhost:1234/api/subscription`
3. Navigate to the following pages and check that each renders without errors:
- `/` (Home page)
- `/movies`
- `/subscription`
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 these specific console messages — they are expected in CI: (1) network errors to `api.honeycomb.io` (trace export failures with the CI dummy API key), (2) OpenTelemetry SDK warnings about dropped spans or failed exports, (3) `[honeycomb]` or `[telemetry]` verbose debug messages. Treat any OTHER console errors as real failures. Do NOT inspect the dev server log file (`/tmp/honeycomb-dev.log`) — only check the browser console.
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 these specific console messages — they are expected in CI: (1) network errors to `api.honeycomb.io` (trace export failures with the CI dummy API key), (2) OpenTelemetry SDK warnings about dropped spans or failed exports, (3) `[honeycomb]` or `[telemetry]` verbose debug messages. Treat any OTHER console errors as real failures. Do NOT inspect the dev server log file (`/tmp/honeycomb-dev.log`) — only check the browser console.
5. Stop the dev server processes when done: `kill $(lsof -t -i:8080) 2>/dev/null || true; kill $(lsof -t -i:1234) 2>/dev/null || true; fuser -k 8080/tcp 2>/dev/null || true; fuser -k 1234/tcp 2>/dev/null || true`

## Step 3: Success
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 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 }}
Expand Down
3 changes: 2 additions & 1 deletion eslint.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ export default defineConfig([
globalIgnores([
"packages",
"samples",
"docs"
"docs",
"skills-lock.json"
]),
defineMonorepoWorkspaceConfig(import.meta.dirname)
]);
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
"@typescript/native-preview": "7.0.0-dev.20260209.1",
"@workleap/eslint-configs": "1.1.12",
"@workleap/typescript-configs": "3.0.7",
"agent-browser": "0.15.1",
"eslint": "9.39.2",
"pkg-pr-new": "0.0.63",
"prettier": "3.8.1",
Expand Down
Loading
Loading