Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
120 commits
Select commit Hold shift + click to select a range
177dd5f
Merge pull request #25390 from getsentry/master
github-actions[bot] Oct 15, 2026
e3bb396
test(browser): Use blocking scripts in loader integration tests (#25395)
mydea Oct 15, 2026
26c5cf2
test(replay): Fix flaky bufferStalledRequests segmentId assertion (#2…
mydea Oct 15, 2026
d3b2231
test(e2e): Fix peer dependency issues in hydrogen-react-router-7 (#25…
mydea Oct 15, 2026
a8b06c1
test(e2e): Drop unused @sentry/bundler-plugins dependency from bundle…
mydea Oct 15, 2026
1b494da
ci(e2e): Run all E2E tests when CI config changes (#25391)
mydea Oct 15, 2026
5ba9123
ci: Read the Playwright version from package.json in install-playwrig…
mydea Oct 15, 2026
306cebb
test(e2e): Align Playwright versions with the root version (#25381)
mydea Oct 15, 2026
1c5303c
ci(e2e): Run E2E tests with pnpm 12 (#25334)
s1gr1d Oct 15, 2026
cc6ef9a
fix(cloudflare): auto-instrument a re-exported default export (#25345)
isaacs Oct 15, 2026
3044997
ref(bundler-plugins): Drop @babel/core peer dependency (#25406)
timfish Oct 15, 2026
a33b09f
test(node): skip the Prisma 8 suite on Node 20 (#25421)
isaacs Oct 15, 2026
0778826
fix(astro): defer to `@sentry/cloudflare/vite` on Cloudflare Workers …
isaacs Oct 15, 2026
6b728c6
fix(cloudflare): keep default exports intact when auto-instrumenting …
isaacs Oct 15, 2026
5a11c08
test(react): Fix flaky react-router-6 aborted SSE console assertion (…
mydea Oct 16, 2026
c4df401
chore(size-limit): weekly auto-bump (#25442)
javascript-sdk-gitflow[bot] Oct 16, 2026
800514f
feat(deps): Bump recast from 0.20.5 to 0.24.0 (#25416)
dependabot[bot] Oct 16, 2026
11ed5c2
feat(deps): Bump @actions/glob from 0.6.1 to 0.7.0 (#25411)
dependabot[bot] Oct 16, 2026
28a69bc
feat(server-utils): Emit `execute_tool` spans for Anthropic's `beta.m…
RulaKhaled Oct 16, 2026
9a31690
feat(deps): Bump @anthropic-ai/sdk from 0.63.0 to 0.133.0 (#25417)
dependabot[bot] Oct 16, 2026
3d0c769
test(deps): Upgrade TanStack Start, Router, and Nitro (#25445)
nicohrubec Oct 16, 2026
20ba3ef
fix(tanstackstart-react): Delete only the source maps that Sentry ena…
s1gr1d Oct 16, 2026
848fec2
test(e2e): Use nitro beta and Vite 8 in tanstackstart apps (#25451)
s1gr1d Oct 16, 2026
f4a3cba
feat(browser): Add `LoaderSentry` type export (#25357)
faizansaiyed123 Oct 16, 2026
636127c
test(nextjs): Use React 19.3.1 in the vinext e2e variants (#25449)
JPeer264 Oct 16, 2026
50ed82b
fix(node): restore tsx runtime instrumentation (#25351)
jpdefo Oct 16, 2026
298a673
fix(node,vercel-edge,bundler-plugins): INC-2566 - Ignore commit env v…
mwarkentin Oct 16, 2026
df934cd
ref(core): Share the commit env var list used for release detection
claude Oct 16, 2026
045bcb0
fix(elysia): use Node transport on Node runtimes (#25015)
mikamikasuki Oct 18, 2026
6244a8b
fix(elysia): Set SDK metadata on the options passed to init (#24521)
Shubham-Padkonde Oct 18, 2026
e1c21bc
fix(vercel-edge): expose portable tracing and feature flag helpers (#…
adityareddy-dev Oct 18, 2026
a5ed55a
chore: Move the monorepo from Yarn 1 to pnpm 12 (#25354)
JPeer264 Oct 19, 2026
74b17aa
chore: Add external contributor to CHANGELOG.md (#25468)
javascript-sdk-gitflow[bot] Oct 19, 2026
402b06a
fix(nuxt): Keep sourcesContent in Nuxt 5 server source maps (#25325)
s1gr1d Oct 19, 2026
777b3b2
chore: Add external contributor to CHANGELOG.md (#25487)
javascript-sdk-gitflow[bot] Oct 19, 2026
686e75b
fix(browser): Skip profiling for unsampled active root spans (#25498)
Jxxunnn Oct 19, 2026
6bce0ee
chore: Add external contributor to CHANGELOG.md (#25500)
javascript-sdk-gitflow[bot] Oct 19, 2026
17e81ca
ref(nitro): Move channel-based instrumentation into @sentry/server-ut…
mydea Oct 19, 2026
3430af5
feat(nitro): Merge the nitro integrations into a single `nitroIntegra…
mydea Oct 19, 2026
58cd4f4
feat(nitro): Report a single http.server span per request (#25295)
mydea Oct 19, 2026
b8cfdda
fix(cloudflare): Don't hold Durable Object invocations open with the …
philipatkinson Oct 19, 2026
5391100
fix(bundler-plugins): Check `globalThis` before `global` in the injec…
JPeer264 Oct 19, 2026
0edd605
test(e2e): Move app port 38787 out of the ephemeral port range (#25504)
mydea Oct 19, 2026
c9fecb3
fix(server-utils): Nest LangChain run spans under their parent run (#…
RulaKhaled Oct 19, 2026
0904bc4
chore(deps): Bump Playwright to 1.64.1 and pin it exactly (#25382)
mydea Oct 19, 2026
6789382
test(e2e): Install test-utils from a tarball (#25402)
mydea Oct 19, 2026
8a4a95d
ci(e2e): Run E2E tests without restoring the monorepo's node_modules …
mydea Oct 19, 2026
111be85
test(e2e): Remove event dumps and their normalization script (#25404)
mydea Oct 19, 2026
73fbdbc
chore: Add external contributor to CHANGELOG.md (#25505)
javascript-sdk-gitflow[bot] Oct 19, 2026
6ea217f
chore: Add external contributor to CHANGELOG.md (#25485)
javascript-sdk-gitflow[bot] Oct 19, 2026
3cb50dc
chore: Add external contributor to CHANGELOG.md (#25483)
javascript-sdk-gitflow[bot] Oct 19, 2026
2652f0c
chore: Add external contributor to CHANGELOG.md (#25367)
javascript-sdk-gitflow[bot] Oct 19, 2026
36bd110
docs: Add guide for testing SDK packages with pnpm link (#25512)
andreiborza Oct 19, 2026
312818c
chore(deps): Bump `@types/node` to 20 (#25501)
JPeer264 Oct 19, 2026
da7534c
chore: Update comments related to span links with latest info (#25135)
s1gr1d Oct 19, 2026
d885ece
feat(nextjs): Add a tunnel route handler that sends only the event pa…
s1gr1d Oct 19, 2026
13f4909
chore(hono): Remove "ALPHA" from package.json description (#25521)
s1gr1d Oct 19, 2026
40456d5
ci(e2e): Stop pnpm run from installing the workspace in E2E jobs (#25…
mydea Oct 19, 2026
e1d4c42
fix(server-utils): Stop the orchestrion Vite plugin from bundling the…
JPeer264 Oct 19, 2026
d6c8d82
feat(cloudflare): Add `isStreamingResponse` option and detect streame…
JPeer264 Oct 19, 2026
554668c
fix(node): Only read JavaScript and TypeScript source files in Contex…
timfish Oct 19, 2026
3c5b60d
ref(core): Export commit env helpers as internal
claude Oct 19, 2026
f71a0ca
feat(core): Limit the body size of tunnel requests (#25515)
s1gr1d Oct 19, 2026
1a2e818
fix(deno): Re-export portable helpers that Cloudflare exposes (#25491)
isaacs Oct 19, 2026
4d19e60
feat(deno): Add incoming request options to `denoServeIntegration` (#…
isaacs Oct 19, 2026
d166870
feat(deno): Record request sessions for `Deno.serve` (#25496)
isaacs Oct 19, 2026
58adba5
test(nestjs): Fix flaky schedule instrumentation error tests (#25447)
mydea Oct 20, 2026
712e9b8
ci: Fail when a Playwright version drifts from the pinned one (#25383)
mydea Oct 20, 2026
46f136a
test(nuxt): Wait for hydration before clicking in error tests (#25520)
sentry-junior[bot] Oct 20, 2026
1130080
ci: Run the Playwright install's npx outside the repo (#25384)
mydea Oct 20, 2026
3d47e12
fix(bundler-plugins): Inject the release only into chunks that load a…
timfish Oct 20, 2026
782b0e5
ci: Run GitHub Actions jobs on Namespace runners (#25547)
JPeer264 Oct 20, 2026
b151d07
feat(nextjs): Send tunnel route requests with `credentials: 'omit'` (…
s1gr1d Oct 20, 2026
eb60783
fix(solidstart): Read server action route from the request's root spa…
sentry-junior[bot] Oct 20, 2026
60c12e8
feat(nextjs): Link `use cache` hits to their fill across instances (#…
s1gr1d Oct 20, 2026
62a794d
test(nuxt): Pin the nuxt-4 e2e MongoDB image to 8.0 (#25557)
logaretm Oct 20, 2026
2ad0528
feat(nextjs): Never emit trace meta tags from a prerender (#25141)
chargome Oct 20, 2026
6380873
test(nuxt): Pin the nuxt-5 e2e MongoDB image to 8.0 (#25564)
s1gr1d Oct 20, 2026
ebe8fdc
fix(server-utils): Bundle the CommonJS dependencies of instrumented p…
s1gr1d Oct 20, 2026
d28566e
feat(nextjs): Wait for the resumed part of a document before starting…
chargome Oct 20, 2026
42f1ac1
fix(nuxt): Delete Sentry-enabled source maps from Nitro output direct…
s1gr1d Oct 20, 2026
afb4282
fix(nextjs): Only inject applicationKey metadata into browser bundles…
logaretm Oct 20, 2026
2da3b65
Merge pull request #25478 from getsentry/claude/share-commit-env-vars
mwarkentin Oct 20, 2026
bc0a529
chore(deps-dev): Bump oxlint and oxfmt (#25578)
logaretm Oct 20, 2026
3f00b10
ci: Check bundle size increases per PR (#24737)
nicohrubec Oct 21, 2026
857f1ec
ci: Keep Namespace cache volumes complete and cache the pnpm binary (…
JPeer264 Oct 21, 2026
933ec57
fix(react): Match React Router navigations against root routes only (…
JoshuaKGoldberg Oct 21, 2026
7b89f63
test(nextjs): Warm the module graph before the tunnel route tests (#2…
isaacs Oct 21, 2026
04b073e
test(e2e): Drop OpenRouter's [DONE] frame in the Anthropic test app (…
isaacs Oct 21, 2026
3dac8ea
fix(aws-serverless): End the `function.aws` span when a callback-styl…
4ktLuffy Oct 21, 2026
d250a38
feat(core): Add `dataCollection.mcp` option (#25553)
sentry-junior[bot] Oct 21, 2026
2028b68
chore: Add external contributor to CHANGELOG.md (#25596)
javascript-sdk-gitflow[bot] Oct 21, 2026
bdcc625
fix(cloudflare): Deliver check-ins and events from forked isolation s…
rubas Oct 21, 2026
a01cfca
chore: Add external contributor to CHANGELOG.md (#25597)
javascript-sdk-gitflow[bot] Oct 21, 2026
7989c8b
fix(server-utils): Keep OpenAI decision confidence on Vercel AI decid…
andreiborza Oct 21, 2026
32e7a35
test(e2e): Cover Vercel AI decisions in node-openai-decisions-send-to…
andreiborza Oct 21, 2026
24f2193
fix(core): Use `trace_metric` data category for metrics rate limits a…
Lms24 Oct 21, 2026
7a19df2
fix(nitro): Use forward slashes for resolved plugin paths on Windows …
dasilvaluis Oct 21, 2026
a7837eb
test(nextjs): Fix flaky nextjs-16 metrics tests (#25517)
sentry-junior[bot] Oct 21, 2026
5e2b904
ci(cloudflare): Run the integration tests on the latest wrangler too …
JPeer264 Oct 21, 2026
3fdf3c4
ci: Move size check reruns into a local action (#25600)
nicohrubec Oct 21, 2026
00ee6b7
fix(server-runtime-injection): Load ESM hook without the build/esm pa…
andreiborza Oct 21, 2026
f518d3a
chore: Add external contributor to CHANGELOG.md (#25611)
javascript-sdk-gitflow[bot] Oct 21, 2026
219312d
ci: Run optional E2E tests in a separate workflow (#25548)
andreiborza Oct 21, 2026
5e5b998
ci: Share the E2E test setup between build.yml and optional-e2e.yml (…
mydea Oct 21, 2026
51452e3
chore(deps-dev): Bump vue from 3.2.45 to 3.5.43 (#25413)
dependabot[bot] Oct 21, 2026
6fb6b07
fix(react): Don't crash ErrorBoundary when `error.cause` is not an Er…
4ktLuffy Oct 21, 2026
ca4fc32
feat(deno): Register channel injection hooks from `init()` (#25546)
isaacs Oct 21, 2026
d4a4e81
fix: Use `auto.http.http_server` origin for all `node:http` server sp…
mydea Oct 21, 2026
81b5056
test(e2e): Add node-otel-sdk-node-v3 e2e app for OpenTelemetry JS v3 …
andreiborza Oct 21, 2026
b7f10d4
chore(bugbot): Flag new Cloudflare tests that wrap the worker by hand…
JPeer264 Oct 21, 2026
cb84c8d
ci(size-limit): Don't enforce size limits on release PRs (#25631)
sentry-junior[bot] Oct 21, 2026
b3e0c9e
fix(node): Guard user callbacks in the `node:http` server instrumenta…
isaacs Oct 21, 2026
b7be383
feat(deps): Bump `@opentelemetry/api` to 1.10.0 (#25629)
andreiborza Oct 21, 2026
67fed31
build(node): Bump Node to 24.22.1 (#25634)
sentry-junior[bot] Oct 21, 2026
fa325e1
ci: Empty cached node_modules that have broken `.bin` scripts (#25635)
isaacs Oct 22, 2026
24186f0
feat: Rename `diagnostic_channel`, fetch and gRPC span origins (#25601)
mydea Oct 22, 2026
ded8524
test(e2e): Retry tests in all dev-mode variants (#25640)
mydea Oct 22, 2026
b94aeb0
fix(hono): Read connection info from the runtime instead of Hono help…
s1gr1d Oct 22, 2026
4689484
meta(changelog): Update changelog for 11.9.0
s1gr1d Oct 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 3 additions & 3 deletions .agents/skills/add-cdn-bundle/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ Given a feature combination, derive these variants:
After making changes:

```bash
yarn lint
cd packages/browser && yarn build:dev
cd packages/browser && yarn test
pnpm run lint
cd packages/browser && pnpm run build:dev
cd packages/browser && pnpm run test
```
16 changes: 8 additions & 8 deletions .agents/skills/backport-pr/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,28 +113,28 @@ git cherry-pick <mergeCommit-oid>
### 4. Build and verify

Run the repo's pre-commit checks. Do this **before** finalizing the commit in step 5, because
`yarn format` writes changes to the working tree — those fixes must end up inside the backport
`pnpm run format` writes changes to the working tree — those fixes must end up inside the backport
commit, not left dangling after it (otherwise you'd push an unformatted tree and CI would fail
on a commit that doesn't match your local state).

```bash
yarn format
yarn lint:fix
yarn build:dev
pnpm run format
pnpm run lint:fix
pnpm run build:dev
```

Use `lint:fix`, not `lint` — plain `yarn lint` only reports, so auto-fixable issues would
Use `lint:fix`, not `lint` — plain `pnpm run lint` only reports, so auto-fixable issues would
otherwise survive to fail CI.

Run tests scoped to the touched packages when possible (full `yarn test` if unsure). If the
Run tests scoped to the touched packages when possible (full `pnpm run test` if unsure). If the
target major's toolchain differs and a check fails for reasons unrelated to the change, note
it for the user rather than silently skipping.

### 5. Finalize the commit (fold in verification changes)

First stage the format/lint fixes. Use `git add -u` so only tracked files the cherry-pick and
verification touched are staged, not unrelated local edits — sanity-check with `git status`
first if `yarn format` may have reformatted files outside the backport.
first if `pnpm run format` may have reformatted files outside the backport.

```bash
git add -u
Expand Down Expand Up @@ -172,7 +172,7 @@ git status --porcelain # expect no output

### 6. Diff the backport against the original PR

Even a cherry-pick that reported no conflicts can end up different — `yarn format`/`lint:fix`
Even a cherry-pick that reported no conflicts can end up different — `pnpm run format`/`lint:fix`
on the older toolchain, dropped hunks, adaptations you made in step 3. Compare the final commit
against the original before writing the PR body, rather than trusting your memory of step 3:

Expand Down
22 changes: 11 additions & 11 deletions .agents/skills/bump-conventions/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ argument-hint: '[version] # e.g. 0.16.0; defaults to latest on npm'

# Bump `@sentry/conventions`

Bump `@sentry/conventions` across every `package.json` at once, keeping the two pin styles consistent, then refresh `yarn.lock`.
Bump `@sentry/conventions` across every `package.json` at once, keeping the two pin styles consistent, then refresh `pnpm-lock.yaml`.

## 1. Determine the target version

Expand All @@ -28,31 +28,31 @@ Edit only the version string; leave the caret alone. If a file declares a versio
## 3. Refresh the lockfile and build

```bash
yarn install
yarn dedupe-deps:fix
yarn build:dev
pnpm install
pnpm run dedupe-deps:fix
pnpm run build:dev
```

`yarn install` collapses the combined `yarn.lock` entry (`"@sentry/conventions@<OLD>", "@sentry/conventions@^<OLD>":`) onto the new version. Confirm no stale `<OLD>` resolution remains:
`pnpm install` resolves both pin styles to the new version in `pnpm-lock.yaml`. Confirm no stale `<OLD>` resolution remains:

```bash
grep -n '@sentry/conventions@' yarn.lock
grep -n '@sentry/conventions@' pnpm-lock.yaml
```

## 4. Check for breaking API changes

A `conventions` bump can rename or remove exported attribute constants. If `yarn build:dev` fails, inspect the type errors and update usages in `src/` **and** `test/`. Heaviest consumers: `packages/core`, `packages/opentelemetry`, `packages/aws-serverless`.
A `conventions` bump can rename or remove exported attribute constants. If `pnpm run build:dev` fails, inspect the type errors and update usages in `src/` **and** `test/`. Heaviest consumers: `packages/core`, `packages/opentelemetry`, `packages/aws-serverless`.

Use LSP `findReferences` on the changed export to catch every call site. Do not paper over a rename with a cast.

After fixing, re-run `yarn build:dev` and confirm it passes before verifying, so the next step runs against fresh build output.
After fixing, re-run `pnpm run build:dev` and confirm it passes before verifying, so the next step runs against fresh build output.

## 5. Final verification

```bash
yarn circularDepCheck
yarn fix
yarn test
pnpm run circularDepCheck
pnpm run fix
pnpm run test
```

## Commit
Expand Down
6 changes: 3 additions & 3 deletions .agents/skills/bump-size-limit/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,15 @@ When the size-limit GitHub Action fails, it means one or more bundle scenarios e
A full build is required because size-limit measures the actual compiled artifacts.

```bash
yarn build
pnpm run build
```

This takes a few minutes. CDN bundles in `packages/browser/build/bundles/` must be up to date — a dev build is not sufficient.

### Step 2: Run the size check in JSON mode

```bash
yarn test:size-limit
pnpm run test:size-limit
```

The JSON output is an array of objects. Each object has:
Expand Down Expand Up @@ -55,7 +55,7 @@ Only change limits for scenarios that actually failed. Do not touch passing scen
Re-run size-limit to confirm everything passes:

```bash
yarn test:size-limit
pnpm run test:size-limit
```

If any scenario still fails (e.g., due to rounding edge cases), bump that specific limit by another 1 KB and re-run.
62 changes: 31 additions & 31 deletions .agents/skills/dotagents/references/config-schema.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@
## Top-Level Structure

```toml
version = 1 # Required, must be 1
gitignore = true # Optional, default true
agents = ["claude", "cursor"] # Optional, agent targets

[project] # Optional
[trust] # Optional
[[skills]] # Optional, array of skill entries
[[mcp]] # Optional, array of MCP servers
[[hooks]] # Optional, array of hook declarations
version = 1 # Required, must be 1
gitignore = true # Optional, default true
agents = ["claude", "cursor"] # Optional, agent targets

[project] # Optional
[trust] # Optional
[[skills]] # Optional, array of skill entries
[[mcp]] # Optional, array of MCP servers
[[hooks]] # Optional, array of hook declarations
```

## Top-Level Fields
Expand All @@ -26,14 +26,14 @@ agents = ["claude", "cursor"] # Optional, agent targets

```toml
[project]
name = "my-project" # Optional, display name
name = "my-project" # Optional, display name
```

## Symlinks Section

```toml
[symlinks]
targets = [".claude", ".cursor"] # Legacy: explicit symlink targets
targets = [".claude", ".cursor"] # Legacy: explicit symlink targets
```

When `agents` is set, symlink targets are derived automatically. The `[symlinks]` section is for backward compatibility.
Expand All @@ -44,10 +44,10 @@ When `agents` is set, symlink targets are derived automatically. The `[symlinks]

```toml
[[skills]]
name = "find-bugs" # Required, unique skill identifier
source = "getsentry/skills" # Required, skill source
ref = "v1.0.0" # Optional, pin to tag/branch/commit
path = "tools/my-skill" # Optional, subdirectory within repo
name = "find-bugs" # Required, unique skill identifier
source = "getsentry/skills" # Required, skill source
ref = "v1.0.0" # Optional, pin to tag/branch/commit
path = "tools/my-skill" # Optional, subdirectory within repo
```

| Field | Type | Required | Description |
Expand All @@ -61,10 +61,10 @@ path = "tools/my-skill" # Optional, subdirectory within repo

```toml
[[skills]]
name = "*" # Wildcard: install all skills from source
source = "getsentry/skills" # Required
ref = "v1.0.0" # Optional
exclude = ["deprecated-skill"] # Optional, skills to skip
name = "*" # Wildcard: install all skills from source
source = "getsentry/skills" # Required
ref = "v1.0.0" # Optional
exclude = ["deprecated-skill"] # Optional, skills to skip
```

| Field | Type | Required | Description |
Expand All @@ -78,13 +78,13 @@ exclude = ["deprecated-skill"] # Optional, skills to skip

```toml
[trust]
allow_all = true # Allow any source
allow_all = true # Allow any source

# OR restrict to specific sources:
[trust]
github_orgs = ["getsentry"] # GitHub org names
github_repos = ["ext-org/repo"] # Exact owner/repo pairs
git_domains = ["git.corp.example.com"] # Git URL domains
github_orgs = ["getsentry"] # GitHub org names
github_repos = ["ext-org/repo"] # Exact owner/repo pairs
git_domains = ["git.corp.example.com"] # Git URL domains
```

| Field | Type | Description |
Expand All @@ -102,17 +102,17 @@ No `[trust]` section = allow all sources (backward compatible).

```toml
[[mcp]]
name = "github" # Required, unique server name
command = "npx" # Required for stdio
args = ["-y", "@modelcontextprotocol/server-github"] # Optional
env = ["GITHUB_TOKEN"] # Optional, env vars to pass through
name = "github" # Required, unique server name
command = "npx" # Required for stdio
args = ["-y", "@modelcontextprotocol/server-github"] # Optional
env = ["GITHUB_TOKEN"] # Optional, env vars to pass through
```

### HTTP Transport

```toml
[[mcp]]
name = "remote-api" # Required, unique server name
name = "remote-api" # Required, unique server name
url = "https://mcp.example.com/sse" # Required for HTTP
```

Expand All @@ -129,9 +129,9 @@ url = "https://mcp.example.com/sse" # Required for HTTP

```toml
[[hooks]]
event = "PreToolUse" # Required
matcher = "Bash" # Optional, tool name filter
command = "my-lint-check" # Required
event = "PreToolUse" # Required
matcher = "Bash" # Optional, tool name filter
command = "my-lint-check" # Required
```

| Field | Type | Required | Description |
Expand Down
24 changes: 12 additions & 12 deletions .agents/skills/e2e/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ For each modified package, rebuild its tarball:

```bash
cd packages/<package-name>
yarn build && yarn build:tarball
pnpm run build && pnpm run build:tarball
cd ../..
```

Expand All @@ -49,7 +49,7 @@ If the user says "I changed @sentry/node" or similar, rebuild just that package:

```bash
cd packages/node
yarn build && yarn build:tarball
pnpm run build && pnpm run build:tarball
cd ../..
```

Expand All @@ -75,14 +75,14 @@ Navigate to the e2e-tests directory and run the test:

```bash
cd dev-packages/e2e-tests
yarn test:run <app-name>
pnpm run test:run <app-name>
```

If a variant was specified:

```bash
cd dev-packages/e2e-tests
yarn test:run <app-name> --variant <variant-name>
pnpm run test:run <app-name> --variant <variant-name>
```

### Step 5: Report Results
Expand Down Expand Up @@ -114,11 +114,11 @@ All tests completed successfully. Your SDK changes work correctly with this test

## Error Handling

- **No tarballs found**: Run `yarn build && yarn build:tarball` at repository root
- **No tarballs found**: Run `pnpm run build && pnpm run build:tarball` at repository root
- **Test app not found**: List available apps and ask user to clarify
- **Packed tarballs missing**: Run `yarn build:tarball` at the repo root, then `yarn test:prepare` in `dev-packages/e2e-tests`
- **Packed tarballs missing**: Run `pnpm run build:tarball` at the repo root, then `pnpm run test:prepare` in `dev-packages/e2e-tests`
- **Build failures**: Fix build errors before running tests
- **pnpm errors such as `packages field missing or empty`**: The app needs the pnpm version in its `volta.pnpm`. Run with Volta, which installs that version
- **`ERR_PNPM_IGNORED_BUILDS`**: A dependency has a build script that the app's `allowBuilds` does not list. Add it to the app's `pnpm-workspace.yaml`: `true` if the app needs the script, `false` if the script only prints a message. `pnpm approve-builds <pkg>` (or `!<pkg>` for `false`) in the app's temp copy writes the entry there, so copy it back to the app

## Common Test Applications

Expand Down Expand Up @@ -148,12 +148,12 @@ ls dev-packages/e2e-tests/test-applications/
# Step 1: Detect recent changes to packages/node
# Step 2: Rebuild the modified package
cd packages/node
yarn build && yarn build:tarball
pnpm run build && pnpm run build:tarball
cd ../..

# Step 3: Run the test
cd dev-packages/e2e-tests
yarn test:run node-express-esm-loader
pnpm run test:run node-express-esm-loader
```

### Example 2: First-time test run
Expand All @@ -163,11 +163,11 @@ yarn test:run node-express-esm-loader

# Step 1: Check for existing tarballs
# Step 2: None found, build all packages
yarn build && yarn build:tarball
pnpm run build && pnpm run build:tarball

# Step 3: Run the test
cd dev-packages/e2e-tests
yarn test:run nextjs-app-dir
pnpm run test:run nextjs-app-dir
```

### Example 3: With variant
Expand All @@ -178,7 +178,7 @@ yarn test:run nextjs-app-dir
# Step 1: Rebuild if needed
# Step 2: Run with variant
cd dev-packages/e2e-tests
yarn test:run nextjs-app-dir --variant nextjs-15
pnpm run test:run nextjs-app-dir --variant nextjs-15
```

## Tips
Expand Down
4 changes: 2 additions & 2 deletions .agents/skills/fix-issue/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ A single `-m` only sets the subject — the footer would be silently dropped, an

**Commit message format:** Conventional Commits — `<type>` is one of `test`, `fix`, `feat`, `ref`, `chore`, `docs`, `ci`. Look at recent commits (`git log --oneline -10`) for examples. The PR body in Step 7 will also include `Fixes #<issue-number>` as a belt-and-suspenders — GitHub recognizes the closing keyword in either place.

**Do NOT run `yarn format` / `yarn lint` / `yarn test` / `yarn build:dev` before committing.** `CLAUDE.md` / `AGENTS.md` list a "Before Every Commit" checklist that includes those, but this workflow does not allowlist `yarn` (per Step 5 / Turn economy). CI will run lint and tests on the opened PR; rely on that. The pre-commit checklist in those docs does not apply to this skill.
**Do NOT run `pnpm run format` / `pnpm run lint` / `pnpm run test` / `pnpm run build:dev` before committing.** `CLAUDE.md` / `AGENTS.md` list a "Before Every Commit" checklist that includes those, but this workflow does not allowlist `pnpm` (per Step 5 / Turn economy). CI will run lint and tests on the opened PR; rely on that. The pre-commit checklist in those docs does not apply to this skill.

### Step 7: Open a PR

Expand Down Expand Up @@ -116,7 +116,7 @@ Your budget is measured in _agent turns_ (assistant messages), not individual to
- Plan before acting. Prefer targeted commands over broad ones: read specific line ranges instead of whole files; grep for the exact symbol instead of listing directories.
- In each turn, issue all independent tool calls in parallel rather than spreading them across multiple turns.
- Do NOT re-read a file you just edited to "verify" — the edit either succeeded or errored.
- Do NOT run tests, linters, formatters, or builds. This workflow does not allowlist `yarn`/`npm`/`npx`; verification is static-only per Step 5. Attempting a test command will be blocked and waste a turn.
- Do NOT run tests, linters, formatters, or builds. This workflow does not allowlist `pnpm`/`npm`/`npx`; verification is static-only per Step 5. Attempting a test command will be blocked and waste a turn.
- If a search returned what you need, stop searching. Do not look for confirmation.

## Turn budget
Expand Down
Loading
Loading