@danieljvdm/dev-kit 1.0.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (330) hide show
  1. package/README.md +6 -6
  2. package/package.json +1 -1
  3. package/skill-sources.jsonc +6 -29
  4. package/skill-sources.lock.json +23 -109
  5. package/skills/animate/LICENSE +21 -0
  6. package/skills/animate/NOTICE +10 -0
  7. package/skills/animate/SKILL.md +34 -0
  8. package/skills/animate/references/gestures.md +27 -0
  9. package/skills/animate/references/glossary.md +136 -0
  10. package/skills/animate/references/implementation.md +22 -0
  11. package/skills/animate/references/opportunities.md +18 -0
  12. package/skills/animate/references/principles.md +48 -0
  13. package/skills/animate/references/review.md +19 -0
  14. package/skills/cloudflare-workers/LICENSE +202 -0
  15. package/skills/cloudflare-workers/NOTICE +9 -0
  16. package/skills/cloudflare-workers/SKILL.md +26 -0
  17. package/skills/cloudflare-workers/references/durable-objects.md +68 -0
  18. package/skills/cloudflare-workers/references/sandbox.md +48 -0
  19. package/skills/cloudflare-workers/references/workers.md +63 -0
  20. package/skills/cloudflare-workers/references/wrangler.md +56 -0
  21. package/skills/design-ui/LICENSE +21 -0
  22. package/skills/design-ui/NOTICE +8 -0
  23. package/skills/design-ui/SKILL.md +29 -0
  24. package/skills/design-ui/references/appearance.md +22 -0
  25. package/skills/design-ui/references/components.md +33 -0
  26. package/skills/design-ui/references/exploration.md +50 -0
  27. package/skills/design-ui/references/libraries.md +39 -0
  28. package/skills/design-ui/references/themes.md +23 -0
  29. package/skills/dev-kit/SKILL.md +19 -38
  30. package/skills/dev-kit/references/cloudflare-worker-api.md +1 -1
  31. package/skills/dev-kit/references/skills.md +2 -2
  32. package/skills/effect-development/SKILL.md +27 -0
  33. package/skills/effect-development/agents/openai.yaml +4 -0
  34. package/skills/effect-development/references/api/index.md +32 -0
  35. package/skills/effect-development/references/api/schema-codecs.md +15 -0
  36. package/skills/{build-effect-apis/references → effect-development/references/api}/verification.md +10 -5
  37. package/skills/{effect-architecture-audit/SKILL.md → effect-development/references/architecture/index.md} +1 -6
  38. package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-client.md +8 -6
  39. package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-testing.md +7 -2
  40. package/skills/effect-development/references/atom/index.md +40 -0
  41. package/skills/{build-effect-clis/references → effect-development/references/cli}/entrypoints-and-testing.md +6 -2
  42. package/skills/effect-development/references/cli/index.md +39 -0
  43. package/skills/effect-development/references/setup.md +15 -0
  44. package/skills/open-pull-request/SKILL.md +11 -115
  45. package/skills/open-pull-request/agents/openai.yaml +3 -3
  46. package/skills/open-pull-request/references/evidence.md +22 -0
  47. package/skills/open-pull-request/references/explanation.md +21 -0
  48. package/skills/open-pull-request/references/publication.md +21 -0
  49. package/skills/sentry/LICENSE +202 -0
  50. package/skills/sentry/LICENSE-UPSTREAM +21 -0
  51. package/skills/sentry/NOTICE +14 -0
  52. package/skills/sentry/SKILL.md +33 -0
  53. package/skills/sentry/references/alert-payloads.md +105 -0
  54. package/skills/sentry/references/alerts.md +17 -0
  55. package/skills/sentry/references/artifacts.md +25 -0
  56. package/skills/sentry/references/auth-token.md +65 -0
  57. package/skills/sentry/references/concepts/ai-monitoring.md +131 -0
  58. package/skills/sentry/references/concepts/choosing-a-signal.md +78 -0
  59. package/skills/sentry/references/concepts/crons.md +50 -0
  60. package/skills/sentry/references/concepts/data-scrubbing.md +43 -0
  61. package/skills/sentry/references/concepts/errors.md +40 -0
  62. package/skills/sentry/references/concepts/logging.md +85 -0
  63. package/skills/sentry/references/concepts/metrics.md +49 -0
  64. package/skills/sentry/references/concepts/monitors.md +78 -0
  65. package/skills/sentry/references/concepts/profiling.md +38 -0
  66. package/skills/sentry/references/concepts/reduce-volume.md +49 -0
  67. package/skills/sentry/references/concepts/releases.md +43 -0
  68. package/skills/sentry/references/concepts/session-replay.md +35 -0
  69. package/skills/sentry/references/concepts/tracing.md +54 -0
  70. package/skills/sentry/references/concepts/user-feedback.md +36 -0
  71. package/skills/sentry/references/debug-artifacts/android.md +68 -0
  72. package/skills/sentry/references/debug-artifacts/apple.md +96 -0
  73. package/skills/sentry/references/debug-artifacts/dotnet.md +70 -0
  74. package/skills/sentry/references/debug-artifacts/flutter.md +65 -0
  75. package/skills/sentry/references/debug-artifacts/index.md +75 -0
  76. package/skills/sentry/references/debug-artifacts/javascript.md +94 -0
  77. package/skills/sentry/references/debug-artifacts/matching.md +73 -0
  78. package/skills/sentry/references/debug-artifacts/react-native.md +75 -0
  79. package/skills/sentry/references/first-error-setup.md +25 -0
  80. package/skills/sentry/references/instrumentation.md +30 -0
  81. package/skills/sentry/references/issues.md +32 -0
  82. package/skills/sentry/references/new-project.md +17 -0
  83. package/skills/sentry/references/otel-exporter.md +30 -0
  84. package/skills/sentry/references/release-workflow.md +31 -0
  85. package/skills/sentry/references/releases/ci-pipeline.md +214 -0
  86. package/skills/sentry/references/releases/index.md +93 -0
  87. package/skills/sentry/references/releases/suspect-commits.md +155 -0
  88. package/skills/sentry/references/releases/tagging.md +131 -0
  89. package/skills/sentry/references/releases/troubleshooting.md +67 -0
  90. package/skills/sentry/references/sdks/android/crons.md +305 -0
  91. package/skills/sentry/references/sdks/android/error-monitoring.md +800 -0
  92. package/skills/sentry/references/sdks/android/index.md +748 -0
  93. package/skills/sentry/references/sdks/android/integrations.md +48 -0
  94. package/skills/sentry/references/sdks/android/logging.md +374 -0
  95. package/skills/sentry/references/sdks/android/metrics.md +288 -0
  96. package/skills/sentry/references/sdks/android/profiling.md +397 -0
  97. package/skills/sentry/references/sdks/android/session-replay.md +406 -0
  98. package/skills/sentry/references/sdks/android/tracing.md +861 -0
  99. package/skills/sentry/references/sdks/browser/error-monitoring.md +861 -0
  100. package/skills/sentry/references/sdks/browser/index.md +714 -0
  101. package/skills/sentry/references/sdks/browser/logging.md +315 -0
  102. package/skills/sentry/references/sdks/browser/profiling.md +236 -0
  103. package/skills/sentry/references/sdks/browser/session-replay.md +586 -0
  104. package/skills/sentry/references/sdks/browser/tracing.md +561 -0
  105. package/skills/sentry/references/sdks/browser/user-feedback.md +354 -0
  106. package/skills/sentry/references/sdks/cloudflare/ai-monitoring.md +661 -0
  107. package/skills/sentry/references/sdks/cloudflare/crons.md +231 -0
  108. package/skills/sentry/references/sdks/cloudflare/durable-objects.md +381 -0
  109. package/skills/sentry/references/sdks/cloudflare/error-monitoring.md +329 -0
  110. package/skills/sentry/references/sdks/cloudflare/index.md +698 -0
  111. package/skills/sentry/references/sdks/cloudflare/logging.md +169 -0
  112. package/skills/sentry/references/sdks/cloudflare/nodejs-compat.md +134 -0
  113. package/skills/sentry/references/sdks/cloudflare/tracing.md +475 -0
  114. package/skills/sentry/references/sdks/cocoa/error-monitoring.md +394 -0
  115. package/skills/sentry/references/sdks/cocoa/index.md +497 -0
  116. package/skills/sentry/references/sdks/cocoa/logging.md +209 -0
  117. package/skills/sentry/references/sdks/cocoa/metrics.md +136 -0
  118. package/skills/sentry/references/sdks/cocoa/profiling.md +223 -0
  119. package/skills/sentry/references/sdks/cocoa/session-replay.md +257 -0
  120. package/skills/sentry/references/sdks/cocoa/tracing.md +524 -0
  121. package/skills/sentry/references/sdks/cocoa/user-feedback.md +310 -0
  122. package/skills/sentry/references/sdks/dotnet/crons.md +465 -0
  123. package/skills/sentry/references/sdks/dotnet/error-monitoring.md +1100 -0
  124. package/skills/sentry/references/sdks/dotnet/index.md +614 -0
  125. package/skills/sentry/references/sdks/dotnet/logging.md +556 -0
  126. package/skills/sentry/references/sdks/dotnet/metrics.md +229 -0
  127. package/skills/sentry/references/sdks/dotnet/profiling.md +296 -0
  128. package/skills/sentry/references/sdks/dotnet/tracing.md +897 -0
  129. package/skills/sentry/references/sdks/elixir/crons.md +371 -0
  130. package/skills/sentry/references/sdks/elixir/error-monitoring.md +335 -0
  131. package/skills/sentry/references/sdks/elixir/index.md +383 -0
  132. package/skills/sentry/references/sdks/elixir/logging.md +239 -0
  133. package/skills/sentry/references/sdks/elixir/tracing.md +233 -0
  134. package/skills/sentry/references/sdks/flutter/ecosystem-integrations.md +70 -0
  135. package/skills/sentry/references/sdks/flutter/error-monitoring.md +312 -0
  136. package/skills/sentry/references/sdks/flutter/index.md +728 -0
  137. package/skills/sentry/references/sdks/flutter/logging.md +387 -0
  138. package/skills/sentry/references/sdks/flutter/metrics.md +310 -0
  139. package/skills/sentry/references/sdks/flutter/profiling.md +214 -0
  140. package/skills/sentry/references/sdks/flutter/session-replay.md +308 -0
  141. package/skills/sentry/references/sdks/flutter/tracing.md +502 -0
  142. package/skills/sentry/references/sdks/go/crons.md +270 -0
  143. package/skills/sentry/references/sdks/go/error-monitoring.md +361 -0
  144. package/skills/sentry/references/sdks/go/index.md +324 -0
  145. package/skills/sentry/references/sdks/go/logging.md +354 -0
  146. package/skills/sentry/references/sdks/go/metrics.md +273 -0
  147. package/skills/sentry/references/sdks/go/profiling.md +46 -0
  148. package/skills/sentry/references/sdks/go/tracing.md +366 -0
  149. package/skills/sentry/references/sdks/index.md +41 -0
  150. package/skills/sentry/references/sdks/nestjs/ai-monitoring.md +410 -0
  151. package/skills/sentry/references/sdks/nestjs/crons.md +268 -0
  152. package/skills/sentry/references/sdks/nestjs/error-monitoring.md +729 -0
  153. package/skills/sentry/references/sdks/nestjs/index.md +699 -0
  154. package/skills/sentry/references/sdks/nestjs/logging.md +174 -0
  155. package/skills/sentry/references/sdks/nestjs/metrics.md +243 -0
  156. package/skills/sentry/references/sdks/nestjs/profiling.md +127 -0
  157. package/skills/sentry/references/sdks/nestjs/tracing.md +762 -0
  158. package/skills/sentry/references/sdks/nextjs/ai-monitoring.md +494 -0
  159. package/skills/sentry/references/sdks/nextjs/crons.md +383 -0
  160. package/skills/sentry/references/sdks/nextjs/error-monitoring.md +974 -0
  161. package/skills/sentry/references/sdks/nextjs/index.md +491 -0
  162. package/skills/sentry/references/sdks/nextjs/logging.md +381 -0
  163. package/skills/sentry/references/sdks/nextjs/metrics.md +411 -0
  164. package/skills/sentry/references/sdks/nextjs/profiling.md +403 -0
  165. package/skills/sentry/references/sdks/nextjs/session-replay.md +462 -0
  166. package/skills/sentry/references/sdks/nextjs/tracing.md +628 -0
  167. package/skills/sentry/references/sdks/node/ai-monitoring.md +303 -0
  168. package/skills/sentry/references/sdks/node/crons.md +432 -0
  169. package/skills/sentry/references/sdks/node/error-monitoring.md +1125 -0
  170. package/skills/sentry/references/sdks/node/index.md +942 -0
  171. package/skills/sentry/references/sdks/node/logging.md +380 -0
  172. package/skills/sentry/references/sdks/node/metrics.md +278 -0
  173. package/skills/sentry/references/sdks/node/profiling.md +373 -0
  174. package/skills/sentry/references/sdks/node/tracing.md +878 -0
  175. package/skills/sentry/references/sdks/php/ai-monitoring.md +310 -0
  176. package/skills/sentry/references/sdks/php/crons.md +265 -0
  177. package/skills/sentry/references/sdks/php/error-monitoring.md +626 -0
  178. package/skills/sentry/references/sdks/php/index.md +362 -0
  179. package/skills/sentry/references/sdks/php/laravel.md +542 -0
  180. package/skills/sentry/references/sdks/php/logging.md +242 -0
  181. package/skills/sentry/references/sdks/php/metrics.md +193 -0
  182. package/skills/sentry/references/sdks/php/profiling.md +115 -0
  183. package/skills/sentry/references/sdks/php/symfony.md +552 -0
  184. package/skills/sentry/references/sdks/php/tracing.md +516 -0
  185. package/skills/sentry/references/sdks/python/ai-monitoring.md +351 -0
  186. package/skills/sentry/references/sdks/python/crons.md +218 -0
  187. package/skills/sentry/references/sdks/python/error-monitoring.md +292 -0
  188. package/skills/sentry/references/sdks/python/index.md +361 -0
  189. package/skills/sentry/references/sdks/python/logging.md +234 -0
  190. package/skills/sentry/references/sdks/python/metrics.md +154 -0
  191. package/skills/sentry/references/sdks/python/profiling.md +120 -0
  192. package/skills/sentry/references/sdks/python/tracing.md +364 -0
  193. package/skills/sentry/references/sdks/react/error-monitoring.md +1607 -0
  194. package/skills/sentry/references/sdks/react/index.md +492 -0
  195. package/skills/sentry/references/sdks/react/logging.md +364 -0
  196. package/skills/sentry/references/sdks/react/profiling.md +322 -0
  197. package/skills/sentry/references/sdks/react/react-features.md +1272 -0
  198. package/skills/sentry/references/sdks/react/session-replay.md +1193 -0
  199. package/skills/sentry/references/sdks/react/tracing.md +1415 -0
  200. package/skills/sentry/references/sdks/react-native/error-monitoring.md +1481 -0
  201. package/skills/sentry/references/sdks/react-native/expo-config-plugin.md +45 -0
  202. package/skills/sentry/references/sdks/react-native/index.md +1030 -0
  203. package/skills/sentry/references/sdks/react-native/logging.md +444 -0
  204. package/skills/sentry/references/sdks/react-native/profiling.md +386 -0
  205. package/skills/sentry/references/sdks/react-native/session-replay.md +704 -0
  206. package/skills/sentry/references/sdks/react-native/tracing.md +1086 -0
  207. package/skills/sentry/references/sdks/react-native/user-feedback.md +815 -0
  208. package/skills/sentry/references/sdks/react-router-framework/error-monitoring.md +127 -0
  209. package/skills/sentry/references/sdks/react-router-framework/index.md +411 -0
  210. package/skills/sentry/references/sdks/react-router-framework/logging.md +66 -0
  211. package/skills/sentry/references/sdks/react-router-framework/profiling.md +57 -0
  212. package/skills/sentry/references/sdks/react-router-framework/react-router-framework-features.md +110 -0
  213. package/skills/sentry/references/sdks/react-router-framework/session-replay.md +67 -0
  214. package/skills/sentry/references/sdks/react-router-framework/tracing.md +96 -0
  215. package/skills/sentry/references/sdks/react-router-framework/user-feedback.md +71 -0
  216. package/skills/sentry/references/sdks/ruby/crons.md +184 -0
  217. package/skills/sentry/references/sdks/ruby/error-monitoring.md +248 -0
  218. package/skills/sentry/references/sdks/ruby/index.md +297 -0
  219. package/skills/sentry/references/sdks/ruby/logging.md +168 -0
  220. package/skills/sentry/references/sdks/ruby/metrics.md +196 -0
  221. package/skills/sentry/references/sdks/ruby/migration.md +321 -0
  222. package/skills/sentry/references/sdks/ruby/profiling.md +107 -0
  223. package/skills/sentry/references/sdks/ruby/tracing.md +388 -0
  224. package/skills/sentry/references/sdks/svelte/error-monitoring.md +456 -0
  225. package/skills/sentry/references/sdks/svelte/index.md +467 -0
  226. package/skills/sentry/references/sdks/svelte/logging.md +344 -0
  227. package/skills/sentry/references/sdks/svelte/session-replay.md +369 -0
  228. package/skills/sentry/references/sdks/svelte/tracing.md +406 -0
  229. package/skills/sentry/references/sdks/tanstack-start/error-monitoring.md +149 -0
  230. package/skills/sentry/references/sdks/tanstack-start/index.md +381 -0
  231. package/skills/sentry/references/sdks/tanstack-start/logging.md +74 -0
  232. package/skills/sentry/references/sdks/tanstack-start/session-replay.md +76 -0
  233. package/skills/sentry/references/sdks/tanstack-start/tanstackstart-features.md +128 -0
  234. package/skills/sentry/references/sdks/tanstack-start/tracing.md +123 -0
  235. package/skills/sentry/references/sdks/tanstack-start/user-feedback.md +81 -0
  236. package/skills/sentry/references/search-query-language.md +226 -0
  237. package/skills/sentry/references/semantics/angular.md +7 -0
  238. package/skills/sentry/references/semantics/app.md +28 -0
  239. package/skills/sentry/references/semantics/art.md +17 -0
  240. package/skills/sentry/references/semantics/aws.md +43 -0
  241. package/skills/sentry/references/semantics/browser.md +34 -0
  242. package/skills/sentry/references/semantics/cache.md +12 -0
  243. package/skills/sentry/references/semantics/client.md +8 -0
  244. package/skills/sentry/references/semantics/cloud.md +12 -0
  245. package/skills/sentry/references/semantics/cloudflare.md +23 -0
  246. package/skills/sentry/references/semantics/code.md +11 -0
  247. package/skills/sentry/references/semantics/culture.md +11 -0
  248. package/skills/sentry/references/semantics/db.md +21 -0
  249. package/skills/sentry/references/semantics/device.md +43 -0
  250. package/skills/sentry/references/semantics/error.md +7 -0
  251. package/skills/sentry/references/semantics/event.md +8 -0
  252. package/skills/sentry/references/semantics/exception.md +10 -0
  253. package/skills/sentry/references/semantics/faas.md +19 -0
  254. package/skills/sentry/references/semantics/file.md +8 -0
  255. package/skills/sentry/references/semantics/flag.md +7 -0
  256. package/skills/sentry/references/semantics/gcp.md +16 -0
  257. package/skills/sentry/references/semantics/gen_ai.md +53 -0
  258. package/skills/sentry/references/semantics/general.md +11 -0
  259. package/skills/sentry/references/semantics/graphql.md +9 -0
  260. package/skills/sentry/references/semantics/grpc.md +19 -0
  261. package/skills/sentry/references/semantics/http.md +34 -0
  262. package/skills/sentry/references/semantics/index.md +63 -0
  263. package/skills/sentry/references/semantics/jsonrpc.md +8 -0
  264. package/skills/sentry/references/semantics/jvm.md +12 -0
  265. package/skills/sentry/references/semantics/koa.md +7 -0
  266. package/skills/sentry/references/semantics/logger.md +7 -0
  267. package/skills/sentry/references/semantics/mcp.md +37 -0
  268. package/skills/sentry/references/semantics/mdc.md +7 -0
  269. package/skills/sentry/references/semantics/messaging.md +23 -0
  270. package/skills/sentry/references/semantics/middleware.md +7 -0
  271. package/skills/sentry/references/semantics/navigation.md +9 -0
  272. package/skills/sentry/references/semantics/nel.md +11 -0
  273. package/skills/sentry/references/semantics/network.md +17 -0
  274. package/skills/sentry/references/semantics/os.md +15 -0
  275. package/skills/sentry/references/semantics/otel.md +10 -0
  276. package/skills/sentry/references/semantics/params.md +7 -0
  277. package/skills/sentry/references/semantics/process.md +14 -0
  278. package/skills/sentry/references/semantics/react.md +7 -0
  279. package/skills/sentry/references/semantics/remix.md +7 -0
  280. package/skills/sentry/references/semantics/resource.md +7 -0
  281. package/skills/sentry/references/semantics/rpc.md +10 -0
  282. package/skills/sentry/references/semantics/score.md +10 -0
  283. package/skills/sentry/references/semantics/sentry.md +69 -0
  284. package/skills/sentry/references/semantics/server.md +8 -0
  285. package/skills/sentry/references/semantics/service.md +8 -0
  286. package/skills/sentry/references/semantics/session.md +7 -0
  287. package/skills/sentry/references/semantics/state.md +7 -0
  288. package/skills/sentry/references/semantics/thread.md +8 -0
  289. package/skills/sentry/references/semantics/timber.md +7 -0
  290. package/skills/sentry/references/semantics/trpc.md +8 -0
  291. package/skills/sentry/references/semantics/ui.md +18 -0
  292. package/skills/sentry/references/semantics/url.md +15 -0
  293. package/skills/sentry/references/semantics/user.md +17 -0
  294. package/skills/sentry/references/semantics/user_agent.md +7 -0
  295. package/skills/sentry/references/semantics/vercel.md +42 -0
  296. package/skills/sentry/references/setup-verification.md +39 -0
  297. package/skills/sentry/references/snapshots/github-actions-fanout.md +206 -0
  298. package/skills/sentry/references/snapshots/github-actions-simple.md +102 -0
  299. package/skills/sentry/references/snapshots/github-actions-swift-snapshot-testing.md +118 -0
  300. package/skills/sentry/references/snapshots/index.md +19 -0
  301. package/skills/sentry/references/snapshots/snapshot-previews.md +100 -0
  302. package/skills/sentry/references/snapshots/snapshots.md +123 -0
  303. package/skills/sentry/references/snapshots/wizard-setup.md +134 -0
  304. package/skills/testing/LICENSE +21 -0
  305. package/skills/testing/NOTICE +7 -0
  306. package/skills/testing/SKILL.md +13 -19
  307. package/skills/testing/agents/openai.yaml +1 -2
  308. package/skills/testing/references/selection.md +23 -0
  309. package/skills/testing/references/tdd.md +19 -0
  310. package/skills/testing/references/test-design.md +17 -0
  311. package/src/catalog.ts +1 -7
  312. package/skills/build-effect-apis/SKILL.md +0 -81
  313. package/skills/build-effect-apis/agents/openai.yaml +0 -4
  314. package/skills/build-effect-clis/SKILL.md +0 -92
  315. package/skills/build-effect-clis/agents/openai.yaml +0 -4
  316. package/skills/effect-architecture-audit/agents/openai.yaml +0 -4
  317. package/skills/effect-atom-state/SKILL.md +0 -97
  318. package/skills/effect-atom-state/agents/openai.yaml +0 -4
  319. package/skills/effect-ts/SKILL.md +0 -35
  320. package/skills/effect-ts/agents/openai.yaml +0 -4
  321. /package/skills/{build-effect-apis/references → effect-development/references/api}/cloudflare-workers.md +0 -0
  322. /package/skills/{build-effect-apis/references → effect-development/references/api}/runtime-assembly.md +0 -0
  323. /package/skills/{build-effect-apis/references → effect-development/references/api}/server-and-middleware.md +0 -0
  324. /package/skills/{build-effect-apis/references → effect-development/references/api}/shared-contracts.md +0 -0
  325. /package/skills/{effect-architecture-audit/references → effect-development/references/architecture}/service-and-boundary-audit.md +0 -0
  326. /package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-lifecycle.md +0 -0
  327. /package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-workflows.md +0 -0
  328. /package/skills/{effect-atom-state/references → effect-development/references/atom}/tanstack-start.md +0 -0
  329. /package/skills/{build-effect-clis/references → effect-development/references/cli}/command-design.md +0 -0
  330. /package/skills/{build-effect-clis/references → effect-development/references/cli}/processes-and-platform.md +0 -0
@@ -0,0 +1,561 @@
1
+ # Tracing — Sentry Browser SDK
2
+
3
+ > Minimum SDK: `@sentry/browser` ≥7.0.0\
4
+ > `enableInp` defaults to `true` as of SDK ≥8.0.0 (was `false` in 7.x)\
5
+ > `enableLongAnimationFrame` available since SDK ≥8.18.0\
6
+ > `inheritOrSampleWith` in `tracesSampler` available since SDK ≥9.0.0\
7
+ > `profileSessionSampleRate` replaces `profilesSampleRate` as of SDK ≥10.27.0
8
+
9
+ ---
10
+
11
+ ## Minimal Setup
12
+
13
+ ```javascript
14
+ import * as Sentry from "@sentry/browser";
15
+
16
+ Sentry.init({
17
+ dsn: "___PUBLIC_DSN___",
18
+ integrations: [Sentry.browserTracingIntegration()],
19
+ tracesSampleRate: 0.2, // Capture 20% of all transactions
20
+ });
21
+ ```
22
+
23
+ > **Disabling tracing:** Omit **both** `tracesSampleRate` and `tracesSampler`. Setting
24
+ > `tracesSampleRate: 0` does not disable tracing — it simply never sends any traces.
25
+
26
+ ---
27
+
28
+ ## `browserTracingIntegration()` — Configuration Reference
29
+
30
+ All options are passed as a single object to `browserTracingIntegration()`.
31
+
32
+ ### Page Load & Navigation
33
+
34
+ | Option | Type | Default | Description |
35
+ | ------------------------ | ------------------------------------------- | ------------- | ----------------------------------------------------------------------------------- |
36
+ | `instrumentPageLoad` | `boolean` | `true` | Create a `pageload` root span on initial page load |
37
+ | `instrumentNavigation` | `boolean` | `true` | Create a `navigation` root span on client-side history changes |
38
+ | `markBackgroundSpan` | `boolean` | `true` | Mark `pageload`/`navigation` spans as cancelled when the tab goes to the background |
39
+ | `enableReportPageLoaded` | `boolean` | `false` | Enable the `Sentry.reportPageLoaded()` utility function _(SDK ≥10.13.0)_ |
40
+ | `linkPreviousTrace` | `"in-memory" \| "session-storage" \| false` | `"in-memory"` | Controls how new `pageload` spans link to the previous trace across navigations |
41
+
42
+ ### HTTP Request Instrumentation
43
+
44
+ | Option | Type | Default | Description |
45
+ | ---------------------------- | --------------------------------------- | ------- | --------------------------------------------------------------------------- |
46
+ | `traceFetch` | `boolean` | `true` | Automatically create spans for outgoing `fetch` requests |
47
+ | `traceXHR` | `boolean` | `true` | Automatically create spans for outgoing `XMLHttpRequest` calls |
48
+ | `enableHTTPTimings` | `boolean` | `true` | Attach detailed HTTP timing data via the Performance Resource Timing API |
49
+ | `shouldCreateSpanForRequest` | `(url: string) => boolean` | — | Predicate to exclude specific requests from tracing (e.g., health checks) |
50
+ | `onRequestSpanStart` | `(span, fetchInput, fetchInit) => void` | — | Callback invoked when a span is started for an outgoing `fetch`/XHR request |
51
+
52
+ ### Interaction & Long Task Instrumentation
53
+
54
+ | Option | Type | Default | Description |
55
+ | -------------------------- | --------- | ---------------------------- | ----------------------------------------------------------------------------- |
56
+ | `enableInp` | `boolean` | `true` (8.x+), `false` (7.x) | Capture Interaction to Next Paint (INP) events |
57
+ | `interactionsSampleRate` | `number` | `1.0` | Additional sampling rate for INP spans (applied on top of `tracesSampleRate`) |
58
+ | `enableLongTask` | `boolean` | `true` | Create spans for main-thread blocking tasks exceeding 50 ms |
59
+ | `enableLongAnimationFrame` | `boolean` | `true` | Create spans for long animation frames _(SDK ≥8.18.0)_ |
60
+
61
+ ### Timing & Timeouts
62
+
63
+ | Option | Type | Default | Description |
64
+ | ------------------ | -------- | ------- | ---------------------------------------------------------------------------- |
65
+ | `idleTimeout` | `number` | `1000` | Milliseconds of inactivity before `pageload`/`navigation` span auto-finishes |
66
+ | `finalTimeout` | `number` | `30000` | Maximum lifespan (ms) for any root span regardless of activity |
67
+ | `childSpanTimeout` | `number` | `15000` | Maximum time (ms) a child span may remain open before the parent can finish |
68
+
69
+ ### Propagation & Filtering
70
+
71
+ | Option | Type | Default | Description |
72
+ | --------------------------- | --------------------------------------- | ---------------------- | ----------------------------------------------------------------------------------------- |
73
+ | `tracePropagationTargets` | `Array<string \| RegExp>` | `["localhost", /^\//]` | Outgoing requests whose URL matches an entry receive `sentry-trace` and `baggage` headers |
74
+ | `beforeStartSpan` | `(context: SpanContext) => SpanContext` | — | Modify or enrich a span’s context before it is created |
75
+ | `ignoreResourceSpans` | `Array<string>` | `[]` | Suppress automatic spans by operation category (e.g., `"resource.css"`) |
76
+ | `ignorePerformanceApiSpans` | `Array<string \| RegExp>` | `[]` | Suppress spans from `performance.mark()` / `performance.measure()` calls |
77
+
78
+ ### Full Configuration Example
79
+
80
+ ```javascript
81
+ import * as Sentry from "@sentry/browser";
82
+
83
+ Sentry.init({
84
+ dsn: "___PUBLIC_DSN___",
85
+ integrations: [
86
+ Sentry.browserTracingIntegration({
87
+ // Page / navigation spans
88
+ instrumentPageLoad: true,
89
+ instrumentNavigation: true,
90
+ markBackgroundSpan: true,
91
+ linkPreviousTrace: "in-memory",
92
+
93
+ // HTTP spans
94
+ traceFetch: true,
95
+ traceXHR: true,
96
+ enableHTTPTimings: true,
97
+ shouldCreateSpanForRequest: (url) => !url.match(/\/health\/?$/),
98
+
99
+ // INP / long-task spans
100
+ enableInp: true,
101
+ interactionsSampleRate: 0.5,
102
+ enableLongTask: true,
103
+ enableLongAnimationFrame: true,
104
+
105
+ // Timeouts
106
+ idleTimeout: 1000,
107
+ finalTimeout: 30000,
108
+ childSpanTimeout: 15000,
109
+
110
+ // Propagation
111
+ tracePropagationTargets: ["localhost", /^https:\/\/api\.yourapp\.com/],
112
+
113
+ // Normalise dynamic URL segments in transaction names
114
+ beforeStartSpan: (context) => ({
115
+ ...context,
116
+ name: location.pathname.replace(/\/[a-f0-9]{32}/g, "/<hash>").replace(/\/\d+/g, "/<id>"),
117
+ }),
118
+ }),
119
+ ],
120
+ tracesSampleRate: 1.0,
121
+ });
122
+ ```
123
+
124
+ ---
125
+
126
+ ## Automatic Instrumentation
127
+
128
+ When `browserTracingIntegration()` is active, the following are captured automatically:
129
+
130
+ ### Page Loads
131
+
132
+ A root `pageload` span covers the full page-load lifecycle.
133
+ Child spans are attached for:
134
+
135
+ - **Web Vitals**: LCP, CLS, TTFB
136
+ - **Resource loads**: CSS, JS, images, fonts (each as a `resource.*` child span)
137
+ - **HTTP requests** made during load
138
+
139
+ ### Navigations (SPA Route Changes)
140
+
141
+ Each client-side route change (via the History API) produces a new `navigation` root
142
+ span, along with any HTTP requests and web vitals captured during that navigation.
143
+
144
+ ### Fetch / XHR Requests
145
+
146
+ Every outgoing `fetch` or `XMLHttpRequest` produces an `http.client` child span
147
+ containing: request duration, HTTP status code, and URL.
148
+
149
+ Use `shouldCreateSpanForRequest` to exclude URLs you don’t want traced:
150
+
151
+ ```javascript
152
+ Sentry.browserTracingIntegration({
153
+ shouldCreateSpanForRequest: (url) => {
154
+ return !url.includes("/health") && !url.includes("/metrics");
155
+ },
156
+ });
157
+ ```
158
+
159
+ ### Web Vitals
160
+
161
+ | Metric | Description | Auto-captured |
162
+ | ----------------------------------- | ----------------------------- | ------------- |
163
+ | **LCP** — Largest Contentful Paint | Perceived load speed | ✅ Always |
164
+ | **CLS** — Cumulative Layout Shift | Visual stability | ✅ Always |
165
+ | **TTFB** — Time to First Byte | Server responsiveness | ✅ Always |
166
+ | **INP** — Interaction to Next Paint | Responsiveness to user inputs | ✅ (SDK ≥8.x) |
167
+
168
+ ### Long Tasks
169
+
170
+ Main-thread tasks blocking the browser for more than **50 ms** are recorded as
171
+ `ui.long-task` child spans.
172
+
173
+ ### Custom Router Integration
174
+
175
+ To integrate with a router that manages its own history, disable automatic span creation
176
+ and call the low-level helpers directly:
177
+
178
+ ```javascript
179
+ const client = Sentry.init({
180
+ integrations: [
181
+ Sentry.browserTracingIntegration({
182
+ instrumentNavigation: false,
183
+ instrumentPageLoad: false,
184
+ }),
185
+ ],
186
+ });
187
+
188
+ // Initial page load
189
+ let pageLoadSpan = Sentry.startBrowserTracingPageLoadSpan(client, {
190
+ name: window.location.pathname,
191
+ attributes: {
192
+ [Sentry.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: "url",
193
+ },
194
+ });
195
+
196
+ myRouter.on("routeChange", (route) => {
197
+ if (pageLoadSpan) {
198
+ // Update the name of the in-flight page-load span
199
+ pageLoadSpan.updateName(route.name);
200
+ pageLoadSpan.setAttribute(Sentry.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, "route");
201
+ pageLoadSpan = undefined;
202
+ } else {
203
+ // Start a navigation span for subsequent route changes
204
+ Sentry.startBrowserTracingNavigationSpan(client, {
205
+ op: "navigation",
206
+ name: route.name,
207
+ attributes: {
208
+ [Sentry.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: "route",
209
+ },
210
+ });
211
+ }
212
+ });
213
+ ```
214
+
215
+ ---
216
+
217
+ ## Custom Spans
218
+
219
+ Three functions are available for manual instrumentation.
220
+ All accept the same options object.
221
+
222
+ ### `startSpan(options, callback)` — Auto-ending Span (Recommended)
223
+
224
+ Creates an active span that ends automatically when the callback returns (sync or
225
+ async).
226
+
227
+ ```javascript
228
+ // Synchronous
229
+ const result = Sentry.startSpan({ name: "process-checkout", op: "function" }, () => {
230
+ return processCheckoutData();
231
+ });
232
+
233
+ // Asynchronous
234
+ const data = await Sentry.startSpan({ name: "fetch-user-profile", op: "http.client" }, async () => {
235
+ const response = await fetch("/api/user/profile");
236
+ return response.json();
237
+ });
238
+
239
+ // With attributes
240
+ const result = await Sentry.startSpan(
241
+ {
242
+ name: "query-products",
243
+ op: "db",
244
+ attributes: {
245
+ "db.system": "postgresql",
246
+ "db.table": "products",
247
+ "db.query.count": 50,
248
+ },
249
+ },
250
+ () => db.query("SELECT * FROM products LIMIT 50"),
251
+ );
252
+ ```
253
+
254
+ ---
255
+
256
+ ### `startSpanManual(options, callback)` — Manually-ended Active Span
257
+
258
+ Creates an active span that must be ended explicitly by calling `span.end()`. Use when
259
+ the span’s end is decoupled from the callback’s return (e.g., event-driven code).
260
+
261
+ ```javascript
262
+ function attachUploadTracing(input) {
263
+ input.addEventListener("change", (event) => {
264
+ Sentry.startSpanManual({ name: "file-upload", op: "file.upload" }, (span) => {
265
+ const file = event.target.files[0];
266
+ span.setAttribute("file.size", file.size);
267
+ span.setAttribute("file.type", file.type);
268
+
269
+ const upload = uploadFile(file);
270
+ upload.on("complete", () => {
271
+ span.setStatus({ code: 1 }); // ok
272
+ span.end();
273
+ });
274
+ upload.on("error", (err) => {
275
+ span.setStatus({ code: 2 }); // error
276
+ span.end();
277
+ });
278
+ });
279
+ });
280
+ }
281
+ ```
282
+
283
+ ---
284
+
285
+ ### `startInactiveSpan(options)` — Manually-ended Inactive Span
286
+
287
+ Creates a span that is **not** set as the active span.
288
+ Useful for parallel work sharing a common parent.
289
+
290
+ ```javascript
291
+ const span1 = Sentry.startInactiveSpan({ name: "task-a", op: "function" });
292
+ const span2 = Sentry.startInactiveSpan({ name: "task-b", op: "function" });
293
+
294
+ await Promise.all([workA(), workB()]);
295
+
296
+ span1.end();
297
+ span2.end();
298
+ ```
299
+
300
+ ---
301
+
302
+ ### Span Options
303
+
304
+ | Option | Type | Required | Description |
305
+ | ------------------ | ---------------------------------------------------------------------------------- | -------- | -------------------------------------------------------------------- |
306
+ | `name` | `string` | ✅ | Human-readable identifier shown in the Sentry UI |
307
+ | `op` | `string` | — | Operation type for categorization (see Operation Types below) |
308
+ | `startTime` | `number` | — | Custom Unix timestamp (seconds, sub-second precision) for span start |
309
+ | `attributes` | `Record<string, string \| number \| boolean \| string[] \| number[] \| boolean[]>` | — | Key/value metadata attached to the span |
310
+ | `parentSpan` | `Span` | — | Explicitly designate a parent span instead of using the active span |
311
+ | `onlyIfParent` | `boolean` | — | If `true`, the span is a no-op when there is no active parent span |
312
+ | `forceTransaction` | `boolean` | — | Force this span to appear as a root transaction in the Sentry UI |
313
+
314
+ ---
315
+
316
+ ### Operation Types
317
+
318
+ Use well-known `op` values so the Sentry UI presents appropriate icons and filtering:
319
+
320
+ | `op` Value | Use Case |
321
+ | ----------------- | ------------------------------ |
322
+ | `http.client` | Outgoing HTTP requests |
323
+ | `db` | Database queries |
324
+ | `db.system` | Database system operations |
325
+ | `ui.click` | User click interactions |
326
+ | `ui.long-task` | Long-running main-thread tasks |
327
+ | `navigation` | Client-side route transitions |
328
+ | `pageload` | Initial full page load |
329
+ | `resource.script` | Script resource load |
330
+ | `resource.css` | CSS resource load |
331
+ | `resource.img` | Image resource load |
332
+ | `function` | Generic function calls |
333
+ | `file.upload` | File upload operations |
334
+
335
+ ---
336
+
337
+ ### Working with Span Attributes and Status
338
+
339
+ ```javascript
340
+ // Set attributes at creation
341
+ Sentry.startSpan(
342
+ {
343
+ name: "process-payment",
344
+ attributes: { "payment.provider": "stripe", "payment.amount": 9999 },
345
+ },
346
+ () => processPayment(),
347
+ );
348
+
349
+ // On an existing span
350
+ const span = Sentry.getActiveSpan();
351
+ if (span) {
352
+ span.setAttribute("key", "value");
353
+ span.setAttributes({ key1: "val1", key2: 42 });
354
+ }
355
+
356
+ // Update span name (SDK ≥8.47.0)
357
+ Sentry.updateSpanName(span, "New Name");
358
+
359
+ // Set span status
360
+ span.setStatus({ code: 1 }); // 0 = unknown, 1 = ok, 2 = error
361
+ span.setHttpStatus(404);
362
+ ```
363
+
364
+ ---
365
+
366
+ ## Distributed Tracing
367
+
368
+ Distributed tracing connects browser activity to backend requests, enabling a single
369
+ timeline across services.
370
+
371
+ ### How It Works
372
+
373
+ Sentry propagates two HTTP headers on every outgoing request matching
374
+ `tracePropagationTargets`:
375
+
376
+ | Header | Contents |
377
+ | -------------- | ------------------------------------------------------------------------ |
378
+ | `sentry-trace` | Trace ID, parent span ID, and sampling decision flag |
379
+ | `baggage` | Dynamic sampling context: trace ID, public key, sample rate, environment |
380
+
381
+ > **CORS:** Both headers must be added to your server’s `Access-Control-Allow-Headers` —
382
+ > otherwise browsers or gateways will strip them.
383
+
384
+ ### `tracePropagationTargets` Configuration
385
+
386
+ ```javascript
387
+ Sentry.init({
388
+ dsn: "___PUBLIC_DSN___",
389
+ integrations: [Sentry.browserTracingIntegration()],
390
+ tracesSampleRate: 1.0,
391
+ tracePropagationTargets: ["localhost", /^https:\/\/api\.yourapp\.com/],
392
+ });
393
+ ```
394
+
395
+ **Rules:**
396
+
397
+ - String entries = exact substring match against the full URL
398
+ - RegExp entries = tested against the full URL (including scheme and port)
399
+ - Port numbers matter — a service on port 8080 requires a separate entry
400
+ - Set to `[]` to **disable** header propagation entirely
401
+
402
+ **Common patterns:**
403
+
404
+ ```javascript
405
+ // E-commerce with multiple backend services
406
+ tracePropagationTargets: ["https://api.myecommerce.com", "https://auth.myecommerce.com"];
407
+
408
+ // Mixed absolute URLs and relative API paths
409
+ tracePropagationTargets: ["https://api.myapp.com", /^\/api\//];
410
+
411
+ // Disable all header propagation
412
+ tracePropagationTargets: [];
413
+ ```
414
+
415
+ ---
416
+
417
+ ### Continuing a Server-Initiated Trace
418
+
419
+ When your server renders the HTML, emit the current trace context as `<meta>` tags.
420
+ The `browserTracingIntegration` reads them automatically on page load and continues the
421
+ same trace:
422
+
423
+ ```html
424
+ <meta name="sentry-trace" content="12345678901234567890123456789012-1234567890123456-1" />
425
+ <meta
426
+ name="baggage"
427
+ content="sentry-trace_id=12345678901234567890123456789012,sentry-environment=production,sentry-sample_rate=1"
428
+ />
429
+ ```
430
+
431
+ ---
432
+
433
+ ### Manual Trace Propagation (Non-HTTP Channels)
434
+
435
+ For WebSockets, message queues, or any non-HTTP transport:
436
+
437
+ ```javascript
438
+ const traceData = Sentry.getTraceData();
439
+
440
+ webSocket.send(
441
+ JSON.stringify({
442
+ payload: myData,
443
+ metadata: {
444
+ sentryTrace: traceData["sentry-trace"],
445
+ baggage: traceData["baggage"],
446
+ },
447
+ }),
448
+ );
449
+ ```
450
+
451
+ ---
452
+
453
+ ## Sampling
454
+
455
+ ### `tracesSampleRate` — Uniform Sampling
456
+
457
+ ```javascript
458
+ Sentry.init({
459
+ tracesSampleRate: 0.2, // Sample 20% of transactions
460
+ });
461
+ ```
462
+
463
+ - Range: `0` – `1` (random, uniform percentage)
464
+ - `0` = send no traces (tracing is still “active”; omit both options to fully disable)
465
+ - `1` = send 100% of traces
466
+
467
+ ### `tracesSampler` — Dynamic / Context-Aware Sampling
468
+
469
+ A function that receives a `SamplingContext` and returns a sample rate (`0`–`1`) or a
470
+ `boolean`.
471
+
472
+ ```javascript
473
+ Sentry.init({
474
+ tracesSampler: ({ name, attributes, inheritOrSampleWith }) => {
475
+ // Never sample health checks
476
+ if (name.includes("healthcheck") || name.includes("/health")) return 0;
477
+
478
+ // Always sample authentication flows
479
+ if (name.includes("auth") || name.includes("login")) return 1;
480
+
481
+ // Sample checkout at high rate (business critical)
482
+ if (name.includes("checkout")) return 0.5;
483
+
484
+ // For everything else, inherit the parent's decision or default to 20%
485
+ return inheritOrSampleWith(0.2);
486
+ },
487
+ });
488
+ ```
489
+
490
+ ### `SamplingContext` Properties
491
+
492
+ | Property | Type | Description |
493
+ | --------------------------- | ------------------------- | -------------------------------------------------------------------- |
494
+ | `name` | `string` | The span’s initial name |
495
+ | `attributes` | `Record<string, unknown>` | Initial span attributes |
496
+ | `parentSampled` | `boolean \| undefined` | Whether the parent span was sampled (`undefined` if no parent) |
497
+ | `parentSampleRate` | `number \| undefined` | The sample rate used by the incoming trace |
498
+ | `inheritOrSampleWith(rate)` | `function` | _(SDK ≥9)_ Returns `parentSampled` if defined, otherwise uses `rate` |
499
+
500
+ ### Sampling Precedence
501
+
502
+ 1. **`tracesSampler`** — highest priority (if defined)
503
+ 2. **Parent sampling decision** — used when no sampler is defined but a parent trace
504
+ exists
505
+ 3. **`tracesSampleRate`** — fallback uniform rate
506
+
507
+ ### INP-Specific Sampling
508
+
509
+ `interactionsSampleRate` applies an **additional** multiplier on top of
510
+ `tracesSampleRate` for INP interaction spans:
511
+
512
+ ```javascript
513
+ Sentry.init({
514
+ tracesSampleRate: 0.5,
515
+ integrations: [
516
+ Sentry.browserTracingIntegration({
517
+ enableInp: true,
518
+ interactionsSampleRate: 0.1, // Effective rate: 50% × 10% = 5% of interactions
519
+ }),
520
+ ],
521
+ });
522
+ ```
523
+
524
+ ---
525
+
526
+ ## Best Practices
527
+
528
+ - **Set `tracePropagationTargets` explicitly** — the default (`localhost` + `/`) is
529
+ rarely correct for production.
530
+ Define your API origins precisely.
531
+ - **Use `beforeStartSpan` to normalize transaction names** — avoid high cardinality from
532
+ dynamic URLs (`/users/123` → `/users/<id>`).
533
+ - **Use `shouldCreateSpanForRequest` to exclude noise** — skip health checks, analytics
534
+ pixels, and third-party beacons.
535
+ - **Prefer `startSpan` over `startInactiveSpan`** — the auto-ending behavior prevents
536
+ runaway spans.
537
+ - **Set `op` on custom spans** — the Sentry UI uses `op` for icons, grouping, and
538
+ performance charts.
539
+ - **Use `inheritOrSampleWith` in `tracesSampler`** — ensures sampling decisions are
540
+ deterministically propagated from parent to child traces.
541
+ - **Add CORS headers on your servers** — `sentry-trace` and `baggage` must be in
542
+ `Access-Control-Allow-Headers` and `Access-Control-Expose-Headers`.
543
+ - **Tune `idleTimeout` for your SPA** — if your navigation transitions are slow (>1s),
544
+ increase `idleTimeout` to avoid premature span termination.
545
+
546
+ ---
547
+
548
+ ## Troubleshooting
549
+
550
+ | Issue | Solution |
551
+ | ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ |
552
+ | Transactions not appearing in Sentry | Ensure `tracesSampleRate > 0` (or `tracesSampler` returns a value > 0). Check that `browserTracingIntegration()` is in the `integrations` array. |
553
+ | Missing `sentry-trace` / `baggage` headers on requests | Check `tracePropagationTargets` — the request URL must match an entry. Also verify CORS headers allow these. |
554
+ | Transaction names showing raw URLs with IDs | Use `beforeStartSpan` to normalize dynamic URL segments. |
555
+ | Distributed trace not connecting to backend | Ensure the backend SDK reads `sentry-trace` and `baggage` headers. Add them to `Access-Control-Allow-Headers`. |
556
+ | `pageload` span ends too early | Increase `idleTimeout` (default: 1000ms) or `finalTimeout` (default: 30000ms). |
557
+ | INP spans not appearing | Requires SDK ≥8.0.0 (enabled by default). In SDK 7.x set `enableInp: true` explicitly. |
558
+ | Too many transactions overwhelming quota | Use `tracesSampler` to sample high-volume routes at a lower rate. Drop health checks entirely (return `0`). |
559
+ | Parallel spans showing wrong parent | Use `startInactiveSpan` with explicit `parentSpan` option to control hierarchy. |
560
+ | `beforeSendTransaction` not called | Ensure you’re returning from `beforeSend` correctly — `beforeSendTransaction` is a separate hook for transactions only. |
561
+ | Long tasks not captured | Ensure `enableLongTask: true` (default). Long animation frames require SDK ≥8.18.0 and `enableLongAnimationFrame: true`. |