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.