Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
370 commits
Select commit Hold shift + click to select a range
48e08cb
feat: log empty search results for debugging (#319)
dcramer Jun 27, 2025
0f418b0
Add guide to empty results log (#321)
dcramer Jun 27, 2025
bc7c87e
feat: add slash commands /clear and /logout to chat interface (#320)
dcramer Jun 27, 2025
3172036
feat: add sample prompt buttons to chat interface (#322)
dcramer Jun 27, 2025
c2b9763
refactor: improve chat scroll behavior and reorganize platform consta…
dcramer Jun 27, 2025
a50e337
Hack around autorag filtering issue (#325)
dcramer Jun 27, 2025
8ceb282
chore: update dependencies (#326)
dcramer Jun 27, 2025
6864c3f
chore: migrate to pnpm catalogs (#327)
dcramer Jun 27, 2025
df1b2d5
Helper command for cf versions (#328)
dcramer Jun 27, 2025
84d192f
feat: add GitHub Actions workflows for automated deployment (#329)
dcramer Jun 28, 2025
12548b2
feat: add bot protection to Cloudflare Worker (#330)
dcramer Jun 28, 2025
9f0f505
fix: Correct GitHub Actions for Cloudflare (#331)
dcramer Jun 28, 2025
9e86892
Define env (attempt to fix CF action) (#332)
dcramer Jun 28, 2025
a0841cd
Bind correct env for CF deploy (#333)
dcramer Jun 28, 2025
910ab00
Revert "feat: add bot protection to Cloudflare Worker (#330)" (#335)
dcramer Jun 28, 2025
92c04bb
fix: add User-Agent headers to API requests (#334)
dcramer Jun 28, 2025
15fd50b
docs: add tool count limits and documentation maintenance guidelines …
dcramer Jun 29, 2025
0db12a6
feat: add user agent tracking to MCP telemetry (#338)
dcramer Jun 29, 2025
f5512be
refactor: combine Seer analysis tools into single polling workflow (#…
dcramer Jun 29, 2025
db22b64
feat: add MCP prompts support to Cloudflare chat interface (#339)
dcramer Jun 30, 2025
61638a1
feat: add overwatch bug prediction gh workflow (#342)
suejung-sentry Jun 30, 2025
fdf72a4
Fix: issue fix status handling and missing states (#343)
codyde Jul 1, 2025
801f2e6
Add button to cursor instructions section (#344)
cleptric Jul 2, 2025
b81fd63
Fix/Adding patch for hibernate to false (#348)
codyde Jul 4, 2025
612421d
Fix/correcting pnpm lock (#349)
codyde Jul 4, 2025
3d0fc9c
Correcting location of patchDeps for patching cloudflare and rebuildi…
codyde Jul 4, 2025
720304c
Add validation for agents patch application in GH actions workflow (#…
codyde Jul 4, 2025
98f29d1
Fix/removing Cloudflare Hibernate Patches (#353)
codyde Jul 4, 2025
409f4a3
refactor: improve analyze_issue_with_seer readability and error handl…
dcramer Jul 7, 2025
23f5cdf
refactor: modularize tools into individual modules with build-time de…
dcramer Jul 8, 2025
8311480
Add event attachment download support (#358)
dcramer Jul 8, 2025
fe7a7d1
release: 0.13.0
getsentry-bot Jul 8, 2025
74abebb
Merge branch 'release/0.13.0'
Jul 8, 2025
3d35862
feat: improved settings via env variables (#359)
dcramer Jul 9, 2025
3849c32
release: 0.14.0
getsentry-bot Jul 9, 2025
6f0cb0b
Merge branch 'release/0.14.0'
Jul 9, 2025
e7dbbfd
feat: integrate Seer AI analysis into issue details (#363)
dcramer Jul 9, 2025
881eea2
release: 0.15.0
getsentry-bot Jul 9, 2025
9fe51bc
fix: properly format query strings in API client (#364)
dcramer Jul 9, 2025
bf48167
Merge branch 'release/0.15.0'
Jul 9, 2025
04445c8
fix: allow issue IDs to start with numbers (#365)
dcramer Jul 9, 2025
205ccd5
fix: improve error handling for 404s to use UserInputError (#366)
dcramer Jul 9, 2025
5cf76f4
fix: gracefully handle missing regions endpoint on self-hosted Sentry…
dcramer Jul 9, 2025
cde70e1
feat: add resilient error handling to analyze_issue_with_seer tool (#…
dcramer Jul 9, 2025
cef8b2b
fix: convert validation errors to UserInputError for better handling …
dcramer Jul 9, 2025
56aff50
fix: add Content-Type validation before JSON parsing in API client (#…
dcramer Jul 10, 2025
c94e2a0
fix: improve 404 error handling to show all relevant parameters (#372)
dcramer Jul 10, 2025
e742b90
feat: add ConfigurationError class for network/connection issues (#373)
dcramer Jul 10, 2025
e6c59a7
release: 0.16.0
getsentry-bot Jul 10, 2025
eb136bc
Merge branch 'release/0.16.0'
Jul 10, 2025
a69d3a6
fix: use full URL as resource URI instead of just host (#374)
dcramer Jul 10, 2025
7d97998
fix: use ConfigurationError for missing fetch (#376)
seer-by-sentry[bot] Jul 13, 2025
b9ed88b
feat: make platform optional in ProjectSchema and IssueSchema (#377)
seer-by-sentry[bot] Jul 14, 2025
c6265bf
Disable codecov pull request comments (#379)
dcramer Jul 14, 2025
ad955df
refactor: switch evaluation tests from factuality to tool prediction …
dcramer Jul 14, 2025
0d6e2aa
feat: implement unified search_events tool with natural language quer…
dcramer Jul 14, 2025
f40a60a
fix: replace generateText with generateObject for robust AI response …
dcramer Jul 14, 2025
47c7751
fix: correct field selection and improve aggregate function documenta…
dcramer Jul 15, 2025
fa6bdb1
fix: handle empty queries in search_events tool (#383)
dcramer Jul 15, 2025
f4a8a6d
fix: handle API client errors in search events tool (#384)
dcramer Jul 15, 2025
b124a09
fix: add aggregate query examples for logs dataset in search_events t…
dcramer Jul 15, 2025
fe98e39
fix: log API 500+ errors to Sentry and fix aggregate query sorting (#…
dcramer Jul 15, 2025
610bf02
feat: display aggregate query results as tabular data (#387)
dcramer Jul 15, 2025
3ead4f9
feat: enhance Vercel AI SDK integration with telemetry (#388)
dcramer Jul 15, 2025
480ffd6
fix: correct explore URL generation for search_events tool (#389)
dcramer Jul 15, 2025
6c681f6
fix: improve explore URL generation for spans dataset aggregate queri…
dcramer Jul 15, 2025
fe0d937
fix: enable Vercel AI SDK integration in Cloudflare environments (#390)
dcramer Jul 16, 2025
ca3a2d4
fix: improve search_events aggregate query handling and API patterns …
dcramer Jul 16, 2025
b7a5852
feat: improve search_events semantic understanding of agent calls (#394)
dcramer Jul 16, 2025
246c1e7
feat: implement reactive dataset determination for search_events with…
dcramer Jul 16, 2025
226a30d
feat: add Claude commands for PR management (#398)
dcramer Jul 16, 2025
70c0fd9
fix: correct user agent field mapping in search_events tool (#400)
dcramer Jul 17, 2025
090f237
feat: add OnlyRobots GitHub Action for automated PR reviews (#395)
dcramer Jul 17, 2025
0d8c768
fix: add missing checks:write permission to OnlyRobots workflow (#402)
dcramer Jul 17, 2025
ac65bd2
feat: enable OnlyRobots comments and update to v1.2.0 (#403)
dcramer Jul 17, 2025
6da3d45
chore: update OnlyRobots action to use v1 tag (#404)
dcramer Jul 18, 2025
3203148
fix: add hints for org/project notation in search_events tool (#405)
dcramer Jul 18, 2025
326c779
feat: add GitHub CLI permissions and auto-generated tool definitions …
dcramer Jul 18, 2025
30d31c3
chore: Remove overwatch CLI in favor of per-commit (#409)
suejung-sentry Jul 19, 2025
62dbf38
fix: bundle OpenTelemetry data at build time for Cloudflare Workers c…
dcramer Jul 20, 2025
84eb119
fix: handle UserInputError in search-events AI tools (#410)
dcramer Jul 20, 2025
ea01e1c
feat: make dataset and sort required when no error is returned in sea…
seer-by-sentry[bot] Jul 22, 2025
4617490
fix: add SENTRY_AUTH_TOKEN to deploy workflow for sourcemap uploads (…
dcramer Jul 22, 2025
07fad48
fix: improve error handling and add maxSteps to search_events agent
dcramer Jul 22, 2025
cf44b9f
feat: implement automatic token refresh with cookie-based authenticat…
dcramer Jul 22, 2025
e37cd90
fix: prevent search_events from generating SQL-like syntax (#419)
dcramer Jul 22, 2025
4691e98
fix: handle 'me' references in search_events (#420)
dcramer Jul 22, 2025
1fb0366
feat: replace find_issues/find_tags with AI-powered search_issues too…
dcramer Jul 22, 2025
04ddf15
feat: set default value for includeExamples in discover_dataset_field…
seer-by-sentry[bot] Jul 22, 2025
da67fb1
fix: resolve OpenAI structured outputs validation error in search_iss…
dcramer Jul 23, 2025
919239b
feat: align search_issues formatting with search_events + fix whoami …
dcramer Jul 23, 2025
38ec9a1
fix: resolve 404 error for /auth/ endpoint on regional hosts (#427)
dcramer Jul 23, 2025
3e4e79f
fix: propagate specific error messages to users instead of generic AP…
dcramer Jul 23, 2025
1a061b5
Removing the versioning callout to the header component. (#423)
jmanhart Jul 23, 2025
3271f79
feat: add missing instrumentation to search_issues tool (#429)
dcramer Jul 23, 2025
2a6a148
feat: improve search_events query inference for ambiguous terms (#430)
dcramer Jul 23, 2025
9b3642c
fix: add validation to ensure sort field is included in search_events…
dcramer Jul 23, 2025
2ec109d
refactor: make agent prompts static for LLM caching and extract tool …
dcramer Jul 23, 2025
2f0e00a
fix: use UserInputError for unsupported time series queries in search…
dcramer Jul 23, 2025
3050965
fix: prevent LLM from duplicating sort parameters in query field (#434)
dcramer Jul 23, 2025
2806c18
feat: capture and persist MCP client attributes in tracing (#435)
dcramer Jul 23, 2025
7c7a535
feat: add logging for empty search results (#436)
dcramer Jul 23, 2025
5a782ec
feat: improve MCP client names for better identification (#437)
dcramer Jul 23, 2025
e37311a
fix: clarify assignedTo parameter format in update_issue tool (#438)
dcramer Jul 24, 2025
3fb54d7
release: 0.17.0
getsentry-bot Jul 24, 2025
7ce4e7e
Merge branch 'release/0.17.0'
Jul 24, 2025
3be86cf
feat: add OPENAI_API_KEY documentation and remove MCP_USER_AGENT (#439)
dcramer Jul 24, 2025
0015106
release: 0.17.1
getsentry-bot Jul 24, 2025
391409a
Merge branch 'release/0.17.1'
Jul 24, 2025
bd8100d
feat: add Sentry event scrubbing to prevent API key exposure (#440)
dcramer Jul 24, 2025
c076b20
docs: enhance CLAUDE.md with structured guidance and directives (#441)
dcramer Jul 25, 2025
8404cdf
fix: skip sort transformation for equation fields in search_events (#…
dcramer Jul 25, 2025
6d484dc
feat: add claude-optimizer subagent (#445)
dcramer Jul 25, 2025
84b75ca
feat: refactor embedded agents and add structured output validation (…
dcramer Jul 29, 2025
c5e5bab
fix: correct typo in README (sever → server) (#452)
dcramer Jul 30, 2025
6fcb279
chore: remove OnlyRobots PR Review workflow file (#455)
dcramer Jul 31, 2025
051804e
feat: add optional tags support to event schema and format output acc…
dcramer Jul 31, 2025
99050c4
feat: add trace details tool (#456)
dcramer Jul 31, 2025
29d57fc
feat: enable search_events agent to self-correct errors (#458)
dcramer Aug 5, 2025
e29a396
fix(evals): update search-events-agent eval to use db.operation field…
dcramer Aug 5, 2025
f8b0693
fix: simplify user prompt submit hook output format (#460)
dcramer Aug 5, 2025
0fbf288
fix: standardize API client to use console.error for error logging (#…
dcramer Aug 5, 2025
366cb4b
fix: add missing time parameters to events explorer URLs (#464)
dcramer Aug 5, 2025
2301c10
fix: suppress Sentry reporting for invalid redirect URI errors (#465)
dcramer Aug 6, 2025
0859772
docs: clarify MCP service purpose and target audience (#466)
dcramer Aug 6, 2025
2165f02
Update Sentry (#469)
dcramer Aug 7, 2025
0eb18e9
fix: use correct sentry.io domain for web UI URLs with regional API h…
dcramer Aug 8, 2025
f2caf65
feat: add sentry://about resource for user discovery (#472) (#474)
dcramer Aug 8, 2025
dd57c80
fix: add path traversal protection for slug parameters (VULN-848) (#475)
dcramer Aug 11, 2025
10eac17
Remove the Spotlight overlay (#476)
dcramer Aug 11, 2025
978255a
Bump agents (#477)
dcramer Aug 11, 2025
971ca71
feat: downgrade Sentry to v9.45.0 for stability (#478)
dcramer Aug 11, 2025
953b723
Revert "feat: downgrade Sentry to v9.45.0 for stability (#478)" (#479)
dcramer Aug 11, 2025
5ee3b20
Revert "Update Sentry (#469)" (#480)
dcramer Aug 12, 2025
79be663
Remove spotlight (#481)
dcramer Aug 12, 2025
061f915
Remove spotlight import (#482)
dcramer Aug 12, 2025
eba3da6
chore: bump @cloudflare/workers-oauth-provider to ^0.0.6 (#483)
dcramer Aug 12, 2025
d5bd929
Fix pnpm-lock (#484)
dcramer Aug 12, 2025
6880a59
Add CSRF token protection to OAuth approval dialog (#485)
oioki Aug 12, 2025
41ada39
Add example environment configuration files (#486)
dcramer Aug 12, 2025
185232e
Implement canary deployment strategy with separate workers (#489)
dcramer Aug 13, 2025
ec9cda8
Correct canary wrangler config (#491)
dcramer Aug 13, 2025
e11ae22
Pin Sentry packages to version 9.34.0 (#490)
dcramer Aug 13, 2025
f2914bf
Add checks: write permission for JUnit test reports (#492)
dcramer Aug 13, 2025
bf449b5
fix: Allow nullable transaction.event_id in trace metadata schema (#494)
dcramer Aug 13, 2025
d3be00c
Improve Seer AI analysis formatting in get-issue-details (#495)
dcramer Aug 13, 2025
4141f51
feat: Improve local development setup with unified environment config…
dcramer Aug 13, 2025
52ca5ec
fix: Allow requests without Origin header in CSRF middleware (#488) (…
dcramer Aug 13, 2025
cba2147
fix(cloudflare): update vite-plugin and wrangler for native .env supp…
dcramer Aug 14, 2025
e84e2b3
feat(server): implement subpath-based MCP constraints for organizatio…
dcramer Aug 14, 2025
933ea98
fix(cloudflare): resolve constraint race condition in MCP transport (…
dcramer Aug 14, 2025
908e91e
fix(cloudflare): use X-Real-IP header for Sentry user context (#504)
dcramer Aug 14, 2025
ef8ea93
feat(telemetry): add constraint attributes to OpenTelemetry spans (#505)
dcramer Aug 14, 2025
0a90785
fix(cloudflare): hide project/org constraints documentation (#506)
dcramer Aug 14, 2025
7c108e7
fix(cloudflare): simplify constraint handling with comprehensive docu…
dcramer Aug 15, 2025
7f89084
fix(cloudflare): add CORS headers to OAuth metadata endpoints (#509)
dcramer Aug 18, 2025
ff5f9ba
fix(cloudflare): remove subpath constraint support from SSE endpoint …
dcramer Aug 19, 2025
84d4fe8
refactor(cloudflare): improve McpAgent constraint abstraction (#517)
dcramer Aug 25, 2025
d5d99a2
fix(cloudflare): improve auth cancellation handling (#518)
dcramer Aug 25, 2025
cdd51a5
Revert "refactor(cloudflare): improve McpAgent constraint abstraction…
dcramer Aug 26, 2025
d9eb263
fix(api-client): update event schema to match Sentry API responses (#…
dcramer Aug 26, 2025
40321c8
refactor(cloudflare): implement comprehensive McpAgent constraint sys…
dcramer Aug 27, 2025
e00a02f
fix(api-client): handle mixed span/issue arrays in trace responses (#…
dcramer Aug 27, 2025
85ca240
feat(Warp) add setup guide (#515)
sergical Aug 28, 2025
16758c8
feat(code-snippet) add copied state (#516)
sergical Aug 28, 2025
aba843d
test(get-trace-details): add test for mixed span/issue array validati…
dcramer Aug 28, 2025
2a7f826
fix: improve error handling for embedded tool calls (#522)
dcramer Aug 28, 2025
b18c783
fix: Pass along regionUrl to embedded tools (#528)
dcramer Aug 29, 2025
3eadc17
refactor(api): improve error handling consistency (#529)
dcramer Aug 29, 2025
a4cc835
fix(security): add SSRF protection for regionUrl parameter (#530)
dcramer Aug 29, 2025
1025650
fix(docs) proper redirect uri (#533)
sergical Sep 2, 2025
c258f79
Add OAuth permission scopes system for fine-grained access control (#…
dcramer Sep 3, 2025
b3442e6
release: 0.18.0
getsentry-bot Sep 3, 2025
3b17346
feat(mcp-cloudflare): enhance Remote/stdio setup guides (#536)
dcramer Sep 3, 2025
a2623f0
fix: OAuth sync issues in chat (#539)
dcramer Sep 6, 2025
77bc30f
chore(deps): bump hono from 4.8.3 to 4.9.6 (#538)
dependabot[bot] Sep 6, 2025
8e0928f
feat(mcp-cloudflare): add OAuth refresh token support (#537)
dcramer Sep 6, 2025
4e279f4
fix(mcp-cloudflare): resolve OAuth unsupported_grant_type error (#540)
dcramer Sep 6, 2025
be7c277
fix(cloudflare): simplify OAuth state to signed envelope (#541)
dcramer Sep 6, 2025
bf58690
Merge branch 'release/0.18.0'
Sep 7, 2025
186546a
feat: surface required scopes in tool docs and UI (#543)
dcramer Sep 7, 2025
9f3baa2
feat(cloudflare): add tool actions UI; improve chat commands/metadata…
dcramer Sep 7, 2025
fc9318e
feat: Expose .mcp/{tools,resources,prompts}.json (#544)
dcramer Sep 7, 2025
624a383
chore(deps): bump hono from 4.9.6 to 4.9.7 (#548)
dependabot[bot] Sep 14, 2025
80ba76f
feat(docs) add Codex config (#551)
sergical Sep 22, 2025
a687ae6
fix: simplify stdio setup guidance (#555)
dcramer Sep 23, 2025
e995959
feat: add configurable OpenAI API URL via CLI parameter (#556)
dcramer Sep 23, 2025
0dd4d91
ref: fail gracefully with missing refresh token (#559)
dcramer Sep 23, 2025
5bfe6eb
feat: add performance event formatting for N+1 query detection (#345)…
dcramer Oct 1, 2025
22a88f1
Overhaul logging and adopt LogTape (#562)
dcramer Oct 1, 2025
24b50d7
refactor(logging): use Sentry.logger sink (#563)
dcramer Oct 1, 2025
34e294e
Quick fix for nullable metadata (#564)
dcramer Oct 1, 2025
1d53faf
fix: add recursion depth limiting to prevent stack overflow in Sentry…
dcramer Oct 1, 2025
ff98548
Quick fix for build compat (#566)
dcramer Oct 1, 2025
1349fae
Add Seer permission (#567)
dcramer Oct 1, 2025
d43766e
Log missing refresh token response (#568)
dcramer Oct 1, 2025
9a3dce6
Improve logs (#569)
dcramer Oct 2, 2025
463ebde
fix: support 'default' event type in get_issue_details tool (#571)
dcramer Oct 2, 2025
751ed07
fix(permissions): isolate seer and event:write scopes (#572)
dcramer Oct 2, 2025
847d6eb
feat: add search support to find_organizations, find_teams, and find_…
dcramer Oct 2, 2025
2b9e53a
fix(server): support projectSlug constraint for projectSlugOrId (#575)
dcramer Oct 20, 2025
261e524
ref: remove use of SSE transport (#576)
dcramer Oct 20, 2025
96089be
ref: remove mcp client/protocol metadata (#577)
dcramer Oct 20, 2025
95fc85a
feat(tools): add support for context (extra) data in get_issue_detail…
dcramer Oct 22, 2025
68f6919
feat(tools): add safety annotations for tool compliance (#579)
codyde Oct 23, 2025
c9e41a5
refactor: remove prompts and resources from MCP server (#583)
dcramer Oct 23, 2025
5e5e57f
fix(oauth): correct redirect_uri in token exchange (#586)
dcramer Oct 25, 2025
5a56b19
refactor(cloudflare): migrate from Durable Objects to stateless MCP h…
dcramer Oct 27, 2025
55bc680
Missing migration (#587)
dcramer Oct 27, 2025
4a6e3d6
Missing migration in Canary (#588)
dcramer Oct 27, 2025
5ee2131
Attempt to fix DO (#590)
dcramer Oct 28, 2025
ec3fc8b
fix(cloudflare): rewrite MCP handler URL to strip tenant segments (#591)
dcramer Oct 28, 2025
74d900c
refactor(cloudflare): remove Durable Object migration artifacts (#592)
dcramer Oct 28, 2025
73a2baf
release: 0.19.0
getsentry-bot Oct 28, 2025
1feec31
feat(cloudflare): add deprecation endpoint for removed SSE transport …
dcramer Oct 28, 2025
6636b4e
Merge branch 'release/0.19.0'
Oct 28, 2025
e158dea
feat: add agent mode with use_sentry tool and in-memory MCP architect…
dcramer Oct 28, 2025
d331ec4
Agent mode (#595)
dcramer Oct 28, 2025
ce48c67
feat: add token cost tracking for MCP tool definitions (#596)
dcramer Oct 29, 2025
d440132
docs(cloudflare): add agent mode explanation to installation guide (#…
dcramer Oct 29, 2025
a6c3f6f
refactor: simplify use_sentry tool by removing constraint parameters …
dcramer Oct 29, 2025
2a1744f
refactor(cloudflare): remove scope names from permission labels (#601)
dcramer Oct 29, 2025
6b66626
fix typo in remote-setup.tsx (#600)
imjared Oct 29, 2025
a5f0a78
fix benchmark (#603)
sergical Oct 29, 2025
0a48c4e
fix(ci): use Checks API instead of Statuses API for token cost (#604)
dcramer Oct 29, 2025
8bd1b81
Correct agent argument in local CLI (#605)
dcramer Oct 29, 2025
8d9125c
refactor: remove AsyncLocalStorage in favor of closure-captured conte…
dcramer Oct 29, 2025
174b645
release: 0.20.0
getsentry-bot Oct 29, 2025
1e432b6
Merge branch 'release/0.20.0'
Oct 29, 2025
551693c
feat: add 'docs' virtual permission to gate documentation tools (#607)
dcramer Oct 29, 2025
080d8bd
fix(cloudflare): ensure Sentry logs are flushed before Worker termina…
dcramer Oct 31, 2025
fbabee3
feat(smoke-tests): add identifiable user-agent for smoke test request…
dcramer Oct 31, 2025
782c939
feat: add User-Agent headers to all outgoing HTTP requests (#615)
dcramer Oct 31, 2025
cacfc69
feat(cli): add OpenAI model and reasoning effort configuration (#616)
dcramer Oct 31, 2025
0a541ef
feat: implement skills system for grouping and managing tools (#609)
dcramer Oct 31, 2025
e5d69b1
Return a 401 on invalid scopes (#620)
dcramer Oct 31, 2025
a6a5a76
feat(cloudflare): add IP-based rate limiting for MCP and OAuth routes…
dcramer Oct 31, 2025
af6ca11
fix(cloudflare): track Sentry flush promise in onToolComplete callbac…
dcramer Oct 31, 2025
ec21252
fix(cloudflare): move Sentry flush from onToolComplete to main handle…
dcramer Nov 1, 2025
b67bed8
fix: replace agent-tools module with agentMode parameter (#624)
dcramer Nov 4, 2025
4af98e7
feat(cloudflare): add HMAC-signed state for CSRF protection in OAuth …
dcramer Nov 4, 2025
dc0b067
feat(tools): enhance use_sentry description for better LLM triggering…
dcramer Nov 5, 2025
8f2c1f2
release: 0.21.0
getsentry-bot Nov 5, 2025
f3ed844
Merge branch 'release/0.21.0'
Nov 5, 2025
f7e5a8f
fix: remove .optional() from parameters with .default() (#630)
dcramer Nov 11, 2025
a21e4ce
docs(cloudflare): update stdio setup guide (#631)
dcramer Nov 11, 2025
fdc77f8
Tweak testing docs for reliability (#632)
dcramer Nov 11, 2025
393a4a9
Fix(cloudflare): send logs again (#634)
betegon Nov 12, 2025
ff49998
perf(turbo): optimize build pipeline with better caching (#636)
dcramer Nov 17, 2025
b5e0753
Add devcontainer configuration file
nell-dot Nov 18, 2025
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
  •  
  •  
  •  
202 changes: 202 additions & 0 deletions .claude/agents/claude-optimizer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,202 @@
---
name: claude-optimizer
description: Optimizes CLAUDE.md files for maximum effectiveness with Sonnet 4 and Opus 4 models by analyzing structure, content clarity, token efficiency, and model-specific patterns
tools: Read, Write, MultiEdit, Bash, LS, Glob, Grep, WebSearch, WebFetch, Task
---

You are an expert optimizer for CLAUDE.md files - configuration documents that guide Claude Code's behavior in software repositories. Your specialized knowledge covers best practices for token optimization, attention patterns, and instruction effectiveness for Sonnet 4 and Opus 4 models.

## 🎯 PRIMARY DIRECTIVE

**PRESERVE ALL PROJECT-SPECIFIC CONTEXT**: You MUST retain all project-specific information including:
- Repository structure and file paths
- Tool names, counts, and descriptions
- API integration details
- Build commands and scripts
- Environment variables and defaults
- Architecture descriptions
- Testing requirements
- Documentation references

Optimization means making instructions clearer and more concise, NOT removing project context.

## 🎯 Critical Constraints

### 5K Token Limit
**MANDATORY**: Keep CLAUDE.md under 5,000 tokens. This is the #1 optimization priority.
- Current best practice: Aim for 2,500-3,500 tokens for optimal performance
- If content exceeds 5K, split into modular files under `docs/` directory
- Use `@path/to/file` references to include external context dynamically

## 🚀 Claude 4 Optimization Principles

### 1. Precision Over Verbosity
Claude 4 models excel at precise instruction following. Eliminate:
- Explanatory text ("Please ensure", "It's important to")
- Redundant instructions
- Vague directives ("appropriately", "properly", "as needed")

### 2. Parallel Tool Execution
Optimize for Claude 4's parallel capabilities:
```markdown
ALWAYS execute in parallel:
- `pnpm run tsc && pnpm run lint && pnpm run test`
- Multiple file reads/searches when investigating
```

### 3. Emphasis Hierarchy
Use strategic emphasis:
```
🔴 CRITICAL - Security, data loss prevention
🟡 MANDATORY - Required workflows
🟢 IMPORTANT - Quality standards
⚪ RECOMMENDED - Best practices
```

## 🔧 Tool Usage Strategy

### Research Tools
- **WebSearch**: Research latest prompt engineering techniques, Claude Code best practices
- **WebFetch**: Read specific optimization guides, Claude documentation
- **Task**: Delegate complex analysis (e.g., "analyze token distribution across sections")

### Analysis Tools
- **Grep**: Find patterns, redundancies, verbose language
- **Glob**: Locate related documentation files
- **Bash**: Count tokens (`wc -w`), check file sizes

### Implementation Tools
- **Read**: Analyze current CLAUDE.md
- **MultiEdit**: Apply multiple optimizations efficiently
- **Write**: Create optimized version

## 📋 Optimization Methodology

### Phase 1: Token Audit
1. Count current tokens using `wc -w` (rough estimate: words × 1.3)
2. Identify top 3 token-heavy sections
3. Flag redundant/verbose content

### Phase 2: Content Compression
1. **Transform Instructions (Keep Context)**
```
Before: "Please make sure to follow TypeScript best practices"
After: "TypeScript: NEVER use 'any'. Use unknown or validated assertions."
```

2. **Consolidate Without Losing Information**
- Merge ONLY truly duplicate instructions
- Use tables to compress lists while keeping ALL items
- Convert prose to bullets but retain all details
- NEVER remove project-specific paths, commands, or tool names

3. **Smart Modularization**
```markdown
## Extended Docs
- Architecture details: @docs/architecture.md # Only if >500 tokens
- API patterns: @docs/api-patterns.md # Keep critical patterns inline
- Testing guide: @docs/testing.md # Keep validation commands inline
```

**CRITICAL**: Only modularize truly excessive detail. Keep all actionable instructions inline.

### Phase 3: Structure Optimization
1. **Critical-First Layout**
```
1. Core Directives (security, breaking changes)
2. Workflow Requirements
3. Validation Commands
4. Context/References
```

2. **Visual Scanning**
- Section headers with emoji
- Consistent indentation
- Code blocks for commands

3. **Extended Thinking Integration**
Add prompts that leverage Claude 4's reasoning:
```markdown
<thinking>
For complex tasks, break down into steps and validate assumptions
</thinking>
```

## 📊 Output Format

### 1. Optimization Report
```markdown
# CLAUDE.md Optimization Results

**Metrics**
- Before: X tokens | After: Y tokens (Z% reduction)
- Clarity Score: Before X/10 → After Y/10
- Critical instructions in first 500 tokens: ✅

**High-Impact Changes**
1. [Change] → Saved X tokens
2. [Change] → Improved clarity by Y%
3. [Change] → Enhanced model performance

**Modularization** (if needed)
- Main CLAUDE.md: X tokens
- @docs/module1.md: Y tokens
- @docs/module2.md: Z tokens
```

### 2. Optimized CLAUDE.md
Deliver the complete optimized file with:
- **ALL project-specific context preserved**
- All critical instructions preserved
- Token count under 5K (ideally 2.5-3.5K)
- Clear visual hierarchy
- Precise, actionable language
- Every tool, path, command, and integration detail retained

## 🔧 Quick Reference

### Transform Patterns (With Context Preservation)
| Before | After | Tokens Saved | Context Lost |
|--------|-------|--------------|--------------|
| "Please ensure you..." | "MUST:" | ~3 | None ✅ |
| "It's important to note that..." | (remove) | ~5 | None ✅ |
| Long explanation | Table/list | ~40% | None ✅ |
| Separate similar rules | Consolidated rule | ~60% | None ✅ |
| "The search_events tool translates..." | "search_events: NL→DiscoverQL" | ~10 | None ✅ |
| Remove tool descriptions | ❌ DON'T DO THIS | ~500 | Critical ❌ |
| Remove architecture details | ❌ DON'T DO THIS | ~800 | Critical ❌ |

### Example: Preserving Project Context

**BAD Optimization (loses context):**
```markdown
## Tools
Use the appropriate tools for your task.
```

**GOOD Optimization (preserves context):**
```markdown
## Tools (19 modules)
- **search_events**: Natural language → DiscoverQL queries
- **search_issues**: Natural language → Issue search syntax
- **[17 other tools]**: Query, create, update Sentry resources
```

### Validation Checklist
- [ ] Under 5K tokens
- [ ] Critical instructions in first 20%
- [ ] No vague language
- [ ] All paths/commands verified
- [ ] Parallel execution emphasized
- [ ] Modular references added (if >5K)
- [ ] **ALL project context preserved**:
- [ ] Repository structure intact
- [ ] All tool names/descriptions present
- [ ] Build commands unchanged
- [ ] Environment variables preserved
- [ ] Architecture details retained
- [ ] File paths accurate

Remember: Every token counts. Precision beats explanation. Structure enables speed.

**NEVER sacrifice project context for token savings. A shorter but incomplete CLAUDE.md is worse than a complete one.**
14 changes: 14 additions & 0 deletions .claude/commands/gh-pr.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
Create (or update) a Pull Request.

We use the GitHub CLI (`gh`) to manage pull requests.

If this branch does not already have a pull request, create one:

- If we're on the main branch, switch to a working branch.
- Commit our changes if we haven't already.

If we already have one:

- Verify our changes against the base branch and update the PR title and description to maintain accuracy.

We should never focus on a test plan in the PR, but rather a concise description of the changes (features, breaking changes, major bug fixes, and architectural changes). Only include changes if they're present. We're always contrasting against our base branch when we describe these changes.
9 changes: 9 additions & 0 deletions .claude/commands/gh-review.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
Address feedback and checks in a Pull Request.

We use the GitHub CLI (`gh`) to manage pull requests.

Review the status checks for this PR, and identify any failures from them.

If there are no failures, review the PR feedback.

Do NOT assume feedback is valid. You should always verify that the feedback is truthful (the bug is real, for example), and then attempt to address it.
27 changes: 27 additions & 0 deletions .claude/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"permissions": {
"allow": [
"WebFetch(domain:mcp.sentry.dev)",
"WebFetch(domain:docs.sentry.io)",
"WebFetch(domain:develop.sentry.dev)",
"WebFetch(domain:modelcontextprotocol.io)",
"WebFetch(domain:docs.anthropic.com)",
"Bash(grep:*)",
"Bash(jq:*)",
"Bash(pnpx vitest:*)",
"Bash(pnpm test:*)",
"Bash(pnpm run typecheck:*)",
"Bash(pnpm run check:*)",
"Bash(pnpm run:*)",
"Bash(pnpx tsx:*)",
"Bash(gh pr checks:*)",
"Bash(gh pr view:*)",
"Bash(gh run view:*)",
"Bash(git status:*)"
],
"deny": []
},
"enableAllProjectMcpServers": true,
"includeCoAuthoredBy": true,
"enabledMcpjsonServers": ["sentry"]
}
8 changes: 8 additions & 0 deletions .cursor/mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"mcpServers": {
"sentry": {
"type": "http",
"url": "https://mcp.sentry.dev/mcp/sentry/mcp-server"
}
}
}
4 changes: 4 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"image": "mcr.microsoft.com/devcontainers/universal:2",
"features": {}
}
24 changes: 24 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Root Environment Configuration
# This file provides default environment variables for all packages.
# Individual packages can override these values with their own .env files.

# OpenAI API key for AI-powered search tools (search_events, search_issues)
# Get yours at: https://platform.openai.com/api-keys
# Required for natural language query translation features
OPENAI_API_KEY=sk-proj-agenerate-this

# For mcp-test-client: Anthropic API key for Claude access
# ANTHROPIC_API_KEY=your_anthropic_api_key

# For mcp-test-client: Sentry access token (for stdio transport)
# Get one from: https://sentry.io/settings/account/api/auth-tokens/
# SENTRY_ACCESS_TOKEN=your_sentry_access_token

# Sentry Spotlight - development environment tool for local debugging
# Set to 1 to enable Spotlight integration (recommended for development)
# Learn more: https://spotlightjs.com
SENTRY_SPOTLIGHT=1

# IMPORTANT: For local development, you also need to create:
# - packages/mcp-cloudflare/.env - OAuth configuration (required for authentication)
# Copy packages/mcp-cloudflare/.env.example to .env and fill in your OAuth credentials
Loading