From 28d2c36ed30364fd33a5c15a1cdcdba9864e8c0e Mon Sep 17 00:00:00 2001 From: Daniel Griesser Date: Thu, 19 Jun 2025 22:13:46 +0200 Subject: [PATCH 01/13] feat: Add CLAUDE.md for Claude Code development guidance MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds comprehensive development documentation for Claude Code instances working in this repository, including build commands, testing, and repository architecture overview. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- CLAUDE.md | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 CLAUDE.md diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 000000000000..a0714a6c00dd --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,72 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Development Commands + +### Build Commands +- `yarn build` - Full production build with package verification +- `yarn build:dev` - Development build (transpile + types) +- `yarn build:dev:watch` - Development build in watch mode (recommended for development) +- `yarn build:dev:filter ` - Build specific package and its dependencies +- `yarn build:types:watch` - Watch mode for TypeScript types only +- `yarn build:bundle` - Build browser bundles only + +### Testing +- `yarn test` - Run all tests (excludes integration tests) +- `yarn test:unit` - Run unit tests only +- `yarn test:pr` - Run tests affected by changes (CI mode) +- `yarn test:pr:browser` - Run affected browser-specific tests +- `yarn test:pr:node` - Run affected Node.js-specific tests + +### Linting and Formatting +- `yarn lint` - Run ESLint and Prettier checks +- `yarn fix` - Auto-fix linting and formatting issues +- `yarn lint:es-compatibility` - Check ES compatibility + +### Package Management +- `yarn clean` - Clean build artifacts and caches +- `yarn clean:deps` - Clean and reinstall all dependencies + +## Repository Architecture + +This is a Lerna monorepo containing 40+ packages in the `@sentry/*` namespace. Key architectural components: + +### Core Packages +- `packages/core/` - Base SDK with interfaces, type definitions, and core functionality +- `packages/types/` - Shared TypeScript type definitions +- `packages/browser-utils/` - Browser-specific utilities and instrumentation + +### Platform SDKs +- `packages/browser/` - Browser SDK with bundled variants +- `packages/node/` - Node.js SDK with server-side integrations +- `packages/bun/`, `packages/deno/`, `packages/cloudflare/` - Runtime-specific SDKs + +### Framework Integrations +- Framework packages follow naming: `packages/{framework}/` (react, vue, angular, etc.) +- Each has client/server entry points where applicable (e.g., nextjs, nuxt, sveltekit) + +### Build System +- Uses Rollup for bundling with config files: `rollup.*.config.mjs` +- TypeScript with multiple tsconfig files per package (main, test, types) +- Lerna manages package dependencies and publishing +- Vite for testing with `vitest` + +### Package Structure Pattern +Each package typically contains: +- `src/index.ts` - Main entry point +- `src/sdk.ts` - SDK initialization logic +- `rollup.npm.config.mjs` - Build configuration +- `tsconfig.json`, `tsconfig.test.json`, `tsconfig.types.json` - TypeScript configs +- `test/` directory with corresponding test files + +### Key Development Notes +- Uses Volta for Node.js/Yarn version management +- Requires initial `yarn build` after `yarn install` for TypeScript linking +- Integration tests are in separate packages (`dev-packages/`) +- Native profiling requires Python <3.12 for binary builds +- Bundle outputs vary - check `build/bundles/` for specific files after builds + +## Testing Single Packages +To test a specific package: `cd packages/{package-name} && yarn test` +To build a specific package: `yarn build:dev:filter @sentry/{package-name}` \ No newline at end of file From 2e175452afe99fcadd6d44b56853951e4fb6b7f4 Mon Sep 17 00:00:00 2001 From: Daniel Griesser Date: Thu, 19 Jun 2025 22:35:37 +0200 Subject: [PATCH 02/13] feat: Add Claude Code local settings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .claude/settings.local.json | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .claude/settings.local.json diff --git a/.claude/settings.local.json b/.claude/settings.local.json new file mode 100644 index 000000000000..070fca9732eb --- /dev/null +++ b/.claude/settings.local.json @@ -0,0 +1,11 @@ +{ + "permissions": { + "allow": [ + "Bash(find:*)", + "Bash(ls:*)", + "Bash(git:*)", + "Bash(yarn:*)" + ], + "deny": [] + } +} From 5a86ba38663d649e5acd67f60b623b5560e149c3 Mon Sep 17 00:00:00 2001 From: Daniel Griesser Date: Thu, 19 Jun 2025 22:41:00 +0200 Subject: [PATCH 03/13] docs: Add Git Flow branching strategy to CLAUDE.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- CLAUDE.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index a0714a6c00dd..17f9ca13da60 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -67,6 +67,26 @@ Each package typically contains: - Native profiling requires Python <3.12 for binary builds - Bundle outputs vary - check `build/bundles/` for specific files after builds +## Git Flow Branching Strategy + +This repository uses **Git Flow** branching model: + +### Branch Structure +- `master` - Production releases only +- `develop` - Main development branch (target for PRs) +- `feat/` - Feature branches (e.g., `feat/add-feature`) +- `release/X.Y.Z` - Release preparation branches + +### Workflow +- **All PRs target `develop` branch** (not `master`) +- Features are merged: `feat/branch` → `develop` +- Releases are created: `develop` → `release/X.Y.Z` → `master` +- Automated workflow syncs `master` back to `develop` after releases + +### Branch Naming +- Features: `feat/descriptive-name` +- Releases: `release/X.Y.Z` + ## Testing Single Packages To test a specific package: `cd packages/{package-name} && yarn test` To build a specific package: `yarn build:dev:filter @sentry/{package-name}` \ No newline at end of file From c5ded17eba21400363d1d9489c4ae27c8346f2d7 Mon Sep 17 00:00:00 2001 From: Daniel Griesser Date: Thu, 19 Jun 2025 22:42:09 +0200 Subject: [PATCH 04/13] docs: Add mandatory code quality requirements to CLAUDE.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Emphasize critical nature of SDK and required lint/test checks 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- CLAUDE.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index 17f9ca13da60..6a68017cfd06 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -87,6 +87,25 @@ This repository uses **Git Flow** branching model: - Features: `feat/descriptive-name` - Releases: `release/X.Y.Z` +## Code Quality Requirements + +**CRITICAL**: This is a production SDK used by thousands of applications. All changes must be: + +### Mandatory Checks +- **Always run `yarn lint`** - Fix all linting issues before committing +- **Always run `yarn test`** - Ensure all tests pass +- **Run `yarn build`** - Verify build succeeds without errors + +### Before Any Commit +1. `yarn lint` - Check and fix ESLint/Prettier issues +2. `yarn test` - Run relevant tests for your changes +3. `yarn build:dev` - Verify TypeScript compilation + +### CI/CD Integration +- All PRs automatically run full lint/test/build pipeline +- Failed checks block merging +- Use `yarn test:pr` for testing only affected changes + ## Testing Single Packages To test a specific package: `cd packages/{package-name} && yarn test` To build a specific package: `yarn build:dev:filter @sentry/{package-name}` \ No newline at end of file From bd602c26b5e34cf2ad8b3ada61ea9103851bac42 Mon Sep 17 00:00:00 2001 From: Daniel Griesser Date: Thu, 19 Jun 2025 22:53:24 +0200 Subject: [PATCH 05/13] docs: Incorporate review feedback into CLAUDE.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Clarify packages/types is active (not deprecated) - Add replay and feedback package sections - Separate dev-packages from main packages - Link to existing gitflow documentation - Add Playwright integration testing details Addresses review feedback from PR #16660 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- CLAUDE.md | 38 +++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 6a68017cfd06..e23372215927 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -34,7 +34,7 @@ This is a Lerna monorepo containing 40+ packages in the `@sentry/*` namespace. K ### Core Packages - `packages/core/` - Base SDK with interfaces, type definitions, and core functionality -- `packages/types/` - Shared TypeScript type definitions +- `packages/types/` - Shared TypeScript type definitions (active) - `packages/browser-utils/` - Browser-specific utilities and instrumentation ### Platform SDKs @@ -45,6 +45,13 @@ This is a Lerna monorepo containing 40+ packages in the `@sentry/*` namespace. K ### Framework Integrations - Framework packages follow naming: `packages/{framework}/` (react, vue, angular, etc.) - Each has client/server entry points where applicable (e.g., nextjs, nuxt, sveltekit) +- Integration tests use Playwright (e.g., Remix, browser-integration-tests) + +### User Experience Packages +- `packages/replay-internal/` - Session replay functionality +- `packages/replay-canvas/` - Canvas recording support for replay +- `packages/replay-worker/` - Web worker support for replay +- `packages/feedback/` - User feedback integration ### Build System - Uses Rollup for bundling with config files: `rollup.*.config.mjs` @@ -60,28 +67,33 @@ Each package typically contains: - `tsconfig.json`, `tsconfig.test.json`, `tsconfig.types.json` - TypeScript configs - `test/` directory with corresponding test files +### Development Packages (`dev-packages/`) +Separate from main packages, containing development and testing utilities: +- `browser-integration-tests/` - Playwright browser tests +- `e2e-tests/` - End-to-end tests for 70+ framework combinations +- `node-integration-tests/` - Node.js integration tests +- `test-utils/` - Shared testing utilities +- `bundle-analyzer-scenarios/` - Bundle analysis +- `rollup-utils/` - Build utilities +- GitHub Actions packages for CI/CD automation + ### Key Development Notes - Uses Volta for Node.js/Yarn version management - Requires initial `yarn build` after `yarn install` for TypeScript linking -- Integration tests are in separate packages (`dev-packages/`) +- Integration tests use Playwright extensively - Native profiling requires Python <3.12 for binary builds - Bundle outputs vary - check `build/bundles/` for specific files after builds ## Git Flow Branching Strategy -This repository uses **Git Flow** branching model: - -### Branch Structure -- `master` - Production releases only -- `develop` - Main development branch (target for PRs) -- `feat/` - Feature branches (e.g., `feat/add-feature`) -- `release/X.Y.Z` - Release preparation branches +This repository uses **Git Flow** branching model. See [detailed documentation](docs/gitflow.md). -### Workflow +### Key Points - **All PRs target `develop` branch** (not `master`) -- Features are merged: `feat/branch` → `develop` -- Releases are created: `develop` → `release/X.Y.Z` → `master` -- Automated workflow syncs `master` back to `develop` after releases +- `master` represents the last released state +- Never merge directly into `master` (except emergency fixes) +- Automated workflow syncs `master` → `develop` after releases +- Avoid changing `package.json` files on `develop` during pending releases ### Branch Naming - Features: `feat/descriptive-name` From 21f944cc0b92b346dc739421f4dac053c2f623fa Mon Sep 17 00:00:00 2001 From: Daniel Griesser Date: Thu, 19 Jun 2025 22:54:17 +0200 Subject: [PATCH 06/13] docs: Fix formatting in CLAUDE.md after review updates MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- CLAUDE.md | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/CLAUDE.md b/CLAUDE.md index e23372215927..56aa2d543859 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -5,6 +5,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co ## Development Commands ### Build Commands + - `yarn build` - Full production build with package verification - `yarn build:dev` - Development build (transpile + types) - `yarn build:dev:watch` - Development build in watch mode (recommended for development) @@ -13,6 +14,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co - `yarn build:bundle` - Build browser bundles only ### Testing + - `yarn test` - Run all tests (excludes integration tests) - `yarn test:unit` - Run unit tests only - `yarn test:pr` - Run tests affected by changes (CI mode) @@ -20,11 +22,13 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co - `yarn test:pr:node` - Run affected Node.js-specific tests ### Linting and Formatting + - `yarn lint` - Run ESLint and Prettier checks - `yarn fix` - Auto-fix linting and formatting issues - `yarn lint:es-compatibility` - Check ES compatibility ### Package Management + - `yarn clean` - Clean build artifacts and caches - `yarn clean:deps` - Clean and reinstall all dependencies @@ -33,34 +37,41 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co This is a Lerna monorepo containing 40+ packages in the `@sentry/*` namespace. Key architectural components: ### Core Packages + - `packages/core/` - Base SDK with interfaces, type definitions, and core functionality - `packages/types/` - Shared TypeScript type definitions (active) - `packages/browser-utils/` - Browser-specific utilities and instrumentation ### Platform SDKs + - `packages/browser/` - Browser SDK with bundled variants - `packages/node/` - Node.js SDK with server-side integrations - `packages/bun/`, `packages/deno/`, `packages/cloudflare/` - Runtime-specific SDKs ### Framework Integrations + - Framework packages follow naming: `packages/{framework}/` (react, vue, angular, etc.) - Each has client/server entry points where applicable (e.g., nextjs, nuxt, sveltekit) - Integration tests use Playwright (e.g., Remix, browser-integration-tests) ### User Experience Packages + - `packages/replay-internal/` - Session replay functionality - `packages/replay-canvas/` - Canvas recording support for replay - `packages/replay-worker/` - Web worker support for replay - `packages/feedback/` - User feedback integration ### Build System + - Uses Rollup for bundling with config files: `rollup.*.config.mjs` - TypeScript with multiple tsconfig files per package (main, test, types) - Lerna manages package dependencies and publishing - Vite for testing with `vitest` ### Package Structure Pattern + Each package typically contains: + - `src/index.ts` - Main entry point - `src/sdk.ts` - SDK initialization logic - `rollup.npm.config.mjs` - Build configuration @@ -68,7 +79,9 @@ Each package typically contains: - `test/` directory with corresponding test files ### Development Packages (`dev-packages/`) + Separate from main packages, containing development and testing utilities: + - `browser-integration-tests/` - Playwright browser tests - `e2e-tests/` - End-to-end tests for 70+ framework combinations - `node-integration-tests/` - Node.js integration tests @@ -78,6 +91,7 @@ Separate from main packages, containing development and testing utilities: - GitHub Actions packages for CI/CD automation ### Key Development Notes + - Uses Volta for Node.js/Yarn version management - Requires initial `yarn build` after `yarn install` for TypeScript linking - Integration tests use Playwright extensively @@ -89,6 +103,7 @@ Separate from main packages, containing development and testing utilities: This repository uses **Git Flow** branching model. See [detailed documentation](docs/gitflow.md). ### Key Points + - **All PRs target `develop` branch** (not `master`) - `master` represents the last released state - Never merge directly into `master` (except emergency fixes) @@ -96,6 +111,7 @@ This repository uses **Git Flow** branching model. See [detailed documentation]( - Avoid changing `package.json` files on `develop` during pending releases ### Branch Naming + - Features: `feat/descriptive-name` - Releases: `release/X.Y.Z` @@ -104,20 +120,24 @@ This repository uses **Git Flow** branching model. See [detailed documentation]( **CRITICAL**: This is a production SDK used by thousands of applications. All changes must be: ### Mandatory Checks + - **Always run `yarn lint`** - Fix all linting issues before committing - **Always run `yarn test`** - Ensure all tests pass - **Run `yarn build`** - Verify build succeeds without errors ### Before Any Commit + 1. `yarn lint` - Check and fix ESLint/Prettier issues 2. `yarn test` - Run relevant tests for your changes 3. `yarn build:dev` - Verify TypeScript compilation ### CI/CD Integration + - All PRs automatically run full lint/test/build pipeline - Failed checks block merging - Use `yarn test:pr` for testing only affected changes ## Testing Single Packages + To test a specific package: `cd packages/{package-name} && yarn test` -To build a specific package: `yarn build:dev:filter @sentry/{package-name}` \ No newline at end of file +To build a specific package: `yarn build:dev:filter @sentry/{package-name}` From 67c429bbadc0cd499bbb3047708e24c4c225c3a2 Mon Sep 17 00:00:00 2001 From: Daniel Griesser Date: Thu, 19 Jun 2025 22:56:17 +0200 Subject: [PATCH 07/13] feat: Add .cursorrules for Cursor IDE development guidance MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Provides comprehensive development rules for Cursor users including: - Mandatory code quality checks (lint/test/build) - Git Flow branching strategy - Repository architecture overview - Development commands and workflows Complements CLAUDE.md for Cursor IDE users 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .cursorrules | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 .cursorrules diff --git a/.cursorrules b/.cursorrules new file mode 100644 index 000000000000..d0fbe83bcef4 --- /dev/null +++ b/.cursorrules @@ -0,0 +1,120 @@ +# Cursor Rules for Sentry JavaScript SDK + +You are working on the Sentry JavaScript SDK, a critical production SDK used by thousands of applications. Follow these rules strictly. + +## Code Quality Requirements (MANDATORY) + +**CRITICAL**: All changes must pass these checks before committing: + +1. **Always run `yarn lint`** - Fix all linting issues +2. **Always run `yarn test`** - Ensure all tests pass +3. **Always run `yarn build:dev`** - Verify TypeScript compilation + +## Development Commands + +### Build Commands +- `yarn build` - Full production build with package verification +- `yarn build:dev` - Development build (transpile + types) +- `yarn build:dev:watch` - Development build in watch mode (recommended) +- `yarn build:dev:filter ` - Build specific package and dependencies +- `yarn build:types:watch` - Watch mode for TypeScript types only +- `yarn build:bundle` - Build browser bundles only + +### Testing +- `yarn test` - Run all tests (excludes integration tests) +- `yarn test:unit` - Run unit tests only +- `yarn test:pr` - Run tests affected by changes (CI mode) +- `yarn test:pr:browser` - Run affected browser-specific tests +- `yarn test:pr:node` - Run affected Node.js-specific tests + +### Linting and Formatting +- `yarn lint` - Run ESLint and Prettier checks +- `yarn fix` - Auto-fix linting and formatting issues +- `yarn lint:es-compatibility` - Check ES compatibility + +## Git Flow Branching Strategy + +This repository uses **Git Flow**. See [docs/gitflow.md](docs/gitflow.md) for details. + +### Key Rules +- **All PRs target `develop` branch** (NOT `master`) +- `master` represents the last released state +- Never merge directly into `master` (except emergency fixes) +- Avoid changing `package.json` files on `develop` during pending releases + +### Branch Naming +- Features: `feat/descriptive-name` +- Releases: `release/X.Y.Z` + +## Repository Architecture + +This is a Lerna monorepo with 40+ packages in the `@sentry/*` namespace. + +### Core Packages +- `packages/core/` - Base SDK with interfaces, type definitions, core functionality +- `packages/types/` - Shared TypeScript type definitions (active) +- `packages/browser-utils/` - Browser-specific utilities and instrumentation + +### Platform SDKs +- `packages/browser/` - Browser SDK with bundled variants +- `packages/node/` - Node.js SDK with server-side integrations +- `packages/bun/`, `packages/deno/`, `packages/cloudflare/` - Runtime-specific SDKs + +### Framework Integrations +- Framework packages: `packages/{framework}/` (react, vue, angular, etc.) +- Client/server entry points where applicable (nextjs, nuxt, sveltekit) +- Integration tests use Playwright (Remix, browser-integration-tests) + +### User Experience Packages +- `packages/replay-internal/` - Session replay functionality +- `packages/replay-canvas/` - Canvas recording for replay +- `packages/replay-worker/` - Web worker support for replay +- `packages/feedback/` - User feedback integration + +### Development Packages (`dev-packages/`) +- `browser-integration-tests/` - Playwright browser tests +- `e2e-tests/` - End-to-end tests for 70+ framework combinations +- `node-integration-tests/` - Node.js integration tests +- `test-utils/` - Shared testing utilities +- `bundle-analyzer-scenarios/` - Bundle analysis +- `rollup-utils/` - Build utilities +- GitHub Actions packages for CI/CD automation + +## Development Guidelines + +### Build System +- Uses Rollup for bundling (`rollup.*.config.mjs`) +- TypeScript with multiple tsconfig files per package +- Lerna manages package dependencies and publishing +- Vite for testing with `vitest` + +### Package Structure Pattern +Each package typically contains: +- `src/index.ts` - Main entry point +- `src/sdk.ts` - SDK initialization logic +- `rollup.npm.config.mjs` - Build configuration +- `tsconfig.json`, `tsconfig.test.json`, `tsconfig.types.json` +- `test/` directory with corresponding test files + +### Key Development Notes +- Uses Volta for Node.js/Yarn version management +- Requires initial `yarn build` after `yarn install` for TypeScript linking +- Integration tests use Playwright extensively +- Native profiling requires Python <3.12 for binary builds + +## Testing Single Packages +- Test specific package: `cd packages/{package-name} && yarn test` +- Build specific package: `yarn build:dev:filter @sentry/{package-name}` + +## Code Style Rules +- Follow existing code conventions in each package +- Check imports and dependencies - only use libraries already in the codebase +- Look at neighboring files for patterns and style +- Never introduce code that exposes secrets or keys +- Follow security best practices + +## Before Every Commit Checklist +1. ✅ `yarn lint` (fix all issues) +2. ✅ `yarn test` (all tests pass) +3. ✅ `yarn build:dev` (builds successfully) +4. ✅ Target `develop` branch for PRs (not `master`) \ No newline at end of file From 4b107562916ed28fe452df6210391d1c6137266a Mon Sep 17 00:00:00 2001 From: Daniel Griesser Date: Thu, 19 Jun 2025 22:58:18 +0200 Subject: [PATCH 08/13] docs: Add documentation sync reminder to .cursorrules MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ensures CLAUDE.md and .cursorrules stay in sync when edited 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .cursorrules | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.cursorrules b/.cursorrules index d0fbe83bcef4..83e3377b3c9a 100644 --- a/.cursorrules +++ b/.cursorrules @@ -117,4 +117,7 @@ Each package typically contains: 1. ✅ `yarn lint` (fix all issues) 2. ✅ `yarn test` (all tests pass) 3. ✅ `yarn build:dev` (builds successfully) -4. ✅ Target `develop` branch for PRs (not `master`) \ No newline at end of file +4. ✅ Target `develop` branch for PRs (not `master`) + +## Documentation Sync +**IMPORTANT**: When editing CLAUDE.md, also update .cursorrules and vice versa to keep both files in sync. \ No newline at end of file From f75497a20e1213afc05d4f407dba5bc1e7c367aa Mon Sep 17 00:00:00 2001 From: Daniel Griesser Date: Thu, 19 Jun 2025 22:58:35 +0200 Subject: [PATCH 09/13] docs: Sync any remaining documentation changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .claude/settings.local.json | 6 ++++-- CLAUDE.md | 4 ++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 070fca9732eb..eaf3ef959372 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -4,8 +4,10 @@ "Bash(find:*)", "Bash(ls:*)", "Bash(git:*)", - "Bash(yarn:*)" + "Bash(yarn:*)", + "WebFetch(domain:github.com)", + "Bash(grep:*)" ], "deny": [] } -} +} \ No newline at end of file diff --git a/CLAUDE.md b/CLAUDE.md index 56aa2d543859..1cce3926a4f8 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -141,3 +141,7 @@ This repository uses **Git Flow** branching model. See [detailed documentation]( To test a specific package: `cd packages/{package-name} && yarn test` To build a specific package: `yarn build:dev:filter @sentry/{package-name}` + +## Workflow Notes + +- Remember that when editing the base memory CLAUDE.md also to update .cursorrules and vice versa \ No newline at end of file From 517d09e43b79f9aad4d7b5ce277290361bac401f Mon Sep 17 00:00:00 2001 From: Daniel Griesser Date: Thu, 19 Jun 2025 23:01:05 +0200 Subject: [PATCH 10/13] Update .cursorrules Co-authored-by: Abhijeet Prasad --- .cursorrules | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.cursorrules b/.cursorrules index 83e3377b3c9a..2ece2bea68dd 100644 --- a/.cursorrules +++ b/.cursorrules @@ -1,3 +1,8 @@ +--- +description: Guidelines for working on the Sentry JavaScript SDK monorepo +alwaysApply: true +--- + # Cursor Rules for Sentry JavaScript SDK You are working on the Sentry JavaScript SDK, a critical production SDK used by thousands of applications. Follow these rules strictly. From 22920d8bb0e9bd38859ba64cc09bdb2635845f82 Mon Sep 17 00:00:00 2001 From: Daniel Griesser Date: Thu, 19 Jun 2025 23:03:10 +0200 Subject: [PATCH 11/13] refactor: Move Cursor rules to modern .cursor/rules/ structure MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Move .cursorrules to .cursor/rules/sdk_development.md - Update documentation references to new location - Add cross-reference between CLAUDE.md and Cursor rules - Follows modern Cursor rules organization pattern 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .claude/settings.local.json | 3 ++- .cursorrules => .cursor/rules/sdk_development.md | 4 ++-- CLAUDE.md | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) rename .cursorrules => .cursor/rules/sdk_development.md (97%) diff --git a/.claude/settings.local.json b/.claude/settings.local.json index eaf3ef959372..a651eb363952 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -6,7 +6,8 @@ "Bash(git:*)", "Bash(yarn:*)", "WebFetch(domain:github.com)", - "Bash(grep:*)" + "Bash(grep:*)", + "Bash(mv:*)" ], "deny": [] } diff --git a/.cursorrules b/.cursor/rules/sdk_development.md similarity index 97% rename from .cursorrules rename to .cursor/rules/sdk_development.md index 2ece2bea68dd..aa0f4d72b2e7 100644 --- a/.cursorrules +++ b/.cursor/rules/sdk_development.md @@ -3,7 +3,7 @@ description: Guidelines for working on the Sentry JavaScript SDK monorepo alwaysApply: true --- -# Cursor Rules for Sentry JavaScript SDK +# SDK Development Rules You are working on the Sentry JavaScript SDK, a critical production SDK used by thousands of applications. Follow these rules strictly. @@ -125,4 +125,4 @@ Each package typically contains: 4. ✅ Target `develop` branch for PRs (not `master`) ## Documentation Sync -**IMPORTANT**: When editing CLAUDE.md, also update .cursorrules and vice versa to keep both files in sync. \ No newline at end of file +**IMPORTANT**: When editing CLAUDE.md, also update .cursor/rules/sdk_development.md and vice versa to keep both files in sync. \ No newline at end of file diff --git a/CLAUDE.md b/CLAUDE.md index 1cce3926a4f8..ece0537f0f6c 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -142,6 +142,6 @@ This repository uses **Git Flow** branching model. See [detailed documentation]( To test a specific package: `cd packages/{package-name} && yarn test` To build a specific package: `yarn build:dev:filter @sentry/{package-name}` -## Workflow Notes +## Cursor IDE Integration -- Remember that when editing the base memory CLAUDE.md also to update .cursorrules and vice versa \ No newline at end of file +For Cursor IDE users, see [.cursor/rules/sdk_development.md](.cursor/rules/sdk_development.md) for complementary development rules. \ No newline at end of file From 37fecfe96c929f20593a3cf8a624b9724e374a63 Mon Sep 17 00:00:00 2001 From: Daniel Griesser Date: Thu, 19 Jun 2025 23:05:19 +0200 Subject: [PATCH 12/13] fix: Rename Cursor rules file to use .mdc extension MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Rename sdk_development.md to sdk_development.mdc - Update references in CLAUDE.md to use correct extension - Follows Cursor rules file naming convention 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .cursor/rules/{sdk_development.md => sdk_development.mdc} | 2 +- CLAUDE.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename .cursor/rules/{sdk_development.md => sdk_development.mdc} (98%) diff --git a/.cursor/rules/sdk_development.md b/.cursor/rules/sdk_development.mdc similarity index 98% rename from .cursor/rules/sdk_development.md rename to .cursor/rules/sdk_development.mdc index aa0f4d72b2e7..988703ddac81 100644 --- a/.cursor/rules/sdk_development.md +++ b/.cursor/rules/sdk_development.mdc @@ -125,4 +125,4 @@ Each package typically contains: 4. ✅ Target `develop` branch for PRs (not `master`) ## Documentation Sync -**IMPORTANT**: When editing CLAUDE.md, also update .cursor/rules/sdk_development.md and vice versa to keep both files in sync. \ No newline at end of file +**IMPORTANT**: When editing CLAUDE.md, also update .cursor/rules/sdk_development.mdc and vice versa to keep both files in sync. \ No newline at end of file diff --git a/CLAUDE.md b/CLAUDE.md index ece0537f0f6c..e0ebdd62b59c 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -144,4 +144,4 @@ To build a specific package: `yarn build:dev:filter @sentry/{package-name}` ## Cursor IDE Integration -For Cursor IDE users, see [.cursor/rules/sdk_development.md](.cursor/rules/sdk_development.md) for complementary development rules. \ No newline at end of file +For Cursor IDE users, see [.cursor/rules/sdk_development.mdc](.cursor/rules/sdk_development.mdc) for complementary development rules. \ No newline at end of file From dcfeebee7503da205ef2e2cf06ed1d55d7c05575 Mon Sep 17 00:00:00 2001 From: Daniel Griesser Date: Thu, 19 Jun 2025 23:10:34 +0200 Subject: [PATCH 13/13] fix: Add missing newline at end of CLAUDE.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- CLAUDE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CLAUDE.md b/CLAUDE.md index e0ebdd62b59c..263b9eef97a4 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -144,4 +144,4 @@ To build a specific package: `yarn build:dev:filter @sentry/{package-name}` ## Cursor IDE Integration -For Cursor IDE users, see [.cursor/rules/sdk_development.mdc](.cursor/rules/sdk_development.mdc) for complementary development rules. \ No newline at end of file +For Cursor IDE users, see [.cursor/rules/sdk_development.mdc](.cursor/rules/sdk_development.mdc) for complementary development rules. pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy