@danieljvdm/dev-kit 1.0.2 → 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 (329) hide show
  1. package/README.md +6 -6
  2. package/package.json +1 -1
  3. package/skill-sources.jsonc +2 -33
  4. package/skill-sources.lock.json +15 -117
  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 +10 -70
  45. package/skills/open-pull-request/references/evidence.md +22 -0
  46. package/skills/open-pull-request/references/explanation.md +21 -0
  47. package/skills/open-pull-request/references/publication.md +21 -0
  48. package/skills/sentry/LICENSE +202 -0
  49. package/skills/sentry/LICENSE-UPSTREAM +21 -0
  50. package/skills/sentry/NOTICE +14 -0
  51. package/skills/sentry/SKILL.md +33 -0
  52. package/skills/sentry/references/alert-payloads.md +105 -0
  53. package/skills/sentry/references/alerts.md +17 -0
  54. package/skills/sentry/references/artifacts.md +25 -0
  55. package/skills/sentry/references/auth-token.md +65 -0
  56. package/skills/sentry/references/concepts/ai-monitoring.md +131 -0
  57. package/skills/sentry/references/concepts/choosing-a-signal.md +78 -0
  58. package/skills/sentry/references/concepts/crons.md +50 -0
  59. package/skills/sentry/references/concepts/data-scrubbing.md +43 -0
  60. package/skills/sentry/references/concepts/errors.md +40 -0
  61. package/skills/sentry/references/concepts/logging.md +85 -0
  62. package/skills/sentry/references/concepts/metrics.md +49 -0
  63. package/skills/sentry/references/concepts/monitors.md +78 -0
  64. package/skills/sentry/references/concepts/profiling.md +38 -0
  65. package/skills/sentry/references/concepts/reduce-volume.md +49 -0
  66. package/skills/sentry/references/concepts/releases.md +43 -0
  67. package/skills/sentry/references/concepts/session-replay.md +35 -0
  68. package/skills/sentry/references/concepts/tracing.md +54 -0
  69. package/skills/sentry/references/concepts/user-feedback.md +36 -0
  70. package/skills/sentry/references/debug-artifacts/android.md +68 -0
  71. package/skills/sentry/references/debug-artifacts/apple.md +96 -0
  72. package/skills/sentry/references/debug-artifacts/dotnet.md +70 -0
  73. package/skills/sentry/references/debug-artifacts/flutter.md +65 -0
  74. package/skills/sentry/references/debug-artifacts/index.md +75 -0
  75. package/skills/sentry/references/debug-artifacts/javascript.md +94 -0
  76. package/skills/sentry/references/debug-artifacts/matching.md +73 -0
  77. package/skills/sentry/references/debug-artifacts/react-native.md +75 -0
  78. package/skills/sentry/references/first-error-setup.md +25 -0
  79. package/skills/sentry/references/instrumentation.md +30 -0
  80. package/skills/sentry/references/issues.md +32 -0
  81. package/skills/sentry/references/new-project.md +17 -0
  82. package/skills/sentry/references/otel-exporter.md +30 -0
  83. package/skills/sentry/references/release-workflow.md +31 -0
  84. package/skills/sentry/references/releases/ci-pipeline.md +214 -0
  85. package/skills/sentry/references/releases/index.md +93 -0
  86. package/skills/sentry/references/releases/suspect-commits.md +155 -0
  87. package/skills/sentry/references/releases/tagging.md +131 -0
  88. package/skills/sentry/references/releases/troubleshooting.md +67 -0
  89. package/skills/sentry/references/sdks/android/crons.md +305 -0
  90. package/skills/sentry/references/sdks/android/error-monitoring.md +800 -0
  91. package/skills/sentry/references/sdks/android/index.md +748 -0
  92. package/skills/sentry/references/sdks/android/integrations.md +48 -0
  93. package/skills/sentry/references/sdks/android/logging.md +374 -0
  94. package/skills/sentry/references/sdks/android/metrics.md +288 -0
  95. package/skills/sentry/references/sdks/android/profiling.md +397 -0
  96. package/skills/sentry/references/sdks/android/session-replay.md +406 -0
  97. package/skills/sentry/references/sdks/android/tracing.md +861 -0
  98. package/skills/sentry/references/sdks/browser/error-monitoring.md +861 -0
  99. package/skills/sentry/references/sdks/browser/index.md +714 -0
  100. package/skills/sentry/references/sdks/browser/logging.md +315 -0
  101. package/skills/sentry/references/sdks/browser/profiling.md +236 -0
  102. package/skills/sentry/references/sdks/browser/session-replay.md +586 -0
  103. package/skills/sentry/references/sdks/browser/tracing.md +561 -0
  104. package/skills/sentry/references/sdks/browser/user-feedback.md +354 -0
  105. package/skills/sentry/references/sdks/cloudflare/ai-monitoring.md +661 -0
  106. package/skills/sentry/references/sdks/cloudflare/crons.md +231 -0
  107. package/skills/sentry/references/sdks/cloudflare/durable-objects.md +381 -0
  108. package/skills/sentry/references/sdks/cloudflare/error-monitoring.md +329 -0
  109. package/skills/sentry/references/sdks/cloudflare/index.md +698 -0
  110. package/skills/sentry/references/sdks/cloudflare/logging.md +169 -0
  111. package/skills/sentry/references/sdks/cloudflare/nodejs-compat.md +134 -0
  112. package/skills/sentry/references/sdks/cloudflare/tracing.md +475 -0
  113. package/skills/sentry/references/sdks/cocoa/error-monitoring.md +394 -0
  114. package/skills/sentry/references/sdks/cocoa/index.md +497 -0
  115. package/skills/sentry/references/sdks/cocoa/logging.md +209 -0
  116. package/skills/sentry/references/sdks/cocoa/metrics.md +136 -0
  117. package/skills/sentry/references/sdks/cocoa/profiling.md +223 -0
  118. package/skills/sentry/references/sdks/cocoa/session-replay.md +257 -0
  119. package/skills/sentry/references/sdks/cocoa/tracing.md +524 -0
  120. package/skills/sentry/references/sdks/cocoa/user-feedback.md +310 -0
  121. package/skills/sentry/references/sdks/dotnet/crons.md +465 -0
  122. package/skills/sentry/references/sdks/dotnet/error-monitoring.md +1100 -0
  123. package/skills/sentry/references/sdks/dotnet/index.md +614 -0
  124. package/skills/sentry/references/sdks/dotnet/logging.md +556 -0
  125. package/skills/sentry/references/sdks/dotnet/metrics.md +229 -0
  126. package/skills/sentry/references/sdks/dotnet/profiling.md +296 -0
  127. package/skills/sentry/references/sdks/dotnet/tracing.md +897 -0
  128. package/skills/sentry/references/sdks/elixir/crons.md +371 -0
  129. package/skills/sentry/references/sdks/elixir/error-monitoring.md +335 -0
  130. package/skills/sentry/references/sdks/elixir/index.md +383 -0
  131. package/skills/sentry/references/sdks/elixir/logging.md +239 -0
  132. package/skills/sentry/references/sdks/elixir/tracing.md +233 -0
  133. package/skills/sentry/references/sdks/flutter/ecosystem-integrations.md +70 -0
  134. package/skills/sentry/references/sdks/flutter/error-monitoring.md +312 -0
  135. package/skills/sentry/references/sdks/flutter/index.md +728 -0
  136. package/skills/sentry/references/sdks/flutter/logging.md +387 -0
  137. package/skills/sentry/references/sdks/flutter/metrics.md +310 -0
  138. package/skills/sentry/references/sdks/flutter/profiling.md +214 -0
  139. package/skills/sentry/references/sdks/flutter/session-replay.md +308 -0
  140. package/skills/sentry/references/sdks/flutter/tracing.md +502 -0
  141. package/skills/sentry/references/sdks/go/crons.md +270 -0
  142. package/skills/sentry/references/sdks/go/error-monitoring.md +361 -0
  143. package/skills/sentry/references/sdks/go/index.md +324 -0
  144. package/skills/sentry/references/sdks/go/logging.md +354 -0
  145. package/skills/sentry/references/sdks/go/metrics.md +273 -0
  146. package/skills/sentry/references/sdks/go/profiling.md +46 -0
  147. package/skills/sentry/references/sdks/go/tracing.md +366 -0
  148. package/skills/sentry/references/sdks/index.md +41 -0
  149. package/skills/sentry/references/sdks/nestjs/ai-monitoring.md +410 -0
  150. package/skills/sentry/references/sdks/nestjs/crons.md +268 -0
  151. package/skills/sentry/references/sdks/nestjs/error-monitoring.md +729 -0
  152. package/skills/sentry/references/sdks/nestjs/index.md +699 -0
  153. package/skills/sentry/references/sdks/nestjs/logging.md +174 -0
  154. package/skills/sentry/references/sdks/nestjs/metrics.md +243 -0
  155. package/skills/sentry/references/sdks/nestjs/profiling.md +127 -0
  156. package/skills/sentry/references/sdks/nestjs/tracing.md +762 -0
  157. package/skills/sentry/references/sdks/nextjs/ai-monitoring.md +494 -0
  158. package/skills/sentry/references/sdks/nextjs/crons.md +383 -0
  159. package/skills/sentry/references/sdks/nextjs/error-monitoring.md +974 -0
  160. package/skills/sentry/references/sdks/nextjs/index.md +491 -0
  161. package/skills/sentry/references/sdks/nextjs/logging.md +381 -0
  162. package/skills/sentry/references/sdks/nextjs/metrics.md +411 -0
  163. package/skills/sentry/references/sdks/nextjs/profiling.md +403 -0
  164. package/skills/sentry/references/sdks/nextjs/session-replay.md +462 -0
  165. package/skills/sentry/references/sdks/nextjs/tracing.md +628 -0
  166. package/skills/sentry/references/sdks/node/ai-monitoring.md +303 -0
  167. package/skills/sentry/references/sdks/node/crons.md +432 -0
  168. package/skills/sentry/references/sdks/node/error-monitoring.md +1125 -0
  169. package/skills/sentry/references/sdks/node/index.md +942 -0
  170. package/skills/sentry/references/sdks/node/logging.md +380 -0
  171. package/skills/sentry/references/sdks/node/metrics.md +278 -0
  172. package/skills/sentry/references/sdks/node/profiling.md +373 -0
  173. package/skills/sentry/references/sdks/node/tracing.md +878 -0
  174. package/skills/sentry/references/sdks/php/ai-monitoring.md +310 -0
  175. package/skills/sentry/references/sdks/php/crons.md +265 -0
  176. package/skills/sentry/references/sdks/php/error-monitoring.md +626 -0
  177. package/skills/sentry/references/sdks/php/index.md +362 -0
  178. package/skills/sentry/references/sdks/php/laravel.md +542 -0
  179. package/skills/sentry/references/sdks/php/logging.md +242 -0
  180. package/skills/sentry/references/sdks/php/metrics.md +193 -0
  181. package/skills/sentry/references/sdks/php/profiling.md +115 -0
  182. package/skills/sentry/references/sdks/php/symfony.md +552 -0
  183. package/skills/sentry/references/sdks/php/tracing.md +516 -0
  184. package/skills/sentry/references/sdks/python/ai-monitoring.md +351 -0
  185. package/skills/sentry/references/sdks/python/crons.md +218 -0
  186. package/skills/sentry/references/sdks/python/error-monitoring.md +292 -0
  187. package/skills/sentry/references/sdks/python/index.md +361 -0
  188. package/skills/sentry/references/sdks/python/logging.md +234 -0
  189. package/skills/sentry/references/sdks/python/metrics.md +154 -0
  190. package/skills/sentry/references/sdks/python/profiling.md +120 -0
  191. package/skills/sentry/references/sdks/python/tracing.md +364 -0
  192. package/skills/sentry/references/sdks/react/error-monitoring.md +1607 -0
  193. package/skills/sentry/references/sdks/react/index.md +492 -0
  194. package/skills/sentry/references/sdks/react/logging.md +364 -0
  195. package/skills/sentry/references/sdks/react/profiling.md +322 -0
  196. package/skills/sentry/references/sdks/react/react-features.md +1272 -0
  197. package/skills/sentry/references/sdks/react/session-replay.md +1193 -0
  198. package/skills/sentry/references/sdks/react/tracing.md +1415 -0
  199. package/skills/sentry/references/sdks/react-native/error-monitoring.md +1481 -0
  200. package/skills/sentry/references/sdks/react-native/expo-config-plugin.md +45 -0
  201. package/skills/sentry/references/sdks/react-native/index.md +1030 -0
  202. package/skills/sentry/references/sdks/react-native/logging.md +444 -0
  203. package/skills/sentry/references/sdks/react-native/profiling.md +386 -0
  204. package/skills/sentry/references/sdks/react-native/session-replay.md +704 -0
  205. package/skills/sentry/references/sdks/react-native/tracing.md +1086 -0
  206. package/skills/sentry/references/sdks/react-native/user-feedback.md +815 -0
  207. package/skills/sentry/references/sdks/react-router-framework/error-monitoring.md +127 -0
  208. package/skills/sentry/references/sdks/react-router-framework/index.md +411 -0
  209. package/skills/sentry/references/sdks/react-router-framework/logging.md +66 -0
  210. package/skills/sentry/references/sdks/react-router-framework/profiling.md +57 -0
  211. package/skills/sentry/references/sdks/react-router-framework/react-router-framework-features.md +110 -0
  212. package/skills/sentry/references/sdks/react-router-framework/session-replay.md +67 -0
  213. package/skills/sentry/references/sdks/react-router-framework/tracing.md +96 -0
  214. package/skills/sentry/references/sdks/react-router-framework/user-feedback.md +71 -0
  215. package/skills/sentry/references/sdks/ruby/crons.md +184 -0
  216. package/skills/sentry/references/sdks/ruby/error-monitoring.md +248 -0
  217. package/skills/sentry/references/sdks/ruby/index.md +297 -0
  218. package/skills/sentry/references/sdks/ruby/logging.md +168 -0
  219. package/skills/sentry/references/sdks/ruby/metrics.md +196 -0
  220. package/skills/sentry/references/sdks/ruby/migration.md +321 -0
  221. package/skills/sentry/references/sdks/ruby/profiling.md +107 -0
  222. package/skills/sentry/references/sdks/ruby/tracing.md +388 -0
  223. package/skills/sentry/references/sdks/svelte/error-monitoring.md +456 -0
  224. package/skills/sentry/references/sdks/svelte/index.md +467 -0
  225. package/skills/sentry/references/sdks/svelte/logging.md +344 -0
  226. package/skills/sentry/references/sdks/svelte/session-replay.md +369 -0
  227. package/skills/sentry/references/sdks/svelte/tracing.md +406 -0
  228. package/skills/sentry/references/sdks/tanstack-start/error-monitoring.md +149 -0
  229. package/skills/sentry/references/sdks/tanstack-start/index.md +381 -0
  230. package/skills/sentry/references/sdks/tanstack-start/logging.md +74 -0
  231. package/skills/sentry/references/sdks/tanstack-start/session-replay.md +76 -0
  232. package/skills/sentry/references/sdks/tanstack-start/tanstackstart-features.md +128 -0
  233. package/skills/sentry/references/sdks/tanstack-start/tracing.md +123 -0
  234. package/skills/sentry/references/sdks/tanstack-start/user-feedback.md +81 -0
  235. package/skills/sentry/references/search-query-language.md +226 -0
  236. package/skills/sentry/references/semantics/angular.md +7 -0
  237. package/skills/sentry/references/semantics/app.md +28 -0
  238. package/skills/sentry/references/semantics/art.md +17 -0
  239. package/skills/sentry/references/semantics/aws.md +43 -0
  240. package/skills/sentry/references/semantics/browser.md +34 -0
  241. package/skills/sentry/references/semantics/cache.md +12 -0
  242. package/skills/sentry/references/semantics/client.md +8 -0
  243. package/skills/sentry/references/semantics/cloud.md +12 -0
  244. package/skills/sentry/references/semantics/cloudflare.md +23 -0
  245. package/skills/sentry/references/semantics/code.md +11 -0
  246. package/skills/sentry/references/semantics/culture.md +11 -0
  247. package/skills/sentry/references/semantics/db.md +21 -0
  248. package/skills/sentry/references/semantics/device.md +43 -0
  249. package/skills/sentry/references/semantics/error.md +7 -0
  250. package/skills/sentry/references/semantics/event.md +8 -0
  251. package/skills/sentry/references/semantics/exception.md +10 -0
  252. package/skills/sentry/references/semantics/faas.md +19 -0
  253. package/skills/sentry/references/semantics/file.md +8 -0
  254. package/skills/sentry/references/semantics/flag.md +7 -0
  255. package/skills/sentry/references/semantics/gcp.md +16 -0
  256. package/skills/sentry/references/semantics/gen_ai.md +53 -0
  257. package/skills/sentry/references/semantics/general.md +11 -0
  258. package/skills/sentry/references/semantics/graphql.md +9 -0
  259. package/skills/sentry/references/semantics/grpc.md +19 -0
  260. package/skills/sentry/references/semantics/http.md +34 -0
  261. package/skills/sentry/references/semantics/index.md +63 -0
  262. package/skills/sentry/references/semantics/jsonrpc.md +8 -0
  263. package/skills/sentry/references/semantics/jvm.md +12 -0
  264. package/skills/sentry/references/semantics/koa.md +7 -0
  265. package/skills/sentry/references/semantics/logger.md +7 -0
  266. package/skills/sentry/references/semantics/mcp.md +37 -0
  267. package/skills/sentry/references/semantics/mdc.md +7 -0
  268. package/skills/sentry/references/semantics/messaging.md +23 -0
  269. package/skills/sentry/references/semantics/middleware.md +7 -0
  270. package/skills/sentry/references/semantics/navigation.md +9 -0
  271. package/skills/sentry/references/semantics/nel.md +11 -0
  272. package/skills/sentry/references/semantics/network.md +17 -0
  273. package/skills/sentry/references/semantics/os.md +15 -0
  274. package/skills/sentry/references/semantics/otel.md +10 -0
  275. package/skills/sentry/references/semantics/params.md +7 -0
  276. package/skills/sentry/references/semantics/process.md +14 -0
  277. package/skills/sentry/references/semantics/react.md +7 -0
  278. package/skills/sentry/references/semantics/remix.md +7 -0
  279. package/skills/sentry/references/semantics/resource.md +7 -0
  280. package/skills/sentry/references/semantics/rpc.md +10 -0
  281. package/skills/sentry/references/semantics/score.md +10 -0
  282. package/skills/sentry/references/semantics/sentry.md +69 -0
  283. package/skills/sentry/references/semantics/server.md +8 -0
  284. package/skills/sentry/references/semantics/service.md +8 -0
  285. package/skills/sentry/references/semantics/session.md +7 -0
  286. package/skills/sentry/references/semantics/state.md +7 -0
  287. package/skills/sentry/references/semantics/thread.md +8 -0
  288. package/skills/sentry/references/semantics/timber.md +7 -0
  289. package/skills/sentry/references/semantics/trpc.md +8 -0
  290. package/skills/sentry/references/semantics/ui.md +18 -0
  291. package/skills/sentry/references/semantics/url.md +15 -0
  292. package/skills/sentry/references/semantics/user.md +17 -0
  293. package/skills/sentry/references/semantics/user_agent.md +7 -0
  294. package/skills/sentry/references/semantics/vercel.md +42 -0
  295. package/skills/sentry/references/setup-verification.md +39 -0
  296. package/skills/sentry/references/snapshots/github-actions-fanout.md +206 -0
  297. package/skills/sentry/references/snapshots/github-actions-simple.md +102 -0
  298. package/skills/sentry/references/snapshots/github-actions-swift-snapshot-testing.md +118 -0
  299. package/skills/sentry/references/snapshots/index.md +19 -0
  300. package/skills/sentry/references/snapshots/snapshot-previews.md +100 -0
  301. package/skills/sentry/references/snapshots/snapshots.md +123 -0
  302. package/skills/sentry/references/snapshots/wizard-setup.md +134 -0
  303. package/skills/testing/LICENSE +21 -0
  304. package/skills/testing/NOTICE +7 -0
  305. package/skills/testing/SKILL.md +13 -19
  306. package/skills/testing/agents/openai.yaml +1 -2
  307. package/skills/testing/references/selection.md +23 -0
  308. package/skills/testing/references/tdd.md +19 -0
  309. package/skills/testing/references/test-design.md +17 -0
  310. package/src/catalog.ts +1 -7
  311. package/skills/build-effect-apis/SKILL.md +0 -81
  312. package/skills/build-effect-apis/agents/openai.yaml +0 -4
  313. package/skills/build-effect-clis/SKILL.md +0 -92
  314. package/skills/build-effect-clis/agents/openai.yaml +0 -4
  315. package/skills/effect-architecture-audit/agents/openai.yaml +0 -4
  316. package/skills/effect-atom-state/SKILL.md +0 -97
  317. package/skills/effect-atom-state/agents/openai.yaml +0 -4
  318. package/skills/effect-ts/SKILL.md +0 -35
  319. package/skills/effect-ts/agents/openai.yaml +0 -4
  320. /package/skills/{build-effect-apis/references → effect-development/references/api}/cloudflare-workers.md +0 -0
  321. /package/skills/{build-effect-apis/references → effect-development/references/api}/runtime-assembly.md +0 -0
  322. /package/skills/{build-effect-apis/references → effect-development/references/api}/server-and-middleware.md +0 -0
  323. /package/skills/{build-effect-apis/references → effect-development/references/api}/shared-contracts.md +0 -0
  324. /package/skills/{effect-architecture-audit/references → effect-development/references/architecture}/service-and-boundary-audit.md +0 -0
  325. /package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-lifecycle.md +0 -0
  326. /package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-workflows.md +0 -0
  327. /package/skills/{effect-atom-state/references → effect-development/references/atom}/tanstack-start.md +0 -0
  328. /package/skills/{build-effect-clis/references → effect-development/references/cli}/command-design.md +0 -0
  329. /package/skills/{build-effect-clis/references → effect-development/references/cli}/processes-and-platform.md +0 -0
@@ -0,0 +1,380 @@
1
+ # Logging — Sentry Node.js SDK
2
+
3
+ > Minimum SDK: `@sentry/node` ≥9.41.0 (stable GA)\
4
+ > First experimental: ≥9.10.0 (via `_experiments.enableLogs`)\
5
+ > Console multi-arg parsing: ≥10.13.0\
6
+ > Consola reporter: ≥10.12.0\
7
+ > Scope attributes on logs: ≥10.32.0\
8
+ > Status: ✅ **Generally Available**
9
+
10
+ ---
11
+
12
+ ## Overview
13
+
14
+ Sentry Logs are high-cardinality structured log entries that link directly to traces and
15
+ errors. They let you answer _why_ something broke, not just _what_ broke.
16
+
17
+ Key characteristics:
18
+
19
+ - Sent as structured data — each attribute is individually searchable in Sentry UI
20
+ - Automatically linked to the active trace (if tracing is enabled)
21
+ - Buffered and batched (max 100 per buffer) — no per-log network overhead
22
+ - NOT a replacement for a logging library; designed to complement one
23
+
24
+ ---
25
+
26
+ ## Initialization
27
+
28
+ `enableLogs: true` is **required**. Logging is disabled by default.
29
+
30
+ ```typescript
31
+ import * as Sentry from "@sentry/node";
32
+
33
+ Sentry.init({
34
+ dsn: process.env.SENTRY_DSN,
35
+ enableLogs: true, // REQUIRED — default: false
36
+
37
+ beforeSendLog: (log) => {
38
+ // optional filter/transform
39
+ if (log.level === "debug") return null; // null = drop this log
40
+ return log;
41
+ },
42
+ });
43
+ ```
44
+
45
+ ---
46
+
47
+ ## Logger API
48
+
49
+ All six methods live at `Sentry.logger.*`:
50
+
51
+ ```typescript
52
+ Sentry.logger.trace(message, attributes?, options?)
53
+ Sentry.logger.debug(message, attributes?, options?)
54
+ Sentry.logger.info(message, attributes?, options?)
55
+ Sentry.logger.warn(message, attributes?, options?)
56
+ Sentry.logger.error(message, attributes?, options?)
57
+ Sentry.logger.fatal(message, attributes?, options?)
58
+ ```
59
+
60
+ | Method | Severity # | When to Use |
61
+ | ------- | ---------- | --------------------------------------- |
62
+ | `trace` | 1 | Fine-grained debugging, hot paths |
63
+ | `debug` | 5 | Development diagnostics, variable dumps |
64
+ | `info` | 9 | Normal operations, milestones, events |
65
+ | `warn` | 13 | Potential issues, degraded state |
66
+ | `error` | 17 | Failures that need attention |
67
+ | `fatal` | 21 | Critical failures, service down |
68
+
69
+ **Full TypeScript signature** (same shape for all six methods):
70
+
71
+ ```typescript
72
+ function info(
73
+ message: ParameterizedString, // string or fmt`` tagged template
74
+ attributes?: Record<string, unknown>, // string | number | boolean values
75
+ options?: { scope?: Scope }, // optional scope override
76
+ ): void;
77
+ ```
78
+
79
+ ---
80
+
81
+ ## Basic Usage
82
+
83
+ ```typescript
84
+ Sentry.logger.trace("Entering function", { fn: "processOrder" });
85
+ Sentry.logger.debug("Cache lookup", { key: "user:123", hit: false });
86
+ Sentry.logger.info("Order created", { orderId: "order_456", total: 99.99 });
87
+ Sentry.logger.warn("Rate limit approaching", { current: 95, max: 100 });
88
+ Sentry.logger.error("Payment failed", { reason: "card_declined", userId: 42 });
89
+ Sentry.logger.fatal("Database unavailable", { host: "primary-db", port: 5432 });
90
+ ```
91
+
92
+ ---
93
+
94
+ ## Parameterized Messages — `Sentry.logger.fmt`
95
+
96
+ Use the `fmt` tagged template literal to create parameterized messages.
97
+ Interpolated values are extracted as **individually searchable attributes** in Sentry.
98
+
99
+ ```typescript
100
+ const userId = "user_123";
101
+ const productName = "Widget Pro";
102
+
103
+ Sentry.logger.info(Sentry.logger.fmt`User ${userId} purchased ${productName}`);
104
+
105
+ // Stored in Sentry as:
106
+ // sentry.message.template → "User '%s' purchased '%s'"
107
+ // sentry.message.parameter.0 → "user_123"
108
+ // sentry.message.parameter.1 → "Widget Pro"
109
+ ```
110
+
111
+ You can combine `fmt` with additional attributes:
112
+
113
+ ```typescript
114
+ Sentry.logger.info(Sentry.logger.fmt`Order ${orderId} placed by ${userId}`, {
115
+ total: 149.99,
116
+ itemCount: 3,
117
+ region: "us-west-2",
118
+ });
119
+ ```
120
+
121
+ `fmt` is an alias for `Sentry.parameterize()` internally.
122
+ The returned string carries hidden `__sentry_template_string__` and
123
+ `__sentry_template_values__` properties used by the SDK for serialization.
124
+
125
+ ---
126
+
127
+ ## Structured Attributes
128
+
129
+ The second argument is a plain object.
130
+ Values must be `string`, `number`, or `boolean`.
131
+
132
+ ```typescript
133
+ Sentry.logger.info("API request completed", {
134
+ userId: user.id,
135
+ userTier: user.plan, // "free" | "pro" | "enterprise"
136
+ endpoint: "/api/orders",
137
+ method: "POST",
138
+ statusCode: 200,
139
+ durationMs: 234,
140
+ orderValue: 149.99,
141
+ isBeta: true,
142
+ retryCount: 0,
143
+ });
144
+ ```
145
+
146
+ Attributes become filterable columns in the Sentry Logs view.
147
+
148
+ ---
149
+
150
+ ## Scope-Based Attributes (SDK ≥10.32.0)
151
+
152
+ Set attributes on a scope once and they are automatically attached to every log emitted
153
+ within that scope.
154
+
155
+ ```typescript
156
+ // Global scope — applies to all logs for the app's lifetime
157
+ Sentry.getGlobalScope().setAttributes({
158
+ service: "checkout-service",
159
+ version: "2.1.0",
160
+ region: "us-west-2",
161
+ });
162
+
163
+ // Isolation scope — unique per HTTP request (auto-created by HTTP integrations)
164
+ Sentry.getIsolationScope().setAttributes({
165
+ org_id: user.orgId,
166
+ user_tier: user.tier,
167
+ request_id: req.id,
168
+ });
169
+
170
+ // Current scope — single operation block
171
+ Sentry.withScope((scope) => {
172
+ scope.setAttribute("operation", "payment-processing");
173
+ scope.setAttribute("payment_method", "stripe");
174
+
175
+ Sentry.logger.info("Processing payment", { amount: 99.99 });
176
+ // → includes all scope attributes + the explicit { amount }
177
+ });
178
+ ```
179
+
180
+ ---
181
+
182
+ ## Auto-Attached Attributes
183
+
184
+ The SDK automatically attaches these to every log:
185
+
186
+ | Attribute Key | Value |
187
+ | ---------------------------- | ----------------------------------------- |
188
+ | `sentry.environment` | `environment` from `Sentry.init()` |
189
+ | `sentry.release` | `release` from `Sentry.init()` |
190
+ | `sentry.sdk.name` | e.g., `"sentry.javascript.node"` |
191
+ | `sentry.sdk.version` | e.g., `"10.42.0"` |
192
+ | `server.address` | Server hostname / `server_name` |
193
+ | `user.id` | Current scope user ID (if set) |
194
+ | `user.name` | Current scope username (if set) |
195
+ | `user.email` | Current scope user email (if set) |
196
+ | `sentry.message.template` | Parameterized template (when using `fmt`) |
197
+ | `sentry.message.parameter.N` | Positional interpolated values |
198
+
199
+ ---
200
+
201
+ ## Console Integration
202
+
203
+ Capture `console.*` calls as Sentry logs using the built-in integration (SDK ≥9.41.0):
204
+
205
+ ```typescript
206
+ Sentry.init({
207
+ dsn: process.env.SENTRY_DSN,
208
+ enableLogs: true,
209
+ integrations: [
210
+ Sentry.consoleLoggingIntegration({
211
+ levels: ["log", "warn", "error"],
212
+ // Default levels: ['debug','info','warn','error','log','trace','assert']
213
+ }),
214
+ ],
215
+ });
216
+
217
+ // These now send to Sentry Logs automatically:
218
+ console.log("User action:", "checkout"); // → severity: info
219
+ console.warn("Memory pressure"); // → severity: warn
220
+ console.error("Unhandled rejection"); // → severity: error
221
+ ```
222
+
223
+ Multi-argument parsing (args become `message.parameter.N` attributes) requires SDK
224
+ ≥10.13.0.
225
+
226
+ ---
227
+
228
+ ## Consola Integration (SDK ≥10.12.0)
229
+
230
+ ```typescript
231
+ import { createConsola } from "consola";
232
+ import * as Sentry from "@sentry/node";
233
+
234
+ const logger = createConsola();
235
+ logger.addReporter(Sentry.createConsolaReporter());
236
+
237
+ logger.info("This goes to Sentry Logs");
238
+ logger.error("This too");
239
+ ```
240
+
241
+ ---
242
+
243
+ ## `beforeSendLog` Hook
244
+
245
+ Filter or transform logs before they are sent.
246
+ Return `null` to drop:
247
+
248
+ ```typescript
249
+ Sentry.init({
250
+ dsn: process.env.SENTRY_DSN,
251
+ enableLogs: true,
252
+ beforeSendLog: (log) => {
253
+ // Drop debug logs in production
254
+ if (process.env.NODE_ENV === "production" && log.level === "debug") {
255
+ return null;
256
+ }
257
+
258
+ // Scrub sensitive fields
259
+ if (log.attributes?.credit_card) {
260
+ log.attributes.credit_card = "[REDACTED]";
261
+ }
262
+
263
+ // Add computed attributes
264
+ log.attributes = {
265
+ ...log.attributes,
266
+ processed_at: Date.now(),
267
+ };
268
+
269
+ return log;
270
+ },
271
+ });
272
+ ```
273
+
274
+ The `log` object shape: `{ level, message, attributes, severityNumber }`.
275
+
276
+ ---
277
+
278
+ ## Third-Party Logger Bridges
279
+
280
+ Sentry does **not** provide official first-party transports for Winston, Pino, Bunyan,
281
+ or Morgan. Use the patterns below to forward logs to `Sentry.logger.*`.
282
+
283
+ **Winston:**
284
+
285
+ ```typescript
286
+ import winston from "winston";
287
+ import * as Sentry from "@sentry/node";
288
+
289
+ const levelMap: Record<string, keyof typeof Sentry.logger> = {
290
+ silly: "trace",
291
+ verbose: "debug",
292
+ debug: "debug",
293
+ http: "info",
294
+ info: "info",
295
+ warn: "warn",
296
+ error: "error",
297
+ };
298
+
299
+ const sentryTransport = new winston.transports.Stream({
300
+ stream: {
301
+ write: (message: string) => {
302
+ const parsed = JSON.parse(message);
303
+ const fn = levelMap[parsed.level] ?? "info";
304
+ (Sentry.logger[fn] as Function)(parsed.message, parsed.meta ?? {});
305
+ },
306
+ },
307
+ });
308
+
309
+ const logger = winston.createLogger({
310
+ format: winston.format.json(),
311
+ transports: [new winston.transports.Console(), sentryTransport],
312
+ });
313
+ ```
314
+
315
+ **Pino:**
316
+
317
+ ```typescript
318
+ import pino from "pino";
319
+ import * as Sentry from "@sentry/node";
320
+
321
+ const PINO_TO_SENTRY: Record<number, keyof typeof Sentry.logger> = {
322
+ 10: "trace",
323
+ 20: "debug",
324
+ 30: "info",
325
+ 40: "warn",
326
+ 50: "error",
327
+ 60: "fatal",
328
+ };
329
+
330
+ const dest = pino.destination({
331
+ write(chunk: string) {
332
+ const log = JSON.parse(chunk);
333
+ const fn = PINO_TO_SENTRY[log.level] ?? "info";
334
+ const { msg, level, time, pid, hostname, ...attrs } = log;
335
+ (Sentry.logger[fn] as Function)(msg, attrs);
336
+ },
337
+ });
338
+
339
+ const logger = pino({ level: "trace" }, dest);
340
+ ```
341
+
342
+ ---
343
+
344
+ ## Trace Linking
345
+
346
+ Logs emitted during an active span automatically include `sentry.trace.parent_span_id`,
347
+ linking them to the active trace.
348
+ From a log in Sentry you can navigate to its parent trace; from a trace you can see all
349
+ logs emitted during that request.
350
+
351
+ ---
352
+
353
+ ## Log Buffering and Flushing
354
+
355
+ Logs are buffered in memory (max 100 per buffer: `MAX_LOG_BUFFER_SIZE = 100`). The
356
+ buffer flushes automatically when full or on `client.close()`.
357
+
358
+ For **serverless or short-lived processes**, flush explicitly before exit:
359
+
360
+ ```typescript
361
+ await Sentry.flush(2000); // flush with 2s timeout
362
+ await Sentry.close(2000); // flush + close all transports
363
+ ```
364
+
365
+ ---
366
+
367
+ ## Troubleshooting
368
+
369
+ | Problem | Likely Cause | Fix |
370
+ | ---------------------------------- | -------------------------- | ---------------------------------------------------------- |
371
+ | Logs not appearing in Sentry | `enableLogs` not set | Add `enableLogs: true` to `Sentry.init()` |
372
+ | `Sentry.logger` is undefined | SDK < 9.41.0 | Upgrade to ≥9.41.0 |
373
+ | Attributes not searchable | Using complex objects | Use only `string`, `number`, `boolean` values |
374
+ | Console logs not captured | Missing integration | Add `consoleLoggingIntegration()` to `integrations` |
375
+ | Logs cut off in serverless | Buffer not flushed | Call `await Sentry.flush(2000)` before function returns |
376
+ | `fmt` values not parameterized | Using string interpolation | Use `fmt` as a tagged template literal, not `"msg " + val` |
377
+ | Logs missing trace link | No active span | Enable tracing with `tracesSampleRate` |
378
+ | `beforeSendLog` not firing | `enableLogs: false` | Logs are dropped before the hook if logging is disabled |
379
+ | Scope attributes missing from logs | SDK < 10.32.0 | Upgrade to ≥10.32.0 for scope attribute inheritance |
380
+ | Consola reporter not working | SDK < 10.12.0 | Upgrade to ≥10.12.0 |
@@ -0,0 +1,278 @@
1
+ # Metrics — Sentry Node.js SDK
2
+
3
+ > Minimum SDK: `@sentry/node` ≥10.25.0 (stable `Sentry.metrics.*` API)\
4
+ > `enableMetrics` top-level option: ≥10.24.0 (default: `true`)\
5
+ > `beforeSendMetric` hook: ≥10.24.0\
6
+ > Scope attributes on metrics: ≥10.33.0
7
+
8
+ ---
9
+
10
+ ## Overview
11
+
12
+ Sentry Metrics let you track counters, current values, and value distributions.
13
+ They appear in Sentry alongside related errors and can be correlated with traces.
14
+
15
+ Key characteristics:
16
+
17
+ - Metrics are **enabled by default** — no configuration required for basic use
18
+ - Buffered in memory (max 1000 entries) and sent periodically
19
+ - High-cardinality attributes **degrade backend performance** — keep attribute
20
+ cardinality low
21
+ - Use `Sentry.logger.*` (not metrics) when you need per-user or per-request detail
22
+
23
+ ---
24
+
25
+ ## Initialization
26
+
27
+ Metrics are on by default.
28
+ Opt out if needed:
29
+
30
+ ```typescript
31
+ import * as Sentry from "@sentry/node";
32
+
33
+ Sentry.init({
34
+ dsn: process.env.SENTRY_DSN,
35
+ // Metrics are enabled by default — no config needed
36
+
37
+ // To disable entirely:
38
+ // enableMetrics: false,
39
+
40
+ beforeSendMetric: (metric) => {
41
+ // optional filter/transform
42
+ if (metric.name === "debug_metric") return null;
43
+ return metric;
44
+ },
45
+ });
46
+ ```
47
+
48
+ ---
49
+
50
+ ## Metrics API
51
+
52
+ Three methods. No `increment()` or `set()` — those do not exist in v10:
53
+
54
+ ```typescript
55
+ Sentry.metrics.count(name, value?, options?)
56
+ Sentry.metrics.gauge(name, value, options?)
57
+ Sentry.metrics.distribution(name, value, options?)
58
+ ```
59
+
60
+ **Full TypeScript signatures:**
61
+
62
+ ```typescript
63
+ interface MetricOptions {
64
+ unit?: string; // see unit table below
65
+ attributes?: Record<string, unknown>; // filterable dimensions
66
+ scope?: Scope; // optional scope override
67
+ }
68
+
69
+ function count(name: string, value?: number, options?: MetricOptions): void;
70
+ // value defaults to 1
71
+
72
+ function gauge(name: string, value: number, options?: MetricOptions): void;
73
+
74
+ function distribution(name: string, value: number, options?: MetricOptions): void;
75
+ ```
76
+
77
+ ---
78
+
79
+ ## Metric Types
80
+
81
+ | Method | Underlying Type | Use For |
82
+ | -------------- | --------------- | ----------------------------------------------- |
83
+ | `count` | counter | Event frequency — requests, errors, signups |
84
+ | `gauge` | gauge | Current snapshot value — queue depth, CPU % |
85
+ | `distribution` | distribution | Value histograms/ranges — latencies, file sizes |
86
+
87
+ ```typescript
88
+ // count — how many times something happened
89
+ Sentry.metrics.count("user.signups", 1);
90
+ Sentry.metrics.count("api.errors", 1, { attributes: { endpoint: "/checkout" } });
91
+
92
+ // gauge — what the current state is
93
+ Sentry.metrics.gauge("queue.depth", 42);
94
+ Sentry.metrics.gauge("memory.usage", 512, { unit: "megabyte" });
95
+
96
+ // distribution — spread of a measured value
97
+ Sentry.metrics.distribution("api.latency", 187.5, { unit: "millisecond" });
98
+ Sentry.metrics.distribution("payload.size", 1024, { unit: "byte" });
99
+ ```
100
+
101
+ ---
102
+
103
+ ## Units
104
+
105
+ Pass a `unit` string in `MetricOptions`. Used for display formatting in Sentry.
106
+
107
+ | Category | Unit Values |
108
+ | --------- | ------------------------------------------------------------------------- |
109
+ | Time | `millisecond`, `second`, `minute`, `hour`, `day`, `week` |
110
+ | Storage | `bit`, `byte`, `kilobyte`, `megabyte`, `gigabyte`, `terabyte`, `petabyte` |
111
+ | Fractions | `ratio`, `percent` |
112
+ | None | `none` (or omit `unit`) |
113
+
114
+ ```typescript
115
+ Sentry.metrics.distribution("api.latency", 187.5, { unit: "millisecond" });
116
+ Sentry.metrics.distribution("job.duration", 3.2, { unit: "second" });
117
+ Sentry.metrics.gauge("memory.usage", 512, { unit: "megabyte" });
118
+ Sentry.metrics.gauge("cache.hit_rate", 0.87, { unit: "ratio" });
119
+ Sentry.metrics.gauge("disk.usage_pct", 72.4, { unit: "percent" });
120
+ Sentry.metrics.count("user.logins"); // omit unit for plain counts
121
+ ```
122
+
123
+ ---
124
+
125
+ ## Attributes (Tags)
126
+
127
+ Use `attributes` in `MetricOptions` to add filterable/groupable dimensions.
128
+
129
+ **Size limit:** 2 KB per metric envelope.
130
+ Metrics exceeding this are **dropped**.
131
+
132
+ ```typescript
133
+ Sentry.metrics.count("api.requests", 1, {
134
+ attributes: {
135
+ endpoint: "/api/orders",
136
+ method: "POST",
137
+ status_code: 200,
138
+ user_tier: "pro",
139
+ region: "us-west-2",
140
+ version: "v2",
141
+ },
142
+ });
143
+
144
+ Sentry.metrics.distribution("db.query_time", 45.3, {
145
+ unit: "millisecond",
146
+ attributes: {
147
+ table: "orders",
148
+ operation: "SELECT",
149
+ index_used: true,
150
+ rows_scanned: 1240,
151
+ },
152
+ });
153
+ ```
154
+
155
+ ---
156
+
157
+ ## Cardinality
158
+
159
+ Keep attribute values bounded.
160
+ High-cardinality attributes (per-user IDs, request UUIDs) cause performance issues in
161
+ Sentry’s metrics backend.
162
+
163
+ ```typescript
164
+ // ❌ HIGH CARDINALITY — avoid as metric attributes
165
+ Sentry.metrics.count("page.view", 1, {
166
+ attributes: { user_id: "uuid-abc-123" }, // millions of unique values
167
+ });
168
+
169
+ // ✅ LOW CARDINALITY — bounded enums and sets
170
+ Sentry.metrics.count("page.view", 1, {
171
+ attributes: {
172
+ page: "/dashboard",
173
+ user_tier: "pro", // bounded enum
174
+ ab_variant: "control", // bounded enum
175
+ region: "us-east-1", // bounded set
176
+ },
177
+ });
178
+ ```
179
+
180
+ Use `Sentry.logger.*` for per-user or per-request data — logs handle high cardinality
181
+ gracefully.
182
+
183
+ ---
184
+
185
+ ## Scope-Based Attributes (SDK ≥10.33.0)
186
+
187
+ Set attributes on a scope and they auto-attach to all metrics emitted within it:
188
+
189
+ ```typescript
190
+ // Global scope — applies to all metrics app-wide
191
+ Sentry.getGlobalScope().setAttributes({
192
+ service: "payments",
193
+ deploy_env: "production",
194
+ });
195
+
196
+ // Per-request scope
197
+ Sentry.withScope((scope) => {
198
+ scope.setAttribute("step", "checkout");
199
+ scope.setAttribute("user_tier", "enterprise");
200
+
201
+ // Both metrics inherit the scope attributes above
202
+ Sentry.metrics.count("checkout.attempts", 1);
203
+ Sentry.metrics.gauge("cart.value", 249.99);
204
+ });
205
+ ```
206
+
207
+ ---
208
+
209
+ ## Auto-Attached Default Attributes
210
+
211
+ | Attribute | Value | Context |
212
+ | ------------------------------------ | ----------------------------------- | ----------- |
213
+ | `sentry.environment` | From `Sentry.init({ environment })` | Always |
214
+ | `sentry.release` | From `Sentry.init({ release })` | Always |
215
+ | `sentry.sdk.name` | SDK identifier | Always |
216
+ | `sentry.sdk.version` | e.g., `"10.42.0"` | Always |
217
+ | `user.id`, `user.name`, `user.email` | If user is set in scope | When set |
218
+ | `server.address` | Server hostname | Server-side |
219
+
220
+ ---
221
+
222
+ ## `beforeSendMetric` Hook
223
+
224
+ Filter or modify metrics before transmission.
225
+ Return `null` to drop:
226
+
227
+ ```typescript
228
+ Sentry.init({
229
+ dsn: process.env.SENTRY_DSN,
230
+ beforeSendMetric: (metric) => {
231
+ // metric: { name, value, type, unit?, attributes? }
232
+
233
+ // Drop internal debug metrics
234
+ if (metric.name.startsWith("_internal.")) {
235
+ return null;
236
+ }
237
+
238
+ // Normalize metric names
239
+ metric.name = metric.name.toLowerCase().replace(/[^a-z0-9_.]/g, "_");
240
+
241
+ // Add global context
242
+ metric.attributes = {
243
+ ...metric.attributes,
244
+ host: process.env.HOSTNAME,
245
+ deploy_id: process.env.DEPLOY_ID,
246
+ };
247
+
248
+ return metric;
249
+ },
250
+ });
251
+ ```
252
+
253
+ ---
254
+
255
+ ## Flushing
256
+
257
+ Metrics are buffered (max `MAX_METRIC_BUFFER_SIZE = 1000`) and flushed periodically.
258
+ For serverless or short-lived scripts, flush explicitly:
259
+
260
+ ```typescript
261
+ await Sentry.flush(2000); // flush + 2s timeout
262
+ await Sentry.close(2000); // flush + close all transports
263
+ ```
264
+
265
+ ---
266
+
267
+ ## Troubleshooting
268
+
269
+ | Problem | Likely Cause | Fix |
270
+ | ----------------------------- | -------------------------- | ------------------------------------------------------- |
271
+ | Metrics not appearing | SDK < 10.24.0 | Upgrade to ≥10.24.0 |
272
+ | `Sentry.metrics` is undefined | SDK < 10.25.0 | Upgrade to ≥10.25.0 |
273
+ | Metrics silently dropped | Attribute envelope > 2 KB | Reduce number or size of `attributes` |
274
+ | `increment()` not found | Renamed in v10 | Use `count()` instead |
275
+ | `set()` not found | Removed in v10 | No equivalent; use `count()` with bounded attributes |
276
+ | Scope attributes missing | SDK < 10.33.0 | Upgrade to ≥10.33.0 |
277
+ | Metrics lost in serverless | Buffer not flushed | Call `await Sentry.flush(2000)` before function returns |
278
+ | High-cardinality issues | Unbounded attribute values | Keep attributes to bounded enums/sets |