@sentry/warden 0.33.1 → 0.35.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 (134) hide show
  1. package/bin/warden.js +19 -0
  2. package/dist/cli/args.d.ts +3 -3
  3. package/dist/cli/args.d.ts.map +1 -1
  4. package/dist/cli/args.js +9 -5
  5. package/dist/cli/args.js.map +1 -1
  6. package/dist/cli/commands/add.d.ts.map +1 -1
  7. package/dist/cli/commands/add.js +3 -1
  8. package/dist/cli/commands/add.js.map +1 -1
  9. package/dist/cli/commands/build.d.ts.map +1 -1
  10. package/dist/cli/commands/build.js +4 -3
  11. package/dist/cli/commands/build.js.map +1 -1
  12. package/dist/cli/commands/init.d.ts.map +1 -1
  13. package/dist/cli/commands/init.js +7 -2
  14. package/dist/cli/commands/init.js.map +1 -1
  15. package/dist/cli/commands/runs.js +4 -4
  16. package/dist/cli/commands/runs.js.map +1 -1
  17. package/dist/cli/help.js +6 -6
  18. package/dist/cli/help.js.map +1 -1
  19. package/dist/cli/index.js +0 -0
  20. package/dist/cli/main.d.ts +1 -1
  21. package/dist/cli/main.d.ts.map +1 -1
  22. package/dist/cli/main.js +22 -13
  23. package/dist/cli/main.js.map +1 -1
  24. package/dist/cli/output/jsonl-schema-gen.js +1 -1
  25. package/dist/cli/output/jsonl-schema-gen.js.map +1 -1
  26. package/dist/cli/output/jsonl.d.ts +30 -4
  27. package/dist/cli/output/jsonl.d.ts.map +1 -1
  28. package/dist/config/loader.d.ts +7 -1
  29. package/dist/config/loader.d.ts.map +1 -1
  30. package/dist/config/loader.js +5 -0
  31. package/dist/config/loader.js.map +1 -1
  32. package/dist/config/schema.d.ts +49 -14
  33. package/dist/config/schema.d.ts.map +1 -1
  34. package/dist/config/schema.js +21 -8
  35. package/dist/config/schema.js.map +1 -1
  36. package/dist/config/writer.d.ts.map +1 -1
  37. package/dist/config/writer.js +7 -0
  38. package/dist/config/writer.js.map +1 -1
  39. package/dist/event/context.d.ts.map +1 -1
  40. package/dist/event/context.js +9 -0
  41. package/dist/event/context.js.map +1 -1
  42. package/dist/index.d.ts +6 -6
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +5 -3
  45. package/dist/index.js.map +1 -1
  46. package/dist/output/dedup.d.ts +14 -1
  47. package/dist/output/dedup.d.ts.map +1 -1
  48. package/dist/output/dedup.js +92 -11
  49. package/dist/output/dedup.js.map +1 -1
  50. package/dist/output/github-checks.d.ts +8 -0
  51. package/dist/output/github-checks.d.ts.map +1 -1
  52. package/dist/output/github-checks.js +6 -6
  53. package/dist/output/github-checks.js.map +1 -1
  54. package/dist/output/renderer.d.ts.map +1 -1
  55. package/dist/output/renderer.js +2 -1
  56. package/dist/output/renderer.js.map +1 -1
  57. package/dist/sdk/analyze.d.ts +3 -0
  58. package/dist/sdk/analyze.d.ts.map +1 -1
  59. package/dist/sdk/analyze.js +85 -21
  60. package/dist/sdk/analyze.js.map +1 -1
  61. package/dist/sdk/errors.d.ts +1 -0
  62. package/dist/sdk/errors.d.ts.map +1 -1
  63. package/dist/sdk/errors.js +13 -5
  64. package/dist/sdk/errors.js.map +1 -1
  65. package/dist/sdk/extract.d.ts +1 -1
  66. package/dist/sdk/extract.d.ts.map +1 -1
  67. package/dist/sdk/extract.js +14 -6
  68. package/dist/sdk/extract.js.map +1 -1
  69. package/dist/sdk/local.d.ts +32 -0
  70. package/dist/sdk/local.d.ts.map +1 -0
  71. package/dist/sdk/local.js +32 -0
  72. package/dist/sdk/local.js.map +1 -0
  73. package/dist/sdk/model-pricing.json +8 -0
  74. package/dist/sdk/post-process.d.ts +2 -1
  75. package/dist/sdk/post-process.d.ts.map +1 -1
  76. package/dist/sdk/post-process.js +1 -0
  77. package/dist/sdk/post-process.js.map +1 -1
  78. package/dist/sdk/pricing.d.ts +4 -3
  79. package/dist/sdk/pricing.d.ts.map +1 -1
  80. package/dist/sdk/pricing.js +3 -1
  81. package/dist/sdk/pricing.js.map +1 -1
  82. package/dist/sdk/runner.d.ts +4 -1
  83. package/dist/sdk/runner.d.ts.map +1 -1
  84. package/dist/sdk/runner.js +2 -1
  85. package/dist/sdk/runner.js.map +1 -1
  86. package/dist/sdk/runtimes/claude.d.ts.map +1 -1
  87. package/dist/sdk/runtimes/claude.js +11 -1
  88. package/dist/sdk/runtimes/claude.js.map +1 -1
  89. package/dist/sdk/runtimes/model-selectors.d.ts +1 -1
  90. package/dist/sdk/runtimes/model-selectors.d.ts.map +1 -1
  91. package/dist/sdk/runtimes/model-selectors.js +2 -4
  92. package/dist/sdk/runtimes/model-selectors.js.map +1 -1
  93. package/dist/sdk/runtimes/pi.d.ts.map +1 -1
  94. package/dist/sdk/runtimes/pi.js +3 -1
  95. package/dist/sdk/runtimes/pi.js.map +1 -1
  96. package/dist/sdk/runtimes/types.d.ts +2 -1
  97. package/dist/sdk/runtimes/types.d.ts.map +1 -1
  98. package/dist/sdk/types.d.ts +5 -1
  99. package/dist/sdk/types.d.ts.map +1 -1
  100. package/dist/sdk/verify.d.ts +2 -1
  101. package/dist/sdk/verify.d.ts.map +1 -1
  102. package/dist/sdk/verify.js +7 -6
  103. package/dist/sdk/verify.js.map +1 -1
  104. package/dist/skills/loader.d.ts +6 -1
  105. package/dist/skills/loader.d.ts.map +1 -1
  106. package/dist/skills/loader.js +63 -23
  107. package/dist/skills/loader.js.map +1 -1
  108. package/dist/triggers/matcher.d.ts.map +1 -1
  109. package/dist/triggers/matcher.js +19 -0
  110. package/dist/triggers/matcher.js.map +1 -1
  111. package/dist/types/index.d.ts +58 -6
  112. package/dist/types/index.d.ts.map +1 -1
  113. package/dist/types/index.js +19 -0
  114. package/dist/types/index.js.map +1 -1
  115. package/dist/utils/path.d.ts +6 -0
  116. package/dist/utils/path.d.ts.map +1 -1
  117. package/dist/utils/path.js +18 -1
  118. package/dist/utils/path.js.map +1 -1
  119. package/package.json +30 -62
  120. package/skills/warden/SOURCES.md +2 -2
  121. package/skills/warden/references/cli-reference.md +1 -1
  122. package/skills/warden/references/config-schema.md +3 -0
  123. package/skills/warden/references/configuration.md +11 -0
  124. package/skills/warden-sweep/SOURCES.md +5 -5
  125. package/skills/warden-sweep/SPEC.md +1 -1
  126. package/.oxlintrc.json +0 -170
  127. package/CHANGELOG.md +0 -3399
  128. package/README.md +0 -52
  129. package/TELEMETRY.md +0 -322
  130. package/policies/README.md +0 -22
  131. package/policies/code-comments.md +0 -20
  132. package/policies/policy-template.md +0 -14
  133. package/src/internal-skills/skill-writer/scripts/quick_validate_test.py +0 -79
  134. package/test-results.junit.xml +0 -4366
package/CHANGELOG.md DELETED
@@ -1,3399 +0,0 @@
1
- # Changelog
2
- ## 0.33.1
3
-
4
- ### Bug Fixes 🐛
5
-
6
- - (cli) Avoid abort listener fanout by @dcramer in [#336](https://github.com/getsentry/warden/pull/336)
7
-
8
- ## 0.33.0
9
-
10
- - No documented changes.
11
-
12
- ## 0.32.0
13
-
14
- ### Bug Fixes 🐛
15
-
16
- - (action) Install Claude Code only for Claude runtime by @tmustier in [#334](https://github.com/getsentry/warden/pull/334)
17
- - (output) Render finding evidence traces by @dcramer in [#335](https://github.com/getsentry/warden/pull/335)
18
-
19
- ### Internal Changes 🔧
20
-
21
- #### Evals
22
-
23
- - Upgrade vitest-evals to 0.9.0-beta.6 by @sentry-junior in [#332](https://github.com/getsentry/warden/pull/332)
24
- - Move eval harness into workspace package by @dcramer in [#331](https://github.com/getsentry/warden/pull/331)
25
- - Add vitest-evals reporter bug fixtures by @dcramer in [#330](https://github.com/getsentry/warden/pull/330)
26
- - Centralize fixture provenance by @dcramer in [#329](https://github.com/getsentry/warden/pull/329)
27
-
28
- #### Other
29
-
30
- - (release) Create source tags before artifact tags by @dcramer in [#328](https://github.com/getsentry/warden/pull/328)
31
-
32
- ## 0.31.0
33
-
34
- ### New Features ✨
35
-
36
- #### Action
37
-
38
- - Support org base configs with repo overlays by @dcramer in [#279](https://github.com/getsentry/warden/pull/279)
39
- - Write structured findings JSON and expose as output by @gricha in [#233](https://github.com/getsentry/warden/pull/233)
40
-
41
- #### Cli
42
-
43
- - Add @file target lists by @dcramer in [#316](https://github.com/getsentry/warden/pull/316)
44
- - Build generated skills from path targets by @dcramer in [#282](https://github.com/getsentry/warden/pull/282)
45
- - Add --staged flag and default to HEAD for uncommitted changes by @dcramer in [#205](https://github.com/getsentry/warden/pull/205)
46
- - Display confidence level in findings output by @dcramer in [#194](https://github.com/getsentry/warden/pull/194)
47
- - Always-on JSONL logging with repo-local log directory by @dcramer in [#179](https://github.com/getsentry/warden/pull/179)
48
- - Add --fail-fast flag to stop after first finding by @dcramer in [#174](https://github.com/getsentry/warden/pull/174)
49
- - Surface failure details for chunk analysis and finding extraction by @dcramer in [#162](https://github.com/getsentry/warden/pull/162)
50
- - Interactive fix step-through with y/n/a/s/q prompt by @dcramer in [#161](https://github.com/getsentry/warden/pull/161)
51
-
52
- #### Docs
53
-
54
- - Improved landing visuals by @PickleNik in [#245](https://github.com/getsentry/warden/pull/245)
55
- - Add LLM content negotiation and llms.txt by @dcramer in [#178](https://github.com/getsentry/warden/pull/178)
56
-
57
- #### Runs
58
-
59
- - Write chunk-level JSONL logs by @dcramer in [#265](https://github.com/getsentry/warden/pull/265)
60
- - Stream in-progress runs via 'warden runs follow' by @dcramer in [#261](https://github.com/getsentry/warden/pull/261)
61
-
62
- #### Sdk
63
-
64
- - Add Pi runtime by @dcramer in [#318](https://github.com/getsentry/warden/pull/318)
65
- - Add finding verification pass by @dcramer in [#290](https://github.com/getsentry/warden/pull/290)
66
- - Store Claude SDK sessions in .warden/sessions/ by @dcramer in [#193](https://github.com/getsentry/warden/pull/193)
67
-
68
- #### Skills
69
-
70
- - Add built-in code review skill by @dcramer in [#298](https://github.com/getsentry/warden/pull/298)
71
- - Add built-in security review skill by @dcramer in [#292](https://github.com/getsentry/warden/pull/292)
72
- - Consolidate warden-sweep into bundled scripts with prescribed reporting by @dcramer in [#201](https://github.com/getsentry/warden/pull/201)
73
- - Replace notseer with find-warden-bugs skill by @dcramer in [#200](https://github.com/getsentry/warden/pull/200)
74
- - Add warden-sweep skill and bundled skill installation by @dcramer in [#196](https://github.com/getsentry/warden/pull/196)
75
- - Add agent discovery alongside skills by @dcramer in [#136](https://github.com/getsentry/warden/pull/136)
76
-
77
- #### Sweep
78
-
79
- - Add --skill flag to scan.py by @dcramer in [#211](https://github.com/getsentry/warden/pull/211)
80
- - Add master tracking issue for sweep PRs by @dcramer in [#210](https://github.com/getsentry/warden/pull/210)
81
-
82
- #### Telemetry
83
-
84
- - Add skill and model attribution to metrics by @gricha in [#231](https://github.com/getsentry/warden/pull/231)
85
- - Add namespaced fix-eval feedback metrics by @dcramer in [#229](https://github.com/getsentry/warden/pull/229)
86
- - Add global scope attributes, run metric, and trace ID surfacing by @dcramer in [#166](https://github.com/getsentry/warden/pull/166)
87
- - Add input/output attributes to gen_ai spans by @dcramer in [#142](https://github.com/getsentry/warden/pull/142)
88
- - Add per-turn tracing for Claude Code SDK agent calls by @dcramer in [#141](https://github.com/getsentry/warden/pull/141)
89
-
90
- #### Other
91
-
92
- - (config) Make auxiliary max retries configurable via defaults.auxiliaryMaxRetries by @dcramer in [#175](https://github.com/getsentry/warden/pull/175)
93
- - (dedup) Add intra-batch finding consolidation by @dcramer in [#135](https://github.com/getsentry/warden/pull/135)
94
- - (init) Add section-based output and interactive skill prompt by @dcramer in [#182](https://github.com/getsentry/warden/pull/182)
95
- - (o11y) Capture run failures in JSONL output by @dcramer in [#259](https://github.com/getsentry/warden/pull/259)
96
- - (output) Default to COMMENT instead of REQUEST_CHANGES on PRs by @dcramer in [#137](https://github.com/getsentry/warden/pull/137)
97
- - (runner) Global concurrency pool for file analyses by @dcramer in [#158](https://github.com/getsentry/warden/pull/158)
98
- - (skill-builder) Build generated repo-local skills by @dcramer in [#280](https://github.com/getsentry/warden/pull/280)
99
- - Add verification field and confidence filtering by @dcramer in [#191](https://github.com/getsentry/warden/pull/191)
100
- - Pnpm workspace monorepo with docs migration by @dcramer in [#185](https://github.com/getsentry/warden/pull/185)
101
- - Adopt dotagents for skill management by @dcramer in [#168](https://github.com/getsentry/warden/pull/168)
102
- - Cross-location finding merge by @dcramer in [#148](https://github.com/getsentry/warden/pull/148)
103
- - Add env vars to generated workflow and docs by @dcramer in [#138](https://github.com/getsentry/warden/pull/138)
104
- - Add Sentry observability (errors, tracing, metrics, structured logs) by @dcramer in [#133](https://github.com/getsentry/warden/pull/133)
105
- - Split failOn into independent requestChanges and failCheck controls by @dcramer in [#129](https://github.com/getsentry/warden/pull/129)
106
-
107
- ### Bug Fixes 🐛
108
-
109
- #### Action
110
-
111
- - Honor PR trigger parallelism by @dcramer in [#325](https://github.com/getsentry/warden/pull/325)
112
- - Preload Pi node-only providers by @dcramer in [#324](https://github.com/getsentry/warden/pull/324)
113
- - Validate Pi model selectors before execution by @dcramer in [#321](https://github.com/getsentry/warden/pull/321)
114
- - Correct fix evaluation verdict handling by @dcramer in [#314](https://github.com/getsentry/warden/pull/314)
115
- - Use relative findings output path by @dcramer in [#289](https://github.com/getsentry/warden/pull/289)
116
- - Handle missing warden.toml gracefully by @gricha in [#235](https://github.com/getsentry/warden/pull/235)
117
- - Thread maxContextFiles config through Action workflows by @dcramer in [#216](https://github.com/getsentry/warden/pull/216)
118
-
119
- #### Cli
120
-
121
- - Label built-in skill sources by @dcramer in [#294](https://github.com/getsentry/warden/pull/294)
122
- - Report final per-file finding counts by @dcramer in [#293](https://github.com/getsentry/warden/pull/293)
123
- - Align local review diff context by @dcramer in [#276](https://github.com/getsentry/warden/pull/276)
124
- - Replace process.exit(130) with thrown error for graceful cleanup by @dcramer in [#213](https://github.com/getsentry/warden/pull/213)
125
- - Write --output file on auth error early exit by @dcramer in [#214](https://github.com/getsentry/warden/pull/214)
126
- - Normalize path separators in synthetic file changes by @dcramer in [#217](https://github.com/getsentry/warden/pull/217)
127
- - Exclude node_modules from gitignore file discovery by @dcramer in [#220](https://github.com/getsentry/warden/pull/220)
128
- - Collapse skipped files into a single count on Ctrl+C by @dcramer in [#172](https://github.com/getsentry/warden/pull/172)
129
- - Render warnings through Ink's Static component by @dcramer in [#170](https://github.com/getsentry/warden/pull/170)
130
- - Cap 'Other Files' list in prompts for CLI mode by @dcramer in [#171](https://github.com/getsentry/warden/pull/171)
131
- - Move completed files to Static to prevent flickering by @dcramer in [#149](https://github.com/getsentry/warden/pull/149)
132
- - Run all skills locally regardless of trigger type by @gricha in [#145](https://github.com/getsentry/warden/pull/145)
133
- - Resolve remote config for --skill flag by @dcramer in [#130](https://github.com/getsentry/warden/pull/130)
134
-
135
- #### Config
136
-
137
- - Allow base configs to use built-in skills by @dcramer in [#305](https://github.com/getsentry/warden/pull/305)
138
- - Warn on duplicate layered skills by @dcramer in [#304](https://github.com/getsentry/warden/pull/304)
139
- - Add missing fields to TOML writer for config round-trip by @dcramer in [#218](https://github.com/getsentry/warden/pull/218)
140
-
141
- #### Output
142
-
143
- - Render GitHub footers as muted text by @dcramer in [#306](https://github.com/getsentry/warden/pull/306)
144
- - List only successfully applied fixes in PR body by @dcramer in [#219](https://github.com/getsentry/warden/pull/219)
145
- - Use backticks instead of brackets in attribution footer by @dcramer in [#197](https://github.com/getsentry/warden/pull/197)
146
-
147
- #### Sdk
148
-
149
- - Short-circuit repeated provider failures by @dcramer in [#291](https://github.com/getsentry/warden/pull/291)
150
- - Strip invalid suggested fixes from reports by @dcramer in [#228](https://github.com/getsentry/warden/pull/228)
151
- - Prevent Warden sessions from polluting Claude Code history by @dcramer in [#202](https://github.com/getsentry/warden/pull/202)
152
- - Handle EPIPE errors from Claude subprocess failures by @dcramer in [#198](https://github.com/getsentry/warden/pull/198)
153
- - Add verification checklist and Glob tool to reduce analysis hallucinations by @dcramer in [#173](https://github.com/getsentry/warden/pull/173)
154
- - Constrain skill findings to diff hunk line range by @dcramer in [#151](https://github.com/getsentry/warden/pull/151)
155
-
156
- #### Sweep
157
-
158
- - Add self-validation to fix subagent prompt by @dcramer in [#223](https://github.com/getsentry/warden/pull/223)
159
- - Branch worktrees from default branch instead of HEAD by @dcramer in [#221](https://github.com/getsentry/warden/pull/221)
160
-
161
- #### Telemetry
162
-
163
- - Fill finding analytics gaps by @dcramer in [#311](https://github.com/getsentry/warden/pull/311)
164
- - Align attributes with OTel semantics by @dcramer in [#307](https://github.com/getsentry/warden/pull/307)
165
- - Improve OTel GenAI semantic convention compliance by @dcramer in [#140](https://github.com/getsentry/warden/pull/140)
166
- - Fix missing Sentry traces and negative token costs by @dcramer in [#139](https://github.com/getsentry/warden/pull/139)
167
-
168
- #### Other
169
-
170
- - (ci) Enable auto-generated changelogs for GitHub releases by @gricha in [#234](https://github.com/getsentry/warden/pull/234)
171
- - (code-review) Calibrate config severity by @dcramer in [#319](https://github.com/getsentry/warden/pull/319)
172
- - (evals) Update default model to claude-sonnet-4-6 by @dcramer in [#163](https://github.com/getsentry/warden/pull/163)
173
- - (o11y) Add gen_ai.request.model attribute by @obostjancic in [#247](https://github.com/getsentry/warden/pull/247)
174
- - (prepare) Skip files with zero content automatically by @dcramer in [#226](https://github.com/getsentry/warden/pull/226)
175
- - (review) Preserve active Warden threads by @dcramer in [#272](https://github.com/getsentry/warden/pull/272)
176
- - (reviews) Compact inline finding comments by @dcramer in [#315](https://github.com/getsentry/warden/pull/315)
177
- - (sentry) Tag action errors with repository by @dcramer in [#303](https://github.com/getsentry/warden/pull/303)
178
- - (skill-builder) Stabilize generated skill authoring by @dcramer in [#284](https://github.com/getsentry/warden/pull/284)
179
- - (skills) Support private repos in `warden add --remote` by @dcramer in [#187](https://github.com/getsentry/warden/pull/187)
180
- - (usage) Normalize inputTokens to include cached and cache-write tokens by @vgrozdanic in [#143](https://github.com/getsentry/warden/pull/143)
181
- - Include auxiliary costs in total without separate breakdown by @sentry-junior in [#320](https://github.com/getsentry/warden/pull/320)
182
- - Preserve interrupted findings and parse run args by @dcramer in [#297](https://github.com/getsentry/warden/pull/297)
183
- - Prevent command injection in release workflow by @fix-it-felix-sentry in [#277](https://github.com/getsentry/warden/pull/277)
184
- - Handle multi-line YAML scalar values in SKILL.md frontmatter by @odysseus0 in [#243](https://github.com/getsentry/warden/pull/243)
185
- - Server error handler calls process.exit() bypassing cleanup by @dcramer in [#206](https://github.com/getsentry/warden/pull/206)
186
- - Preserve error chains across error wrapping boundaries by @dcramer in [#215](https://github.com/getsentry/warden/pull/215)
187
- - Respect ignorePaths in all code paths by @dcramer in [#204](https://github.com/getsentry/warden/pull/204)
188
- - Exclude dev files and secrets from npm package by @dcramer in [#186](https://github.com/getsentry/warden/pull/186)
189
- - Clean up orphaned Warden comments when no triggers match by @dcramer in [#134](https://github.com/getsentry/warden/pull/134)
190
- - Show findings in PR review body when inline comments fail by @dcramer in [#128](https://github.com/getsentry/warden/pull/128)
191
- - Show skipped status for files not processed during Ctrl+C by @dcramer in [#127](https://github.com/getsentry/warden/pull/127)
192
-
193
- ### Documentation 📚
194
-
195
- - (homepage) Redesign to lead with skills by @dcramer in [#238](https://github.com/getsentry/warden/pull/238)
196
- - Use built-in security review in samples by @dcramer in [#295](https://github.com/getsentry/warden/pull/295)
197
- - Use scoped Warden package in npx examples by @dcramer in [#273](https://github.com/getsentry/warden/pull/273)
198
- - Lead homepage with GitHub PR review story by @dcramer in [#240](https://github.com/getsentry/warden/pull/240)
199
- - Add org-wide GitHub setup guide by @dcramer in [#239](https://github.com/getsentry/warden/pull/239)
200
- - Replace non-existent skill names with generic placeholders by @dcramer in [#199](https://github.com/getsentry/warden/pull/199)
201
- - Simplify getting started guide to use native warden add --remote by @dcramer in [#164](https://github.com/getsentry/warden/pull/164)
202
- - Fix documentation inconsistencies with codebase by @dcramer in [#147](https://github.com/getsentry/warden/pull/147)
203
- - Update config reference with missing fields by @dcramer in [#132](https://github.com/getsentry/warden/pull/132)
204
-
205
- ### Internal Changes 🔧
206
-
207
- #### Config
208
-
209
- - Use native PR review skills by @dcramer in [#299](https://github.com/getsentry/warden/pull/299)
210
- - Configure Sentry MCP server by @dcramer in [#301](https://github.com/getsentry/warden/pull/301)
211
- - Exclude evals directory from warden analysis by @dcramer in [#203](https://github.com/getsentry/warden/pull/203)
212
-
213
- #### Deps
214
-
215
- - Bump dotagents lib by @gricha in [#296](https://github.com/getsentry/warden/pull/296)
216
- - Bump yaml from 2.8.2 to 2.8.3 by @dependabot in [#254](https://github.com/getsentry/warden/pull/254)
217
-
218
- #### Sdk
219
-
220
- - Add flat runtime provider contract by @dcramer in [#270](https://github.com/getsentry/warden/pull/270)
221
- - Extract applyMergeGroups to unify cross-location merge logic by @dcramer in [#153](https://github.com/getsentry/warden/pull/153)
222
-
223
- #### Skills
224
-
225
- - Adopt @sentry/dotagents-lib for skill resolution primitives by @gricha in [#285](https://github.com/getsentry/warden/pull/285)
226
- - Restructure distributed Warden skills by @dcramer in [#268](https://github.com/getsentry/warden/pull/268)
227
-
228
- #### Other
229
-
230
- - (agents) Update configured skills list by @dcramer in [#241](https://github.com/getsentry/warden/pull/241)
231
- - (cli) Use git ls-files for .gitignore discovery by @dcramer in [#222](https://github.com/getsentry/warden/pull/222)
232
- - (dotagents) Gitignore auto-generated files instead of tracking them by @gricha in [#246](https://github.com/getsentry/warden/pull/246)
233
- - (evals) Add Warden baseline evals by @dcramer in [#327](https://github.com/getsentry/warden/pull/327)
234
- - (output) Clean up GitHub finding rendering by @dcramer in [#176](https://github.com/getsentry/warden/pull/176)
235
- - (skill-builder) Use internal authoring provider by @dcramer in [#283](https://github.com/getsentry/warden/pull/283)
236
- - (sweep) Clean up warden-sweep skill per skill-creator review by @dcramer in [#225](https://github.com/getsentry/warden/pull/225)
237
- - Add GitHub Actions workflow skill by @dcramer in [#278](https://github.com/getsentry/warden/pull/278)
238
- - Add .serena to gitignore by @ericapisani in [#180](https://github.com/getsentry/warden/pull/180)
239
- - Extract shared skill selection and validate setup-app args by @dcramer in [#208](https://github.com/getsentry/warden/pull/208)
240
- - Combine multiple reduce operations into single pass by @dcramer in [#207](https://github.com/getsentry/warden/pull/207)
241
- - Simplify repetitive column width calculations in logs by @dcramer in [#209](https://github.com/getsentry/warden/pull/209)
242
- - Collapse severity to 3 levels, add warden logs command by @dcramer in [#192](https://github.com/getsentry/warden/pull/192)
243
- - Migrate to dotagents and add skills reference to AGENTS.md by @dcramer in [#195](https://github.com/getsentry/warden/pull/195)
244
- - Tighten weak mock assertions in test suite by @dcramer in [#160](https://github.com/getsentry/warden/pull/160)
245
- - Add conductor.json configuration by @dcramer in [#159](https://github.com/getsentry/warden/pull/159)
246
- - Remove generated artifacts from dist, keep only ncc bundle by @dcramer in [#131](https://github.com/getsentry/warden/pull/131)
247
- - Replace batch-based concurrency with sliding window pool by @dcramer in [#126](https://github.com/getsentry/warden/pull/126)
248
-
249
- ### Other
250
-
251
- - release: 0.30.0 by @getsentry-bot in [c6c9f847](https://github.com/getsentry/warden/commit/c6c9f84722cb84f1013659a876e55a1881605b0d)
252
- - release: 0.29.1 by @getsentry-bot in [73529a81](https://github.com/getsentry/warden/commit/73529a8199b27ce5c7618e29e5624835526bc09a)
253
- - release: 0.29.0 by @getsentry-bot in [d6d153c1](https://github.com/getsentry/warden/commit/d6d153c1c02138207b62932a7f83515ba90fef3c)
254
- - release: 0.28.0 by @getsentry-bot in [969283b9](https://github.com/getsentry/warden/commit/969283b9d652129d9b18585337d003899810a310)
255
- - release: 0.27.0 by @getsentry-bot in [06a593e0](https://github.com/getsentry/warden/commit/06a593e0a43d4ea5c9af9176a9f555c7b9c965f6)
256
- - release: 0.26.2 by @getsentry-bot in [3d492972](https://github.com/getsentry/warden/commit/3d492972d2e6ae5c2666a5d61d1e37a6591892ff)
257
- - release: 0.26.1 by @getsentry-bot in [23280325](https://github.com/getsentry/warden/commit/23280325da28b365fb53e6a33b19b167998e5660)
258
- - release: 0.26.0 by @getsentry-bot in [2bb08b9d](https://github.com/getsentry/warden/commit/2bb08b9d5b276abaee31aab0e672d3ac4ecaee8c)
259
- - release: 0.25.0 by @getsentry-bot in [56de18fe](https://github.com/getsentry/warden/commit/56de18fee0a1bb6a80deae2c0e4688ab05754126)
260
- - release: 0.24.1 by @getsentry-bot in [2b9e2b0c](https://github.com/getsentry/warden/commit/2b9e2b0cdab12b950fcb4abc79e33d7db363ee49)
261
- - release: 0.24.0 by @getsentry-bot in [715259ec](https://github.com/getsentry/warden/commit/715259ecacc9e1e5d78b6b62623960d86e934162)
262
- - release: 0.23.0 by @getsentry-bot in [dd7f76ac](https://github.com/getsentry/warden/commit/dd7f76ac25cd8d70f2557638bd8d8678d9776e96)
263
- - release: 0.22.0 by @getsentry-bot in [08a3b2f0](https://github.com/getsentry/warden/commit/08a3b2f0139248c80ba499038320556bedb66347)
264
- - release: 0.21.0 by @getsentry-bot in [2795626e](https://github.com/getsentry/warden/commit/2795626e8f1ff3c5a7a041d0ecb9ae3c047641cd)
265
- - Docs UI improvements by @PickleNik in [#248](https://github.com/getsentry/warden/pull/248)
266
- - release: 0.20.0 by @getsentry-bot in [e7dbd6eb](https://github.com/getsentry/warden/commit/e7dbd6eb1680d1d15df6388084237e5d231ec929)
267
- - release: 0.19.0 by @getsentry-bot in [0096b702](https://github.com/getsentry/warden/commit/0096b7024749edf9e62a791340cfea2ef5b899bf)
268
- - chores(docs): Add instruction for creating org rulesets by @Jeffreyhung in [#244](https://github.com/getsentry/warden/pull/244)
269
- - release: 0.18.0 by @getsentry-bot in [e3691621](https://github.com/getsentry/warden/commit/e3691621d9f92de1f47fadb47be162b90f7042ff)
270
- - release: 0.17.0 by @getsentry-bot in [d6132a96](https://github.com/getsentry/warden/commit/d6132a960cb033ec737042bea68f195b5cadef76)
271
- - release: 0.16.0 by @getsentry-bot in [62909fe4](https://github.com/getsentry/warden/commit/62909fe4d28c322508945382d001d0a6844852f2)
272
- - release: 0.15.0 by @getsentry-bot in [d9905cee](https://github.com/getsentry/warden/commit/d9905ceee868cba2aa41f8f17233eacb44901c36)
273
- - release: 0.14.0 by @getsentry-bot in [538f13b4](https://github.com/getsentry/warden/commit/538f13b44a4e78f30ecc668957f6cede7d8e7161)
274
- - release: 0.13.0 by @getsentry-bot in [063517a9](https://github.com/getsentry/warden/commit/063517a90a903b56919eec66542b129950ff866c)
275
-
276
- _Plus 10 more_
277
-
278
- ## 0.30.0
279
-
280
- ### New Features ✨
281
-
282
- #### Action
283
-
284
- - Support org base configs with repo overlays by @dcramer in [#279](https://github.com/getsentry/warden/pull/279)
285
- - Write structured findings JSON and expose as output by @gricha in [#233](https://github.com/getsentry/warden/pull/233)
286
-
287
- #### Cli
288
-
289
- - Add @file target lists by @dcramer in [#316](https://github.com/getsentry/warden/pull/316)
290
- - Build generated skills from path targets by @dcramer in [#282](https://github.com/getsentry/warden/pull/282)
291
- - Add --staged flag and default to HEAD for uncommitted changes by @dcramer in [#205](https://github.com/getsentry/warden/pull/205)
292
- - Display confidence level in findings output by @dcramer in [#194](https://github.com/getsentry/warden/pull/194)
293
- - Always-on JSONL logging with repo-local log directory by @dcramer in [#179](https://github.com/getsentry/warden/pull/179)
294
- - Add --fail-fast flag to stop after first finding by @dcramer in [#174](https://github.com/getsentry/warden/pull/174)
295
- - Surface failure details for chunk analysis and finding extraction by @dcramer in [#162](https://github.com/getsentry/warden/pull/162)
296
- - Interactive fix step-through with y/n/a/s/q prompt by @dcramer in [#161](https://github.com/getsentry/warden/pull/161)
297
-
298
- #### Docs
299
-
300
- - Improved landing visuals by @PickleNik in [#245](https://github.com/getsentry/warden/pull/245)
301
- - Add LLM content negotiation and llms.txt by @dcramer in [#178](https://github.com/getsentry/warden/pull/178)
302
-
303
- #### Runs
304
-
305
- - Write chunk-level JSONL logs by @dcramer in [#265](https://github.com/getsentry/warden/pull/265)
306
- - Stream in-progress runs via 'warden runs follow' by @dcramer in [#261](https://github.com/getsentry/warden/pull/261)
307
-
308
- #### Sdk
309
-
310
- - Add Pi runtime by @dcramer in [#318](https://github.com/getsentry/warden/pull/318)
311
- - Add finding verification pass by @dcramer in [#290](https://github.com/getsentry/warden/pull/290)
312
- - Store Claude SDK sessions in .warden/sessions/ by @dcramer in [#193](https://github.com/getsentry/warden/pull/193)
313
-
314
- #### Skills
315
-
316
- - Add built-in code review skill by @dcramer in [#298](https://github.com/getsentry/warden/pull/298)
317
- - Add built-in security review skill by @dcramer in [#292](https://github.com/getsentry/warden/pull/292)
318
- - Consolidate warden-sweep into bundled scripts with prescribed reporting by @dcramer in [#201](https://github.com/getsentry/warden/pull/201)
319
- - Replace notseer with find-warden-bugs skill by @dcramer in [#200](https://github.com/getsentry/warden/pull/200)
320
- - Add warden-sweep skill and bundled skill installation by @dcramer in [#196](https://github.com/getsentry/warden/pull/196)
321
- - Add agent discovery alongside skills by @dcramer in [#136](https://github.com/getsentry/warden/pull/136)
322
-
323
- #### Sweep
324
-
325
- - Add --skill flag to scan.py by @dcramer in [#211](https://github.com/getsentry/warden/pull/211)
326
- - Add master tracking issue for sweep PRs by @dcramer in [#210](https://github.com/getsentry/warden/pull/210)
327
-
328
- #### Telemetry
329
-
330
- - Add skill and model attribution to metrics by @gricha in [#231](https://github.com/getsentry/warden/pull/231)
331
- - Add namespaced fix-eval feedback metrics by @dcramer in [#229](https://github.com/getsentry/warden/pull/229)
332
- - Add global scope attributes, run metric, and trace ID surfacing by @dcramer in [#166](https://github.com/getsentry/warden/pull/166)
333
- - Add input/output attributes to gen_ai spans by @dcramer in [#142](https://github.com/getsentry/warden/pull/142)
334
- - Add per-turn tracing for Claude Code SDK agent calls by @dcramer in [#141](https://github.com/getsentry/warden/pull/141)
335
-
336
- #### Other
337
-
338
- - (config) Make auxiliary max retries configurable via defaults.auxiliaryMaxRetries by @dcramer in [#175](https://github.com/getsentry/warden/pull/175)
339
- - (dedup) Add intra-batch finding consolidation by @dcramer in [#135](https://github.com/getsentry/warden/pull/135)
340
- - (init) Add section-based output and interactive skill prompt by @dcramer in [#182](https://github.com/getsentry/warden/pull/182)
341
- - (o11y) Capture run failures in JSONL output by @dcramer in [#259](https://github.com/getsentry/warden/pull/259)
342
- - (output) Default to COMMENT instead of REQUEST_CHANGES on PRs by @dcramer in [#137](https://github.com/getsentry/warden/pull/137)
343
- - (runner) Global concurrency pool for file analyses by @dcramer in [#158](https://github.com/getsentry/warden/pull/158)
344
- - (skill-builder) Build generated repo-local skills by @dcramer in [#280](https://github.com/getsentry/warden/pull/280)
345
- - Add verification field and confidence filtering by @dcramer in [#191](https://github.com/getsentry/warden/pull/191)
346
- - Pnpm workspace monorepo with docs migration by @dcramer in [#185](https://github.com/getsentry/warden/pull/185)
347
- - Adopt dotagents for skill management by @dcramer in [#168](https://github.com/getsentry/warden/pull/168)
348
- - Cross-location finding merge by @dcramer in [#148](https://github.com/getsentry/warden/pull/148)
349
- - Add env vars to generated workflow and docs by @dcramer in [#138](https://github.com/getsentry/warden/pull/138)
350
- - Add Sentry observability (errors, tracing, metrics, structured logs) by @dcramer in [#133](https://github.com/getsentry/warden/pull/133)
351
- - Split failOn into independent requestChanges and failCheck controls by @dcramer in [#129](https://github.com/getsentry/warden/pull/129)
352
-
353
- ### Bug Fixes 🐛
354
-
355
- #### Action
356
-
357
- - Honor PR trigger parallelism by @dcramer in [#325](https://github.com/getsentry/warden/pull/325)
358
- - Preload Pi node-only providers by @dcramer in [#324](https://github.com/getsentry/warden/pull/324)
359
- - Validate Pi model selectors before execution by @dcramer in [#321](https://github.com/getsentry/warden/pull/321)
360
- - Correct fix evaluation verdict handling by @dcramer in [#314](https://github.com/getsentry/warden/pull/314)
361
- - Use relative findings output path by @dcramer in [#289](https://github.com/getsentry/warden/pull/289)
362
- - Handle missing warden.toml gracefully by @gricha in [#235](https://github.com/getsentry/warden/pull/235)
363
- - Thread maxContextFiles config through Action workflows by @dcramer in [#216](https://github.com/getsentry/warden/pull/216)
364
-
365
- #### Cli
366
-
367
- - Label built-in skill sources by @dcramer in [#294](https://github.com/getsentry/warden/pull/294)
368
- - Report final per-file finding counts by @dcramer in [#293](https://github.com/getsentry/warden/pull/293)
369
- - Align local review diff context by @dcramer in [#276](https://github.com/getsentry/warden/pull/276)
370
- - Replace process.exit(130) with thrown error for graceful cleanup by @dcramer in [#213](https://github.com/getsentry/warden/pull/213)
371
- - Write --output file on auth error early exit by @dcramer in [#214](https://github.com/getsentry/warden/pull/214)
372
- - Normalize path separators in synthetic file changes by @dcramer in [#217](https://github.com/getsentry/warden/pull/217)
373
- - Exclude node_modules from gitignore file discovery by @dcramer in [#220](https://github.com/getsentry/warden/pull/220)
374
- - Collapse skipped files into a single count on Ctrl+C by @dcramer in [#172](https://github.com/getsentry/warden/pull/172)
375
- - Render warnings through Ink's Static component by @dcramer in [#170](https://github.com/getsentry/warden/pull/170)
376
- - Cap 'Other Files' list in prompts for CLI mode by @dcramer in [#171](https://github.com/getsentry/warden/pull/171)
377
- - Move completed files to Static to prevent flickering by @dcramer in [#149](https://github.com/getsentry/warden/pull/149)
378
- - Run all skills locally regardless of trigger type by @gricha in [#145](https://github.com/getsentry/warden/pull/145)
379
- - Resolve remote config for --skill flag by @dcramer in [#130](https://github.com/getsentry/warden/pull/130)
380
-
381
- #### Config
382
-
383
- - Allow base configs to use built-in skills by @dcramer in [#305](https://github.com/getsentry/warden/pull/305)
384
- - Warn on duplicate layered skills by @dcramer in [#304](https://github.com/getsentry/warden/pull/304)
385
- - Add missing fields to TOML writer for config round-trip by @dcramer in [#218](https://github.com/getsentry/warden/pull/218)
386
-
387
- #### Output
388
-
389
- - Render GitHub footers as muted text by @dcramer in [#306](https://github.com/getsentry/warden/pull/306)
390
- - List only successfully applied fixes in PR body by @dcramer in [#219](https://github.com/getsentry/warden/pull/219)
391
- - Use backticks instead of brackets in attribution footer by @dcramer in [#197](https://github.com/getsentry/warden/pull/197)
392
-
393
- #### Sdk
394
-
395
- - Short-circuit repeated provider failures by @dcramer in [#291](https://github.com/getsentry/warden/pull/291)
396
- - Strip invalid suggested fixes from reports by @dcramer in [#228](https://github.com/getsentry/warden/pull/228)
397
- - Prevent Warden sessions from polluting Claude Code history by @dcramer in [#202](https://github.com/getsentry/warden/pull/202)
398
- - Handle EPIPE errors from Claude subprocess failures by @dcramer in [#198](https://github.com/getsentry/warden/pull/198)
399
- - Add verification checklist and Glob tool to reduce analysis hallucinations by @dcramer in [#173](https://github.com/getsentry/warden/pull/173)
400
- - Constrain skill findings to diff hunk line range by @dcramer in [#151](https://github.com/getsentry/warden/pull/151)
401
-
402
- #### Sweep
403
-
404
- - Add self-validation to fix subagent prompt by @dcramer in [#223](https://github.com/getsentry/warden/pull/223)
405
- - Branch worktrees from default branch instead of HEAD by @dcramer in [#221](https://github.com/getsentry/warden/pull/221)
406
-
407
- #### Telemetry
408
-
409
- - Fill finding analytics gaps by @dcramer in [#311](https://github.com/getsentry/warden/pull/311)
410
- - Align attributes with OTel semantics by @dcramer in [#307](https://github.com/getsentry/warden/pull/307)
411
- - Improve OTel GenAI semantic convention compliance by @dcramer in [#140](https://github.com/getsentry/warden/pull/140)
412
- - Fix missing Sentry traces and negative token costs by @dcramer in [#139](https://github.com/getsentry/warden/pull/139)
413
-
414
- #### Other
415
-
416
- - (ci) Enable auto-generated changelogs for GitHub releases by @gricha in [#234](https://github.com/getsentry/warden/pull/234)
417
- - (code-review) Calibrate config severity by @dcramer in [#319](https://github.com/getsentry/warden/pull/319)
418
- - (evals) Update default model to claude-sonnet-4-6 by @dcramer in [#163](https://github.com/getsentry/warden/pull/163)
419
- - (o11y) Add gen_ai.request.model attribute by @obostjancic in [#247](https://github.com/getsentry/warden/pull/247)
420
- - (prepare) Skip files with zero content automatically by @dcramer in [#226](https://github.com/getsentry/warden/pull/226)
421
- - (review) Preserve active Warden threads by @dcramer in [#272](https://github.com/getsentry/warden/pull/272)
422
- - (reviews) Compact inline finding comments by @dcramer in [#315](https://github.com/getsentry/warden/pull/315)
423
- - (sentry) Tag action errors with repository by @dcramer in [#303](https://github.com/getsentry/warden/pull/303)
424
- - (skill-builder) Stabilize generated skill authoring by @dcramer in [#284](https://github.com/getsentry/warden/pull/284)
425
- - (skills) Support private repos in `warden add --remote` by @dcramer in [#187](https://github.com/getsentry/warden/pull/187)
426
- - (usage) Normalize inputTokens to include cached and cache-write tokens by @vgrozdanic in [#143](https://github.com/getsentry/warden/pull/143)
427
- - Include auxiliary costs in total without separate breakdown by @sentry-junior in [#320](https://github.com/getsentry/warden/pull/320)
428
- - Preserve interrupted findings and parse run args by @dcramer in [#297](https://github.com/getsentry/warden/pull/297)
429
- - Prevent command injection in release workflow by @fix-it-felix-sentry in [#277](https://github.com/getsentry/warden/pull/277)
430
- - Handle multi-line YAML scalar values in SKILL.md frontmatter by @odysseus0 in [#243](https://github.com/getsentry/warden/pull/243)
431
- - Server error handler calls process.exit() bypassing cleanup by @dcramer in [#206](https://github.com/getsentry/warden/pull/206)
432
- - Preserve error chains across error wrapping boundaries by @dcramer in [#215](https://github.com/getsentry/warden/pull/215)
433
- - Respect ignorePaths in all code paths by @dcramer in [#204](https://github.com/getsentry/warden/pull/204)
434
- - Exclude dev files and secrets from npm package by @dcramer in [#186](https://github.com/getsentry/warden/pull/186)
435
- - Clean up orphaned Warden comments when no triggers match by @dcramer in [#134](https://github.com/getsentry/warden/pull/134)
436
- - Show findings in PR review body when inline comments fail by @dcramer in [#128](https://github.com/getsentry/warden/pull/128)
437
- - Show skipped status for files not processed during Ctrl+C by @dcramer in [#127](https://github.com/getsentry/warden/pull/127)
438
-
439
- ### Documentation 📚
440
-
441
- - (homepage) Redesign to lead with skills by @dcramer in [#238](https://github.com/getsentry/warden/pull/238)
442
- - Use built-in security review in samples by @dcramer in [#295](https://github.com/getsentry/warden/pull/295)
443
- - Use scoped Warden package in npx examples by @dcramer in [#273](https://github.com/getsentry/warden/pull/273)
444
- - Lead homepage with GitHub PR review story by @dcramer in [#240](https://github.com/getsentry/warden/pull/240)
445
- - Add org-wide GitHub setup guide by @dcramer in [#239](https://github.com/getsentry/warden/pull/239)
446
- - Replace non-existent skill names with generic placeholders by @dcramer in [#199](https://github.com/getsentry/warden/pull/199)
447
- - Simplify getting started guide to use native warden add --remote by @dcramer in [#164](https://github.com/getsentry/warden/pull/164)
448
- - Fix documentation inconsistencies with codebase by @dcramer in [#147](https://github.com/getsentry/warden/pull/147)
449
- - Update config reference with missing fields by @dcramer in [#132](https://github.com/getsentry/warden/pull/132)
450
-
451
- ### Internal Changes 🔧
452
-
453
- #### Config
454
-
455
- - Use native PR review skills by @dcramer in [#299](https://github.com/getsentry/warden/pull/299)
456
- - Configure Sentry MCP server by @dcramer in [#301](https://github.com/getsentry/warden/pull/301)
457
- - Exclude evals directory from warden analysis by @dcramer in [#203](https://github.com/getsentry/warden/pull/203)
458
-
459
- #### Deps
460
-
461
- - Bump dotagents lib by @gricha in [#296](https://github.com/getsentry/warden/pull/296)
462
- - Bump yaml from 2.8.2 to 2.8.3 by @dependabot in [#254](https://github.com/getsentry/warden/pull/254)
463
-
464
- #### Sdk
465
-
466
- - Add flat runtime provider contract by @dcramer in [#270](https://github.com/getsentry/warden/pull/270)
467
- - Extract applyMergeGroups to unify cross-location merge logic by @dcramer in [#153](https://github.com/getsentry/warden/pull/153)
468
-
469
- #### Skills
470
-
471
- - Adopt @sentry/dotagents-lib for skill resolution primitives by @gricha in [#285](https://github.com/getsentry/warden/pull/285)
472
- - Restructure distributed Warden skills by @dcramer in [#268](https://github.com/getsentry/warden/pull/268)
473
-
474
- #### Other
475
-
476
- - (agents) Update configured skills list by @dcramer in [#241](https://github.com/getsentry/warden/pull/241)
477
- - (cli) Use git ls-files for .gitignore discovery by @dcramer in [#222](https://github.com/getsentry/warden/pull/222)
478
- - (dotagents) Gitignore auto-generated files instead of tracking them by @gricha in [#246](https://github.com/getsentry/warden/pull/246)
479
- - (output) Clean up GitHub finding rendering by @dcramer in [#176](https://github.com/getsentry/warden/pull/176)
480
- - (skill-builder) Use internal authoring provider by @dcramer in [#283](https://github.com/getsentry/warden/pull/283)
481
- - (sweep) Clean up warden-sweep skill per skill-creator review by @dcramer in [#225](https://github.com/getsentry/warden/pull/225)
482
- - Add GitHub Actions workflow skill by @dcramer in [#278](https://github.com/getsentry/warden/pull/278)
483
- - Add .serena to gitignore by @ericapisani in [#180](https://github.com/getsentry/warden/pull/180)
484
- - Extract shared skill selection and validate setup-app args by @dcramer in [#208](https://github.com/getsentry/warden/pull/208)
485
- - Combine multiple reduce operations into single pass by @dcramer in [#207](https://github.com/getsentry/warden/pull/207)
486
- - Simplify repetitive column width calculations in logs by @dcramer in [#209](https://github.com/getsentry/warden/pull/209)
487
- - Collapse severity to 3 levels, add warden logs command by @dcramer in [#192](https://github.com/getsentry/warden/pull/192)
488
- - Migrate to dotagents and add skills reference to AGENTS.md by @dcramer in [#195](https://github.com/getsentry/warden/pull/195)
489
- - Tighten weak mock assertions in test suite by @dcramer in [#160](https://github.com/getsentry/warden/pull/160)
490
- - Add conductor.json configuration by @dcramer in [#159](https://github.com/getsentry/warden/pull/159)
491
- - Remove generated artifacts from dist, keep only ncc bundle by @dcramer in [#131](https://github.com/getsentry/warden/pull/131)
492
- - Replace batch-based concurrency with sliding window pool by @dcramer in [#126](https://github.com/getsentry/warden/pull/126)
493
-
494
- ### Other
495
-
496
- - release: 0.29.1 by @getsentry-bot in [73529a81](https://github.com/getsentry/warden/commit/73529a8199b27ce5c7618e29e5624835526bc09a)
497
- - release: 0.29.0 by @getsentry-bot in [d6d153c1](https://github.com/getsentry/warden/commit/d6d153c1c02138207b62932a7f83515ba90fef3c)
498
- - release: 0.28.0 by @getsentry-bot in [969283b9](https://github.com/getsentry/warden/commit/969283b9d652129d9b18585337d003899810a310)
499
- - release: 0.27.0 by @getsentry-bot in [06a593e0](https://github.com/getsentry/warden/commit/06a593e0a43d4ea5c9af9176a9f555c7b9c965f6)
500
- - release: 0.26.2 by @getsentry-bot in [3d492972](https://github.com/getsentry/warden/commit/3d492972d2e6ae5c2666a5d61d1e37a6591892ff)
501
- - release: 0.26.1 by @getsentry-bot in [23280325](https://github.com/getsentry/warden/commit/23280325da28b365fb53e6a33b19b167998e5660)
502
- - release: 0.26.0 by @getsentry-bot in [2bb08b9d](https://github.com/getsentry/warden/commit/2bb08b9d5b276abaee31aab0e672d3ac4ecaee8c)
503
- - release: 0.25.0 by @getsentry-bot in [56de18fe](https://github.com/getsentry/warden/commit/56de18fee0a1bb6a80deae2c0e4688ab05754126)
504
- - release: 0.24.1 by @getsentry-bot in [2b9e2b0c](https://github.com/getsentry/warden/commit/2b9e2b0cdab12b950fcb4abc79e33d7db363ee49)
505
- - release: 0.24.0 by @getsentry-bot in [715259ec](https://github.com/getsentry/warden/commit/715259ecacc9e1e5d78b6b62623960d86e934162)
506
- - release: 0.23.0 by @getsentry-bot in [dd7f76ac](https://github.com/getsentry/warden/commit/dd7f76ac25cd8d70f2557638bd8d8678d9776e96)
507
- - release: 0.22.0 by @getsentry-bot in [08a3b2f0](https://github.com/getsentry/warden/commit/08a3b2f0139248c80ba499038320556bedb66347)
508
- - release: 0.21.0 by @getsentry-bot in [2795626e](https://github.com/getsentry/warden/commit/2795626e8f1ff3c5a7a041d0ecb9ae3c047641cd)
509
- - Docs UI improvements by @PickleNik in [#248](https://github.com/getsentry/warden/pull/248)
510
- - release: 0.20.0 by @getsentry-bot in [e7dbd6eb](https://github.com/getsentry/warden/commit/e7dbd6eb1680d1d15df6388084237e5d231ec929)
511
- - release: 0.19.0 by @getsentry-bot in [0096b702](https://github.com/getsentry/warden/commit/0096b7024749edf9e62a791340cfea2ef5b899bf)
512
- - chores(docs): Add instruction for creating org rulesets by @Jeffreyhung in [#244](https://github.com/getsentry/warden/pull/244)
513
- - release: 0.18.0 by @getsentry-bot in [e3691621](https://github.com/getsentry/warden/commit/e3691621d9f92de1f47fadb47be162b90f7042ff)
514
- - release: 0.17.0 by @getsentry-bot in [d6132a96](https://github.com/getsentry/warden/commit/d6132a960cb033ec737042bea68f195b5cadef76)
515
- - release: 0.16.0 by @getsentry-bot in [62909fe4](https://github.com/getsentry/warden/commit/62909fe4d28c322508945382d001d0a6844852f2)
516
- - release: 0.15.0 by @getsentry-bot in [d9905cee](https://github.com/getsentry/warden/commit/d9905ceee868cba2aa41f8f17233eacb44901c36)
517
- - release: 0.14.0 by @getsentry-bot in [538f13b4](https://github.com/getsentry/warden/commit/538f13b44a4e78f30ecc668957f6cede7d8e7161)
518
- - release: 0.13.0 by @getsentry-bot in [063517a9](https://github.com/getsentry/warden/commit/063517a90a903b56919eec66542b129950ff866c)
519
- - release: 0.12.0 by @getsentry-bot in [7177c99f](https://github.com/getsentry/warden/commit/7177c99fb10de1cbec8b788881d501a4f8d72965)
520
-
521
- _Plus 9 more_
522
-
523
- ## 0.29.1
524
-
525
- ### New Features ✨
526
-
527
- #### Action
528
-
529
- - Support org base configs with repo overlays by @dcramer in [#279](https://github.com/getsentry/warden/pull/279)
530
- - Write structured findings JSON and expose as output by @gricha in [#233](https://github.com/getsentry/warden/pull/233)
531
-
532
- #### Cli
533
-
534
- - Add @file target lists by @dcramer in [#316](https://github.com/getsentry/warden/pull/316)
535
- - Build generated skills from path targets by @dcramer in [#282](https://github.com/getsentry/warden/pull/282)
536
- - Add --staged flag and default to HEAD for uncommitted changes by @dcramer in [#205](https://github.com/getsentry/warden/pull/205)
537
- - Display confidence level in findings output by @dcramer in [#194](https://github.com/getsentry/warden/pull/194)
538
- - Always-on JSONL logging with repo-local log directory by @dcramer in [#179](https://github.com/getsentry/warden/pull/179)
539
- - Add --fail-fast flag to stop after first finding by @dcramer in [#174](https://github.com/getsentry/warden/pull/174)
540
- - Surface failure details for chunk analysis and finding extraction by @dcramer in [#162](https://github.com/getsentry/warden/pull/162)
541
- - Interactive fix step-through with y/n/a/s/q prompt by @dcramer in [#161](https://github.com/getsentry/warden/pull/161)
542
-
543
- #### Docs
544
-
545
- - Improved landing visuals by @PickleNik in [#245](https://github.com/getsentry/warden/pull/245)
546
- - Add LLM content negotiation and llms.txt by @dcramer in [#178](https://github.com/getsentry/warden/pull/178)
547
-
548
- #### Runs
549
-
550
- - Write chunk-level JSONL logs by @dcramer in [#265](https://github.com/getsentry/warden/pull/265)
551
- - Stream in-progress runs via 'warden runs follow' by @dcramer in [#261](https://github.com/getsentry/warden/pull/261)
552
-
553
- #### Sdk
554
-
555
- - Add Pi runtime by @dcramer in [#318](https://github.com/getsentry/warden/pull/318)
556
- - Add finding verification pass by @dcramer in [#290](https://github.com/getsentry/warden/pull/290)
557
- - Store Claude SDK sessions in .warden/sessions/ by @dcramer in [#193](https://github.com/getsentry/warden/pull/193)
558
-
559
- #### Skills
560
-
561
- - Add built-in code review skill by @dcramer in [#298](https://github.com/getsentry/warden/pull/298)
562
- - Add built-in security review skill by @dcramer in [#292](https://github.com/getsentry/warden/pull/292)
563
- - Consolidate warden-sweep into bundled scripts with prescribed reporting by @dcramer in [#201](https://github.com/getsentry/warden/pull/201)
564
- - Replace notseer with find-warden-bugs skill by @dcramer in [#200](https://github.com/getsentry/warden/pull/200)
565
- - Add warden-sweep skill and bundled skill installation by @dcramer in [#196](https://github.com/getsentry/warden/pull/196)
566
- - Add agent discovery alongside skills by @dcramer in [#136](https://github.com/getsentry/warden/pull/136)
567
-
568
- #### Sweep
569
-
570
- - Add --skill flag to scan.py by @dcramer in [#211](https://github.com/getsentry/warden/pull/211)
571
- - Add master tracking issue for sweep PRs by @dcramer in [#210](https://github.com/getsentry/warden/pull/210)
572
-
573
- #### Telemetry
574
-
575
- - Add skill and model attribution to metrics by @gricha in [#231](https://github.com/getsentry/warden/pull/231)
576
- - Add namespaced fix-eval feedback metrics by @dcramer in [#229](https://github.com/getsentry/warden/pull/229)
577
- - Add global scope attributes, run metric, and trace ID surfacing by @dcramer in [#166](https://github.com/getsentry/warden/pull/166)
578
- - Add input/output attributes to gen_ai spans by @dcramer in [#142](https://github.com/getsentry/warden/pull/142)
579
- - Add per-turn tracing for Claude Code SDK agent calls by @dcramer in [#141](https://github.com/getsentry/warden/pull/141)
580
-
581
- #### Other
582
-
583
- - (config) Make auxiliary max retries configurable via defaults.auxiliaryMaxRetries by @dcramer in [#175](https://github.com/getsentry/warden/pull/175)
584
- - (dedup) Add intra-batch finding consolidation by @dcramer in [#135](https://github.com/getsentry/warden/pull/135)
585
- - (init) Add section-based output and interactive skill prompt by @dcramer in [#182](https://github.com/getsentry/warden/pull/182)
586
- - (o11y) Capture run failures in JSONL output by @dcramer in [#259](https://github.com/getsentry/warden/pull/259)
587
- - (output) Default to COMMENT instead of REQUEST_CHANGES on PRs by @dcramer in [#137](https://github.com/getsentry/warden/pull/137)
588
- - (runner) Global concurrency pool for file analyses by @dcramer in [#158](https://github.com/getsentry/warden/pull/158)
589
- - (skill-builder) Build generated repo-local skills by @dcramer in [#280](https://github.com/getsentry/warden/pull/280)
590
- - Add verification field and confidence filtering by @dcramer in [#191](https://github.com/getsentry/warden/pull/191)
591
- - Pnpm workspace monorepo with docs migration by @dcramer in [#185](https://github.com/getsentry/warden/pull/185)
592
- - Adopt dotagents for skill management by @dcramer in [#168](https://github.com/getsentry/warden/pull/168)
593
- - Cross-location finding merge by @dcramer in [#148](https://github.com/getsentry/warden/pull/148)
594
- - Add env vars to generated workflow and docs by @dcramer in [#138](https://github.com/getsentry/warden/pull/138)
595
- - Add Sentry observability (errors, tracing, metrics, structured logs) by @dcramer in [#133](https://github.com/getsentry/warden/pull/133)
596
- - Split failOn into independent requestChanges and failCheck controls by @dcramer in [#129](https://github.com/getsentry/warden/pull/129)
597
-
598
- ### Bug Fixes 🐛
599
-
600
- #### Action
601
-
602
- - Validate Pi model selectors before execution by @dcramer in [#321](https://github.com/getsentry/warden/pull/321)
603
- - Correct fix evaluation verdict handling by @dcramer in [#314](https://github.com/getsentry/warden/pull/314)
604
- - Use relative findings output path by @dcramer in [#289](https://github.com/getsentry/warden/pull/289)
605
- - Handle missing warden.toml gracefully by @gricha in [#235](https://github.com/getsentry/warden/pull/235)
606
- - Thread maxContextFiles config through Action workflows by @dcramer in [#216](https://github.com/getsentry/warden/pull/216)
607
-
608
- #### Cli
609
-
610
- - Label built-in skill sources by @dcramer in [#294](https://github.com/getsentry/warden/pull/294)
611
- - Report final per-file finding counts by @dcramer in [#293](https://github.com/getsentry/warden/pull/293)
612
- - Align local review diff context by @dcramer in [#276](https://github.com/getsentry/warden/pull/276)
613
- - Replace process.exit(130) with thrown error for graceful cleanup by @dcramer in [#213](https://github.com/getsentry/warden/pull/213)
614
- - Write --output file on auth error early exit by @dcramer in [#214](https://github.com/getsentry/warden/pull/214)
615
- - Normalize path separators in synthetic file changes by @dcramer in [#217](https://github.com/getsentry/warden/pull/217)
616
- - Exclude node_modules from gitignore file discovery by @dcramer in [#220](https://github.com/getsentry/warden/pull/220)
617
- - Collapse skipped files into a single count on Ctrl+C by @dcramer in [#172](https://github.com/getsentry/warden/pull/172)
618
- - Render warnings through Ink's Static component by @dcramer in [#170](https://github.com/getsentry/warden/pull/170)
619
- - Cap 'Other Files' list in prompts for CLI mode by @dcramer in [#171](https://github.com/getsentry/warden/pull/171)
620
- - Move completed files to Static to prevent flickering by @dcramer in [#149](https://github.com/getsentry/warden/pull/149)
621
- - Run all skills locally regardless of trigger type by @gricha in [#145](https://github.com/getsentry/warden/pull/145)
622
- - Resolve remote config for --skill flag by @dcramer in [#130](https://github.com/getsentry/warden/pull/130)
623
-
624
- #### Config
625
-
626
- - Allow base configs to use built-in skills by @dcramer in [#305](https://github.com/getsentry/warden/pull/305)
627
- - Warn on duplicate layered skills by @dcramer in [#304](https://github.com/getsentry/warden/pull/304)
628
- - Add missing fields to TOML writer for config round-trip by @dcramer in [#218](https://github.com/getsentry/warden/pull/218)
629
-
630
- #### Output
631
-
632
- - Render GitHub footers as muted text by @dcramer in [#306](https://github.com/getsentry/warden/pull/306)
633
- - List only successfully applied fixes in PR body by @dcramer in [#219](https://github.com/getsentry/warden/pull/219)
634
- - Use backticks instead of brackets in attribution footer by @dcramer in [#197](https://github.com/getsentry/warden/pull/197)
635
-
636
- #### Sdk
637
-
638
- - Short-circuit repeated provider failures by @dcramer in [#291](https://github.com/getsentry/warden/pull/291)
639
- - Strip invalid suggested fixes from reports by @dcramer in [#228](https://github.com/getsentry/warden/pull/228)
640
- - Prevent Warden sessions from polluting Claude Code history by @dcramer in [#202](https://github.com/getsentry/warden/pull/202)
641
- - Handle EPIPE errors from Claude subprocess failures by @dcramer in [#198](https://github.com/getsentry/warden/pull/198)
642
- - Add verification checklist and Glob tool to reduce analysis hallucinations by @dcramer in [#173](https://github.com/getsentry/warden/pull/173)
643
- - Constrain skill findings to diff hunk line range by @dcramer in [#151](https://github.com/getsentry/warden/pull/151)
644
-
645
- #### Sweep
646
-
647
- - Add self-validation to fix subagent prompt by @dcramer in [#223](https://github.com/getsentry/warden/pull/223)
648
- - Branch worktrees from default branch instead of HEAD by @dcramer in [#221](https://github.com/getsentry/warden/pull/221)
649
-
650
- #### Telemetry
651
-
652
- - Fill finding analytics gaps by @dcramer in [#311](https://github.com/getsentry/warden/pull/311)
653
- - Align attributes with OTel semantics by @dcramer in [#307](https://github.com/getsentry/warden/pull/307)
654
- - Improve OTel GenAI semantic convention compliance by @dcramer in [#140](https://github.com/getsentry/warden/pull/140)
655
- - Fix missing Sentry traces and negative token costs by @dcramer in [#139](https://github.com/getsentry/warden/pull/139)
656
-
657
- #### Other
658
-
659
- - (ci) Enable auto-generated changelogs for GitHub releases by @gricha in [#234](https://github.com/getsentry/warden/pull/234)
660
- - (code-review) Calibrate config severity by @dcramer in [#319](https://github.com/getsentry/warden/pull/319)
661
- - (evals) Update default model to claude-sonnet-4-6 by @dcramer in [#163](https://github.com/getsentry/warden/pull/163)
662
- - (o11y) Add gen_ai.request.model attribute by @obostjancic in [#247](https://github.com/getsentry/warden/pull/247)
663
- - (prepare) Skip files with zero content automatically by @dcramer in [#226](https://github.com/getsentry/warden/pull/226)
664
- - (review) Preserve active Warden threads by @dcramer in [#272](https://github.com/getsentry/warden/pull/272)
665
- - (reviews) Compact inline finding comments by @dcramer in [#315](https://github.com/getsentry/warden/pull/315)
666
- - (sentry) Tag action errors with repository by @dcramer in [#303](https://github.com/getsentry/warden/pull/303)
667
- - (skill-builder) Stabilize generated skill authoring by @dcramer in [#284](https://github.com/getsentry/warden/pull/284)
668
- - (skills) Support private repos in `warden add --remote` by @dcramer in [#187](https://github.com/getsentry/warden/pull/187)
669
- - (usage) Normalize inputTokens to include cached and cache-write tokens by @vgrozdanic in [#143](https://github.com/getsentry/warden/pull/143)
670
- - Include auxiliary costs in total without separate breakdown by @sentry-junior in [#320](https://github.com/getsentry/warden/pull/320)
671
- - Preserve interrupted findings and parse run args by @dcramer in [#297](https://github.com/getsentry/warden/pull/297)
672
- - Prevent command injection in release workflow by @fix-it-felix-sentry in [#277](https://github.com/getsentry/warden/pull/277)
673
- - Handle multi-line YAML scalar values in SKILL.md frontmatter by @odysseus0 in [#243](https://github.com/getsentry/warden/pull/243)
674
- - Server error handler calls process.exit() bypassing cleanup by @dcramer in [#206](https://github.com/getsentry/warden/pull/206)
675
- - Preserve error chains across error wrapping boundaries by @dcramer in [#215](https://github.com/getsentry/warden/pull/215)
676
- - Respect ignorePaths in all code paths by @dcramer in [#204](https://github.com/getsentry/warden/pull/204)
677
- - Exclude dev files and secrets from npm package by @dcramer in [#186](https://github.com/getsentry/warden/pull/186)
678
- - Clean up orphaned Warden comments when no triggers match by @dcramer in [#134](https://github.com/getsentry/warden/pull/134)
679
- - Show findings in PR review body when inline comments fail by @dcramer in [#128](https://github.com/getsentry/warden/pull/128)
680
- - Show skipped status for files not processed during Ctrl+C by @dcramer in [#127](https://github.com/getsentry/warden/pull/127)
681
-
682
- ### Documentation 📚
683
-
684
- - (homepage) Redesign to lead with skills by @dcramer in [#238](https://github.com/getsentry/warden/pull/238)
685
- - Use built-in security review in samples by @dcramer in [#295](https://github.com/getsentry/warden/pull/295)
686
- - Use scoped Warden package in npx examples by @dcramer in [#273](https://github.com/getsentry/warden/pull/273)
687
- - Lead homepage with GitHub PR review story by @dcramer in [#240](https://github.com/getsentry/warden/pull/240)
688
- - Add org-wide GitHub setup guide by @dcramer in [#239](https://github.com/getsentry/warden/pull/239)
689
- - Replace non-existent skill names with generic placeholders by @dcramer in [#199](https://github.com/getsentry/warden/pull/199)
690
- - Simplify getting started guide to use native warden add --remote by @dcramer in [#164](https://github.com/getsentry/warden/pull/164)
691
- - Fix documentation inconsistencies with codebase by @dcramer in [#147](https://github.com/getsentry/warden/pull/147)
692
- - Update config reference with missing fields by @dcramer in [#132](https://github.com/getsentry/warden/pull/132)
693
-
694
- ### Internal Changes 🔧
695
-
696
- #### Config
697
-
698
- - Use native PR review skills by @dcramer in [#299](https://github.com/getsentry/warden/pull/299)
699
- - Configure Sentry MCP server by @dcramer in [#301](https://github.com/getsentry/warden/pull/301)
700
- - Exclude evals directory from warden analysis by @dcramer in [#203](https://github.com/getsentry/warden/pull/203)
701
-
702
- #### Deps
703
-
704
- - Bump dotagents lib by @gricha in [#296](https://github.com/getsentry/warden/pull/296)
705
- - Bump yaml from 2.8.2 to 2.8.3 by @dependabot in [#254](https://github.com/getsentry/warden/pull/254)
706
-
707
- #### Sdk
708
-
709
- - Add flat runtime provider contract by @dcramer in [#270](https://github.com/getsentry/warden/pull/270)
710
- - Extract applyMergeGroups to unify cross-location merge logic by @dcramer in [#153](https://github.com/getsentry/warden/pull/153)
711
-
712
- #### Skills
713
-
714
- - Adopt @sentry/dotagents-lib for skill resolution primitives by @gricha in [#285](https://github.com/getsentry/warden/pull/285)
715
- - Restructure distributed Warden skills by @dcramer in [#268](https://github.com/getsentry/warden/pull/268)
716
-
717
- #### Other
718
-
719
- - (agents) Update configured skills list by @dcramer in [#241](https://github.com/getsentry/warden/pull/241)
720
- - (cli) Use git ls-files for .gitignore discovery by @dcramer in [#222](https://github.com/getsentry/warden/pull/222)
721
- - (dotagents) Gitignore auto-generated files instead of tracking them by @gricha in [#246](https://github.com/getsentry/warden/pull/246)
722
- - (output) Clean up GitHub finding rendering by @dcramer in [#176](https://github.com/getsentry/warden/pull/176)
723
- - (skill-builder) Use internal authoring provider by @dcramer in [#283](https://github.com/getsentry/warden/pull/283)
724
- - (sweep) Clean up warden-sweep skill per skill-creator review by @dcramer in [#225](https://github.com/getsentry/warden/pull/225)
725
- - Add GitHub Actions workflow skill by @dcramer in [#278](https://github.com/getsentry/warden/pull/278)
726
- - Add .serena to gitignore by @ericapisani in [#180](https://github.com/getsentry/warden/pull/180)
727
- - Extract shared skill selection and validate setup-app args by @dcramer in [#208](https://github.com/getsentry/warden/pull/208)
728
- - Combine multiple reduce operations into single pass by @dcramer in [#207](https://github.com/getsentry/warden/pull/207)
729
- - Simplify repetitive column width calculations in logs by @dcramer in [#209](https://github.com/getsentry/warden/pull/209)
730
- - Collapse severity to 3 levels, add warden logs command by @dcramer in [#192](https://github.com/getsentry/warden/pull/192)
731
- - Migrate to dotagents and add skills reference to AGENTS.md by @dcramer in [#195](https://github.com/getsentry/warden/pull/195)
732
- - Tighten weak mock assertions in test suite by @dcramer in [#160](https://github.com/getsentry/warden/pull/160)
733
- - Add conductor.json configuration by @dcramer in [#159](https://github.com/getsentry/warden/pull/159)
734
- - Remove generated artifacts from dist, keep only ncc bundle by @dcramer in [#131](https://github.com/getsentry/warden/pull/131)
735
- - Replace batch-based concurrency with sliding window pool by @dcramer in [#126](https://github.com/getsentry/warden/pull/126)
736
-
737
- ### Other
738
-
739
- - release: 0.29.0 by @getsentry-bot in [d6d153c1](https://github.com/getsentry/warden/commit/d6d153c1c02138207b62932a7f83515ba90fef3c)
740
- - release: 0.28.0 by @getsentry-bot in [969283b9](https://github.com/getsentry/warden/commit/969283b9d652129d9b18585337d003899810a310)
741
- - release: 0.27.0 by @getsentry-bot in [06a593e0](https://github.com/getsentry/warden/commit/06a593e0a43d4ea5c9af9176a9f555c7b9c965f6)
742
- - release: 0.26.2 by @getsentry-bot in [3d492972](https://github.com/getsentry/warden/commit/3d492972d2e6ae5c2666a5d61d1e37a6591892ff)
743
- - release: 0.26.1 by @getsentry-bot in [23280325](https://github.com/getsentry/warden/commit/23280325da28b365fb53e6a33b19b167998e5660)
744
- - release: 0.26.0 by @getsentry-bot in [2bb08b9d](https://github.com/getsentry/warden/commit/2bb08b9d5b276abaee31aab0e672d3ac4ecaee8c)
745
- - release: 0.25.0 by @getsentry-bot in [56de18fe](https://github.com/getsentry/warden/commit/56de18fee0a1bb6a80deae2c0e4688ab05754126)
746
- - release: 0.24.1 by @getsentry-bot in [2b9e2b0c](https://github.com/getsentry/warden/commit/2b9e2b0cdab12b950fcb4abc79e33d7db363ee49)
747
- - release: 0.24.0 by @getsentry-bot in [715259ec](https://github.com/getsentry/warden/commit/715259ecacc9e1e5d78b6b62623960d86e934162)
748
- - release: 0.23.0 by @getsentry-bot in [dd7f76ac](https://github.com/getsentry/warden/commit/dd7f76ac25cd8d70f2557638bd8d8678d9776e96)
749
- - release: 0.22.0 by @getsentry-bot in [08a3b2f0](https://github.com/getsentry/warden/commit/08a3b2f0139248c80ba499038320556bedb66347)
750
- - release: 0.21.0 by @getsentry-bot in [2795626e](https://github.com/getsentry/warden/commit/2795626e8f1ff3c5a7a041d0ecb9ae3c047641cd)
751
- - Docs UI improvements by @PickleNik in [#248](https://github.com/getsentry/warden/pull/248)
752
- - release: 0.20.0 by @getsentry-bot in [e7dbd6eb](https://github.com/getsentry/warden/commit/e7dbd6eb1680d1d15df6388084237e5d231ec929)
753
- - release: 0.19.0 by @getsentry-bot in [0096b702](https://github.com/getsentry/warden/commit/0096b7024749edf9e62a791340cfea2ef5b899bf)
754
- - chores(docs): Add instruction for creating org rulesets by @Jeffreyhung in [#244](https://github.com/getsentry/warden/pull/244)
755
- - release: 0.18.0 by @getsentry-bot in [e3691621](https://github.com/getsentry/warden/commit/e3691621d9f92de1f47fadb47be162b90f7042ff)
756
- - release: 0.17.0 by @getsentry-bot in [d6132a96](https://github.com/getsentry/warden/commit/d6132a960cb033ec737042bea68f195b5cadef76)
757
- - release: 0.16.0 by @getsentry-bot in [62909fe4](https://github.com/getsentry/warden/commit/62909fe4d28c322508945382d001d0a6844852f2)
758
- - release: 0.15.0 by @getsentry-bot in [d9905cee](https://github.com/getsentry/warden/commit/d9905ceee868cba2aa41f8f17233eacb44901c36)
759
- - release: 0.14.0 by @getsentry-bot in [538f13b4](https://github.com/getsentry/warden/commit/538f13b44a4e78f30ecc668957f6cede7d8e7161)
760
- - release: 0.13.0 by @getsentry-bot in [063517a9](https://github.com/getsentry/warden/commit/063517a90a903b56919eec66542b129950ff866c)
761
- - release: 0.12.0 by @getsentry-bot in [7177c99f](https://github.com/getsentry/warden/commit/7177c99fb10de1cbec8b788881d501a4f8d72965)
762
- - Remove outdated SPEC.md by @dcramer in [#181](https://github.com/getsentry/warden/pull/181)
763
-
764
- _Plus 8 more_
765
-
766
- ## 0.29.0
767
-
768
- ### New Features ✨
769
-
770
- #### Action
771
-
772
- - Support org base configs with repo overlays by @dcramer in [#279](https://github.com/getsentry/warden/pull/279)
773
- - Write structured findings JSON and expose as output by @gricha in [#233](https://github.com/getsentry/warden/pull/233)
774
-
775
- #### Cli
776
-
777
- - Add @file target lists by @dcramer in [#316](https://github.com/getsentry/warden/pull/316)
778
- - Build generated skills from path targets by @dcramer in [#282](https://github.com/getsentry/warden/pull/282)
779
- - Add --staged flag and default to HEAD for uncommitted changes by @dcramer in [#205](https://github.com/getsentry/warden/pull/205)
780
- - Display confidence level in findings output by @dcramer in [#194](https://github.com/getsentry/warden/pull/194)
781
- - Always-on JSONL logging with repo-local log directory by @dcramer in [#179](https://github.com/getsentry/warden/pull/179)
782
- - Add --fail-fast flag to stop after first finding by @dcramer in [#174](https://github.com/getsentry/warden/pull/174)
783
- - Surface failure details for chunk analysis and finding extraction by @dcramer in [#162](https://github.com/getsentry/warden/pull/162)
784
- - Interactive fix step-through with y/n/a/s/q prompt by @dcramer in [#161](https://github.com/getsentry/warden/pull/161)
785
-
786
- #### Docs
787
-
788
- - Improved landing visuals by @PickleNik in [#245](https://github.com/getsentry/warden/pull/245)
789
- - Add LLM content negotiation and llms.txt by @dcramer in [#178](https://github.com/getsentry/warden/pull/178)
790
-
791
- #### Runs
792
-
793
- - Write chunk-level JSONL logs by @dcramer in [#265](https://github.com/getsentry/warden/pull/265)
794
- - Stream in-progress runs via 'warden runs follow' by @dcramer in [#261](https://github.com/getsentry/warden/pull/261)
795
-
796
- #### Sdk
797
-
798
- - Add Pi runtime by @dcramer in [#318](https://github.com/getsentry/warden/pull/318)
799
- - Add finding verification pass by @dcramer in [#290](https://github.com/getsentry/warden/pull/290)
800
- - Store Claude SDK sessions in .warden/sessions/ by @dcramer in [#193](https://github.com/getsentry/warden/pull/193)
801
-
802
- #### Skills
803
-
804
- - Add built-in code review skill by @dcramer in [#298](https://github.com/getsentry/warden/pull/298)
805
- - Add built-in security review skill by @dcramer in [#292](https://github.com/getsentry/warden/pull/292)
806
- - Consolidate warden-sweep into bundled scripts with prescribed reporting by @dcramer in [#201](https://github.com/getsentry/warden/pull/201)
807
- - Replace notseer with find-warden-bugs skill by @dcramer in [#200](https://github.com/getsentry/warden/pull/200)
808
- - Add warden-sweep skill and bundled skill installation by @dcramer in [#196](https://github.com/getsentry/warden/pull/196)
809
- - Add agent discovery alongside skills by @dcramer in [#136](https://github.com/getsentry/warden/pull/136)
810
-
811
- #### Sweep
812
-
813
- - Add --skill flag to scan.py by @dcramer in [#211](https://github.com/getsentry/warden/pull/211)
814
- - Add master tracking issue for sweep PRs by @dcramer in [#210](https://github.com/getsentry/warden/pull/210)
815
-
816
- #### Telemetry
817
-
818
- - Add skill and model attribution to metrics by @gricha in [#231](https://github.com/getsentry/warden/pull/231)
819
- - Add namespaced fix-eval feedback metrics by @dcramer in [#229](https://github.com/getsentry/warden/pull/229)
820
- - Add global scope attributes, run metric, and trace ID surfacing by @dcramer in [#166](https://github.com/getsentry/warden/pull/166)
821
- - Add input/output attributes to gen_ai spans by @dcramer in [#142](https://github.com/getsentry/warden/pull/142)
822
- - Add per-turn tracing for Claude Code SDK agent calls by @dcramer in [#141](https://github.com/getsentry/warden/pull/141)
823
-
824
- #### Other
825
-
826
- - (config) Make auxiliary max retries configurable via defaults.auxiliaryMaxRetries by @dcramer in [#175](https://github.com/getsentry/warden/pull/175)
827
- - (dedup) Add intra-batch finding consolidation by @dcramer in [#135](https://github.com/getsentry/warden/pull/135)
828
- - (init) Add section-based output and interactive skill prompt by @dcramer in [#182](https://github.com/getsentry/warden/pull/182)
829
- - (o11y) Capture run failures in JSONL output by @dcramer in [#259](https://github.com/getsentry/warden/pull/259)
830
- - (output) Default to COMMENT instead of REQUEST_CHANGES on PRs by @dcramer in [#137](https://github.com/getsentry/warden/pull/137)
831
- - (runner) Global concurrency pool for file analyses by @dcramer in [#158](https://github.com/getsentry/warden/pull/158)
832
- - (skill-builder) Build generated repo-local skills by @dcramer in [#280](https://github.com/getsentry/warden/pull/280)
833
- - Add verification field and confidence filtering by @dcramer in [#191](https://github.com/getsentry/warden/pull/191)
834
- - Pnpm workspace monorepo with docs migration by @dcramer in [#185](https://github.com/getsentry/warden/pull/185)
835
- - Adopt dotagents for skill management by @dcramer in [#168](https://github.com/getsentry/warden/pull/168)
836
- - Cross-location finding merge by @dcramer in [#148](https://github.com/getsentry/warden/pull/148)
837
- - Add env vars to generated workflow and docs by @dcramer in [#138](https://github.com/getsentry/warden/pull/138)
838
- - Add Sentry observability (errors, tracing, metrics, structured logs) by @dcramer in [#133](https://github.com/getsentry/warden/pull/133)
839
- - Split failOn into independent requestChanges and failCheck controls by @dcramer in [#129](https://github.com/getsentry/warden/pull/129)
840
-
841
- ### Bug Fixes 🐛
842
-
843
- #### Action
844
-
845
- - Correct fix evaluation verdict handling by @dcramer in [#314](https://github.com/getsentry/warden/pull/314)
846
- - Use relative findings output path by @dcramer in [#289](https://github.com/getsentry/warden/pull/289)
847
- - Handle missing warden.toml gracefully by @gricha in [#235](https://github.com/getsentry/warden/pull/235)
848
- - Thread maxContextFiles config through Action workflows by @dcramer in [#216](https://github.com/getsentry/warden/pull/216)
849
-
850
- #### Cli
851
-
852
- - Label built-in skill sources by @dcramer in [#294](https://github.com/getsentry/warden/pull/294)
853
- - Report final per-file finding counts by @dcramer in [#293](https://github.com/getsentry/warden/pull/293)
854
- - Align local review diff context by @dcramer in [#276](https://github.com/getsentry/warden/pull/276)
855
- - Replace process.exit(130) with thrown error for graceful cleanup by @dcramer in [#213](https://github.com/getsentry/warden/pull/213)
856
- - Write --output file on auth error early exit by @dcramer in [#214](https://github.com/getsentry/warden/pull/214)
857
- - Normalize path separators in synthetic file changes by @dcramer in [#217](https://github.com/getsentry/warden/pull/217)
858
- - Exclude node_modules from gitignore file discovery by @dcramer in [#220](https://github.com/getsentry/warden/pull/220)
859
- - Collapse skipped files into a single count on Ctrl+C by @dcramer in [#172](https://github.com/getsentry/warden/pull/172)
860
- - Render warnings through Ink's Static component by @dcramer in [#170](https://github.com/getsentry/warden/pull/170)
861
- - Cap 'Other Files' list in prompts for CLI mode by @dcramer in [#171](https://github.com/getsentry/warden/pull/171)
862
- - Move completed files to Static to prevent flickering by @dcramer in [#149](https://github.com/getsentry/warden/pull/149)
863
- - Run all skills locally regardless of trigger type by @gricha in [#145](https://github.com/getsentry/warden/pull/145)
864
- - Resolve remote config for --skill flag by @dcramer in [#130](https://github.com/getsentry/warden/pull/130)
865
-
866
- #### Config
867
-
868
- - Allow base configs to use built-in skills by @dcramer in [#305](https://github.com/getsentry/warden/pull/305)
869
- - Warn on duplicate layered skills by @dcramer in [#304](https://github.com/getsentry/warden/pull/304)
870
- - Add missing fields to TOML writer for config round-trip by @dcramer in [#218](https://github.com/getsentry/warden/pull/218)
871
-
872
- #### Output
873
-
874
- - Render GitHub footers as muted text by @dcramer in [#306](https://github.com/getsentry/warden/pull/306)
875
- - List only successfully applied fixes in PR body by @dcramer in [#219](https://github.com/getsentry/warden/pull/219)
876
- - Use backticks instead of brackets in attribution footer by @dcramer in [#197](https://github.com/getsentry/warden/pull/197)
877
-
878
- #### Sdk
879
-
880
- - Short-circuit repeated provider failures by @dcramer in [#291](https://github.com/getsentry/warden/pull/291)
881
- - Strip invalid suggested fixes from reports by @dcramer in [#228](https://github.com/getsentry/warden/pull/228)
882
- - Prevent Warden sessions from polluting Claude Code history by @dcramer in [#202](https://github.com/getsentry/warden/pull/202)
883
- - Handle EPIPE errors from Claude subprocess failures by @dcramer in [#198](https://github.com/getsentry/warden/pull/198)
884
- - Add verification checklist and Glob tool to reduce analysis hallucinations by @dcramer in [#173](https://github.com/getsentry/warden/pull/173)
885
- - Constrain skill findings to diff hunk line range by @dcramer in [#151](https://github.com/getsentry/warden/pull/151)
886
-
887
- #### Sweep
888
-
889
- - Add self-validation to fix subagent prompt by @dcramer in [#223](https://github.com/getsentry/warden/pull/223)
890
- - Branch worktrees from default branch instead of HEAD by @dcramer in [#221](https://github.com/getsentry/warden/pull/221)
891
-
892
- #### Telemetry
893
-
894
- - Fill finding analytics gaps by @dcramer in [#311](https://github.com/getsentry/warden/pull/311)
895
- - Align attributes with OTel semantics by @dcramer in [#307](https://github.com/getsentry/warden/pull/307)
896
- - Improve OTel GenAI semantic convention compliance by @dcramer in [#140](https://github.com/getsentry/warden/pull/140)
897
- - Fix missing Sentry traces and negative token costs by @dcramer in [#139](https://github.com/getsentry/warden/pull/139)
898
-
899
- #### Other
900
-
901
- - (ci) Enable auto-generated changelogs for GitHub releases by @gricha in [#234](https://github.com/getsentry/warden/pull/234)
902
- - (code-review) Calibrate config severity by @dcramer in [#319](https://github.com/getsentry/warden/pull/319)
903
- - (evals) Update default model to claude-sonnet-4-6 by @dcramer in [#163](https://github.com/getsentry/warden/pull/163)
904
- - (o11y) Add gen_ai.request.model attribute by @obostjancic in [#247](https://github.com/getsentry/warden/pull/247)
905
- - (prepare) Skip files with zero content automatically by @dcramer in [#226](https://github.com/getsentry/warden/pull/226)
906
- - (review) Preserve active Warden threads by @dcramer in [#272](https://github.com/getsentry/warden/pull/272)
907
- - (reviews) Compact inline finding comments by @dcramer in [#315](https://github.com/getsentry/warden/pull/315)
908
- - (sentry) Tag action errors with repository by @dcramer in [#303](https://github.com/getsentry/warden/pull/303)
909
- - (skill-builder) Stabilize generated skill authoring by @dcramer in [#284](https://github.com/getsentry/warden/pull/284)
910
- - (skills) Support private repos in `warden add --remote` by @dcramer in [#187](https://github.com/getsentry/warden/pull/187)
911
- - (usage) Normalize inputTokens to include cached and cache-write tokens by @vgrozdanic in [#143](https://github.com/getsentry/warden/pull/143)
912
- - Preserve interrupted findings and parse run args by @dcramer in [#297](https://github.com/getsentry/warden/pull/297)
913
- - Prevent command injection in release workflow by @fix-it-felix-sentry in [#277](https://github.com/getsentry/warden/pull/277)
914
- - Handle multi-line YAML scalar values in SKILL.md frontmatter by @odysseus0 in [#243](https://github.com/getsentry/warden/pull/243)
915
- - Server error handler calls process.exit() bypassing cleanup by @dcramer in [#206](https://github.com/getsentry/warden/pull/206)
916
- - Preserve error chains across error wrapping boundaries by @dcramer in [#215](https://github.com/getsentry/warden/pull/215)
917
- - Respect ignorePaths in all code paths by @dcramer in [#204](https://github.com/getsentry/warden/pull/204)
918
- - Exclude dev files and secrets from npm package by @dcramer in [#186](https://github.com/getsentry/warden/pull/186)
919
- - Clean up orphaned Warden comments when no triggers match by @dcramer in [#134](https://github.com/getsentry/warden/pull/134)
920
- - Show findings in PR review body when inline comments fail by @dcramer in [#128](https://github.com/getsentry/warden/pull/128)
921
- - Show skipped status for files not processed during Ctrl+C by @dcramer in [#127](https://github.com/getsentry/warden/pull/127)
922
-
923
- ### Documentation 📚
924
-
925
- - (homepage) Redesign to lead with skills by @dcramer in [#238](https://github.com/getsentry/warden/pull/238)
926
- - Use built-in security review in samples by @dcramer in [#295](https://github.com/getsentry/warden/pull/295)
927
- - Use scoped Warden package in npx examples by @dcramer in [#273](https://github.com/getsentry/warden/pull/273)
928
- - Lead homepage with GitHub PR review story by @dcramer in [#240](https://github.com/getsentry/warden/pull/240)
929
- - Add org-wide GitHub setup guide by @dcramer in [#239](https://github.com/getsentry/warden/pull/239)
930
- - Replace non-existent skill names with generic placeholders by @dcramer in [#199](https://github.com/getsentry/warden/pull/199)
931
- - Simplify getting started guide to use native warden add --remote by @dcramer in [#164](https://github.com/getsentry/warden/pull/164)
932
- - Fix documentation inconsistencies with codebase by @dcramer in [#147](https://github.com/getsentry/warden/pull/147)
933
- - Update config reference with missing fields by @dcramer in [#132](https://github.com/getsentry/warden/pull/132)
934
-
935
- ### Internal Changes 🔧
936
-
937
- #### Config
938
-
939
- - Use native PR review skills by @dcramer in [#299](https://github.com/getsentry/warden/pull/299)
940
- - Configure Sentry MCP server by @dcramer in [#301](https://github.com/getsentry/warden/pull/301)
941
- - Exclude evals directory from warden analysis by @dcramer in [#203](https://github.com/getsentry/warden/pull/203)
942
-
943
- #### Deps
944
-
945
- - Bump dotagents lib by @gricha in [#296](https://github.com/getsentry/warden/pull/296)
946
- - Bump yaml from 2.8.2 to 2.8.3 by @dependabot in [#254](https://github.com/getsentry/warden/pull/254)
947
-
948
- #### Sdk
949
-
950
- - Add flat runtime provider contract by @dcramer in [#270](https://github.com/getsentry/warden/pull/270)
951
- - Extract applyMergeGroups to unify cross-location merge logic by @dcramer in [#153](https://github.com/getsentry/warden/pull/153)
952
-
953
- #### Skills
954
-
955
- - Adopt @sentry/dotagents-lib for skill resolution primitives by @gricha in [#285](https://github.com/getsentry/warden/pull/285)
956
- - Restructure distributed Warden skills by @dcramer in [#268](https://github.com/getsentry/warden/pull/268)
957
-
958
- #### Other
959
-
960
- - (agents) Update configured skills list by @dcramer in [#241](https://github.com/getsentry/warden/pull/241)
961
- - (cli) Use git ls-files for .gitignore discovery by @dcramer in [#222](https://github.com/getsentry/warden/pull/222)
962
- - (dotagents) Gitignore auto-generated files instead of tracking them by @gricha in [#246](https://github.com/getsentry/warden/pull/246)
963
- - (output) Clean up GitHub finding rendering by @dcramer in [#176](https://github.com/getsentry/warden/pull/176)
964
- - (skill-builder) Use internal authoring provider by @dcramer in [#283](https://github.com/getsentry/warden/pull/283)
965
- - (sweep) Clean up warden-sweep skill per skill-creator review by @dcramer in [#225](https://github.com/getsentry/warden/pull/225)
966
- - Add GitHub Actions workflow skill by @dcramer in [#278](https://github.com/getsentry/warden/pull/278)
967
- - Add .serena to gitignore by @ericapisani in [#180](https://github.com/getsentry/warden/pull/180)
968
- - Extract shared skill selection and validate setup-app args by @dcramer in [#208](https://github.com/getsentry/warden/pull/208)
969
- - Combine multiple reduce operations into single pass by @dcramer in [#207](https://github.com/getsentry/warden/pull/207)
970
- - Simplify repetitive column width calculations in logs by @dcramer in [#209](https://github.com/getsentry/warden/pull/209)
971
- - Collapse severity to 3 levels, add warden logs command by @dcramer in [#192](https://github.com/getsentry/warden/pull/192)
972
- - Migrate to dotagents and add skills reference to AGENTS.md by @dcramer in [#195](https://github.com/getsentry/warden/pull/195)
973
- - Tighten weak mock assertions in test suite by @dcramer in [#160](https://github.com/getsentry/warden/pull/160)
974
- - Add conductor.json configuration by @dcramer in [#159](https://github.com/getsentry/warden/pull/159)
975
- - Remove generated artifacts from dist, keep only ncc bundle by @dcramer in [#131](https://github.com/getsentry/warden/pull/131)
976
- - Replace batch-based concurrency with sliding window pool by @dcramer in [#126](https://github.com/getsentry/warden/pull/126)
977
-
978
- ### Other
979
-
980
- - release: 0.28.0 by @getsentry-bot in [969283b9](https://github.com/getsentry/warden/commit/969283b9d652129d9b18585337d003899810a310)
981
- - release: 0.27.0 by @getsentry-bot in [06a593e0](https://github.com/getsentry/warden/commit/06a593e0a43d4ea5c9af9176a9f555c7b9c965f6)
982
- - release: 0.26.2 by @getsentry-bot in [3d492972](https://github.com/getsentry/warden/commit/3d492972d2e6ae5c2666a5d61d1e37a6591892ff)
983
- - release: 0.26.1 by @getsentry-bot in [23280325](https://github.com/getsentry/warden/commit/23280325da28b365fb53e6a33b19b167998e5660)
984
- - release: 0.26.0 by @getsentry-bot in [2bb08b9d](https://github.com/getsentry/warden/commit/2bb08b9d5b276abaee31aab0e672d3ac4ecaee8c)
985
- - release: 0.25.0 by @getsentry-bot in [56de18fe](https://github.com/getsentry/warden/commit/56de18fee0a1bb6a80deae2c0e4688ab05754126)
986
- - release: 0.24.1 by @getsentry-bot in [2b9e2b0c](https://github.com/getsentry/warden/commit/2b9e2b0cdab12b950fcb4abc79e33d7db363ee49)
987
- - release: 0.24.0 by @getsentry-bot in [715259ec](https://github.com/getsentry/warden/commit/715259ecacc9e1e5d78b6b62623960d86e934162)
988
- - release: 0.23.0 by @getsentry-bot in [dd7f76ac](https://github.com/getsentry/warden/commit/dd7f76ac25cd8d70f2557638bd8d8678d9776e96)
989
- - release: 0.22.0 by @getsentry-bot in [08a3b2f0](https://github.com/getsentry/warden/commit/08a3b2f0139248c80ba499038320556bedb66347)
990
- - release: 0.21.0 by @getsentry-bot in [2795626e](https://github.com/getsentry/warden/commit/2795626e8f1ff3c5a7a041d0ecb9ae3c047641cd)
991
- - Docs UI improvements by @PickleNik in [#248](https://github.com/getsentry/warden/pull/248)
992
- - release: 0.20.0 by @getsentry-bot in [e7dbd6eb](https://github.com/getsentry/warden/commit/e7dbd6eb1680d1d15df6388084237e5d231ec929)
993
- - release: 0.19.0 by @getsentry-bot in [0096b702](https://github.com/getsentry/warden/commit/0096b7024749edf9e62a791340cfea2ef5b899bf)
994
- - chores(docs): Add instruction for creating org rulesets by @Jeffreyhung in [#244](https://github.com/getsentry/warden/pull/244)
995
- - release: 0.18.0 by @getsentry-bot in [e3691621](https://github.com/getsentry/warden/commit/e3691621d9f92de1f47fadb47be162b90f7042ff)
996
- - release: 0.17.0 by @getsentry-bot in [d6132a96](https://github.com/getsentry/warden/commit/d6132a960cb033ec737042bea68f195b5cadef76)
997
- - release: 0.16.0 by @getsentry-bot in [62909fe4](https://github.com/getsentry/warden/commit/62909fe4d28c322508945382d001d0a6844852f2)
998
- - release: 0.15.0 by @getsentry-bot in [d9905cee](https://github.com/getsentry/warden/commit/d9905ceee868cba2aa41f8f17233eacb44901c36)
999
- - release: 0.14.0 by @getsentry-bot in [538f13b4](https://github.com/getsentry/warden/commit/538f13b44a4e78f30ecc668957f6cede7d8e7161)
1000
- - release: 0.13.0 by @getsentry-bot in [063517a9](https://github.com/getsentry/warden/commit/063517a90a903b56919eec66542b129950ff866c)
1001
- - release: 0.12.0 by @getsentry-bot in [7177c99f](https://github.com/getsentry/warden/commit/7177c99fb10de1cbec8b788881d501a4f8d72965)
1002
- - Remove outdated SPEC.md by @dcramer in [#181](https://github.com/getsentry/warden/pull/181)
1003
- - release: 0.11.0 by @getsentry-bot in [b5525e63](https://github.com/getsentry/warden/commit/b5525e6332a7090940f066b676ea4cf587aa1e2a)
1004
-
1005
- _Plus 7 more_
1006
-
1007
- ## 0.28.0
1008
-
1009
- ### New Features ✨
1010
-
1011
- #### Action
1012
-
1013
- - Support org base configs with repo overlays by @dcramer in [#279](https://github.com/getsentry/warden/pull/279)
1014
- - Write structured findings JSON and expose as output by @gricha in [#233](https://github.com/getsentry/warden/pull/233)
1015
-
1016
- #### Cli
1017
-
1018
- - Build generated skills from path targets by @dcramer in [#282](https://github.com/getsentry/warden/pull/282)
1019
- - Add --staged flag and default to HEAD for uncommitted changes by @dcramer in [#205](https://github.com/getsentry/warden/pull/205)
1020
- - Display confidence level in findings output by @dcramer in [#194](https://github.com/getsentry/warden/pull/194)
1021
- - Always-on JSONL logging with repo-local log directory by @dcramer in [#179](https://github.com/getsentry/warden/pull/179)
1022
- - Add --fail-fast flag to stop after first finding by @dcramer in [#174](https://github.com/getsentry/warden/pull/174)
1023
- - Surface failure details for chunk analysis and finding extraction by @dcramer in [#162](https://github.com/getsentry/warden/pull/162)
1024
- - Interactive fix step-through with y/n/a/s/q prompt by @dcramer in [#161](https://github.com/getsentry/warden/pull/161)
1025
-
1026
- #### Docs
1027
-
1028
- - Improved landing visuals by @PickleNik in [#245](https://github.com/getsentry/warden/pull/245)
1029
- - Add LLM content negotiation and llms.txt by @dcramer in [#178](https://github.com/getsentry/warden/pull/178)
1030
-
1031
- #### Runs
1032
-
1033
- - Write chunk-level JSONL logs by @dcramer in [#265](https://github.com/getsentry/warden/pull/265)
1034
- - Stream in-progress runs via 'warden runs follow' by @dcramer in [#261](https://github.com/getsentry/warden/pull/261)
1035
-
1036
- #### Sdk
1037
-
1038
- - Add finding verification pass by @dcramer in [#290](https://github.com/getsentry/warden/pull/290)
1039
- - Store Claude SDK sessions in .warden/sessions/ by @dcramer in [#193](https://github.com/getsentry/warden/pull/193)
1040
-
1041
- #### Skills
1042
-
1043
- - Add built-in code review skill by @dcramer in [#298](https://github.com/getsentry/warden/pull/298)
1044
- - Add built-in security review skill by @dcramer in [#292](https://github.com/getsentry/warden/pull/292)
1045
- - Consolidate warden-sweep into bundled scripts with prescribed reporting by @dcramer in [#201](https://github.com/getsentry/warden/pull/201)
1046
- - Replace notseer with find-warden-bugs skill by @dcramer in [#200](https://github.com/getsentry/warden/pull/200)
1047
- - Add warden-sweep skill and bundled skill installation by @dcramer in [#196](https://github.com/getsentry/warden/pull/196)
1048
- - Add agent discovery alongside skills by @dcramer in [#136](https://github.com/getsentry/warden/pull/136)
1049
-
1050
- #### Sweep
1051
-
1052
- - Add --skill flag to scan.py by @dcramer in [#211](https://github.com/getsentry/warden/pull/211)
1053
- - Add master tracking issue for sweep PRs by @dcramer in [#210](https://github.com/getsentry/warden/pull/210)
1054
-
1055
- #### Telemetry
1056
-
1057
- - Add skill and model attribution to metrics by @gricha in [#231](https://github.com/getsentry/warden/pull/231)
1058
- - Add namespaced fix-eval feedback metrics by @dcramer in [#229](https://github.com/getsentry/warden/pull/229)
1059
- - Add global scope attributes, run metric, and trace ID surfacing by @dcramer in [#166](https://github.com/getsentry/warden/pull/166)
1060
- - Add input/output attributes to gen_ai spans by @dcramer in [#142](https://github.com/getsentry/warden/pull/142)
1061
- - Add per-turn tracing for Claude Code SDK agent calls by @dcramer in [#141](https://github.com/getsentry/warden/pull/141)
1062
-
1063
- #### Other
1064
-
1065
- - (config) Make auxiliary max retries configurable via defaults.auxiliaryMaxRetries by @dcramer in [#175](https://github.com/getsentry/warden/pull/175)
1066
- - (dedup) Add intra-batch finding consolidation by @dcramer in [#135](https://github.com/getsentry/warden/pull/135)
1067
- - (init) Add section-based output and interactive skill prompt by @dcramer in [#182](https://github.com/getsentry/warden/pull/182)
1068
- - (o11y) Capture run failures in JSONL output by @dcramer in [#259](https://github.com/getsentry/warden/pull/259)
1069
- - (output) Default to COMMENT instead of REQUEST_CHANGES on PRs by @dcramer in [#137](https://github.com/getsentry/warden/pull/137)
1070
- - (runner) Global concurrency pool for file analyses by @dcramer in [#158](https://github.com/getsentry/warden/pull/158)
1071
- - (skill-builder) Build generated repo-local skills by @dcramer in [#280](https://github.com/getsentry/warden/pull/280)
1072
- - Add verification field and confidence filtering by @dcramer in [#191](https://github.com/getsentry/warden/pull/191)
1073
- - Pnpm workspace monorepo with docs migration by @dcramer in [#185](https://github.com/getsentry/warden/pull/185)
1074
- - Adopt dotagents for skill management by @dcramer in [#168](https://github.com/getsentry/warden/pull/168)
1075
- - Cross-location finding merge by @dcramer in [#148](https://github.com/getsentry/warden/pull/148)
1076
- - Add env vars to generated workflow and docs by @dcramer in [#138](https://github.com/getsentry/warden/pull/138)
1077
- - Add Sentry observability (errors, tracing, metrics, structured logs) by @dcramer in [#133](https://github.com/getsentry/warden/pull/133)
1078
- - Split failOn into independent requestChanges and failCheck controls by @dcramer in [#129](https://github.com/getsentry/warden/pull/129)
1079
-
1080
- ### Bug Fixes 🐛
1081
-
1082
- #### Action
1083
-
1084
- - Correct fix evaluation verdict handling by @dcramer in [#314](https://github.com/getsentry/warden/pull/314)
1085
- - Use relative findings output path by @dcramer in [#289](https://github.com/getsentry/warden/pull/289)
1086
- - Handle missing warden.toml gracefully by @gricha in [#235](https://github.com/getsentry/warden/pull/235)
1087
- - Thread maxContextFiles config through Action workflows by @dcramer in [#216](https://github.com/getsentry/warden/pull/216)
1088
-
1089
- #### Cli
1090
-
1091
- - Label built-in skill sources by @dcramer in [#294](https://github.com/getsentry/warden/pull/294)
1092
- - Report final per-file finding counts by @dcramer in [#293](https://github.com/getsentry/warden/pull/293)
1093
- - Align local review diff context by @dcramer in [#276](https://github.com/getsentry/warden/pull/276)
1094
- - Replace process.exit(130) with thrown error for graceful cleanup by @dcramer in [#213](https://github.com/getsentry/warden/pull/213)
1095
- - Write --output file on auth error early exit by @dcramer in [#214](https://github.com/getsentry/warden/pull/214)
1096
- - Normalize path separators in synthetic file changes by @dcramer in [#217](https://github.com/getsentry/warden/pull/217)
1097
- - Exclude node_modules from gitignore file discovery by @dcramer in [#220](https://github.com/getsentry/warden/pull/220)
1098
- - Collapse skipped files into a single count on Ctrl+C by @dcramer in [#172](https://github.com/getsentry/warden/pull/172)
1099
- - Render warnings through Ink's Static component by @dcramer in [#170](https://github.com/getsentry/warden/pull/170)
1100
- - Cap 'Other Files' list in prompts for CLI mode by @dcramer in [#171](https://github.com/getsentry/warden/pull/171)
1101
- - Move completed files to Static to prevent flickering by @dcramer in [#149](https://github.com/getsentry/warden/pull/149)
1102
- - Run all skills locally regardless of trigger type by @gricha in [#145](https://github.com/getsentry/warden/pull/145)
1103
- - Resolve remote config for --skill flag by @dcramer in [#130](https://github.com/getsentry/warden/pull/130)
1104
-
1105
- #### Config
1106
-
1107
- - Allow base configs to use built-in skills by @dcramer in [#305](https://github.com/getsentry/warden/pull/305)
1108
- - Warn on duplicate layered skills by @dcramer in [#304](https://github.com/getsentry/warden/pull/304)
1109
- - Add missing fields to TOML writer for config round-trip by @dcramer in [#218](https://github.com/getsentry/warden/pull/218)
1110
-
1111
- #### Output
1112
-
1113
- - Render GitHub footers as muted text by @dcramer in [#306](https://github.com/getsentry/warden/pull/306)
1114
- - List only successfully applied fixes in PR body by @dcramer in [#219](https://github.com/getsentry/warden/pull/219)
1115
- - Use backticks instead of brackets in attribution footer by @dcramer in [#197](https://github.com/getsentry/warden/pull/197)
1116
-
1117
- #### Sdk
1118
-
1119
- - Short-circuit repeated provider failures by @dcramer in [#291](https://github.com/getsentry/warden/pull/291)
1120
- - Strip invalid suggested fixes from reports by @dcramer in [#228](https://github.com/getsentry/warden/pull/228)
1121
- - Prevent Warden sessions from polluting Claude Code history by @dcramer in [#202](https://github.com/getsentry/warden/pull/202)
1122
- - Handle EPIPE errors from Claude subprocess failures by @dcramer in [#198](https://github.com/getsentry/warden/pull/198)
1123
- - Add verification checklist and Glob tool to reduce analysis hallucinations by @dcramer in [#173](https://github.com/getsentry/warden/pull/173)
1124
- - Constrain skill findings to diff hunk line range by @dcramer in [#151](https://github.com/getsentry/warden/pull/151)
1125
-
1126
- #### Sweep
1127
-
1128
- - Add self-validation to fix subagent prompt by @dcramer in [#223](https://github.com/getsentry/warden/pull/223)
1129
- - Branch worktrees from default branch instead of HEAD by @dcramer in [#221](https://github.com/getsentry/warden/pull/221)
1130
-
1131
- #### Telemetry
1132
-
1133
- - Fill finding analytics gaps by @dcramer in [#311](https://github.com/getsentry/warden/pull/311)
1134
- - Align attributes with OTel semantics by @dcramer in [#307](https://github.com/getsentry/warden/pull/307)
1135
- - Improve OTel GenAI semantic convention compliance by @dcramer in [#140](https://github.com/getsentry/warden/pull/140)
1136
- - Fix missing Sentry traces and negative token costs by @dcramer in [#139](https://github.com/getsentry/warden/pull/139)
1137
-
1138
- #### Other
1139
-
1140
- - (ci) Enable auto-generated changelogs for GitHub releases by @gricha in [#234](https://github.com/getsentry/warden/pull/234)
1141
- - (evals) Update default model to claude-sonnet-4-6 by @dcramer in [#163](https://github.com/getsentry/warden/pull/163)
1142
- - (o11y) Add gen_ai.request.model attribute by @obostjancic in [#247](https://github.com/getsentry/warden/pull/247)
1143
- - (prepare) Skip files with zero content automatically by @dcramer in [#226](https://github.com/getsentry/warden/pull/226)
1144
- - (review) Preserve active Warden threads by @dcramer in [#272](https://github.com/getsentry/warden/pull/272)
1145
- - (reviews) Compact inline finding comments by @dcramer in [#315](https://github.com/getsentry/warden/pull/315)
1146
- - (sentry) Tag action errors with repository by @dcramer in [#303](https://github.com/getsentry/warden/pull/303)
1147
- - (skill-builder) Stabilize generated skill authoring by @dcramer in [#284](https://github.com/getsentry/warden/pull/284)
1148
- - (skills) Support private repos in `warden add --remote` by @dcramer in [#187](https://github.com/getsentry/warden/pull/187)
1149
- - (usage) Normalize inputTokens to include cached and cache-write tokens by @vgrozdanic in [#143](https://github.com/getsentry/warden/pull/143)
1150
- - Preserve interrupted findings and parse run args by @dcramer in [#297](https://github.com/getsentry/warden/pull/297)
1151
- - Prevent command injection in release workflow by @fix-it-felix-sentry in [#277](https://github.com/getsentry/warden/pull/277)
1152
- - Handle multi-line YAML scalar values in SKILL.md frontmatter by @odysseus0 in [#243](https://github.com/getsentry/warden/pull/243)
1153
- - Server error handler calls process.exit() bypassing cleanup by @dcramer in [#206](https://github.com/getsentry/warden/pull/206)
1154
- - Preserve error chains across error wrapping boundaries by @dcramer in [#215](https://github.com/getsentry/warden/pull/215)
1155
- - Respect ignorePaths in all code paths by @dcramer in [#204](https://github.com/getsentry/warden/pull/204)
1156
- - Exclude dev files and secrets from npm package by @dcramer in [#186](https://github.com/getsentry/warden/pull/186)
1157
- - Clean up orphaned Warden comments when no triggers match by @dcramer in [#134](https://github.com/getsentry/warden/pull/134)
1158
- - Show findings in PR review body when inline comments fail by @dcramer in [#128](https://github.com/getsentry/warden/pull/128)
1159
- - Show skipped status for files not processed during Ctrl+C by @dcramer in [#127](https://github.com/getsentry/warden/pull/127)
1160
-
1161
- ### Documentation 📚
1162
-
1163
- - (homepage) Redesign to lead with skills by @dcramer in [#238](https://github.com/getsentry/warden/pull/238)
1164
- - Use built-in security review in samples by @dcramer in [#295](https://github.com/getsentry/warden/pull/295)
1165
- - Use scoped Warden package in npx examples by @dcramer in [#273](https://github.com/getsentry/warden/pull/273)
1166
- - Lead homepage with GitHub PR review story by @dcramer in [#240](https://github.com/getsentry/warden/pull/240)
1167
- - Add org-wide GitHub setup guide by @dcramer in [#239](https://github.com/getsentry/warden/pull/239)
1168
- - Replace non-existent skill names with generic placeholders by @dcramer in [#199](https://github.com/getsentry/warden/pull/199)
1169
- - Simplify getting started guide to use native warden add --remote by @dcramer in [#164](https://github.com/getsentry/warden/pull/164)
1170
- - Fix documentation inconsistencies with codebase by @dcramer in [#147](https://github.com/getsentry/warden/pull/147)
1171
- - Update config reference with missing fields by @dcramer in [#132](https://github.com/getsentry/warden/pull/132)
1172
-
1173
- ### Internal Changes 🔧
1174
-
1175
- #### Config
1176
-
1177
- - Use native PR review skills by @dcramer in [#299](https://github.com/getsentry/warden/pull/299)
1178
- - Configure Sentry MCP server by @dcramer in [#301](https://github.com/getsentry/warden/pull/301)
1179
- - Exclude evals directory from warden analysis by @dcramer in [#203](https://github.com/getsentry/warden/pull/203)
1180
-
1181
- #### Deps
1182
-
1183
- - Bump dotagents lib by @gricha in [#296](https://github.com/getsentry/warden/pull/296)
1184
- - Bump yaml from 2.8.2 to 2.8.3 by @dependabot in [#254](https://github.com/getsentry/warden/pull/254)
1185
-
1186
- #### Sdk
1187
-
1188
- - Add flat runtime provider contract by @dcramer in [#270](https://github.com/getsentry/warden/pull/270)
1189
- - Extract applyMergeGroups to unify cross-location merge logic by @dcramer in [#153](https://github.com/getsentry/warden/pull/153)
1190
-
1191
- #### Skills
1192
-
1193
- - Adopt @sentry/dotagents-lib for skill resolution primitives by @gricha in [#285](https://github.com/getsentry/warden/pull/285)
1194
- - Restructure distributed Warden skills by @dcramer in [#268](https://github.com/getsentry/warden/pull/268)
1195
-
1196
- #### Other
1197
-
1198
- - (agents) Update configured skills list by @dcramer in [#241](https://github.com/getsentry/warden/pull/241)
1199
- - (cli) Use git ls-files for .gitignore discovery by @dcramer in [#222](https://github.com/getsentry/warden/pull/222)
1200
- - (dotagents) Gitignore auto-generated files instead of tracking them by @gricha in [#246](https://github.com/getsentry/warden/pull/246)
1201
- - (output) Clean up GitHub finding rendering by @dcramer in [#176](https://github.com/getsentry/warden/pull/176)
1202
- - (skill-builder) Use internal authoring provider by @dcramer in [#283](https://github.com/getsentry/warden/pull/283)
1203
- - (sweep) Clean up warden-sweep skill per skill-creator review by @dcramer in [#225](https://github.com/getsentry/warden/pull/225)
1204
- - Add GitHub Actions workflow skill by @dcramer in [#278](https://github.com/getsentry/warden/pull/278)
1205
- - Add .serena to gitignore by @ericapisani in [#180](https://github.com/getsentry/warden/pull/180)
1206
- - Extract shared skill selection and validate setup-app args by @dcramer in [#208](https://github.com/getsentry/warden/pull/208)
1207
- - Combine multiple reduce operations into single pass by @dcramer in [#207](https://github.com/getsentry/warden/pull/207)
1208
- - Simplify repetitive column width calculations in logs by @dcramer in [#209](https://github.com/getsentry/warden/pull/209)
1209
- - Collapse severity to 3 levels, add warden logs command by @dcramer in [#192](https://github.com/getsentry/warden/pull/192)
1210
- - Migrate to dotagents and add skills reference to AGENTS.md by @dcramer in [#195](https://github.com/getsentry/warden/pull/195)
1211
- - Tighten weak mock assertions in test suite by @dcramer in [#160](https://github.com/getsentry/warden/pull/160)
1212
- - Add conductor.json configuration by @dcramer in [#159](https://github.com/getsentry/warden/pull/159)
1213
- - Remove generated artifacts from dist, keep only ncc bundle by @dcramer in [#131](https://github.com/getsentry/warden/pull/131)
1214
- - Replace batch-based concurrency with sliding window pool by @dcramer in [#126](https://github.com/getsentry/warden/pull/126)
1215
-
1216
- ### Other
1217
-
1218
- - release: 0.27.0 by @getsentry-bot in [06a593e0](https://github.com/getsentry/warden/commit/06a593e0a43d4ea5c9af9176a9f555c7b9c965f6)
1219
- - release: 0.26.2 by @getsentry-bot in [3d492972](https://github.com/getsentry/warden/commit/3d492972d2e6ae5c2666a5d61d1e37a6591892ff)
1220
- - release: 0.26.1 by @getsentry-bot in [23280325](https://github.com/getsentry/warden/commit/23280325da28b365fb53e6a33b19b167998e5660)
1221
- - release: 0.26.0 by @getsentry-bot in [2bb08b9d](https://github.com/getsentry/warden/commit/2bb08b9d5b276abaee31aab0e672d3ac4ecaee8c)
1222
- - release: 0.25.0 by @getsentry-bot in [56de18fe](https://github.com/getsentry/warden/commit/56de18fee0a1bb6a80deae2c0e4688ab05754126)
1223
- - release: 0.24.1 by @getsentry-bot in [2b9e2b0c](https://github.com/getsentry/warden/commit/2b9e2b0cdab12b950fcb4abc79e33d7db363ee49)
1224
- - release: 0.24.0 by @getsentry-bot in [715259ec](https://github.com/getsentry/warden/commit/715259ecacc9e1e5d78b6b62623960d86e934162)
1225
- - release: 0.23.0 by @getsentry-bot in [dd7f76ac](https://github.com/getsentry/warden/commit/dd7f76ac25cd8d70f2557638bd8d8678d9776e96)
1226
- - release: 0.22.0 by @getsentry-bot in [08a3b2f0](https://github.com/getsentry/warden/commit/08a3b2f0139248c80ba499038320556bedb66347)
1227
- - release: 0.21.0 by @getsentry-bot in [2795626e](https://github.com/getsentry/warden/commit/2795626e8f1ff3c5a7a041d0ecb9ae3c047641cd)
1228
- - Docs UI improvements by @PickleNik in [#248](https://github.com/getsentry/warden/pull/248)
1229
- - release: 0.20.0 by @getsentry-bot in [e7dbd6eb](https://github.com/getsentry/warden/commit/e7dbd6eb1680d1d15df6388084237e5d231ec929)
1230
- - release: 0.19.0 by @getsentry-bot in [0096b702](https://github.com/getsentry/warden/commit/0096b7024749edf9e62a791340cfea2ef5b899bf)
1231
- - chores(docs): Add instruction for creating org rulesets by @Jeffreyhung in [#244](https://github.com/getsentry/warden/pull/244)
1232
- - release: 0.18.0 by @getsentry-bot in [e3691621](https://github.com/getsentry/warden/commit/e3691621d9f92de1f47fadb47be162b90f7042ff)
1233
- - release: 0.17.0 by @getsentry-bot in [d6132a96](https://github.com/getsentry/warden/commit/d6132a960cb033ec737042bea68f195b5cadef76)
1234
- - release: 0.16.0 by @getsentry-bot in [62909fe4](https://github.com/getsentry/warden/commit/62909fe4d28c322508945382d001d0a6844852f2)
1235
- - release: 0.15.0 by @getsentry-bot in [d9905cee](https://github.com/getsentry/warden/commit/d9905ceee868cba2aa41f8f17233eacb44901c36)
1236
- - release: 0.14.0 by @getsentry-bot in [538f13b4](https://github.com/getsentry/warden/commit/538f13b44a4e78f30ecc668957f6cede7d8e7161)
1237
- - release: 0.13.0 by @getsentry-bot in [063517a9](https://github.com/getsentry/warden/commit/063517a90a903b56919eec66542b129950ff866c)
1238
- - release: 0.12.0 by @getsentry-bot in [7177c99f](https://github.com/getsentry/warden/commit/7177c99fb10de1cbec8b788881d501a4f8d72965)
1239
- - Remove outdated SPEC.md by @dcramer in [#181](https://github.com/getsentry/warden/pull/181)
1240
- - release: 0.11.0 by @getsentry-bot in [b5525e63](https://github.com/getsentry/warden/commit/b5525e6332a7090940f066b676ea4cf587aa1e2a)
1241
- - release: 0.10.0 by @getsentry-bot in [5762bc7a](https://github.com/getsentry/warden/commit/5762bc7a0b608cdbe31db7b740e8eeff21da2081)
1242
-
1243
- _Plus 6 more_
1244
-
1245
- ## 0.27.0
1246
-
1247
- ### New Features ✨
1248
-
1249
- #### Action
1250
-
1251
- - Support org base configs with repo overlays by @dcramer in [#279](https://github.com/getsentry/warden/pull/279)
1252
- - Write structured findings JSON and expose as output by @gricha in [#233](https://github.com/getsentry/warden/pull/233)
1253
-
1254
- #### Cli
1255
-
1256
- - Build generated skills from path targets by @dcramer in [#282](https://github.com/getsentry/warden/pull/282)
1257
- - Add --staged flag and default to HEAD for uncommitted changes by @dcramer in [#205](https://github.com/getsentry/warden/pull/205)
1258
- - Display confidence level in findings output by @dcramer in [#194](https://github.com/getsentry/warden/pull/194)
1259
- - Always-on JSONL logging with repo-local log directory by @dcramer in [#179](https://github.com/getsentry/warden/pull/179)
1260
- - Add --fail-fast flag to stop after first finding by @dcramer in [#174](https://github.com/getsentry/warden/pull/174)
1261
- - Surface failure details for chunk analysis and finding extraction by @dcramer in [#162](https://github.com/getsentry/warden/pull/162)
1262
- - Interactive fix step-through with y/n/a/s/q prompt by @dcramer in [#161](https://github.com/getsentry/warden/pull/161)
1263
-
1264
- #### Docs
1265
-
1266
- - Improved landing visuals by @PickleNik in [#245](https://github.com/getsentry/warden/pull/245)
1267
- - Add LLM content negotiation and llms.txt by @dcramer in [#178](https://github.com/getsentry/warden/pull/178)
1268
-
1269
- #### Runs
1270
-
1271
- - Write chunk-level JSONL logs by @dcramer in [#265](https://github.com/getsentry/warden/pull/265)
1272
- - Stream in-progress runs via 'warden runs follow' by @dcramer in [#261](https://github.com/getsentry/warden/pull/261)
1273
-
1274
- #### Sdk
1275
-
1276
- - Add finding verification pass by @dcramer in [#290](https://github.com/getsentry/warden/pull/290)
1277
- - Store Claude SDK sessions in .warden/sessions/ by @dcramer in [#193](https://github.com/getsentry/warden/pull/193)
1278
-
1279
- #### Skills
1280
-
1281
- - Add built-in code review skill by @dcramer in [#298](https://github.com/getsentry/warden/pull/298)
1282
- - Add built-in security review skill by @dcramer in [#292](https://github.com/getsentry/warden/pull/292)
1283
- - Consolidate warden-sweep into bundled scripts with prescribed reporting by @dcramer in [#201](https://github.com/getsentry/warden/pull/201)
1284
- - Replace notseer with find-warden-bugs skill by @dcramer in [#200](https://github.com/getsentry/warden/pull/200)
1285
- - Add warden-sweep skill and bundled skill installation by @dcramer in [#196](https://github.com/getsentry/warden/pull/196)
1286
- - Add agent discovery alongside skills by @dcramer in [#136](https://github.com/getsentry/warden/pull/136)
1287
-
1288
- #### Sweep
1289
-
1290
- - Add --skill flag to scan.py by @dcramer in [#211](https://github.com/getsentry/warden/pull/211)
1291
- - Add master tracking issue for sweep PRs by @dcramer in [#210](https://github.com/getsentry/warden/pull/210)
1292
-
1293
- #### Telemetry
1294
-
1295
- - Add skill and model attribution to metrics by @gricha in [#231](https://github.com/getsentry/warden/pull/231)
1296
- - Add namespaced fix-eval feedback metrics by @dcramer in [#229](https://github.com/getsentry/warden/pull/229)
1297
- - Add global scope attributes, run metric, and trace ID surfacing by @dcramer in [#166](https://github.com/getsentry/warden/pull/166)
1298
- - Add input/output attributes to gen_ai spans by @dcramer in [#142](https://github.com/getsentry/warden/pull/142)
1299
- - Add per-turn tracing for Claude Code SDK agent calls by @dcramer in [#141](https://github.com/getsentry/warden/pull/141)
1300
-
1301
- #### Other
1302
-
1303
- - (config) Make auxiliary max retries configurable via defaults.auxiliaryMaxRetries by @dcramer in [#175](https://github.com/getsentry/warden/pull/175)
1304
- - (dedup) Add intra-batch finding consolidation by @dcramer in [#135](https://github.com/getsentry/warden/pull/135)
1305
- - (init) Add section-based output and interactive skill prompt by @dcramer in [#182](https://github.com/getsentry/warden/pull/182)
1306
- - (o11y) Capture run failures in JSONL output by @dcramer in [#259](https://github.com/getsentry/warden/pull/259)
1307
- - (output) Default to COMMENT instead of REQUEST_CHANGES on PRs by @dcramer in [#137](https://github.com/getsentry/warden/pull/137)
1308
- - (runner) Global concurrency pool for file analyses by @dcramer in [#158](https://github.com/getsentry/warden/pull/158)
1309
- - (skill-builder) Build generated repo-local skills by @dcramer in [#280](https://github.com/getsentry/warden/pull/280)
1310
- - Add verification field and confidence filtering by @dcramer in [#191](https://github.com/getsentry/warden/pull/191)
1311
- - Pnpm workspace monorepo with docs migration by @dcramer in [#185](https://github.com/getsentry/warden/pull/185)
1312
- - Adopt dotagents for skill management by @dcramer in [#168](https://github.com/getsentry/warden/pull/168)
1313
- - Cross-location finding merge by @dcramer in [#148](https://github.com/getsentry/warden/pull/148)
1314
- - Add env vars to generated workflow and docs by @dcramer in [#138](https://github.com/getsentry/warden/pull/138)
1315
- - Add Sentry observability (errors, tracing, metrics, structured logs) by @dcramer in [#133](https://github.com/getsentry/warden/pull/133)
1316
- - Split failOn into independent requestChanges and failCheck controls by @dcramer in [#129](https://github.com/getsentry/warden/pull/129)
1317
-
1318
- ### Bug Fixes 🐛
1319
-
1320
- #### Action
1321
-
1322
- - Use relative findings output path by @dcramer in [#289](https://github.com/getsentry/warden/pull/289)
1323
- - Handle missing warden.toml gracefully by @gricha in [#235](https://github.com/getsentry/warden/pull/235)
1324
- - Thread maxContextFiles config through Action workflows by @dcramer in [#216](https://github.com/getsentry/warden/pull/216)
1325
-
1326
- #### Cli
1327
-
1328
- - Label built-in skill sources by @dcramer in [#294](https://github.com/getsentry/warden/pull/294)
1329
- - Report final per-file finding counts by @dcramer in [#293](https://github.com/getsentry/warden/pull/293)
1330
- - Align local review diff context by @dcramer in [#276](https://github.com/getsentry/warden/pull/276)
1331
- - Replace process.exit(130) with thrown error for graceful cleanup by @dcramer in [#213](https://github.com/getsentry/warden/pull/213)
1332
- - Write --output file on auth error early exit by @dcramer in [#214](https://github.com/getsentry/warden/pull/214)
1333
- - Normalize path separators in synthetic file changes by @dcramer in [#217](https://github.com/getsentry/warden/pull/217)
1334
- - Exclude node_modules from gitignore file discovery by @dcramer in [#220](https://github.com/getsentry/warden/pull/220)
1335
- - Collapse skipped files into a single count on Ctrl+C by @dcramer in [#172](https://github.com/getsentry/warden/pull/172)
1336
- - Render warnings through Ink's Static component by @dcramer in [#170](https://github.com/getsentry/warden/pull/170)
1337
- - Cap 'Other Files' list in prompts for CLI mode by @dcramer in [#171](https://github.com/getsentry/warden/pull/171)
1338
- - Move completed files to Static to prevent flickering by @dcramer in [#149](https://github.com/getsentry/warden/pull/149)
1339
- - Run all skills locally regardless of trigger type by @gricha in [#145](https://github.com/getsentry/warden/pull/145)
1340
- - Resolve remote config for --skill flag by @dcramer in [#130](https://github.com/getsentry/warden/pull/130)
1341
-
1342
- #### Config
1343
-
1344
- - Allow base configs to use built-in skills by @dcramer in [#305](https://github.com/getsentry/warden/pull/305)
1345
- - Warn on duplicate layered skills by @dcramer in [#304](https://github.com/getsentry/warden/pull/304)
1346
- - Add missing fields to TOML writer for config round-trip by @dcramer in [#218](https://github.com/getsentry/warden/pull/218)
1347
-
1348
- #### Output
1349
-
1350
- - Render GitHub footers as muted text by @dcramer in [#306](https://github.com/getsentry/warden/pull/306)
1351
- - List only successfully applied fixes in PR body by @dcramer in [#219](https://github.com/getsentry/warden/pull/219)
1352
- - Use backticks instead of brackets in attribution footer by @dcramer in [#197](https://github.com/getsentry/warden/pull/197)
1353
-
1354
- #### Sdk
1355
-
1356
- - Short-circuit repeated provider failures by @dcramer in [#291](https://github.com/getsentry/warden/pull/291)
1357
- - Strip invalid suggested fixes from reports by @dcramer in [#228](https://github.com/getsentry/warden/pull/228)
1358
- - Prevent Warden sessions from polluting Claude Code history by @dcramer in [#202](https://github.com/getsentry/warden/pull/202)
1359
- - Handle EPIPE errors from Claude subprocess failures by @dcramer in [#198](https://github.com/getsentry/warden/pull/198)
1360
- - Add verification checklist and Glob tool to reduce analysis hallucinations by @dcramer in [#173](https://github.com/getsentry/warden/pull/173)
1361
- - Constrain skill findings to diff hunk line range by @dcramer in [#151](https://github.com/getsentry/warden/pull/151)
1362
-
1363
- #### Sweep
1364
-
1365
- - Add self-validation to fix subagent prompt by @dcramer in [#223](https://github.com/getsentry/warden/pull/223)
1366
- - Branch worktrees from default branch instead of HEAD by @dcramer in [#221](https://github.com/getsentry/warden/pull/221)
1367
-
1368
- #### Telemetry
1369
-
1370
- - Fill finding analytics gaps by @dcramer in [#311](https://github.com/getsentry/warden/pull/311)
1371
- - Align attributes with OTel semantics by @dcramer in [#307](https://github.com/getsentry/warden/pull/307)
1372
- - Improve OTel GenAI semantic convention compliance by @dcramer in [#140](https://github.com/getsentry/warden/pull/140)
1373
- - Fix missing Sentry traces and negative token costs by @dcramer in [#139](https://github.com/getsentry/warden/pull/139)
1374
-
1375
- #### Other
1376
-
1377
- - (ci) Enable auto-generated changelogs for GitHub releases by @gricha in [#234](https://github.com/getsentry/warden/pull/234)
1378
- - (evals) Update default model to claude-sonnet-4-6 by @dcramer in [#163](https://github.com/getsentry/warden/pull/163)
1379
- - (o11y) Add gen_ai.request.model attribute by @obostjancic in [#247](https://github.com/getsentry/warden/pull/247)
1380
- - (prepare) Skip files with zero content automatically by @dcramer in [#226](https://github.com/getsentry/warden/pull/226)
1381
- - (review) Preserve active Warden threads by @dcramer in [#272](https://github.com/getsentry/warden/pull/272)
1382
- - (sentry) Tag action errors with repository by @dcramer in [#303](https://github.com/getsentry/warden/pull/303)
1383
- - (skill-builder) Stabilize generated skill authoring by @dcramer in [#284](https://github.com/getsentry/warden/pull/284)
1384
- - (skills) Support private repos in `warden add --remote` by @dcramer in [#187](https://github.com/getsentry/warden/pull/187)
1385
- - (usage) Normalize inputTokens to include cached and cache-write tokens by @vgrozdanic in [#143](https://github.com/getsentry/warden/pull/143)
1386
- - Preserve interrupted findings and parse run args by @dcramer in [#297](https://github.com/getsentry/warden/pull/297)
1387
- - Prevent command injection in release workflow by @fix-it-felix-sentry in [#277](https://github.com/getsentry/warden/pull/277)
1388
- - Handle multi-line YAML scalar values in SKILL.md frontmatter by @odysseus0 in [#243](https://github.com/getsentry/warden/pull/243)
1389
- - Server error handler calls process.exit() bypassing cleanup by @dcramer in [#206](https://github.com/getsentry/warden/pull/206)
1390
- - Preserve error chains across error wrapping boundaries by @dcramer in [#215](https://github.com/getsentry/warden/pull/215)
1391
- - Respect ignorePaths in all code paths by @dcramer in [#204](https://github.com/getsentry/warden/pull/204)
1392
- - Exclude dev files and secrets from npm package by @dcramer in [#186](https://github.com/getsentry/warden/pull/186)
1393
- - Clean up orphaned Warden comments when no triggers match by @dcramer in [#134](https://github.com/getsentry/warden/pull/134)
1394
- - Show findings in PR review body when inline comments fail by @dcramer in [#128](https://github.com/getsentry/warden/pull/128)
1395
- - Show skipped status for files not processed during Ctrl+C by @dcramer in [#127](https://github.com/getsentry/warden/pull/127)
1396
-
1397
- ### Documentation 📚
1398
-
1399
- - (homepage) Redesign to lead with skills by @dcramer in [#238](https://github.com/getsentry/warden/pull/238)
1400
- - Use built-in security review in samples by @dcramer in [#295](https://github.com/getsentry/warden/pull/295)
1401
- - Use scoped Warden package in npx examples by @dcramer in [#273](https://github.com/getsentry/warden/pull/273)
1402
- - Lead homepage with GitHub PR review story by @dcramer in [#240](https://github.com/getsentry/warden/pull/240)
1403
- - Add org-wide GitHub setup guide by @dcramer in [#239](https://github.com/getsentry/warden/pull/239)
1404
- - Replace non-existent skill names with generic placeholders by @dcramer in [#199](https://github.com/getsentry/warden/pull/199)
1405
- - Simplify getting started guide to use native warden add --remote by @dcramer in [#164](https://github.com/getsentry/warden/pull/164)
1406
- - Fix documentation inconsistencies with codebase by @dcramer in [#147](https://github.com/getsentry/warden/pull/147)
1407
- - Update config reference with missing fields by @dcramer in [#132](https://github.com/getsentry/warden/pull/132)
1408
-
1409
- ### Internal Changes 🔧
1410
-
1411
- #### Config
1412
-
1413
- - Use native PR review skills by @dcramer in [#299](https://github.com/getsentry/warden/pull/299)
1414
- - Configure Sentry MCP server by @dcramer in [#301](https://github.com/getsentry/warden/pull/301)
1415
- - Exclude evals directory from warden analysis by @dcramer in [#203](https://github.com/getsentry/warden/pull/203)
1416
-
1417
- #### Deps
1418
-
1419
- - Bump dotagents lib by @gricha in [#296](https://github.com/getsentry/warden/pull/296)
1420
- - Bump yaml from 2.8.2 to 2.8.3 by @dependabot in [#254](https://github.com/getsentry/warden/pull/254)
1421
-
1422
- #### Sdk
1423
-
1424
- - Add flat runtime provider contract by @dcramer in [#270](https://github.com/getsentry/warden/pull/270)
1425
- - Extract applyMergeGroups to unify cross-location merge logic by @dcramer in [#153](https://github.com/getsentry/warden/pull/153)
1426
-
1427
- #### Skills
1428
-
1429
- - Adopt @sentry/dotagents-lib for skill resolution primitives by @gricha in [#285](https://github.com/getsentry/warden/pull/285)
1430
- - Restructure distributed Warden skills by @dcramer in [#268](https://github.com/getsentry/warden/pull/268)
1431
-
1432
- #### Other
1433
-
1434
- - (agents) Update configured skills list by @dcramer in [#241](https://github.com/getsentry/warden/pull/241)
1435
- - (cli) Use git ls-files for .gitignore discovery by @dcramer in [#222](https://github.com/getsentry/warden/pull/222)
1436
- - (dotagents) Gitignore auto-generated files instead of tracking them by @gricha in [#246](https://github.com/getsentry/warden/pull/246)
1437
- - (output) Clean up GitHub finding rendering by @dcramer in [#176](https://github.com/getsentry/warden/pull/176)
1438
- - (skill-builder) Use internal authoring provider by @dcramer in [#283](https://github.com/getsentry/warden/pull/283)
1439
- - (sweep) Clean up warden-sweep skill per skill-creator review by @dcramer in [#225](https://github.com/getsentry/warden/pull/225)
1440
- - Add GitHub Actions workflow skill by @dcramer in [#278](https://github.com/getsentry/warden/pull/278)
1441
- - Add .serena to gitignore by @ericapisani in [#180](https://github.com/getsentry/warden/pull/180)
1442
- - Extract shared skill selection and validate setup-app args by @dcramer in [#208](https://github.com/getsentry/warden/pull/208)
1443
- - Combine multiple reduce operations into single pass by @dcramer in [#207](https://github.com/getsentry/warden/pull/207)
1444
- - Simplify repetitive column width calculations in logs by @dcramer in [#209](https://github.com/getsentry/warden/pull/209)
1445
- - Collapse severity to 3 levels, add warden logs command by @dcramer in [#192](https://github.com/getsentry/warden/pull/192)
1446
- - Migrate to dotagents and add skills reference to AGENTS.md by @dcramer in [#195](https://github.com/getsentry/warden/pull/195)
1447
- - Tighten weak mock assertions in test suite by @dcramer in [#160](https://github.com/getsentry/warden/pull/160)
1448
- - Add conductor.json configuration by @dcramer in [#159](https://github.com/getsentry/warden/pull/159)
1449
- - Remove generated artifacts from dist, keep only ncc bundle by @dcramer in [#131](https://github.com/getsentry/warden/pull/131)
1450
- - Replace batch-based concurrency with sliding window pool by @dcramer in [#126](https://github.com/getsentry/warden/pull/126)
1451
-
1452
- ### Other
1453
-
1454
- - release: 0.26.2 by @getsentry-bot in [3d492972](https://github.com/getsentry/warden/commit/3d492972d2e6ae5c2666a5d61d1e37a6591892ff)
1455
- - release: 0.26.1 by @getsentry-bot in [23280325](https://github.com/getsentry/warden/commit/23280325da28b365fb53e6a33b19b167998e5660)
1456
- - release: 0.26.0 by @getsentry-bot in [2bb08b9d](https://github.com/getsentry/warden/commit/2bb08b9d5b276abaee31aab0e672d3ac4ecaee8c)
1457
- - release: 0.25.0 by @getsentry-bot in [56de18fe](https://github.com/getsentry/warden/commit/56de18fee0a1bb6a80deae2c0e4688ab05754126)
1458
- - release: 0.24.1 by @getsentry-bot in [2b9e2b0c](https://github.com/getsentry/warden/commit/2b9e2b0cdab12b950fcb4abc79e33d7db363ee49)
1459
- - release: 0.24.0 by @getsentry-bot in [715259ec](https://github.com/getsentry/warden/commit/715259ecacc9e1e5d78b6b62623960d86e934162)
1460
- - release: 0.23.0 by @getsentry-bot in [dd7f76ac](https://github.com/getsentry/warden/commit/dd7f76ac25cd8d70f2557638bd8d8678d9776e96)
1461
- - release: 0.22.0 by @getsentry-bot in [08a3b2f0](https://github.com/getsentry/warden/commit/08a3b2f0139248c80ba499038320556bedb66347)
1462
- - release: 0.21.0 by @getsentry-bot in [2795626e](https://github.com/getsentry/warden/commit/2795626e8f1ff3c5a7a041d0ecb9ae3c047641cd)
1463
- - Docs UI improvements by @PickleNik in [#248](https://github.com/getsentry/warden/pull/248)
1464
- - release: 0.20.0 by @getsentry-bot in [e7dbd6eb](https://github.com/getsentry/warden/commit/e7dbd6eb1680d1d15df6388084237e5d231ec929)
1465
- - release: 0.19.0 by @getsentry-bot in [0096b702](https://github.com/getsentry/warden/commit/0096b7024749edf9e62a791340cfea2ef5b899bf)
1466
- - chores(docs): Add instruction for creating org rulesets by @Jeffreyhung in [#244](https://github.com/getsentry/warden/pull/244)
1467
- - release: 0.18.0 by @getsentry-bot in [e3691621](https://github.com/getsentry/warden/commit/e3691621d9f92de1f47fadb47be162b90f7042ff)
1468
- - release: 0.17.0 by @getsentry-bot in [d6132a96](https://github.com/getsentry/warden/commit/d6132a960cb033ec737042bea68f195b5cadef76)
1469
- - release: 0.16.0 by @getsentry-bot in [62909fe4](https://github.com/getsentry/warden/commit/62909fe4d28c322508945382d001d0a6844852f2)
1470
- - release: 0.15.0 by @getsentry-bot in [d9905cee](https://github.com/getsentry/warden/commit/d9905ceee868cba2aa41f8f17233eacb44901c36)
1471
- - release: 0.14.0 by @getsentry-bot in [538f13b4](https://github.com/getsentry/warden/commit/538f13b44a4e78f30ecc668957f6cede7d8e7161)
1472
- - release: 0.13.0 by @getsentry-bot in [063517a9](https://github.com/getsentry/warden/commit/063517a90a903b56919eec66542b129950ff866c)
1473
- - release: 0.12.0 by @getsentry-bot in [7177c99f](https://github.com/getsentry/warden/commit/7177c99fb10de1cbec8b788881d501a4f8d72965)
1474
- - Remove outdated SPEC.md by @dcramer in [#181](https://github.com/getsentry/warden/pull/181)
1475
- - release: 0.11.0 by @getsentry-bot in [b5525e63](https://github.com/getsentry/warden/commit/b5525e6332a7090940f066b676ea4cf587aa1e2a)
1476
- - release: 0.10.0 by @getsentry-bot in [5762bc7a](https://github.com/getsentry/warden/commit/5762bc7a0b608cdbe31db7b740e8eeff21da2081)
1477
- - Add repository and source context to skill metrics by @dcramer in [#165](https://github.com/getsentry/warden/pull/165)
1478
-
1479
- _Plus 5 more_
1480
-
1481
- ## 0.26.2
1482
-
1483
- ### New Features ✨
1484
-
1485
- #### Action
1486
-
1487
- - Support org base configs with repo overlays by @dcramer in [#279](https://github.com/getsentry/warden/pull/279)
1488
- - Write structured findings JSON and expose as output by @gricha in [#233](https://github.com/getsentry/warden/pull/233)
1489
-
1490
- #### Cli
1491
-
1492
- - Build generated skills from path targets by @dcramer in [#282](https://github.com/getsentry/warden/pull/282)
1493
- - Add --staged flag and default to HEAD for uncommitted changes by @dcramer in [#205](https://github.com/getsentry/warden/pull/205)
1494
- - Display confidence level in findings output by @dcramer in [#194](https://github.com/getsentry/warden/pull/194)
1495
- - Always-on JSONL logging with repo-local log directory by @dcramer in [#179](https://github.com/getsentry/warden/pull/179)
1496
- - Add --fail-fast flag to stop after first finding by @dcramer in [#174](https://github.com/getsentry/warden/pull/174)
1497
- - Surface failure details for chunk analysis and finding extraction by @dcramer in [#162](https://github.com/getsentry/warden/pull/162)
1498
- - Interactive fix step-through with y/n/a/s/q prompt by @dcramer in [#161](https://github.com/getsentry/warden/pull/161)
1499
-
1500
- #### Docs
1501
-
1502
- - Improved landing visuals by @PickleNik in [#245](https://github.com/getsentry/warden/pull/245)
1503
- - Add LLM content negotiation and llms.txt by @dcramer in [#178](https://github.com/getsentry/warden/pull/178)
1504
-
1505
- #### Runs
1506
-
1507
- - Write chunk-level JSONL logs by @dcramer in [#265](https://github.com/getsentry/warden/pull/265)
1508
- - Stream in-progress runs via 'warden runs follow' by @dcramer in [#261](https://github.com/getsentry/warden/pull/261)
1509
-
1510
- #### Sdk
1511
-
1512
- - Add finding verification pass by @dcramer in [#290](https://github.com/getsentry/warden/pull/290)
1513
- - Store Claude SDK sessions in .warden/sessions/ by @dcramer in [#193](https://github.com/getsentry/warden/pull/193)
1514
-
1515
- #### Skills
1516
-
1517
- - Add built-in code review skill by @dcramer in [#298](https://github.com/getsentry/warden/pull/298)
1518
- - Add built-in security review skill by @dcramer in [#292](https://github.com/getsentry/warden/pull/292)
1519
- - Consolidate warden-sweep into bundled scripts with prescribed reporting by @dcramer in [#201](https://github.com/getsentry/warden/pull/201)
1520
- - Replace notseer with find-warden-bugs skill by @dcramer in [#200](https://github.com/getsentry/warden/pull/200)
1521
- - Add warden-sweep skill and bundled skill installation by @dcramer in [#196](https://github.com/getsentry/warden/pull/196)
1522
- - Add agent discovery alongside skills by @dcramer in [#136](https://github.com/getsentry/warden/pull/136)
1523
-
1524
- #### Sweep
1525
-
1526
- - Add --skill flag to scan.py by @dcramer in [#211](https://github.com/getsentry/warden/pull/211)
1527
- - Add master tracking issue for sweep PRs by @dcramer in [#210](https://github.com/getsentry/warden/pull/210)
1528
-
1529
- #### Telemetry
1530
-
1531
- - Add skill and model attribution to metrics by @gricha in [#231](https://github.com/getsentry/warden/pull/231)
1532
- - Add namespaced fix-eval feedback metrics by @dcramer in [#229](https://github.com/getsentry/warden/pull/229)
1533
- - Add global scope attributes, run metric, and trace ID surfacing by @dcramer in [#166](https://github.com/getsentry/warden/pull/166)
1534
- - Add input/output attributes to gen_ai spans by @dcramer in [#142](https://github.com/getsentry/warden/pull/142)
1535
- - Add per-turn tracing for Claude Code SDK agent calls by @dcramer in [#141](https://github.com/getsentry/warden/pull/141)
1536
-
1537
- #### Other
1538
-
1539
- - (config) Make auxiliary max retries configurable via defaults.auxiliaryMaxRetries by @dcramer in [#175](https://github.com/getsentry/warden/pull/175)
1540
- - (dedup) Add intra-batch finding consolidation by @dcramer in [#135](https://github.com/getsentry/warden/pull/135)
1541
- - (init) Add section-based output and interactive skill prompt by @dcramer in [#182](https://github.com/getsentry/warden/pull/182)
1542
- - (o11y) Capture run failures in JSONL output by @dcramer in [#259](https://github.com/getsentry/warden/pull/259)
1543
- - (output) Default to COMMENT instead of REQUEST_CHANGES on PRs by @dcramer in [#137](https://github.com/getsentry/warden/pull/137)
1544
- - (runner) Global concurrency pool for file analyses by @dcramer in [#158](https://github.com/getsentry/warden/pull/158)
1545
- - (skill-builder) Build generated repo-local skills by @dcramer in [#280](https://github.com/getsentry/warden/pull/280)
1546
- - Add verification field and confidence filtering by @dcramer in [#191](https://github.com/getsentry/warden/pull/191)
1547
- - Pnpm workspace monorepo with docs migration by @dcramer in [#185](https://github.com/getsentry/warden/pull/185)
1548
- - Adopt dotagents for skill management by @dcramer in [#168](https://github.com/getsentry/warden/pull/168)
1549
- - Cross-location finding merge by @dcramer in [#148](https://github.com/getsentry/warden/pull/148)
1550
- - Add env vars to generated workflow and docs by @dcramer in [#138](https://github.com/getsentry/warden/pull/138)
1551
- - Add Sentry observability (errors, tracing, metrics, structured logs) by @dcramer in [#133](https://github.com/getsentry/warden/pull/133)
1552
- - Split failOn into independent requestChanges and failCheck controls by @dcramer in [#129](https://github.com/getsentry/warden/pull/129)
1553
-
1554
- ### Bug Fixes 🐛
1555
-
1556
- #### Action
1557
-
1558
- - Use relative findings output path by @dcramer in [#289](https://github.com/getsentry/warden/pull/289)
1559
- - Handle missing warden.toml gracefully by @gricha in [#235](https://github.com/getsentry/warden/pull/235)
1560
- - Thread maxContextFiles config through Action workflows by @dcramer in [#216](https://github.com/getsentry/warden/pull/216)
1561
-
1562
- #### Cli
1563
-
1564
- - Label built-in skill sources by @dcramer in [#294](https://github.com/getsentry/warden/pull/294)
1565
- - Report final per-file finding counts by @dcramer in [#293](https://github.com/getsentry/warden/pull/293)
1566
- - Align local review diff context by @dcramer in [#276](https://github.com/getsentry/warden/pull/276)
1567
- - Replace process.exit(130) with thrown error for graceful cleanup by @dcramer in [#213](https://github.com/getsentry/warden/pull/213)
1568
- - Write --output file on auth error early exit by @dcramer in [#214](https://github.com/getsentry/warden/pull/214)
1569
- - Normalize path separators in synthetic file changes by @dcramer in [#217](https://github.com/getsentry/warden/pull/217)
1570
- - Exclude node_modules from gitignore file discovery by @dcramer in [#220](https://github.com/getsentry/warden/pull/220)
1571
- - Collapse skipped files into a single count on Ctrl+C by @dcramer in [#172](https://github.com/getsentry/warden/pull/172)
1572
- - Render warnings through Ink's Static component by @dcramer in [#170](https://github.com/getsentry/warden/pull/170)
1573
- - Cap 'Other Files' list in prompts for CLI mode by @dcramer in [#171](https://github.com/getsentry/warden/pull/171)
1574
- - Move completed files to Static to prevent flickering by @dcramer in [#149](https://github.com/getsentry/warden/pull/149)
1575
- - Run all skills locally regardless of trigger type by @gricha in [#145](https://github.com/getsentry/warden/pull/145)
1576
- - Resolve remote config for --skill flag by @dcramer in [#130](https://github.com/getsentry/warden/pull/130)
1577
-
1578
- #### Config
1579
-
1580
- - Allow base configs to use built-in skills by @dcramer in [#305](https://github.com/getsentry/warden/pull/305)
1581
- - Warn on duplicate layered skills by @dcramer in [#304](https://github.com/getsentry/warden/pull/304)
1582
- - Add missing fields to TOML writer for config round-trip by @dcramer in [#218](https://github.com/getsentry/warden/pull/218)
1583
-
1584
- #### Output
1585
-
1586
- - Render GitHub footers as muted text by @dcramer in [#306](https://github.com/getsentry/warden/pull/306)
1587
- - List only successfully applied fixes in PR body by @dcramer in [#219](https://github.com/getsentry/warden/pull/219)
1588
- - Use backticks instead of brackets in attribution footer by @dcramer in [#197](https://github.com/getsentry/warden/pull/197)
1589
-
1590
- #### Sdk
1591
-
1592
- - Short-circuit repeated provider failures by @dcramer in [#291](https://github.com/getsentry/warden/pull/291)
1593
- - Strip invalid suggested fixes from reports by @dcramer in [#228](https://github.com/getsentry/warden/pull/228)
1594
- - Prevent Warden sessions from polluting Claude Code history by @dcramer in [#202](https://github.com/getsentry/warden/pull/202)
1595
- - Handle EPIPE errors from Claude subprocess failures by @dcramer in [#198](https://github.com/getsentry/warden/pull/198)
1596
- - Add verification checklist and Glob tool to reduce analysis hallucinations by @dcramer in [#173](https://github.com/getsentry/warden/pull/173)
1597
- - Constrain skill findings to diff hunk line range by @dcramer in [#151](https://github.com/getsentry/warden/pull/151)
1598
-
1599
- #### Sweep
1600
-
1601
- - Add self-validation to fix subagent prompt by @dcramer in [#223](https://github.com/getsentry/warden/pull/223)
1602
- - Branch worktrees from default branch instead of HEAD by @dcramer in [#221](https://github.com/getsentry/warden/pull/221)
1603
-
1604
- #### Telemetry
1605
-
1606
- - Improve OTel GenAI semantic convention compliance by @dcramer in [#140](https://github.com/getsentry/warden/pull/140)
1607
- - Fix missing Sentry traces and negative token costs by @dcramer in [#139](https://github.com/getsentry/warden/pull/139)
1608
-
1609
- #### Other
1610
-
1611
- - (ci) Enable auto-generated changelogs for GitHub releases by @gricha in [#234](https://github.com/getsentry/warden/pull/234)
1612
- - (evals) Update default model to claude-sonnet-4-6 by @dcramer in [#163](https://github.com/getsentry/warden/pull/163)
1613
- - (o11y) Add gen_ai.request.model attribute by @obostjancic in [#247](https://github.com/getsentry/warden/pull/247)
1614
- - (prepare) Skip files with zero content automatically by @dcramer in [#226](https://github.com/getsentry/warden/pull/226)
1615
- - (review) Preserve active Warden threads by @dcramer in [#272](https://github.com/getsentry/warden/pull/272)
1616
- - (sentry) Tag action errors with repository by @dcramer in [#303](https://github.com/getsentry/warden/pull/303)
1617
- - (skill-builder) Stabilize generated skill authoring by @dcramer in [#284](https://github.com/getsentry/warden/pull/284)
1618
- - (skills) Support private repos in `warden add --remote` by @dcramer in [#187](https://github.com/getsentry/warden/pull/187)
1619
- - (usage) Normalize inputTokens to include cached and cache-write tokens by @vgrozdanic in [#143](https://github.com/getsentry/warden/pull/143)
1620
- - Preserve interrupted findings and parse run args by @dcramer in [#297](https://github.com/getsentry/warden/pull/297)
1621
- - Prevent command injection in release workflow by @fix-it-felix-sentry in [#277](https://github.com/getsentry/warden/pull/277)
1622
- - Handle multi-line YAML scalar values in SKILL.md frontmatter by @odysseus0 in [#243](https://github.com/getsentry/warden/pull/243)
1623
- - Server error handler calls process.exit() bypassing cleanup by @dcramer in [#206](https://github.com/getsentry/warden/pull/206)
1624
- - Preserve error chains across error wrapping boundaries by @dcramer in [#215](https://github.com/getsentry/warden/pull/215)
1625
- - Respect ignorePaths in all code paths by @dcramer in [#204](https://github.com/getsentry/warden/pull/204)
1626
- - Exclude dev files and secrets from npm package by @dcramer in [#186](https://github.com/getsentry/warden/pull/186)
1627
- - Clean up orphaned Warden comments when no triggers match by @dcramer in [#134](https://github.com/getsentry/warden/pull/134)
1628
- - Show findings in PR review body when inline comments fail by @dcramer in [#128](https://github.com/getsentry/warden/pull/128)
1629
- - Show skipped status for files not processed during Ctrl+C by @dcramer in [#127](https://github.com/getsentry/warden/pull/127)
1630
-
1631
- ### Documentation 📚
1632
-
1633
- - (homepage) Redesign to lead with skills by @dcramer in [#238](https://github.com/getsentry/warden/pull/238)
1634
- - Use built-in security review in samples by @dcramer in [#295](https://github.com/getsentry/warden/pull/295)
1635
- - Use scoped Warden package in npx examples by @dcramer in [#273](https://github.com/getsentry/warden/pull/273)
1636
- - Lead homepage with GitHub PR review story by @dcramer in [#240](https://github.com/getsentry/warden/pull/240)
1637
- - Add org-wide GitHub setup guide by @dcramer in [#239](https://github.com/getsentry/warden/pull/239)
1638
- - Replace non-existent skill names with generic placeholders by @dcramer in [#199](https://github.com/getsentry/warden/pull/199)
1639
- - Simplify getting started guide to use native warden add --remote by @dcramer in [#164](https://github.com/getsentry/warden/pull/164)
1640
- - Fix documentation inconsistencies with codebase by @dcramer in [#147](https://github.com/getsentry/warden/pull/147)
1641
- - Update config reference with missing fields by @dcramer in [#132](https://github.com/getsentry/warden/pull/132)
1642
-
1643
- ### Internal Changes 🔧
1644
-
1645
- #### Config
1646
-
1647
- - Use native PR review skills by @dcramer in [#299](https://github.com/getsentry/warden/pull/299)
1648
- - Configure Sentry MCP server by @dcramer in [#301](https://github.com/getsentry/warden/pull/301)
1649
- - Exclude evals directory from warden analysis by @dcramer in [#203](https://github.com/getsentry/warden/pull/203)
1650
-
1651
- #### Deps
1652
-
1653
- - Bump dotagents lib by @gricha in [#296](https://github.com/getsentry/warden/pull/296)
1654
- - Bump yaml from 2.8.2 to 2.8.3 by @dependabot in [#254](https://github.com/getsentry/warden/pull/254)
1655
-
1656
- #### Sdk
1657
-
1658
- - Add flat runtime provider contract by @dcramer in [#270](https://github.com/getsentry/warden/pull/270)
1659
- - Extract applyMergeGroups to unify cross-location merge logic by @dcramer in [#153](https://github.com/getsentry/warden/pull/153)
1660
-
1661
- #### Skills
1662
-
1663
- - Adopt @sentry/dotagents-lib for skill resolution primitives by @gricha in [#285](https://github.com/getsentry/warden/pull/285)
1664
- - Restructure distributed Warden skills by @dcramer in [#268](https://github.com/getsentry/warden/pull/268)
1665
-
1666
- #### Other
1667
-
1668
- - (agents) Update configured skills list by @dcramer in [#241](https://github.com/getsentry/warden/pull/241)
1669
- - (cli) Use git ls-files for .gitignore discovery by @dcramer in [#222](https://github.com/getsentry/warden/pull/222)
1670
- - (dotagents) Gitignore auto-generated files instead of tracking them by @gricha in [#246](https://github.com/getsentry/warden/pull/246)
1671
- - (output) Clean up GitHub finding rendering by @dcramer in [#176](https://github.com/getsentry/warden/pull/176)
1672
- - (skill-builder) Use internal authoring provider by @dcramer in [#283](https://github.com/getsentry/warden/pull/283)
1673
- - (sweep) Clean up warden-sweep skill per skill-creator review by @dcramer in [#225](https://github.com/getsentry/warden/pull/225)
1674
- - Add GitHub Actions workflow skill by @dcramer in [#278](https://github.com/getsentry/warden/pull/278)
1675
- - Add .serena to gitignore by @ericapisani in [#180](https://github.com/getsentry/warden/pull/180)
1676
- - Extract shared skill selection and validate setup-app args by @dcramer in [#208](https://github.com/getsentry/warden/pull/208)
1677
- - Combine multiple reduce operations into single pass by @dcramer in [#207](https://github.com/getsentry/warden/pull/207)
1678
- - Simplify repetitive column width calculations in logs by @dcramer in [#209](https://github.com/getsentry/warden/pull/209)
1679
- - Collapse severity to 3 levels, add warden logs command by @dcramer in [#192](https://github.com/getsentry/warden/pull/192)
1680
- - Migrate to dotagents and add skills reference to AGENTS.md by @dcramer in [#195](https://github.com/getsentry/warden/pull/195)
1681
- - Tighten weak mock assertions in test suite by @dcramer in [#160](https://github.com/getsentry/warden/pull/160)
1682
- - Add conductor.json configuration by @dcramer in [#159](https://github.com/getsentry/warden/pull/159)
1683
- - Remove generated artifacts from dist, keep only ncc bundle by @dcramer in [#131](https://github.com/getsentry/warden/pull/131)
1684
- - Replace batch-based concurrency with sliding window pool by @dcramer in [#126](https://github.com/getsentry/warden/pull/126)
1685
-
1686
- ### Other
1687
-
1688
- - release: 0.26.1 by @getsentry-bot in [23280325](https://github.com/getsentry/warden/commit/23280325da28b365fb53e6a33b19b167998e5660)
1689
- - release: 0.26.0 by @getsentry-bot in [2bb08b9d](https://github.com/getsentry/warden/commit/2bb08b9d5b276abaee31aab0e672d3ac4ecaee8c)
1690
- - release: 0.25.0 by @getsentry-bot in [56de18fe](https://github.com/getsentry/warden/commit/56de18fee0a1bb6a80deae2c0e4688ab05754126)
1691
- - release: 0.24.1 by @getsentry-bot in [2b9e2b0c](https://github.com/getsentry/warden/commit/2b9e2b0cdab12b950fcb4abc79e33d7db363ee49)
1692
- - release: 0.24.0 by @getsentry-bot in [715259ec](https://github.com/getsentry/warden/commit/715259ecacc9e1e5d78b6b62623960d86e934162)
1693
- - release: 0.23.0 by @getsentry-bot in [dd7f76ac](https://github.com/getsentry/warden/commit/dd7f76ac25cd8d70f2557638bd8d8678d9776e96)
1694
- - release: 0.22.0 by @getsentry-bot in [08a3b2f0](https://github.com/getsentry/warden/commit/08a3b2f0139248c80ba499038320556bedb66347)
1695
- - release: 0.21.0 by @getsentry-bot in [2795626e](https://github.com/getsentry/warden/commit/2795626e8f1ff3c5a7a041d0ecb9ae3c047641cd)
1696
- - Docs UI improvements by @PickleNik in [#248](https://github.com/getsentry/warden/pull/248)
1697
- - release: 0.20.0 by @getsentry-bot in [e7dbd6eb](https://github.com/getsentry/warden/commit/e7dbd6eb1680d1d15df6388084237e5d231ec929)
1698
- - release: 0.19.0 by @getsentry-bot in [0096b702](https://github.com/getsentry/warden/commit/0096b7024749edf9e62a791340cfea2ef5b899bf)
1699
- - chores(docs): Add instruction for creating org rulesets by @Jeffreyhung in [#244](https://github.com/getsentry/warden/pull/244)
1700
- - release: 0.18.0 by @getsentry-bot in [e3691621](https://github.com/getsentry/warden/commit/e3691621d9f92de1f47fadb47be162b90f7042ff)
1701
- - release: 0.17.0 by @getsentry-bot in [d6132a96](https://github.com/getsentry/warden/commit/d6132a960cb033ec737042bea68f195b5cadef76)
1702
- - release: 0.16.0 by @getsentry-bot in [62909fe4](https://github.com/getsentry/warden/commit/62909fe4d28c322508945382d001d0a6844852f2)
1703
- - release: 0.15.0 by @getsentry-bot in [d9905cee](https://github.com/getsentry/warden/commit/d9905ceee868cba2aa41f8f17233eacb44901c36)
1704
- - release: 0.14.0 by @getsentry-bot in [538f13b4](https://github.com/getsentry/warden/commit/538f13b44a4e78f30ecc668957f6cede7d8e7161)
1705
- - release: 0.13.0 by @getsentry-bot in [063517a9](https://github.com/getsentry/warden/commit/063517a90a903b56919eec66542b129950ff866c)
1706
- - release: 0.12.0 by @getsentry-bot in [7177c99f](https://github.com/getsentry/warden/commit/7177c99fb10de1cbec8b788881d501a4f8d72965)
1707
- - Remove outdated SPEC.md by @dcramer in [#181](https://github.com/getsentry/warden/pull/181)
1708
- - release: 0.11.0 by @getsentry-bot in [b5525e63](https://github.com/getsentry/warden/commit/b5525e6332a7090940f066b676ea4cf587aa1e2a)
1709
- - release: 0.10.0 by @getsentry-bot in [5762bc7a](https://github.com/getsentry/warden/commit/5762bc7a0b608cdbe31db7b740e8eeff21da2081)
1710
- - Add repository and source context to skill metrics by @dcramer in [#165](https://github.com/getsentry/warden/pull/165)
1711
- - Add end-to-end eval system with LLM judge by @dcramer in [#152](https://github.com/getsentry/warden/pull/152)
1712
-
1713
- _Plus 4 more_
1714
-
1715
- ## 0.26.1
1716
-
1717
- ### New Features ✨
1718
-
1719
- #### Action
1720
-
1721
- - Support org base configs with repo overlays by @dcramer in [#279](https://github.com/getsentry/warden/pull/279)
1722
- - Write structured findings JSON and expose as output by @gricha in [#233](https://github.com/getsentry/warden/pull/233)
1723
-
1724
- #### Cli
1725
-
1726
- - Build generated skills from path targets by @dcramer in [#282](https://github.com/getsentry/warden/pull/282)
1727
- - Add --staged flag and default to HEAD for uncommitted changes by @dcramer in [#205](https://github.com/getsentry/warden/pull/205)
1728
- - Display confidence level in findings output by @dcramer in [#194](https://github.com/getsentry/warden/pull/194)
1729
- - Always-on JSONL logging with repo-local log directory by @dcramer in [#179](https://github.com/getsentry/warden/pull/179)
1730
- - Add --fail-fast flag to stop after first finding by @dcramer in [#174](https://github.com/getsentry/warden/pull/174)
1731
- - Surface failure details for chunk analysis and finding extraction by @dcramer in [#162](https://github.com/getsentry/warden/pull/162)
1732
- - Interactive fix step-through with y/n/a/s/q prompt by @dcramer in [#161](https://github.com/getsentry/warden/pull/161)
1733
-
1734
- #### Docs
1735
-
1736
- - Improved landing visuals by @PickleNik in [#245](https://github.com/getsentry/warden/pull/245)
1737
- - Add LLM content negotiation and llms.txt by @dcramer in [#178](https://github.com/getsentry/warden/pull/178)
1738
-
1739
- #### Runs
1740
-
1741
- - Write chunk-level JSONL logs by @dcramer in [#265](https://github.com/getsentry/warden/pull/265)
1742
- - Stream in-progress runs via 'warden runs follow' by @dcramer in [#261](https://github.com/getsentry/warden/pull/261)
1743
-
1744
- #### Sdk
1745
-
1746
- - Add finding verification pass by @dcramer in [#290](https://github.com/getsentry/warden/pull/290)
1747
- - Store Claude SDK sessions in .warden/sessions/ by @dcramer in [#193](https://github.com/getsentry/warden/pull/193)
1748
-
1749
- #### Skills
1750
-
1751
- - Add built-in code review skill by @dcramer in [#298](https://github.com/getsentry/warden/pull/298)
1752
- - Add built-in security review skill by @dcramer in [#292](https://github.com/getsentry/warden/pull/292)
1753
- - Consolidate warden-sweep into bundled scripts with prescribed reporting by @dcramer in [#201](https://github.com/getsentry/warden/pull/201)
1754
- - Replace notseer with find-warden-bugs skill by @dcramer in [#200](https://github.com/getsentry/warden/pull/200)
1755
- - Add warden-sweep skill and bundled skill installation by @dcramer in [#196](https://github.com/getsentry/warden/pull/196)
1756
- - Add agent discovery alongside skills by @dcramer in [#136](https://github.com/getsentry/warden/pull/136)
1757
-
1758
- #### Sweep
1759
-
1760
- - Add --skill flag to scan.py by @dcramer in [#211](https://github.com/getsentry/warden/pull/211)
1761
- - Add master tracking issue for sweep PRs by @dcramer in [#210](https://github.com/getsentry/warden/pull/210)
1762
-
1763
- #### Telemetry
1764
-
1765
- - Add skill and model attribution to metrics by @gricha in [#231](https://github.com/getsentry/warden/pull/231)
1766
- - Add namespaced fix-eval feedback metrics by @dcramer in [#229](https://github.com/getsentry/warden/pull/229)
1767
- - Add global scope attributes, run metric, and trace ID surfacing by @dcramer in [#166](https://github.com/getsentry/warden/pull/166)
1768
- - Add input/output attributes to gen_ai spans by @dcramer in [#142](https://github.com/getsentry/warden/pull/142)
1769
- - Add per-turn tracing for Claude Code SDK agent calls by @dcramer in [#141](https://github.com/getsentry/warden/pull/141)
1770
-
1771
- #### Other
1772
-
1773
- - (config) Make auxiliary max retries configurable via defaults.auxiliaryMaxRetries by @dcramer in [#175](https://github.com/getsentry/warden/pull/175)
1774
- - (dedup) Add intra-batch finding consolidation by @dcramer in [#135](https://github.com/getsentry/warden/pull/135)
1775
- - (init) Add section-based output and interactive skill prompt by @dcramer in [#182](https://github.com/getsentry/warden/pull/182)
1776
- - (o11y) Capture run failures in JSONL output by @dcramer in [#259](https://github.com/getsentry/warden/pull/259)
1777
- - (output) Default to COMMENT instead of REQUEST_CHANGES on PRs by @dcramer in [#137](https://github.com/getsentry/warden/pull/137)
1778
- - (runner) Global concurrency pool for file analyses by @dcramer in [#158](https://github.com/getsentry/warden/pull/158)
1779
- - (skill-builder) Build generated repo-local skills by @dcramer in [#280](https://github.com/getsentry/warden/pull/280)
1780
- - Add verification field and confidence filtering by @dcramer in [#191](https://github.com/getsentry/warden/pull/191)
1781
- - Pnpm workspace monorepo with docs migration by @dcramer in [#185](https://github.com/getsentry/warden/pull/185)
1782
- - Adopt dotagents for skill management by @dcramer in [#168](https://github.com/getsentry/warden/pull/168)
1783
- - Cross-location finding merge by @dcramer in [#148](https://github.com/getsentry/warden/pull/148)
1784
- - Add env vars to generated workflow and docs by @dcramer in [#138](https://github.com/getsentry/warden/pull/138)
1785
- - Add Sentry observability (errors, tracing, metrics, structured logs) by @dcramer in [#133](https://github.com/getsentry/warden/pull/133)
1786
- - Split failOn into independent requestChanges and failCheck controls by @dcramer in [#129](https://github.com/getsentry/warden/pull/129)
1787
-
1788
- ### Bug Fixes 🐛
1789
-
1790
- #### Action
1791
-
1792
- - Use relative findings output path by @dcramer in [#289](https://github.com/getsentry/warden/pull/289)
1793
- - Handle missing warden.toml gracefully by @gricha in [#235](https://github.com/getsentry/warden/pull/235)
1794
- - Thread maxContextFiles config through Action workflows by @dcramer in [#216](https://github.com/getsentry/warden/pull/216)
1795
-
1796
- #### Cli
1797
-
1798
- - Label built-in skill sources by @dcramer in [#294](https://github.com/getsentry/warden/pull/294)
1799
- - Report final per-file finding counts by @dcramer in [#293](https://github.com/getsentry/warden/pull/293)
1800
- - Align local review diff context by @dcramer in [#276](https://github.com/getsentry/warden/pull/276)
1801
- - Replace process.exit(130) with thrown error for graceful cleanup by @dcramer in [#213](https://github.com/getsentry/warden/pull/213)
1802
- - Write --output file on auth error early exit by @dcramer in [#214](https://github.com/getsentry/warden/pull/214)
1803
- - Normalize path separators in synthetic file changes by @dcramer in [#217](https://github.com/getsentry/warden/pull/217)
1804
- - Exclude node_modules from gitignore file discovery by @dcramer in [#220](https://github.com/getsentry/warden/pull/220)
1805
- - Collapse skipped files into a single count on Ctrl+C by @dcramer in [#172](https://github.com/getsentry/warden/pull/172)
1806
- - Render warnings through Ink's Static component by @dcramer in [#170](https://github.com/getsentry/warden/pull/170)
1807
- - Cap 'Other Files' list in prompts for CLI mode by @dcramer in [#171](https://github.com/getsentry/warden/pull/171)
1808
- - Move completed files to Static to prevent flickering by @dcramer in [#149](https://github.com/getsentry/warden/pull/149)
1809
- - Run all skills locally regardless of trigger type by @gricha in [#145](https://github.com/getsentry/warden/pull/145)
1810
- - Resolve remote config for --skill flag by @dcramer in [#130](https://github.com/getsentry/warden/pull/130)
1811
-
1812
- #### Config
1813
-
1814
- - Allow base configs to use built-in skills by @dcramer in [#305](https://github.com/getsentry/warden/pull/305)
1815
- - Warn on duplicate layered skills by @dcramer in [#304](https://github.com/getsentry/warden/pull/304)
1816
- - Add missing fields to TOML writer for config round-trip by @dcramer in [#218](https://github.com/getsentry/warden/pull/218)
1817
-
1818
- #### Output
1819
-
1820
- - List only successfully applied fixes in PR body by @dcramer in [#219](https://github.com/getsentry/warden/pull/219)
1821
- - Use backticks instead of brackets in attribution footer by @dcramer in [#197](https://github.com/getsentry/warden/pull/197)
1822
-
1823
- #### Sdk
1824
-
1825
- - Short-circuit repeated provider failures by @dcramer in [#291](https://github.com/getsentry/warden/pull/291)
1826
- - Strip invalid suggested fixes from reports by @dcramer in [#228](https://github.com/getsentry/warden/pull/228)
1827
- - Prevent Warden sessions from polluting Claude Code history by @dcramer in [#202](https://github.com/getsentry/warden/pull/202)
1828
- - Handle EPIPE errors from Claude subprocess failures by @dcramer in [#198](https://github.com/getsentry/warden/pull/198)
1829
- - Add verification checklist and Glob tool to reduce analysis hallucinations by @dcramer in [#173](https://github.com/getsentry/warden/pull/173)
1830
- - Constrain skill findings to diff hunk line range by @dcramer in [#151](https://github.com/getsentry/warden/pull/151)
1831
-
1832
- #### Sweep
1833
-
1834
- - Add self-validation to fix subagent prompt by @dcramer in [#223](https://github.com/getsentry/warden/pull/223)
1835
- - Branch worktrees from default branch instead of HEAD by @dcramer in [#221](https://github.com/getsentry/warden/pull/221)
1836
-
1837
- #### Telemetry
1838
-
1839
- - Improve OTel GenAI semantic convention compliance by @dcramer in [#140](https://github.com/getsentry/warden/pull/140)
1840
- - Fix missing Sentry traces and negative token costs by @dcramer in [#139](https://github.com/getsentry/warden/pull/139)
1841
-
1842
- #### Other
1843
-
1844
- - (ci) Enable auto-generated changelogs for GitHub releases by @gricha in [#234](https://github.com/getsentry/warden/pull/234)
1845
- - (evals) Update default model to claude-sonnet-4-6 by @dcramer in [#163](https://github.com/getsentry/warden/pull/163)
1846
- - (o11y) Add gen_ai.request.model attribute by @obostjancic in [#247](https://github.com/getsentry/warden/pull/247)
1847
- - (prepare) Skip files with zero content automatically by @dcramer in [#226](https://github.com/getsentry/warden/pull/226)
1848
- - (review) Preserve active Warden threads by @dcramer in [#272](https://github.com/getsentry/warden/pull/272)
1849
- - (sentry) Tag action errors with repository by @dcramer in [#303](https://github.com/getsentry/warden/pull/303)
1850
- - (skill-builder) Stabilize generated skill authoring by @dcramer in [#284](https://github.com/getsentry/warden/pull/284)
1851
- - (skills) Support private repos in `warden add --remote` by @dcramer in [#187](https://github.com/getsentry/warden/pull/187)
1852
- - (usage) Normalize inputTokens to include cached and cache-write tokens by @vgrozdanic in [#143](https://github.com/getsentry/warden/pull/143)
1853
- - Preserve interrupted findings and parse run args by @dcramer in [#297](https://github.com/getsentry/warden/pull/297)
1854
- - Prevent command injection in release workflow by @fix-it-felix-sentry in [#277](https://github.com/getsentry/warden/pull/277)
1855
- - Handle multi-line YAML scalar values in SKILL.md frontmatter by @odysseus0 in [#243](https://github.com/getsentry/warden/pull/243)
1856
- - Server error handler calls process.exit() bypassing cleanup by @dcramer in [#206](https://github.com/getsentry/warden/pull/206)
1857
- - Preserve error chains across error wrapping boundaries by @dcramer in [#215](https://github.com/getsentry/warden/pull/215)
1858
- - Respect ignorePaths in all code paths by @dcramer in [#204](https://github.com/getsentry/warden/pull/204)
1859
- - Exclude dev files and secrets from npm package by @dcramer in [#186](https://github.com/getsentry/warden/pull/186)
1860
- - Clean up orphaned Warden comments when no triggers match by @dcramer in [#134](https://github.com/getsentry/warden/pull/134)
1861
- - Show findings in PR review body when inline comments fail by @dcramer in [#128](https://github.com/getsentry/warden/pull/128)
1862
- - Show skipped status for files not processed during Ctrl+C by @dcramer in [#127](https://github.com/getsentry/warden/pull/127)
1863
-
1864
- ### Documentation 📚
1865
-
1866
- - (homepage) Redesign to lead with skills by @dcramer in [#238](https://github.com/getsentry/warden/pull/238)
1867
- - Use built-in security review in samples by @dcramer in [#295](https://github.com/getsentry/warden/pull/295)
1868
- - Use scoped Warden package in npx examples by @dcramer in [#273](https://github.com/getsentry/warden/pull/273)
1869
- - Lead homepage with GitHub PR review story by @dcramer in [#240](https://github.com/getsentry/warden/pull/240)
1870
- - Add org-wide GitHub setup guide by @dcramer in [#239](https://github.com/getsentry/warden/pull/239)
1871
- - Replace non-existent skill names with generic placeholders by @dcramer in [#199](https://github.com/getsentry/warden/pull/199)
1872
- - Simplify getting started guide to use native warden add --remote by @dcramer in [#164](https://github.com/getsentry/warden/pull/164)
1873
- - Fix documentation inconsistencies with codebase by @dcramer in [#147](https://github.com/getsentry/warden/pull/147)
1874
- - Update config reference with missing fields by @dcramer in [#132](https://github.com/getsentry/warden/pull/132)
1875
-
1876
- ### Internal Changes 🔧
1877
-
1878
- #### Config
1879
-
1880
- - Use native PR review skills by @dcramer in [#299](https://github.com/getsentry/warden/pull/299)
1881
- - Configure Sentry MCP server by @dcramer in [#301](https://github.com/getsentry/warden/pull/301)
1882
- - Exclude evals directory from warden analysis by @dcramer in [#203](https://github.com/getsentry/warden/pull/203)
1883
-
1884
- #### Deps
1885
-
1886
- - Bump dotagents lib by @gricha in [#296](https://github.com/getsentry/warden/pull/296)
1887
- - Bump yaml from 2.8.2 to 2.8.3 by @dependabot in [#254](https://github.com/getsentry/warden/pull/254)
1888
-
1889
- #### Sdk
1890
-
1891
- - Add flat runtime provider contract by @dcramer in [#270](https://github.com/getsentry/warden/pull/270)
1892
- - Extract applyMergeGroups to unify cross-location merge logic by @dcramer in [#153](https://github.com/getsentry/warden/pull/153)
1893
-
1894
- #### Skills
1895
-
1896
- - Adopt @sentry/dotagents-lib for skill resolution primitives by @gricha in [#285](https://github.com/getsentry/warden/pull/285)
1897
- - Restructure distributed Warden skills by @dcramer in [#268](https://github.com/getsentry/warden/pull/268)
1898
-
1899
- #### Other
1900
-
1901
- - (agents) Update configured skills list by @dcramer in [#241](https://github.com/getsentry/warden/pull/241)
1902
- - (cli) Use git ls-files for .gitignore discovery by @dcramer in [#222](https://github.com/getsentry/warden/pull/222)
1903
- - (dotagents) Gitignore auto-generated files instead of tracking them by @gricha in [#246](https://github.com/getsentry/warden/pull/246)
1904
- - (output) Clean up GitHub finding rendering by @dcramer in [#176](https://github.com/getsentry/warden/pull/176)
1905
- - (skill-builder) Use internal authoring provider by @dcramer in [#283](https://github.com/getsentry/warden/pull/283)
1906
- - (sweep) Clean up warden-sweep skill per skill-creator review by @dcramer in [#225](https://github.com/getsentry/warden/pull/225)
1907
- - Add GitHub Actions workflow skill by @dcramer in [#278](https://github.com/getsentry/warden/pull/278)
1908
- - Add .serena to gitignore by @ericapisani in [#180](https://github.com/getsentry/warden/pull/180)
1909
- - Extract shared skill selection and validate setup-app args by @dcramer in [#208](https://github.com/getsentry/warden/pull/208)
1910
- - Combine multiple reduce operations into single pass by @dcramer in [#207](https://github.com/getsentry/warden/pull/207)
1911
- - Simplify repetitive column width calculations in logs by @dcramer in [#209](https://github.com/getsentry/warden/pull/209)
1912
- - Collapse severity to 3 levels, add warden logs command by @dcramer in [#192](https://github.com/getsentry/warden/pull/192)
1913
- - Migrate to dotagents and add skills reference to AGENTS.md by @dcramer in [#195](https://github.com/getsentry/warden/pull/195)
1914
- - Tighten weak mock assertions in test suite by @dcramer in [#160](https://github.com/getsentry/warden/pull/160)
1915
- - Add conductor.json configuration by @dcramer in [#159](https://github.com/getsentry/warden/pull/159)
1916
- - Remove generated artifacts from dist, keep only ncc bundle by @dcramer in [#131](https://github.com/getsentry/warden/pull/131)
1917
- - Replace batch-based concurrency with sliding window pool by @dcramer in [#126](https://github.com/getsentry/warden/pull/126)
1918
-
1919
- ### Other
1920
-
1921
- - release: 0.26.0 by @getsentry-bot in [2bb08b9d](https://github.com/getsentry/warden/commit/2bb08b9d5b276abaee31aab0e672d3ac4ecaee8c)
1922
- - release: 0.25.0 by @getsentry-bot in [56de18fe](https://github.com/getsentry/warden/commit/56de18fee0a1bb6a80deae2c0e4688ab05754126)
1923
- - release: 0.24.1 by @getsentry-bot in [2b9e2b0c](https://github.com/getsentry/warden/commit/2b9e2b0cdab12b950fcb4abc79e33d7db363ee49)
1924
- - release: 0.24.0 by @getsentry-bot in [715259ec](https://github.com/getsentry/warden/commit/715259ecacc9e1e5d78b6b62623960d86e934162)
1925
- - release: 0.23.0 by @getsentry-bot in [dd7f76ac](https://github.com/getsentry/warden/commit/dd7f76ac25cd8d70f2557638bd8d8678d9776e96)
1926
- - release: 0.22.0 by @getsentry-bot in [08a3b2f0](https://github.com/getsentry/warden/commit/08a3b2f0139248c80ba499038320556bedb66347)
1927
- - release: 0.21.0 by @getsentry-bot in [2795626e](https://github.com/getsentry/warden/commit/2795626e8f1ff3c5a7a041d0ecb9ae3c047641cd)
1928
- - Docs UI improvements by @PickleNik in [#248](https://github.com/getsentry/warden/pull/248)
1929
- - release: 0.20.0 by @getsentry-bot in [e7dbd6eb](https://github.com/getsentry/warden/commit/e7dbd6eb1680d1d15df6388084237e5d231ec929)
1930
- - release: 0.19.0 by @getsentry-bot in [0096b702](https://github.com/getsentry/warden/commit/0096b7024749edf9e62a791340cfea2ef5b899bf)
1931
- - chores(docs): Add instruction for creating org rulesets by @Jeffreyhung in [#244](https://github.com/getsentry/warden/pull/244)
1932
- - release: 0.18.0 by @getsentry-bot in [e3691621](https://github.com/getsentry/warden/commit/e3691621d9f92de1f47fadb47be162b90f7042ff)
1933
- - release: 0.17.0 by @getsentry-bot in [d6132a96](https://github.com/getsentry/warden/commit/d6132a960cb033ec737042bea68f195b5cadef76)
1934
- - release: 0.16.0 by @getsentry-bot in [62909fe4](https://github.com/getsentry/warden/commit/62909fe4d28c322508945382d001d0a6844852f2)
1935
- - release: 0.15.0 by @getsentry-bot in [d9905cee](https://github.com/getsentry/warden/commit/d9905ceee868cba2aa41f8f17233eacb44901c36)
1936
- - release: 0.14.0 by @getsentry-bot in [538f13b4](https://github.com/getsentry/warden/commit/538f13b44a4e78f30ecc668957f6cede7d8e7161)
1937
- - release: 0.13.0 by @getsentry-bot in [063517a9](https://github.com/getsentry/warden/commit/063517a90a903b56919eec66542b129950ff866c)
1938
- - release: 0.12.0 by @getsentry-bot in [7177c99f](https://github.com/getsentry/warden/commit/7177c99fb10de1cbec8b788881d501a4f8d72965)
1939
- - Remove outdated SPEC.md by @dcramer in [#181](https://github.com/getsentry/warden/pull/181)
1940
- - release: 0.11.0 by @getsentry-bot in [b5525e63](https://github.com/getsentry/warden/commit/b5525e6332a7090940f066b676ea4cf587aa1e2a)
1941
- - release: 0.10.0 by @getsentry-bot in [5762bc7a](https://github.com/getsentry/warden/commit/5762bc7a0b608cdbe31db7b740e8eeff21da2081)
1942
- - Add repository and source context to skill metrics by @dcramer in [#165](https://github.com/getsentry/warden/pull/165)
1943
- - Add end-to-end eval system with LLM judge by @dcramer in [#152](https://github.com/getsentry/warden/pull/152)
1944
- - release: 0.9.0 by @getsentry-bot in [d36b060f](https://github.com/getsentry/warden/commit/d36b060f650314a1dfafa78a1801be980272e3c0)
1945
-
1946
- _Plus 3 more_
1947
-
1948
- ## 0.26.0
1949
-
1950
- ### New Features ✨
1951
-
1952
- #### Action
1953
-
1954
- - Support org base configs with repo overlays by @dcramer in [#279](https://github.com/getsentry/warden/pull/279)
1955
- - Write structured findings JSON and expose as output by @gricha in [#233](https://github.com/getsentry/warden/pull/233)
1956
-
1957
- #### Cli
1958
-
1959
- - Build generated skills from path targets by @dcramer in [#282](https://github.com/getsentry/warden/pull/282)
1960
- - Add --staged flag and default to HEAD for uncommitted changes by @dcramer in [#205](https://github.com/getsentry/warden/pull/205)
1961
- - Display confidence level in findings output by @dcramer in [#194](https://github.com/getsentry/warden/pull/194)
1962
- - Always-on JSONL logging with repo-local log directory by @dcramer in [#179](https://github.com/getsentry/warden/pull/179)
1963
- - Add --fail-fast flag to stop after first finding by @dcramer in [#174](https://github.com/getsentry/warden/pull/174)
1964
- - Surface failure details for chunk analysis and finding extraction by @dcramer in [#162](https://github.com/getsentry/warden/pull/162)
1965
- - Interactive fix step-through with y/n/a/s/q prompt by @dcramer in [#161](https://github.com/getsentry/warden/pull/161)
1966
-
1967
- #### Docs
1968
-
1969
- - Improved landing visuals by @PickleNik in [#245](https://github.com/getsentry/warden/pull/245)
1970
- - Add LLM content negotiation and llms.txt by @dcramer in [#178](https://github.com/getsentry/warden/pull/178)
1971
-
1972
- #### Runs
1973
-
1974
- - Write chunk-level JSONL logs by @dcramer in [#265](https://github.com/getsentry/warden/pull/265)
1975
- - Stream in-progress runs via 'warden runs follow' by @dcramer in [#261](https://github.com/getsentry/warden/pull/261)
1976
-
1977
- #### Sdk
1978
-
1979
- - Add finding verification pass by @dcramer in [#290](https://github.com/getsentry/warden/pull/290)
1980
- - Store Claude SDK sessions in .warden/sessions/ by @dcramer in [#193](https://github.com/getsentry/warden/pull/193)
1981
-
1982
- #### Skills
1983
-
1984
- - Add built-in code review skill by @dcramer in [#298](https://github.com/getsentry/warden/pull/298)
1985
- - Add built-in security review skill by @dcramer in [#292](https://github.com/getsentry/warden/pull/292)
1986
- - Consolidate warden-sweep into bundled scripts with prescribed reporting by @dcramer in [#201](https://github.com/getsentry/warden/pull/201)
1987
- - Replace notseer with find-warden-bugs skill by @dcramer in [#200](https://github.com/getsentry/warden/pull/200)
1988
- - Add warden-sweep skill and bundled skill installation by @dcramer in [#196](https://github.com/getsentry/warden/pull/196)
1989
- - Add agent discovery alongside skills by @dcramer in [#136](https://github.com/getsentry/warden/pull/136)
1990
-
1991
- #### Sweep
1992
-
1993
- - Add --skill flag to scan.py by @dcramer in [#211](https://github.com/getsentry/warden/pull/211)
1994
- - Add master tracking issue for sweep PRs by @dcramer in [#210](https://github.com/getsentry/warden/pull/210)
1995
-
1996
- #### Telemetry
1997
-
1998
- - Add skill and model attribution to metrics by @gricha in [#231](https://github.com/getsentry/warden/pull/231)
1999
- - Add namespaced fix-eval feedback metrics by @dcramer in [#229](https://github.com/getsentry/warden/pull/229)
2000
- - Add global scope attributes, run metric, and trace ID surfacing by @dcramer in [#166](https://github.com/getsentry/warden/pull/166)
2001
- - Add input/output attributes to gen_ai spans by @dcramer in [#142](https://github.com/getsentry/warden/pull/142)
2002
- - Add per-turn tracing for Claude Code SDK agent calls by @dcramer in [#141](https://github.com/getsentry/warden/pull/141)
2003
-
2004
- #### Other
2005
-
2006
- - (config) Make auxiliary max retries configurable via defaults.auxiliaryMaxRetries by @dcramer in [#175](https://github.com/getsentry/warden/pull/175)
2007
- - (dedup) Add intra-batch finding consolidation by @dcramer in [#135](https://github.com/getsentry/warden/pull/135)
2008
- - (init) Add section-based output and interactive skill prompt by @dcramer in [#182](https://github.com/getsentry/warden/pull/182)
2009
- - (o11y) Capture run failures in JSONL output by @dcramer in [#259](https://github.com/getsentry/warden/pull/259)
2010
- - (output) Default to COMMENT instead of REQUEST_CHANGES on PRs by @dcramer in [#137](https://github.com/getsentry/warden/pull/137)
2011
- - (runner) Global concurrency pool for file analyses by @dcramer in [#158](https://github.com/getsentry/warden/pull/158)
2012
- - (skill-builder) Build generated repo-local skills by @dcramer in [#280](https://github.com/getsentry/warden/pull/280)
2013
- - Add verification field and confidence filtering by @dcramer in [#191](https://github.com/getsentry/warden/pull/191)
2014
- - Pnpm workspace monorepo with docs migration by @dcramer in [#185](https://github.com/getsentry/warden/pull/185)
2015
- - Adopt dotagents for skill management by @dcramer in [#168](https://github.com/getsentry/warden/pull/168)
2016
- - Cross-location finding merge by @dcramer in [#148](https://github.com/getsentry/warden/pull/148)
2017
- - Add env vars to generated workflow and docs by @dcramer in [#138](https://github.com/getsentry/warden/pull/138)
2018
- - Add Sentry observability (errors, tracing, metrics, structured logs) by @dcramer in [#133](https://github.com/getsentry/warden/pull/133)
2019
- - Split failOn into independent requestChanges and failCheck controls by @dcramer in [#129](https://github.com/getsentry/warden/pull/129)
2020
-
2021
- ### Bug Fixes 🐛
2022
-
2023
- #### Action
2024
-
2025
- - Use relative findings output path by @dcramer in [#289](https://github.com/getsentry/warden/pull/289)
2026
- - Handle missing warden.toml gracefully by @gricha in [#235](https://github.com/getsentry/warden/pull/235)
2027
- - Thread maxContextFiles config through Action workflows by @dcramer in [#216](https://github.com/getsentry/warden/pull/216)
2028
-
2029
- #### Cli
2030
-
2031
- - Label built-in skill sources by @dcramer in [#294](https://github.com/getsentry/warden/pull/294)
2032
- - Report final per-file finding counts by @dcramer in [#293](https://github.com/getsentry/warden/pull/293)
2033
- - Align local review diff context by @dcramer in [#276](https://github.com/getsentry/warden/pull/276)
2034
- - Replace process.exit(130) with thrown error for graceful cleanup by @dcramer in [#213](https://github.com/getsentry/warden/pull/213)
2035
- - Write --output file on auth error early exit by @dcramer in [#214](https://github.com/getsentry/warden/pull/214)
2036
- - Normalize path separators in synthetic file changes by @dcramer in [#217](https://github.com/getsentry/warden/pull/217)
2037
- - Exclude node_modules from gitignore file discovery by @dcramer in [#220](https://github.com/getsentry/warden/pull/220)
2038
- - Collapse skipped files into a single count on Ctrl+C by @dcramer in [#172](https://github.com/getsentry/warden/pull/172)
2039
- - Render warnings through Ink's Static component by @dcramer in [#170](https://github.com/getsentry/warden/pull/170)
2040
- - Cap 'Other Files' list in prompts for CLI mode by @dcramer in [#171](https://github.com/getsentry/warden/pull/171)
2041
- - Move completed files to Static to prevent flickering by @dcramer in [#149](https://github.com/getsentry/warden/pull/149)
2042
- - Run all skills locally regardless of trigger type by @gricha in [#145](https://github.com/getsentry/warden/pull/145)
2043
- - Resolve remote config for --skill flag by @dcramer in [#130](https://github.com/getsentry/warden/pull/130)
2044
-
2045
- #### Config
2046
-
2047
- - Warn on duplicate layered skills by @dcramer in [#304](https://github.com/getsentry/warden/pull/304)
2048
- - Add missing fields to TOML writer for config round-trip by @dcramer in [#218](https://github.com/getsentry/warden/pull/218)
2049
-
2050
- #### Output
2051
-
2052
- - List only successfully applied fixes in PR body by @dcramer in [#219](https://github.com/getsentry/warden/pull/219)
2053
- - Use backticks instead of brackets in attribution footer by @dcramer in [#197](https://github.com/getsentry/warden/pull/197)
2054
-
2055
- #### Sdk
2056
-
2057
- - Short-circuit repeated provider failures by @dcramer in [#291](https://github.com/getsentry/warden/pull/291)
2058
- - Strip invalid suggested fixes from reports by @dcramer in [#228](https://github.com/getsentry/warden/pull/228)
2059
- - Prevent Warden sessions from polluting Claude Code history by @dcramer in [#202](https://github.com/getsentry/warden/pull/202)
2060
- - Handle EPIPE errors from Claude subprocess failures by @dcramer in [#198](https://github.com/getsentry/warden/pull/198)
2061
- - Add verification checklist and Glob tool to reduce analysis hallucinations by @dcramer in [#173](https://github.com/getsentry/warden/pull/173)
2062
- - Constrain skill findings to diff hunk line range by @dcramer in [#151](https://github.com/getsentry/warden/pull/151)
2063
-
2064
- #### Sweep
2065
-
2066
- - Add self-validation to fix subagent prompt by @dcramer in [#223](https://github.com/getsentry/warden/pull/223)
2067
- - Branch worktrees from default branch instead of HEAD by @dcramer in [#221](https://github.com/getsentry/warden/pull/221)
2068
-
2069
- #### Telemetry
2070
-
2071
- - Improve OTel GenAI semantic convention compliance by @dcramer in [#140](https://github.com/getsentry/warden/pull/140)
2072
- - Fix missing Sentry traces and negative token costs by @dcramer in [#139](https://github.com/getsentry/warden/pull/139)
2073
-
2074
- #### Other
2075
-
2076
- - (ci) Enable auto-generated changelogs for GitHub releases by @gricha in [#234](https://github.com/getsentry/warden/pull/234)
2077
- - (evals) Update default model to claude-sonnet-4-6 by @dcramer in [#163](https://github.com/getsentry/warden/pull/163)
2078
- - (o11y) Add gen_ai.request.model attribute by @obostjancic in [#247](https://github.com/getsentry/warden/pull/247)
2079
- - (prepare) Skip files with zero content automatically by @dcramer in [#226](https://github.com/getsentry/warden/pull/226)
2080
- - (review) Preserve active Warden threads by @dcramer in [#272](https://github.com/getsentry/warden/pull/272)
2081
- - (sentry) Tag action errors with repository by @dcramer in [#303](https://github.com/getsentry/warden/pull/303)
2082
- - (skill-builder) Stabilize generated skill authoring by @dcramer in [#284](https://github.com/getsentry/warden/pull/284)
2083
- - (skills) Support private repos in `warden add --remote` by @dcramer in [#187](https://github.com/getsentry/warden/pull/187)
2084
- - (usage) Normalize inputTokens to include cached and cache-write tokens by @vgrozdanic in [#143](https://github.com/getsentry/warden/pull/143)
2085
- - Preserve interrupted findings and parse run args by @dcramer in [#297](https://github.com/getsentry/warden/pull/297)
2086
- - Prevent command injection in release workflow by @fix-it-felix-sentry in [#277](https://github.com/getsentry/warden/pull/277)
2087
- - Handle multi-line YAML scalar values in SKILL.md frontmatter by @odysseus0 in [#243](https://github.com/getsentry/warden/pull/243)
2088
- - Server error handler calls process.exit() bypassing cleanup by @dcramer in [#206](https://github.com/getsentry/warden/pull/206)
2089
- - Preserve error chains across error wrapping boundaries by @dcramer in [#215](https://github.com/getsentry/warden/pull/215)
2090
- - Respect ignorePaths in all code paths by @dcramer in [#204](https://github.com/getsentry/warden/pull/204)
2091
- - Exclude dev files and secrets from npm package by @dcramer in [#186](https://github.com/getsentry/warden/pull/186)
2092
- - Clean up orphaned Warden comments when no triggers match by @dcramer in [#134](https://github.com/getsentry/warden/pull/134)
2093
- - Show findings in PR review body when inline comments fail by @dcramer in [#128](https://github.com/getsentry/warden/pull/128)
2094
- - Show skipped status for files not processed during Ctrl+C by @dcramer in [#127](https://github.com/getsentry/warden/pull/127)
2095
-
2096
- ### Documentation 📚
2097
-
2098
- - (homepage) Redesign to lead with skills by @dcramer in [#238](https://github.com/getsentry/warden/pull/238)
2099
- - Use built-in security review in samples by @dcramer in [#295](https://github.com/getsentry/warden/pull/295)
2100
- - Use scoped Warden package in npx examples by @dcramer in [#273](https://github.com/getsentry/warden/pull/273)
2101
- - Lead homepage with GitHub PR review story by @dcramer in [#240](https://github.com/getsentry/warden/pull/240)
2102
- - Add org-wide GitHub setup guide by @dcramer in [#239](https://github.com/getsentry/warden/pull/239)
2103
- - Replace non-existent skill names with generic placeholders by @dcramer in [#199](https://github.com/getsentry/warden/pull/199)
2104
- - Simplify getting started guide to use native warden add --remote by @dcramer in [#164](https://github.com/getsentry/warden/pull/164)
2105
- - Fix documentation inconsistencies with codebase by @dcramer in [#147](https://github.com/getsentry/warden/pull/147)
2106
- - Update config reference with missing fields by @dcramer in [#132](https://github.com/getsentry/warden/pull/132)
2107
-
2108
- ### Internal Changes 🔧
2109
-
2110
- #### Config
2111
-
2112
- - Use native PR review skills by @dcramer in [#299](https://github.com/getsentry/warden/pull/299)
2113
- - Configure Sentry MCP server by @dcramer in [#301](https://github.com/getsentry/warden/pull/301)
2114
- - Exclude evals directory from warden analysis by @dcramer in [#203](https://github.com/getsentry/warden/pull/203)
2115
-
2116
- #### Deps
2117
-
2118
- - Bump dotagents lib by @gricha in [#296](https://github.com/getsentry/warden/pull/296)
2119
- - Bump yaml from 2.8.2 to 2.8.3 by @dependabot in [#254](https://github.com/getsentry/warden/pull/254)
2120
-
2121
- #### Sdk
2122
-
2123
- - Add flat runtime provider contract by @dcramer in [#270](https://github.com/getsentry/warden/pull/270)
2124
- - Extract applyMergeGroups to unify cross-location merge logic by @dcramer in [#153](https://github.com/getsentry/warden/pull/153)
2125
-
2126
- #### Skills
2127
-
2128
- - Adopt @sentry/dotagents-lib for skill resolution primitives by @gricha in [#285](https://github.com/getsentry/warden/pull/285)
2129
- - Restructure distributed Warden skills by @dcramer in [#268](https://github.com/getsentry/warden/pull/268)
2130
-
2131
- #### Other
2132
-
2133
- - (agents) Update configured skills list by @dcramer in [#241](https://github.com/getsentry/warden/pull/241)
2134
- - (cli) Use git ls-files for .gitignore discovery by @dcramer in [#222](https://github.com/getsentry/warden/pull/222)
2135
- - (dotagents) Gitignore auto-generated files instead of tracking them by @gricha in [#246](https://github.com/getsentry/warden/pull/246)
2136
- - (output) Clean up GitHub finding rendering by @dcramer in [#176](https://github.com/getsentry/warden/pull/176)
2137
- - (skill-builder) Use internal authoring provider by @dcramer in [#283](https://github.com/getsentry/warden/pull/283)
2138
- - (sweep) Clean up warden-sweep skill per skill-creator review by @dcramer in [#225](https://github.com/getsentry/warden/pull/225)
2139
- - Add GitHub Actions workflow skill by @dcramer in [#278](https://github.com/getsentry/warden/pull/278)
2140
- - Add .serena to gitignore by @ericapisani in [#180](https://github.com/getsentry/warden/pull/180)
2141
- - Extract shared skill selection and validate setup-app args by @dcramer in [#208](https://github.com/getsentry/warden/pull/208)
2142
- - Combine multiple reduce operations into single pass by @dcramer in [#207](https://github.com/getsentry/warden/pull/207)
2143
- - Simplify repetitive column width calculations in logs by @dcramer in [#209](https://github.com/getsentry/warden/pull/209)
2144
- - Collapse severity to 3 levels, add warden logs command by @dcramer in [#192](https://github.com/getsentry/warden/pull/192)
2145
- - Migrate to dotagents and add skills reference to AGENTS.md by @dcramer in [#195](https://github.com/getsentry/warden/pull/195)
2146
- - Tighten weak mock assertions in test suite by @dcramer in [#160](https://github.com/getsentry/warden/pull/160)
2147
- - Add conductor.json configuration by @dcramer in [#159](https://github.com/getsentry/warden/pull/159)
2148
- - Remove generated artifacts from dist, keep only ncc bundle by @dcramer in [#131](https://github.com/getsentry/warden/pull/131)
2149
- - Replace batch-based concurrency with sliding window pool by @dcramer in [#126](https://github.com/getsentry/warden/pull/126)
2150
-
2151
- ### Other
2152
-
2153
- - release: 0.25.0 by @getsentry-bot in [56de18fe](https://github.com/getsentry/warden/commit/56de18fee0a1bb6a80deae2c0e4688ab05754126)
2154
- - release: 0.24.1 by @getsentry-bot in [2b9e2b0c](https://github.com/getsentry/warden/commit/2b9e2b0cdab12b950fcb4abc79e33d7db363ee49)
2155
- - release: 0.24.0 by @getsentry-bot in [715259ec](https://github.com/getsentry/warden/commit/715259ecacc9e1e5d78b6b62623960d86e934162)
2156
- - release: 0.23.0 by @getsentry-bot in [dd7f76ac](https://github.com/getsentry/warden/commit/dd7f76ac25cd8d70f2557638bd8d8678d9776e96)
2157
- - release: 0.22.0 by @getsentry-bot in [08a3b2f0](https://github.com/getsentry/warden/commit/08a3b2f0139248c80ba499038320556bedb66347)
2158
- - release: 0.21.0 by @getsentry-bot in [2795626e](https://github.com/getsentry/warden/commit/2795626e8f1ff3c5a7a041d0ecb9ae3c047641cd)
2159
- - Docs UI improvements by @PickleNik in [#248](https://github.com/getsentry/warden/pull/248)
2160
- - release: 0.20.0 by @getsentry-bot in [e7dbd6eb](https://github.com/getsentry/warden/commit/e7dbd6eb1680d1d15df6388084237e5d231ec929)
2161
- - release: 0.19.0 by @getsentry-bot in [0096b702](https://github.com/getsentry/warden/commit/0096b7024749edf9e62a791340cfea2ef5b899bf)
2162
- - chores(docs): Add instruction for creating org rulesets by @Jeffreyhung in [#244](https://github.com/getsentry/warden/pull/244)
2163
- - release: 0.18.0 by @getsentry-bot in [e3691621](https://github.com/getsentry/warden/commit/e3691621d9f92de1f47fadb47be162b90f7042ff)
2164
- - release: 0.17.0 by @getsentry-bot in [d6132a96](https://github.com/getsentry/warden/commit/d6132a960cb033ec737042bea68f195b5cadef76)
2165
- - release: 0.16.0 by @getsentry-bot in [62909fe4](https://github.com/getsentry/warden/commit/62909fe4d28c322508945382d001d0a6844852f2)
2166
- - release: 0.15.0 by @getsentry-bot in [d9905cee](https://github.com/getsentry/warden/commit/d9905ceee868cba2aa41f8f17233eacb44901c36)
2167
- - release: 0.14.0 by @getsentry-bot in [538f13b4](https://github.com/getsentry/warden/commit/538f13b44a4e78f30ecc668957f6cede7d8e7161)
2168
- - release: 0.13.0 by @getsentry-bot in [063517a9](https://github.com/getsentry/warden/commit/063517a90a903b56919eec66542b129950ff866c)
2169
- - release: 0.12.0 by @getsentry-bot in [7177c99f](https://github.com/getsentry/warden/commit/7177c99fb10de1cbec8b788881d501a4f8d72965)
2170
- - Remove outdated SPEC.md by @dcramer in [#181](https://github.com/getsentry/warden/pull/181)
2171
- - release: 0.11.0 by @getsentry-bot in [b5525e63](https://github.com/getsentry/warden/commit/b5525e6332a7090940f066b676ea4cf587aa1e2a)
2172
- - release: 0.10.0 by @getsentry-bot in [5762bc7a](https://github.com/getsentry/warden/commit/5762bc7a0b608cdbe31db7b740e8eeff21da2081)
2173
- - Add repository and source context to skill metrics by @dcramer in [#165](https://github.com/getsentry/warden/pull/165)
2174
- - Add end-to-end eval system with LLM judge by @dcramer in [#152](https://github.com/getsentry/warden/pull/152)
2175
- - release: 0.9.0 by @getsentry-bot in [d36b060f](https://github.com/getsentry/warden/commit/d36b060f650314a1dfafa78a1801be980272e3c0)
2176
- - release: 0.8.0 by @getsentry-bot in [7f71a98d](https://github.com/getsentry/warden/commit/7f71a98d931a128ba936df2ff5b73a72a987e6ab)
2177
-
2178
- _Plus 2 more_
2179
-
2180
- ## 0.25.0
2181
-
2182
- ### New Features ✨
2183
-
2184
- #### Action
2185
-
2186
- - Support org base configs with repo overlays by @dcramer in [#279](https://github.com/getsentry/warden/pull/279)
2187
- - Write structured findings JSON and expose as output by @gricha in [#233](https://github.com/getsentry/warden/pull/233)
2188
-
2189
- #### Cli
2190
-
2191
- - Build generated skills from path targets by @dcramer in [#282](https://github.com/getsentry/warden/pull/282)
2192
- - Add --staged flag and default to HEAD for uncommitted changes by @dcramer in [#205](https://github.com/getsentry/warden/pull/205)
2193
- - Display confidence level in findings output by @dcramer in [#194](https://github.com/getsentry/warden/pull/194)
2194
- - Always-on JSONL logging with repo-local log directory by @dcramer in [#179](https://github.com/getsentry/warden/pull/179)
2195
- - Add --fail-fast flag to stop after first finding by @dcramer in [#174](https://github.com/getsentry/warden/pull/174)
2196
- - Surface failure details for chunk analysis and finding extraction by @dcramer in [#162](https://github.com/getsentry/warden/pull/162)
2197
- - Interactive fix step-through with y/n/a/s/q prompt by @dcramer in [#161](https://github.com/getsentry/warden/pull/161)
2198
-
2199
- #### Docs
2200
-
2201
- - Improved landing visuals by @PickleNik in [#245](https://github.com/getsentry/warden/pull/245)
2202
- - Add LLM content negotiation and llms.txt by @dcramer in [#178](https://github.com/getsentry/warden/pull/178)
2203
-
2204
- #### Runs
2205
-
2206
- - Write chunk-level JSONL logs by @dcramer in [#265](https://github.com/getsentry/warden/pull/265)
2207
- - Stream in-progress runs via 'warden runs follow' by @dcramer in [#261](https://github.com/getsentry/warden/pull/261)
2208
-
2209
- #### Sdk
2210
-
2211
- - Add finding verification pass by @dcramer in [#290](https://github.com/getsentry/warden/pull/290)
2212
- - Store Claude SDK sessions in .warden/sessions/ by @dcramer in [#193](https://github.com/getsentry/warden/pull/193)
2213
-
2214
- #### Skills
2215
-
2216
- - Add built-in code review skill by @dcramer in [#298](https://github.com/getsentry/warden/pull/298)
2217
- - Add built-in security review skill by @dcramer in [#292](https://github.com/getsentry/warden/pull/292)
2218
- - Consolidate warden-sweep into bundled scripts with prescribed reporting by @dcramer in [#201](https://github.com/getsentry/warden/pull/201)
2219
- - Replace notseer with find-warden-bugs skill by @dcramer in [#200](https://github.com/getsentry/warden/pull/200)
2220
- - Add warden-sweep skill and bundled skill installation by @dcramer in [#196](https://github.com/getsentry/warden/pull/196)
2221
- - Add agent discovery alongside skills by @dcramer in [#136](https://github.com/getsentry/warden/pull/136)
2222
-
2223
- #### Sweep
2224
-
2225
- - Add --skill flag to scan.py by @dcramer in [#211](https://github.com/getsentry/warden/pull/211)
2226
- - Add master tracking issue for sweep PRs by @dcramer in [#210](https://github.com/getsentry/warden/pull/210)
2227
-
2228
- #### Telemetry
2229
-
2230
- - Add skill and model attribution to metrics by @gricha in [#231](https://github.com/getsentry/warden/pull/231)
2231
- - Add namespaced fix-eval feedback metrics by @dcramer in [#229](https://github.com/getsentry/warden/pull/229)
2232
- - Add global scope attributes, run metric, and trace ID surfacing by @dcramer in [#166](https://github.com/getsentry/warden/pull/166)
2233
- - Add input/output attributes to gen_ai spans by @dcramer in [#142](https://github.com/getsentry/warden/pull/142)
2234
- - Add per-turn tracing for Claude Code SDK agent calls by @dcramer in [#141](https://github.com/getsentry/warden/pull/141)
2235
-
2236
- #### Other
2237
-
2238
- - (config) Make auxiliary max retries configurable via defaults.auxiliaryMaxRetries by @dcramer in [#175](https://github.com/getsentry/warden/pull/175)
2239
- - (dedup) Add intra-batch finding consolidation by @dcramer in [#135](https://github.com/getsentry/warden/pull/135)
2240
- - (init) Add section-based output and interactive skill prompt by @dcramer in [#182](https://github.com/getsentry/warden/pull/182)
2241
- - (o11y) Capture run failures in JSONL output by @dcramer in [#259](https://github.com/getsentry/warden/pull/259)
2242
- - (output) Default to COMMENT instead of REQUEST_CHANGES on PRs by @dcramer in [#137](https://github.com/getsentry/warden/pull/137)
2243
- - (runner) Global concurrency pool for file analyses by @dcramer in [#158](https://github.com/getsentry/warden/pull/158)
2244
- - (skill-builder) Build generated repo-local skills by @dcramer in [#280](https://github.com/getsentry/warden/pull/280)
2245
- - Add verification field and confidence filtering by @dcramer in [#191](https://github.com/getsentry/warden/pull/191)
2246
- - Pnpm workspace monorepo with docs migration by @dcramer in [#185](https://github.com/getsentry/warden/pull/185)
2247
- - Adopt dotagents for skill management by @dcramer in [#168](https://github.com/getsentry/warden/pull/168)
2248
- - Cross-location finding merge by @dcramer in [#148](https://github.com/getsentry/warden/pull/148)
2249
- - Add env vars to generated workflow and docs by @dcramer in [#138](https://github.com/getsentry/warden/pull/138)
2250
- - Add Sentry observability (errors, tracing, metrics, structured logs) by @dcramer in [#133](https://github.com/getsentry/warden/pull/133)
2251
- - Split failOn into independent requestChanges and failCheck controls by @dcramer in [#129](https://github.com/getsentry/warden/pull/129)
2252
-
2253
- ### Bug Fixes 🐛
2254
-
2255
- #### Action
2256
-
2257
- - Use relative findings output path by @dcramer in [#289](https://github.com/getsentry/warden/pull/289)
2258
- - Handle missing warden.toml gracefully by @gricha in [#235](https://github.com/getsentry/warden/pull/235)
2259
- - Thread maxContextFiles config through Action workflows by @dcramer in [#216](https://github.com/getsentry/warden/pull/216)
2260
-
2261
- #### Cli
2262
-
2263
- - Label built-in skill sources by @dcramer in [#294](https://github.com/getsentry/warden/pull/294)
2264
- - Report final per-file finding counts by @dcramer in [#293](https://github.com/getsentry/warden/pull/293)
2265
- - Align local review diff context by @dcramer in [#276](https://github.com/getsentry/warden/pull/276)
2266
- - Replace process.exit(130) with thrown error for graceful cleanup by @dcramer in [#213](https://github.com/getsentry/warden/pull/213)
2267
- - Write --output file on auth error early exit by @dcramer in [#214](https://github.com/getsentry/warden/pull/214)
2268
- - Normalize path separators in synthetic file changes by @dcramer in [#217](https://github.com/getsentry/warden/pull/217)
2269
- - Exclude node_modules from gitignore file discovery by @dcramer in [#220](https://github.com/getsentry/warden/pull/220)
2270
- - Collapse skipped files into a single count on Ctrl+C by @dcramer in [#172](https://github.com/getsentry/warden/pull/172)
2271
- - Render warnings through Ink's Static component by @dcramer in [#170](https://github.com/getsentry/warden/pull/170)
2272
- - Cap 'Other Files' list in prompts for CLI mode by @dcramer in [#171](https://github.com/getsentry/warden/pull/171)
2273
- - Move completed files to Static to prevent flickering by @dcramer in [#149](https://github.com/getsentry/warden/pull/149)
2274
- - Run all skills locally regardless of trigger type by @gricha in [#145](https://github.com/getsentry/warden/pull/145)
2275
- - Resolve remote config for --skill flag by @dcramer in [#130](https://github.com/getsentry/warden/pull/130)
2276
-
2277
- #### Output
2278
-
2279
- - List only successfully applied fixes in PR body by @dcramer in [#219](https://github.com/getsentry/warden/pull/219)
2280
- - Use backticks instead of brackets in attribution footer by @dcramer in [#197](https://github.com/getsentry/warden/pull/197)
2281
-
2282
- #### Sdk
2283
-
2284
- - Short-circuit repeated provider failures by @dcramer in [#291](https://github.com/getsentry/warden/pull/291)
2285
- - Strip invalid suggested fixes from reports by @dcramer in [#228](https://github.com/getsentry/warden/pull/228)
2286
- - Prevent Warden sessions from polluting Claude Code history by @dcramer in [#202](https://github.com/getsentry/warden/pull/202)
2287
- - Handle EPIPE errors from Claude subprocess failures by @dcramer in [#198](https://github.com/getsentry/warden/pull/198)
2288
- - Add verification checklist and Glob tool to reduce analysis hallucinations by @dcramer in [#173](https://github.com/getsentry/warden/pull/173)
2289
- - Constrain skill findings to diff hunk line range by @dcramer in [#151](https://github.com/getsentry/warden/pull/151)
2290
-
2291
- #### Sweep
2292
-
2293
- - Add self-validation to fix subagent prompt by @dcramer in [#223](https://github.com/getsentry/warden/pull/223)
2294
- - Branch worktrees from default branch instead of HEAD by @dcramer in [#221](https://github.com/getsentry/warden/pull/221)
2295
-
2296
- #### Telemetry
2297
-
2298
- - Improve OTel GenAI semantic convention compliance by @dcramer in [#140](https://github.com/getsentry/warden/pull/140)
2299
- - Fix missing Sentry traces and negative token costs by @dcramer in [#139](https://github.com/getsentry/warden/pull/139)
2300
-
2301
- #### Other
2302
-
2303
- - (ci) Enable auto-generated changelogs for GitHub releases by @gricha in [#234](https://github.com/getsentry/warden/pull/234)
2304
- - (config) Add missing fields to TOML writer for config round-trip by @dcramer in [#218](https://github.com/getsentry/warden/pull/218)
2305
- - (evals) Update default model to claude-sonnet-4-6 by @dcramer in [#163](https://github.com/getsentry/warden/pull/163)
2306
- - (o11y) Add gen_ai.request.model attribute by @obostjancic in [#247](https://github.com/getsentry/warden/pull/247)
2307
- - (prepare) Skip files with zero content automatically by @dcramer in [#226](https://github.com/getsentry/warden/pull/226)
2308
- - (review) Preserve active Warden threads by @dcramer in [#272](https://github.com/getsentry/warden/pull/272)
2309
- - (skill-builder) Stabilize generated skill authoring by @dcramer in [#284](https://github.com/getsentry/warden/pull/284)
2310
- - (skills) Support private repos in `warden add --remote` by @dcramer in [#187](https://github.com/getsentry/warden/pull/187)
2311
- - (usage) Normalize inputTokens to include cached and cache-write tokens by @vgrozdanic in [#143](https://github.com/getsentry/warden/pull/143)
2312
- - Preserve interrupted findings and parse run args by @dcramer in [#297](https://github.com/getsentry/warden/pull/297)
2313
- - Prevent command injection in release workflow by @fix-it-felix-sentry in [#277](https://github.com/getsentry/warden/pull/277)
2314
- - Handle multi-line YAML scalar values in SKILL.md frontmatter by @odysseus0 in [#243](https://github.com/getsentry/warden/pull/243)
2315
- - Server error handler calls process.exit() bypassing cleanup by @dcramer in [#206](https://github.com/getsentry/warden/pull/206)
2316
- - Preserve error chains across error wrapping boundaries by @dcramer in [#215](https://github.com/getsentry/warden/pull/215)
2317
- - Respect ignorePaths in all code paths by @dcramer in [#204](https://github.com/getsentry/warden/pull/204)
2318
- - Exclude dev files and secrets from npm package by @dcramer in [#186](https://github.com/getsentry/warden/pull/186)
2319
- - Clean up orphaned Warden comments when no triggers match by @dcramer in [#134](https://github.com/getsentry/warden/pull/134)
2320
- - Show findings in PR review body when inline comments fail by @dcramer in [#128](https://github.com/getsentry/warden/pull/128)
2321
- - Show skipped status for files not processed during Ctrl+C by @dcramer in [#127](https://github.com/getsentry/warden/pull/127)
2322
-
2323
- ### Documentation 📚
2324
-
2325
- - (homepage) Redesign to lead with skills by @dcramer in [#238](https://github.com/getsentry/warden/pull/238)
2326
- - Use built-in security review in samples by @dcramer in [#295](https://github.com/getsentry/warden/pull/295)
2327
- - Use scoped Warden package in npx examples by @dcramer in [#273](https://github.com/getsentry/warden/pull/273)
2328
- - Lead homepage with GitHub PR review story by @dcramer in [#240](https://github.com/getsentry/warden/pull/240)
2329
- - Add org-wide GitHub setup guide by @dcramer in [#239](https://github.com/getsentry/warden/pull/239)
2330
- - Replace non-existent skill names with generic placeholders by @dcramer in [#199](https://github.com/getsentry/warden/pull/199)
2331
- - Simplify getting started guide to use native warden add --remote by @dcramer in [#164](https://github.com/getsentry/warden/pull/164)
2332
- - Fix documentation inconsistencies with codebase by @dcramer in [#147](https://github.com/getsentry/warden/pull/147)
2333
- - Update config reference with missing fields by @dcramer in [#132](https://github.com/getsentry/warden/pull/132)
2334
-
2335
- ### Internal Changes 🔧
2336
-
2337
- #### Deps
2338
-
2339
- - Bump dotagents lib by @gricha in [#296](https://github.com/getsentry/warden/pull/296)
2340
- - Bump yaml from 2.8.2 to 2.8.3 by @dependabot in [#254](https://github.com/getsentry/warden/pull/254)
2341
-
2342
- #### Sdk
2343
-
2344
- - Add flat runtime provider contract by @dcramer in [#270](https://github.com/getsentry/warden/pull/270)
2345
- - Extract applyMergeGroups to unify cross-location merge logic by @dcramer in [#153](https://github.com/getsentry/warden/pull/153)
2346
-
2347
- #### Skills
2348
-
2349
- - Adopt @sentry/dotagents-lib for skill resolution primitives by @gricha in [#285](https://github.com/getsentry/warden/pull/285)
2350
- - Restructure distributed Warden skills by @dcramer in [#268](https://github.com/getsentry/warden/pull/268)
2351
-
2352
- #### Other
2353
-
2354
- - (agents) Update configured skills list by @dcramer in [#241](https://github.com/getsentry/warden/pull/241)
2355
- - (cli) Use git ls-files for .gitignore discovery by @dcramer in [#222](https://github.com/getsentry/warden/pull/222)
2356
- - (config) Exclude evals directory from warden analysis by @dcramer in [#203](https://github.com/getsentry/warden/pull/203)
2357
- - (dotagents) Gitignore auto-generated files instead of tracking them by @gricha in [#246](https://github.com/getsentry/warden/pull/246)
2358
- - (output) Clean up GitHub finding rendering by @dcramer in [#176](https://github.com/getsentry/warden/pull/176)
2359
- - (skill-builder) Use internal authoring provider by @dcramer in [#283](https://github.com/getsentry/warden/pull/283)
2360
- - (sweep) Clean up warden-sweep skill per skill-creator review by @dcramer in [#225](https://github.com/getsentry/warden/pull/225)
2361
- - Add GitHub Actions workflow skill by @dcramer in [#278](https://github.com/getsentry/warden/pull/278)
2362
- - Add .serena to gitignore by @ericapisani in [#180](https://github.com/getsentry/warden/pull/180)
2363
- - Extract shared skill selection and validate setup-app args by @dcramer in [#208](https://github.com/getsentry/warden/pull/208)
2364
- - Combine multiple reduce operations into single pass by @dcramer in [#207](https://github.com/getsentry/warden/pull/207)
2365
- - Simplify repetitive column width calculations in logs by @dcramer in [#209](https://github.com/getsentry/warden/pull/209)
2366
- - Collapse severity to 3 levels, add warden logs command by @dcramer in [#192](https://github.com/getsentry/warden/pull/192)
2367
- - Migrate to dotagents and add skills reference to AGENTS.md by @dcramer in [#195](https://github.com/getsentry/warden/pull/195)
2368
- - Tighten weak mock assertions in test suite by @dcramer in [#160](https://github.com/getsentry/warden/pull/160)
2369
- - Add conductor.json configuration by @dcramer in [#159](https://github.com/getsentry/warden/pull/159)
2370
- - Remove generated artifacts from dist, keep only ncc bundle by @dcramer in [#131](https://github.com/getsentry/warden/pull/131)
2371
- - Replace batch-based concurrency with sliding window pool by @dcramer in [#126](https://github.com/getsentry/warden/pull/126)
2372
-
2373
- ### Other
2374
-
2375
- - release: 0.24.1 by @getsentry-bot in [2b9e2b0c](https://github.com/getsentry/warden/commit/2b9e2b0cdab12b950fcb4abc79e33d7db363ee49)
2376
- - release: 0.24.0 by @getsentry-bot in [715259ec](https://github.com/getsentry/warden/commit/715259ecacc9e1e5d78b6b62623960d86e934162)
2377
- - release: 0.23.0 by @getsentry-bot in [dd7f76ac](https://github.com/getsentry/warden/commit/dd7f76ac25cd8d70f2557638bd8d8678d9776e96)
2378
- - release: 0.22.0 by @getsentry-bot in [08a3b2f0](https://github.com/getsentry/warden/commit/08a3b2f0139248c80ba499038320556bedb66347)
2379
- - release: 0.21.0 by @getsentry-bot in [2795626e](https://github.com/getsentry/warden/commit/2795626e8f1ff3c5a7a041d0ecb9ae3c047641cd)
2380
- - Docs UI improvements by @PickleNik in [#248](https://github.com/getsentry/warden/pull/248)
2381
- - release: 0.20.0 by @getsentry-bot in [e7dbd6eb](https://github.com/getsentry/warden/commit/e7dbd6eb1680d1d15df6388084237e5d231ec929)
2382
- - release: 0.19.0 by @getsentry-bot in [0096b702](https://github.com/getsentry/warden/commit/0096b7024749edf9e62a791340cfea2ef5b899bf)
2383
- - chores(docs): Add instruction for creating org rulesets by @Jeffreyhung in [#244](https://github.com/getsentry/warden/pull/244)
2384
- - release: 0.18.0 by @getsentry-bot in [e3691621](https://github.com/getsentry/warden/commit/e3691621d9f92de1f47fadb47be162b90f7042ff)
2385
- - release: 0.17.0 by @getsentry-bot in [d6132a96](https://github.com/getsentry/warden/commit/d6132a960cb033ec737042bea68f195b5cadef76)
2386
- - release: 0.16.0 by @getsentry-bot in [62909fe4](https://github.com/getsentry/warden/commit/62909fe4d28c322508945382d001d0a6844852f2)
2387
- - release: 0.15.0 by @getsentry-bot in [d9905cee](https://github.com/getsentry/warden/commit/d9905ceee868cba2aa41f8f17233eacb44901c36)
2388
- - release: 0.14.0 by @getsentry-bot in [538f13b4](https://github.com/getsentry/warden/commit/538f13b44a4e78f30ecc668957f6cede7d8e7161)
2389
- - release: 0.13.0 by @getsentry-bot in [063517a9](https://github.com/getsentry/warden/commit/063517a90a903b56919eec66542b129950ff866c)
2390
- - release: 0.12.0 by @getsentry-bot in [7177c99f](https://github.com/getsentry/warden/commit/7177c99fb10de1cbec8b788881d501a4f8d72965)
2391
- - Remove outdated SPEC.md by @dcramer in [#181](https://github.com/getsentry/warden/pull/181)
2392
- - release: 0.11.0 by @getsentry-bot in [b5525e63](https://github.com/getsentry/warden/commit/b5525e6332a7090940f066b676ea4cf587aa1e2a)
2393
- - release: 0.10.0 by @getsentry-bot in [5762bc7a](https://github.com/getsentry/warden/commit/5762bc7a0b608cdbe31db7b740e8eeff21da2081)
2394
- - Add repository and source context to skill metrics by @dcramer in [#165](https://github.com/getsentry/warden/pull/165)
2395
- - Add end-to-end eval system with LLM judge by @dcramer in [#152](https://github.com/getsentry/warden/pull/152)
2396
- - release: 0.9.0 by @getsentry-bot in [d36b060f](https://github.com/getsentry/warden/commit/d36b060f650314a1dfafa78a1801be980272e3c0)
2397
- - release: 0.8.0 by @getsentry-bot in [7f71a98d](https://github.com/getsentry/warden/commit/7f71a98d931a128ba936df2ff5b73a72a987e6ab)
2398
- - release: 0.7.0 by @getsentry-bot in [b6e61976](https://github.com/getsentry/warden/commit/b6e6197647e44211f5d1a30788d0c6792e24c97a)
2399
-
2400
- _Plus 1 more_
2401
-
2402
- ## 0.24.1
2403
-
2404
- ### New Features ✨
2405
-
2406
- #### Action
2407
-
2408
- - Support org base configs with repo overlays by @dcramer in [#279](https://github.com/getsentry/warden/pull/279)
2409
- - Write structured findings JSON and expose as output by @gricha in [#233](https://github.com/getsentry/warden/pull/233)
2410
-
2411
- #### Cli
2412
-
2413
- - Build generated skills from path targets by @dcramer in [#282](https://github.com/getsentry/warden/pull/282)
2414
- - Add --staged flag and default to HEAD for uncommitted changes by @dcramer in [#205](https://github.com/getsentry/warden/pull/205)
2415
- - Display confidence level in findings output by @dcramer in [#194](https://github.com/getsentry/warden/pull/194)
2416
- - Always-on JSONL logging with repo-local log directory by @dcramer in [#179](https://github.com/getsentry/warden/pull/179)
2417
- - Add --fail-fast flag to stop after first finding by @dcramer in [#174](https://github.com/getsentry/warden/pull/174)
2418
- - Surface failure details for chunk analysis and finding extraction by @dcramer in [#162](https://github.com/getsentry/warden/pull/162)
2419
- - Interactive fix step-through with y/n/a/s/q prompt by @dcramer in [#161](https://github.com/getsentry/warden/pull/161)
2420
-
2421
- #### Docs
2422
-
2423
- - Improved landing visuals by @PickleNik in [#245](https://github.com/getsentry/warden/pull/245)
2424
- - Add LLM content negotiation and llms.txt by @dcramer in [#178](https://github.com/getsentry/warden/pull/178)
2425
-
2426
- #### Runs
2427
-
2428
- - Write chunk-level JSONL logs by @dcramer in [#265](https://github.com/getsentry/warden/pull/265)
2429
- - Stream in-progress runs via 'warden runs follow' by @dcramer in [#261](https://github.com/getsentry/warden/pull/261)
2430
-
2431
- #### Sdk
2432
-
2433
- - Add finding verification pass by @dcramer in [#290](https://github.com/getsentry/warden/pull/290)
2434
- - Store Claude SDK sessions in .warden/sessions/ by @dcramer in [#193](https://github.com/getsentry/warden/pull/193)
2435
-
2436
- #### Skills
2437
-
2438
- - Add built-in security review skill by @dcramer in [#292](https://github.com/getsentry/warden/pull/292)
2439
- - Consolidate warden-sweep into bundled scripts with prescribed reporting by @dcramer in [#201](https://github.com/getsentry/warden/pull/201)
2440
- - Replace notseer with find-warden-bugs skill by @dcramer in [#200](https://github.com/getsentry/warden/pull/200)
2441
- - Add warden-sweep skill and bundled skill installation by @dcramer in [#196](https://github.com/getsentry/warden/pull/196)
2442
- - Add agent discovery alongside skills by @dcramer in [#136](https://github.com/getsentry/warden/pull/136)
2443
-
2444
- #### Sweep
2445
-
2446
- - Add --skill flag to scan.py by @dcramer in [#211](https://github.com/getsentry/warden/pull/211)
2447
- - Add master tracking issue for sweep PRs by @dcramer in [#210](https://github.com/getsentry/warden/pull/210)
2448
-
2449
- #### Telemetry
2450
-
2451
- - Add skill and model attribution to metrics by @gricha in [#231](https://github.com/getsentry/warden/pull/231)
2452
- - Add namespaced fix-eval feedback metrics by @dcramer in [#229](https://github.com/getsentry/warden/pull/229)
2453
- - Add global scope attributes, run metric, and trace ID surfacing by @dcramer in [#166](https://github.com/getsentry/warden/pull/166)
2454
- - Add input/output attributes to gen_ai spans by @dcramer in [#142](https://github.com/getsentry/warden/pull/142)
2455
- - Add per-turn tracing for Claude Code SDK agent calls by @dcramer in [#141](https://github.com/getsentry/warden/pull/141)
2456
-
2457
- #### Other
2458
-
2459
- - (config) Make auxiliary max retries configurable via defaults.auxiliaryMaxRetries by @dcramer in [#175](https://github.com/getsentry/warden/pull/175)
2460
- - (dedup) Add intra-batch finding consolidation by @dcramer in [#135](https://github.com/getsentry/warden/pull/135)
2461
- - (init) Add section-based output and interactive skill prompt by @dcramer in [#182](https://github.com/getsentry/warden/pull/182)
2462
- - (o11y) Capture run failures in JSONL output by @dcramer in [#259](https://github.com/getsentry/warden/pull/259)
2463
- - (output) Default to COMMENT instead of REQUEST_CHANGES on PRs by @dcramer in [#137](https://github.com/getsentry/warden/pull/137)
2464
- - (runner) Global concurrency pool for file analyses by @dcramer in [#158](https://github.com/getsentry/warden/pull/158)
2465
- - (skill-builder) Build generated repo-local skills by @dcramer in [#280](https://github.com/getsentry/warden/pull/280)
2466
- - Add verification field and confidence filtering by @dcramer in [#191](https://github.com/getsentry/warden/pull/191)
2467
- - Pnpm workspace monorepo with docs migration by @dcramer in [#185](https://github.com/getsentry/warden/pull/185)
2468
- - Adopt dotagents for skill management by @dcramer in [#168](https://github.com/getsentry/warden/pull/168)
2469
- - Cross-location finding merge by @dcramer in [#148](https://github.com/getsentry/warden/pull/148)
2470
- - Add env vars to generated workflow and docs by @dcramer in [#138](https://github.com/getsentry/warden/pull/138)
2471
- - Add Sentry observability (errors, tracing, metrics, structured logs) by @dcramer in [#133](https://github.com/getsentry/warden/pull/133)
2472
- - Split failOn into independent requestChanges and failCheck controls by @dcramer in [#129](https://github.com/getsentry/warden/pull/129)
2473
-
2474
- ### Bug Fixes 🐛
2475
-
2476
- #### Action
2477
-
2478
- - Use relative findings output path by @dcramer in [#289](https://github.com/getsentry/warden/pull/289)
2479
- - Handle missing warden.toml gracefully by @gricha in [#235](https://github.com/getsentry/warden/pull/235)
2480
- - Thread maxContextFiles config through Action workflows by @dcramer in [#216](https://github.com/getsentry/warden/pull/216)
2481
-
2482
- #### Cli
2483
-
2484
- - Label built-in skill sources by @dcramer in [#294](https://github.com/getsentry/warden/pull/294)
2485
- - Report final per-file finding counts by @dcramer in [#293](https://github.com/getsentry/warden/pull/293)
2486
- - Align local review diff context by @dcramer in [#276](https://github.com/getsentry/warden/pull/276)
2487
- - Replace process.exit(130) with thrown error for graceful cleanup by @dcramer in [#213](https://github.com/getsentry/warden/pull/213)
2488
- - Write --output file on auth error early exit by @dcramer in [#214](https://github.com/getsentry/warden/pull/214)
2489
- - Normalize path separators in synthetic file changes by @dcramer in [#217](https://github.com/getsentry/warden/pull/217)
2490
- - Exclude node_modules from gitignore file discovery by @dcramer in [#220](https://github.com/getsentry/warden/pull/220)
2491
- - Collapse skipped files into a single count on Ctrl+C by @dcramer in [#172](https://github.com/getsentry/warden/pull/172)
2492
- - Render warnings through Ink's Static component by @dcramer in [#170](https://github.com/getsentry/warden/pull/170)
2493
- - Cap 'Other Files' list in prompts for CLI mode by @dcramer in [#171](https://github.com/getsentry/warden/pull/171)
2494
- - Move completed files to Static to prevent flickering by @dcramer in [#149](https://github.com/getsentry/warden/pull/149)
2495
- - Run all skills locally regardless of trigger type by @gricha in [#145](https://github.com/getsentry/warden/pull/145)
2496
- - Resolve remote config for --skill flag by @dcramer in [#130](https://github.com/getsentry/warden/pull/130)
2497
-
2498
- #### Output
2499
-
2500
- - List only successfully applied fixes in PR body by @dcramer in [#219](https://github.com/getsentry/warden/pull/219)
2501
- - Use backticks instead of brackets in attribution footer by @dcramer in [#197](https://github.com/getsentry/warden/pull/197)
2502
-
2503
- #### Sdk
2504
-
2505
- - Short-circuit repeated provider failures by @dcramer in [#291](https://github.com/getsentry/warden/pull/291)
2506
- - Strip invalid suggested fixes from reports by @dcramer in [#228](https://github.com/getsentry/warden/pull/228)
2507
- - Prevent Warden sessions from polluting Claude Code history by @dcramer in [#202](https://github.com/getsentry/warden/pull/202)
2508
- - Handle EPIPE errors from Claude subprocess failures by @dcramer in [#198](https://github.com/getsentry/warden/pull/198)
2509
- - Add verification checklist and Glob tool to reduce analysis hallucinations by @dcramer in [#173](https://github.com/getsentry/warden/pull/173)
2510
- - Constrain skill findings to diff hunk line range by @dcramer in [#151](https://github.com/getsentry/warden/pull/151)
2511
-
2512
- #### Sweep
2513
-
2514
- - Add self-validation to fix subagent prompt by @dcramer in [#223](https://github.com/getsentry/warden/pull/223)
2515
- - Branch worktrees from default branch instead of HEAD by @dcramer in [#221](https://github.com/getsentry/warden/pull/221)
2516
-
2517
- #### Telemetry
2518
-
2519
- - Improve OTel GenAI semantic convention compliance by @dcramer in [#140](https://github.com/getsentry/warden/pull/140)
2520
- - Fix missing Sentry traces and negative token costs by @dcramer in [#139](https://github.com/getsentry/warden/pull/139)
2521
-
2522
- #### Other
2523
-
2524
- - (ci) Enable auto-generated changelogs for GitHub releases by @gricha in [#234](https://github.com/getsentry/warden/pull/234)
2525
- - (config) Add missing fields to TOML writer for config round-trip by @dcramer in [#218](https://github.com/getsentry/warden/pull/218)
2526
- - (evals) Update default model to claude-sonnet-4-6 by @dcramer in [#163](https://github.com/getsentry/warden/pull/163)
2527
- - (o11y) Add gen_ai.request.model attribute by @obostjancic in [#247](https://github.com/getsentry/warden/pull/247)
2528
- - (prepare) Skip files with zero content automatically by @dcramer in [#226](https://github.com/getsentry/warden/pull/226)
2529
- - (review) Preserve active Warden threads by @dcramer in [#272](https://github.com/getsentry/warden/pull/272)
2530
- - (skill-builder) Stabilize generated skill authoring by @dcramer in [#284](https://github.com/getsentry/warden/pull/284)
2531
- - (skills) Support private repos in `warden add --remote` by @dcramer in [#187](https://github.com/getsentry/warden/pull/187)
2532
- - (usage) Normalize inputTokens to include cached and cache-write tokens by @vgrozdanic in [#143](https://github.com/getsentry/warden/pull/143)
2533
- - Preserve interrupted findings and parse run args by @dcramer in [#297](https://github.com/getsentry/warden/pull/297)
2534
- - Prevent command injection in release workflow by @fix-it-felix-sentry in [#277](https://github.com/getsentry/warden/pull/277)
2535
- - Handle multi-line YAML scalar values in SKILL.md frontmatter by @odysseus0 in [#243](https://github.com/getsentry/warden/pull/243)
2536
- - Server error handler calls process.exit() bypassing cleanup by @dcramer in [#206](https://github.com/getsentry/warden/pull/206)
2537
- - Preserve error chains across error wrapping boundaries by @dcramer in [#215](https://github.com/getsentry/warden/pull/215)
2538
- - Respect ignorePaths in all code paths by @dcramer in [#204](https://github.com/getsentry/warden/pull/204)
2539
- - Exclude dev files and secrets from npm package by @dcramer in [#186](https://github.com/getsentry/warden/pull/186)
2540
- - Clean up orphaned Warden comments when no triggers match by @dcramer in [#134](https://github.com/getsentry/warden/pull/134)
2541
- - Show findings in PR review body when inline comments fail by @dcramer in [#128](https://github.com/getsentry/warden/pull/128)
2542
- - Show skipped status for files not processed during Ctrl+C by @dcramer in [#127](https://github.com/getsentry/warden/pull/127)
2543
-
2544
- ### Documentation 📚
2545
-
2546
- - (homepage) Redesign to lead with skills by @dcramer in [#238](https://github.com/getsentry/warden/pull/238)
2547
- - Use built-in security review in samples by @dcramer in [#295](https://github.com/getsentry/warden/pull/295)
2548
- - Use scoped Warden package in npx examples by @dcramer in [#273](https://github.com/getsentry/warden/pull/273)
2549
- - Lead homepage with GitHub PR review story by @dcramer in [#240](https://github.com/getsentry/warden/pull/240)
2550
- - Add org-wide GitHub setup guide by @dcramer in [#239](https://github.com/getsentry/warden/pull/239)
2551
- - Replace non-existent skill names with generic placeholders by @dcramer in [#199](https://github.com/getsentry/warden/pull/199)
2552
- - Simplify getting started guide to use native warden add --remote by @dcramer in [#164](https://github.com/getsentry/warden/pull/164)
2553
- - Fix documentation inconsistencies with codebase by @dcramer in [#147](https://github.com/getsentry/warden/pull/147)
2554
- - Update config reference with missing fields by @dcramer in [#132](https://github.com/getsentry/warden/pull/132)
2555
-
2556
- ### Internal Changes 🔧
2557
-
2558
- #### Deps
2559
-
2560
- - Bump dotagents lib by @gricha in [#296](https://github.com/getsentry/warden/pull/296)
2561
- - Bump yaml from 2.8.2 to 2.8.3 by @dependabot in [#254](https://github.com/getsentry/warden/pull/254)
2562
-
2563
- #### Sdk
2564
-
2565
- - Add flat runtime provider contract by @dcramer in [#270](https://github.com/getsentry/warden/pull/270)
2566
- - Extract applyMergeGroups to unify cross-location merge logic by @dcramer in [#153](https://github.com/getsentry/warden/pull/153)
2567
-
2568
- #### Skills
2569
-
2570
- - Adopt @sentry/dotagents-lib for skill resolution primitives by @gricha in [#285](https://github.com/getsentry/warden/pull/285)
2571
- - Restructure distributed Warden skills by @dcramer in [#268](https://github.com/getsentry/warden/pull/268)
2572
-
2573
- #### Other
2574
-
2575
- - (agents) Update configured skills list by @dcramer in [#241](https://github.com/getsentry/warden/pull/241)
2576
- - (cli) Use git ls-files for .gitignore discovery by @dcramer in [#222](https://github.com/getsentry/warden/pull/222)
2577
- - (config) Exclude evals directory from warden analysis by @dcramer in [#203](https://github.com/getsentry/warden/pull/203)
2578
- - (dotagents) Gitignore auto-generated files instead of tracking them by @gricha in [#246](https://github.com/getsentry/warden/pull/246)
2579
- - (output) Clean up GitHub finding rendering by @dcramer in [#176](https://github.com/getsentry/warden/pull/176)
2580
- - (skill-builder) Use internal authoring provider by @dcramer in [#283](https://github.com/getsentry/warden/pull/283)
2581
- - (sweep) Clean up warden-sweep skill per skill-creator review by @dcramer in [#225](https://github.com/getsentry/warden/pull/225)
2582
- - Add GitHub Actions workflow skill by @dcramer in [#278](https://github.com/getsentry/warden/pull/278)
2583
- - Add .serena to gitignore by @ericapisani in [#180](https://github.com/getsentry/warden/pull/180)
2584
- - Extract shared skill selection and validate setup-app args by @dcramer in [#208](https://github.com/getsentry/warden/pull/208)
2585
- - Combine multiple reduce operations into single pass by @dcramer in [#207](https://github.com/getsentry/warden/pull/207)
2586
- - Simplify repetitive column width calculations in logs by @dcramer in [#209](https://github.com/getsentry/warden/pull/209)
2587
- - Collapse severity to 3 levels, add warden logs command by @dcramer in [#192](https://github.com/getsentry/warden/pull/192)
2588
- - Migrate to dotagents and add skills reference to AGENTS.md by @dcramer in [#195](https://github.com/getsentry/warden/pull/195)
2589
- - Tighten weak mock assertions in test suite by @dcramer in [#160](https://github.com/getsentry/warden/pull/160)
2590
- - Add conductor.json configuration by @dcramer in [#159](https://github.com/getsentry/warden/pull/159)
2591
- - Remove generated artifacts from dist, keep only ncc bundle by @dcramer in [#131](https://github.com/getsentry/warden/pull/131)
2592
- - Replace batch-based concurrency with sliding window pool by @dcramer in [#126](https://github.com/getsentry/warden/pull/126)
2593
-
2594
- ### Other
2595
-
2596
- - release: 0.24.0 by @getsentry-bot in [715259ec](https://github.com/getsentry/warden/commit/715259ecacc9e1e5d78b6b62623960d86e934162)
2597
- - release: 0.23.0 by @getsentry-bot in [dd7f76ac](https://github.com/getsentry/warden/commit/dd7f76ac25cd8d70f2557638bd8d8678d9776e96)
2598
- - release: 0.22.0 by @getsentry-bot in [08a3b2f0](https://github.com/getsentry/warden/commit/08a3b2f0139248c80ba499038320556bedb66347)
2599
- - release: 0.21.0 by @getsentry-bot in [2795626e](https://github.com/getsentry/warden/commit/2795626e8f1ff3c5a7a041d0ecb9ae3c047641cd)
2600
- - Docs UI improvements by @PickleNik in [#248](https://github.com/getsentry/warden/pull/248)
2601
- - release: 0.20.0 by @getsentry-bot in [e7dbd6eb](https://github.com/getsentry/warden/commit/e7dbd6eb1680d1d15df6388084237e5d231ec929)
2602
- - release: 0.19.0 by @getsentry-bot in [0096b702](https://github.com/getsentry/warden/commit/0096b7024749edf9e62a791340cfea2ef5b899bf)
2603
- - chores(docs): Add instruction for creating org rulesets by @Jeffreyhung in [#244](https://github.com/getsentry/warden/pull/244)
2604
- - release: 0.18.0 by @getsentry-bot in [e3691621](https://github.com/getsentry/warden/commit/e3691621d9f92de1f47fadb47be162b90f7042ff)
2605
- - release: 0.17.0 by @getsentry-bot in [d6132a96](https://github.com/getsentry/warden/commit/d6132a960cb033ec737042bea68f195b5cadef76)
2606
- - release: 0.16.0 by @getsentry-bot in [62909fe4](https://github.com/getsentry/warden/commit/62909fe4d28c322508945382d001d0a6844852f2)
2607
- - release: 0.15.0 by @getsentry-bot in [d9905cee](https://github.com/getsentry/warden/commit/d9905ceee868cba2aa41f8f17233eacb44901c36)
2608
- - release: 0.14.0 by @getsentry-bot in [538f13b4](https://github.com/getsentry/warden/commit/538f13b44a4e78f30ecc668957f6cede7d8e7161)
2609
- - release: 0.13.0 by @getsentry-bot in [063517a9](https://github.com/getsentry/warden/commit/063517a90a903b56919eec66542b129950ff866c)
2610
- - release: 0.12.0 by @getsentry-bot in [7177c99f](https://github.com/getsentry/warden/commit/7177c99fb10de1cbec8b788881d501a4f8d72965)
2611
- - Remove outdated SPEC.md by @dcramer in [#181](https://github.com/getsentry/warden/pull/181)
2612
- - release: 0.11.0 by @getsentry-bot in [b5525e63](https://github.com/getsentry/warden/commit/b5525e6332a7090940f066b676ea4cf587aa1e2a)
2613
- - release: 0.10.0 by @getsentry-bot in [5762bc7a](https://github.com/getsentry/warden/commit/5762bc7a0b608cdbe31db7b740e8eeff21da2081)
2614
- - Add repository and source context to skill metrics by @dcramer in [#165](https://github.com/getsentry/warden/pull/165)
2615
- - Add end-to-end eval system with LLM judge by @dcramer in [#152](https://github.com/getsentry/warden/pull/152)
2616
- - release: 0.9.0 by @getsentry-bot in [d36b060f](https://github.com/getsentry/warden/commit/d36b060f650314a1dfafa78a1801be980272e3c0)
2617
- - release: 0.8.0 by @getsentry-bot in [7f71a98d](https://github.com/getsentry/warden/commit/7f71a98d931a128ba936df2ff5b73a72a987e6ab)
2618
- - release: 0.7.0 by @getsentry-bot in [b6e61976](https://github.com/getsentry/warden/commit/b6e6197647e44211f5d1a30788d0c6792e24c97a)
2619
- - Remove dist/action from main, build at release time by @dcramer in [#101](https://github.com/getsentry/warden/pull/101)
2620
-
2621
- ## 0.24.0
2622
-
2623
- ### New Features ✨
2624
-
2625
- #### Action
2626
-
2627
- - Support org base configs with repo overlays by @dcramer in [#279](https://github.com/getsentry/warden/pull/279)
2628
- - Write structured findings JSON and expose as output by @gricha in [#233](https://github.com/getsentry/warden/pull/233)
2629
-
2630
- #### Cli
2631
-
2632
- - Build generated skills from path targets by @dcramer in [#282](https://github.com/getsentry/warden/pull/282)
2633
- - Add --staged flag and default to HEAD for uncommitted changes by @dcramer in [#205](https://github.com/getsentry/warden/pull/205)
2634
- - Display confidence level in findings output by @dcramer in [#194](https://github.com/getsentry/warden/pull/194)
2635
- - Always-on JSONL logging with repo-local log directory by @dcramer in [#179](https://github.com/getsentry/warden/pull/179)
2636
- - Add --fail-fast flag to stop after first finding by @dcramer in [#174](https://github.com/getsentry/warden/pull/174)
2637
- - Surface failure details for chunk analysis and finding extraction by @dcramer in [#162](https://github.com/getsentry/warden/pull/162)
2638
- - Interactive fix step-through with y/n/a/s/q prompt by @dcramer in [#161](https://github.com/getsentry/warden/pull/161)
2639
-
2640
- #### Docs
2641
-
2642
- - Improved landing visuals by @PickleNik in [#245](https://github.com/getsentry/warden/pull/245)
2643
- - Add LLM content negotiation and llms.txt by @dcramer in [#178](https://github.com/getsentry/warden/pull/178)
2644
-
2645
- #### Runs
2646
-
2647
- - Write chunk-level JSONL logs by @dcramer in [#265](https://github.com/getsentry/warden/pull/265)
2648
- - Stream in-progress runs via 'warden runs follow' by @dcramer in [#261](https://github.com/getsentry/warden/pull/261)
2649
-
2650
- #### Sdk
2651
-
2652
- - Add finding verification pass by @dcramer in [#290](https://github.com/getsentry/warden/pull/290)
2653
- - Store Claude SDK sessions in .warden/sessions/ by @dcramer in [#193](https://github.com/getsentry/warden/pull/193)
2654
-
2655
- #### Skills
2656
-
2657
- - Add built-in security review skill by @dcramer in [#292](https://github.com/getsentry/warden/pull/292)
2658
- - Consolidate warden-sweep into bundled scripts with prescribed reporting by @dcramer in [#201](https://github.com/getsentry/warden/pull/201)
2659
- - Replace notseer with find-warden-bugs skill by @dcramer in [#200](https://github.com/getsentry/warden/pull/200)
2660
- - Add warden-sweep skill and bundled skill installation by @dcramer in [#196](https://github.com/getsentry/warden/pull/196)
2661
- - Add agent discovery alongside skills by @dcramer in [#136](https://github.com/getsentry/warden/pull/136)
2662
-
2663
- #### Sweep
2664
-
2665
- - Add --skill flag to scan.py by @dcramer in [#211](https://github.com/getsentry/warden/pull/211)
2666
- - Add master tracking issue for sweep PRs by @dcramer in [#210](https://github.com/getsentry/warden/pull/210)
2667
-
2668
- #### Telemetry
2669
-
2670
- - Add skill and model attribution to metrics by @gricha in [#231](https://github.com/getsentry/warden/pull/231)
2671
- - Add namespaced fix-eval feedback metrics by @dcramer in [#229](https://github.com/getsentry/warden/pull/229)
2672
- - Add global scope attributes, run metric, and trace ID surfacing by @dcramer in [#166](https://github.com/getsentry/warden/pull/166)
2673
- - Add input/output attributes to gen_ai spans by @dcramer in [#142](https://github.com/getsentry/warden/pull/142)
2674
- - Add per-turn tracing for Claude Code SDK agent calls by @dcramer in [#141](https://github.com/getsentry/warden/pull/141)
2675
-
2676
- #### Other
2677
-
2678
- - (config) Make auxiliary max retries configurable via defaults.auxiliaryMaxRetries by @dcramer in [#175](https://github.com/getsentry/warden/pull/175)
2679
- - (dedup) Add intra-batch finding consolidation by @dcramer in [#135](https://github.com/getsentry/warden/pull/135)
2680
- - (init) Add section-based output and interactive skill prompt by @dcramer in [#182](https://github.com/getsentry/warden/pull/182)
2681
- - (o11y) Capture run failures in JSONL output by @dcramer in [#259](https://github.com/getsentry/warden/pull/259)
2682
- - (output) Default to COMMENT instead of REQUEST_CHANGES on PRs by @dcramer in [#137](https://github.com/getsentry/warden/pull/137)
2683
- - (runner) Global concurrency pool for file analyses by @dcramer in [#158](https://github.com/getsentry/warden/pull/158)
2684
- - (skill-builder) Build generated repo-local skills by @dcramer in [#280](https://github.com/getsentry/warden/pull/280)
2685
- - Add verification field and confidence filtering by @dcramer in [#191](https://github.com/getsentry/warden/pull/191)
2686
- - Pnpm workspace monorepo with docs migration by @dcramer in [#185](https://github.com/getsentry/warden/pull/185)
2687
- - Adopt dotagents for skill management by @dcramer in [#168](https://github.com/getsentry/warden/pull/168)
2688
- - Cross-location finding merge by @dcramer in [#148](https://github.com/getsentry/warden/pull/148)
2689
- - Add env vars to generated workflow and docs by @dcramer in [#138](https://github.com/getsentry/warden/pull/138)
2690
- - Add Sentry observability (errors, tracing, metrics, structured logs) by @dcramer in [#133](https://github.com/getsentry/warden/pull/133)
2691
- - Split failOn into independent requestChanges and failCheck controls by @dcramer in [#129](https://github.com/getsentry/warden/pull/129)
2692
-
2693
- ### Bug Fixes 🐛
2694
-
2695
- #### Action
2696
-
2697
- - Use relative findings output path by @dcramer in [#289](https://github.com/getsentry/warden/pull/289)
2698
- - Handle missing warden.toml gracefully by @gricha in [#235](https://github.com/getsentry/warden/pull/235)
2699
- - Thread maxContextFiles config through Action workflows by @dcramer in [#216](https://github.com/getsentry/warden/pull/216)
2700
-
2701
- #### Cli
2702
-
2703
- - Label built-in skill sources by @dcramer in [#294](https://github.com/getsentry/warden/pull/294)
2704
- - Report final per-file finding counts by @dcramer in [#293](https://github.com/getsentry/warden/pull/293)
2705
- - Align local review diff context by @dcramer in [#276](https://github.com/getsentry/warden/pull/276)
2706
- - Replace process.exit(130) with thrown error for graceful cleanup by @dcramer in [#213](https://github.com/getsentry/warden/pull/213)
2707
- - Write --output file on auth error early exit by @dcramer in [#214](https://github.com/getsentry/warden/pull/214)
2708
- - Normalize path separators in synthetic file changes by @dcramer in [#217](https://github.com/getsentry/warden/pull/217)
2709
- - Exclude node_modules from gitignore file discovery by @dcramer in [#220](https://github.com/getsentry/warden/pull/220)
2710
- - Collapse skipped files into a single count on Ctrl+C by @dcramer in [#172](https://github.com/getsentry/warden/pull/172)
2711
- - Render warnings through Ink's Static component by @dcramer in [#170](https://github.com/getsentry/warden/pull/170)
2712
- - Cap 'Other Files' list in prompts for CLI mode by @dcramer in [#171](https://github.com/getsentry/warden/pull/171)
2713
- - Move completed files to Static to prevent flickering by @dcramer in [#149](https://github.com/getsentry/warden/pull/149)
2714
- - Run all skills locally regardless of trigger type by @gricha in [#145](https://github.com/getsentry/warden/pull/145)
2715
- - Resolve remote config for --skill flag by @dcramer in [#130](https://github.com/getsentry/warden/pull/130)
2716
-
2717
- #### Output
2718
-
2719
- - List only successfully applied fixes in PR body by @dcramer in [#219](https://github.com/getsentry/warden/pull/219)
2720
- - Use backticks instead of brackets in attribution footer by @dcramer in [#197](https://github.com/getsentry/warden/pull/197)
2721
-
2722
- #### Sdk
2723
-
2724
- - Short-circuit repeated provider failures by @dcramer in [#291](https://github.com/getsentry/warden/pull/291)
2725
- - Strip invalid suggested fixes from reports by @dcramer in [#228](https://github.com/getsentry/warden/pull/228)
2726
- - Prevent Warden sessions from polluting Claude Code history by @dcramer in [#202](https://github.com/getsentry/warden/pull/202)
2727
- - Handle EPIPE errors from Claude subprocess failures by @dcramer in [#198](https://github.com/getsentry/warden/pull/198)
2728
- - Add verification checklist and Glob tool to reduce analysis hallucinations by @dcramer in [#173](https://github.com/getsentry/warden/pull/173)
2729
- - Constrain skill findings to diff hunk line range by @dcramer in [#151](https://github.com/getsentry/warden/pull/151)
2730
-
2731
- #### Sweep
2732
-
2733
- - Add self-validation to fix subagent prompt by @dcramer in [#223](https://github.com/getsentry/warden/pull/223)
2734
- - Branch worktrees from default branch instead of HEAD by @dcramer in [#221](https://github.com/getsentry/warden/pull/221)
2735
-
2736
- #### Telemetry
2737
-
2738
- - Improve OTel GenAI semantic convention compliance by @dcramer in [#140](https://github.com/getsentry/warden/pull/140)
2739
- - Fix missing Sentry traces and negative token costs by @dcramer in [#139](https://github.com/getsentry/warden/pull/139)
2740
-
2741
- #### Other
2742
-
2743
- - (ci) Enable auto-generated changelogs for GitHub releases by @gricha in [#234](https://github.com/getsentry/warden/pull/234)
2744
- - (config) Add missing fields to TOML writer for config round-trip by @dcramer in [#218](https://github.com/getsentry/warden/pull/218)
2745
- - (evals) Update default model to claude-sonnet-4-6 by @dcramer in [#163](https://github.com/getsentry/warden/pull/163)
2746
- - (o11y) Add gen_ai.request.model attribute by @obostjancic in [#247](https://github.com/getsentry/warden/pull/247)
2747
- - (prepare) Skip files with zero content automatically by @dcramer in [#226](https://github.com/getsentry/warden/pull/226)
2748
- - (review) Preserve active Warden threads by @dcramer in [#272](https://github.com/getsentry/warden/pull/272)
2749
- - (skill-builder) Stabilize generated skill authoring by @dcramer in [#284](https://github.com/getsentry/warden/pull/284)
2750
- - (skills) Support private repos in `warden add --remote` by @dcramer in [#187](https://github.com/getsentry/warden/pull/187)
2751
- - (usage) Normalize inputTokens to include cached and cache-write tokens by @vgrozdanic in [#143](https://github.com/getsentry/warden/pull/143)
2752
- - Prevent command injection in release workflow by @fix-it-felix-sentry in [#277](https://github.com/getsentry/warden/pull/277)
2753
- - Handle multi-line YAML scalar values in SKILL.md frontmatter by @odysseus0 in [#243](https://github.com/getsentry/warden/pull/243)
2754
- - Server error handler calls process.exit() bypassing cleanup by @dcramer in [#206](https://github.com/getsentry/warden/pull/206)
2755
- - Preserve error chains across error wrapping boundaries by @dcramer in [#215](https://github.com/getsentry/warden/pull/215)
2756
- - Respect ignorePaths in all code paths by @dcramer in [#204](https://github.com/getsentry/warden/pull/204)
2757
- - Exclude dev files and secrets from npm package by @dcramer in [#186](https://github.com/getsentry/warden/pull/186)
2758
- - Clean up orphaned Warden comments when no triggers match by @dcramer in [#134](https://github.com/getsentry/warden/pull/134)
2759
- - Show findings in PR review body when inline comments fail by @dcramer in [#128](https://github.com/getsentry/warden/pull/128)
2760
- - Show skipped status for files not processed during Ctrl+C by @dcramer in [#127](https://github.com/getsentry/warden/pull/127)
2761
-
2762
- ### Documentation 📚
2763
-
2764
- - (homepage) Redesign to lead with skills by @dcramer in [#238](https://github.com/getsentry/warden/pull/238)
2765
- - Use built-in security review in samples by @dcramer in [#295](https://github.com/getsentry/warden/pull/295)
2766
- - Use scoped Warden package in npx examples by @dcramer in [#273](https://github.com/getsentry/warden/pull/273)
2767
- - Lead homepage with GitHub PR review story by @dcramer in [#240](https://github.com/getsentry/warden/pull/240)
2768
- - Add org-wide GitHub setup guide by @dcramer in [#239](https://github.com/getsentry/warden/pull/239)
2769
- - Replace non-existent skill names with generic placeholders by @dcramer in [#199](https://github.com/getsentry/warden/pull/199)
2770
- - Simplify getting started guide to use native warden add --remote by @dcramer in [#164](https://github.com/getsentry/warden/pull/164)
2771
- - Fix documentation inconsistencies with codebase by @dcramer in [#147](https://github.com/getsentry/warden/pull/147)
2772
- - Update config reference with missing fields by @dcramer in [#132](https://github.com/getsentry/warden/pull/132)
2773
-
2774
- ### Internal Changes 🔧
2775
-
2776
- #### Deps
2777
-
2778
- - Bump dotagents lib by @gricha in [#296](https://github.com/getsentry/warden/pull/296)
2779
- - Bump yaml from 2.8.2 to 2.8.3 by @dependabot in [#254](https://github.com/getsentry/warden/pull/254)
2780
-
2781
- #### Sdk
2782
-
2783
- - Add flat runtime provider contract by @dcramer in [#270](https://github.com/getsentry/warden/pull/270)
2784
- - Extract applyMergeGroups to unify cross-location merge logic by @dcramer in [#153](https://github.com/getsentry/warden/pull/153)
2785
-
2786
- #### Skills
2787
-
2788
- - Adopt @sentry/dotagents-lib for skill resolution primitives by @gricha in [#285](https://github.com/getsentry/warden/pull/285)
2789
- - Restructure distributed Warden skills by @dcramer in [#268](https://github.com/getsentry/warden/pull/268)
2790
-
2791
- #### Other
2792
-
2793
- - (agents) Update configured skills list by @dcramer in [#241](https://github.com/getsentry/warden/pull/241)
2794
- - (cli) Use git ls-files for .gitignore discovery by @dcramer in [#222](https://github.com/getsentry/warden/pull/222)
2795
- - (config) Exclude evals directory from warden analysis by @dcramer in [#203](https://github.com/getsentry/warden/pull/203)
2796
- - (dotagents) Gitignore auto-generated files instead of tracking them by @gricha in [#246](https://github.com/getsentry/warden/pull/246)
2797
- - (output) Clean up GitHub finding rendering by @dcramer in [#176](https://github.com/getsentry/warden/pull/176)
2798
- - (skill-builder) Use internal authoring provider by @dcramer in [#283](https://github.com/getsentry/warden/pull/283)
2799
- - (sweep) Clean up warden-sweep skill per skill-creator review by @dcramer in [#225](https://github.com/getsentry/warden/pull/225)
2800
- - Add GitHub Actions workflow skill by @dcramer in [#278](https://github.com/getsentry/warden/pull/278)
2801
- - Add .serena to gitignore by @ericapisani in [#180](https://github.com/getsentry/warden/pull/180)
2802
- - Extract shared skill selection and validate setup-app args by @dcramer in [#208](https://github.com/getsentry/warden/pull/208)
2803
- - Combine multiple reduce operations into single pass by @dcramer in [#207](https://github.com/getsentry/warden/pull/207)
2804
- - Simplify repetitive column width calculations in logs by @dcramer in [#209](https://github.com/getsentry/warden/pull/209)
2805
- - Collapse severity to 3 levels, add warden logs command by @dcramer in [#192](https://github.com/getsentry/warden/pull/192)
2806
- - Migrate to dotagents and add skills reference to AGENTS.md by @dcramer in [#195](https://github.com/getsentry/warden/pull/195)
2807
- - Tighten weak mock assertions in test suite by @dcramer in [#160](https://github.com/getsentry/warden/pull/160)
2808
- - Add conductor.json configuration by @dcramer in [#159](https://github.com/getsentry/warden/pull/159)
2809
- - Remove generated artifacts from dist, keep only ncc bundle by @dcramer in [#131](https://github.com/getsentry/warden/pull/131)
2810
- - Replace batch-based concurrency with sliding window pool by @dcramer in [#126](https://github.com/getsentry/warden/pull/126)
2811
-
2812
- ### Other
2813
-
2814
- - release: 0.23.0 by @getsentry-bot in [dd7f76ac](https://github.com/getsentry/warden/commit/dd7f76ac25cd8d70f2557638bd8d8678d9776e96)
2815
- - release: 0.22.0 by @getsentry-bot in [08a3b2f0](https://github.com/getsentry/warden/commit/08a3b2f0139248c80ba499038320556bedb66347)
2816
- - release: 0.21.0 by @getsentry-bot in [2795626e](https://github.com/getsentry/warden/commit/2795626e8f1ff3c5a7a041d0ecb9ae3c047641cd)
2817
- - Docs UI improvements by @PickleNik in [#248](https://github.com/getsentry/warden/pull/248)
2818
- - release: 0.20.0 by @getsentry-bot in [e7dbd6eb](https://github.com/getsentry/warden/commit/e7dbd6eb1680d1d15df6388084237e5d231ec929)
2819
- - release: 0.19.0 by @getsentry-bot in [0096b702](https://github.com/getsentry/warden/commit/0096b7024749edf9e62a791340cfea2ef5b899bf)
2820
- - chores(docs): Add instruction for creating org rulesets by @Jeffreyhung in [#244](https://github.com/getsentry/warden/pull/244)
2821
- - release: 0.18.0 by @getsentry-bot in [e3691621](https://github.com/getsentry/warden/commit/e3691621d9f92de1f47fadb47be162b90f7042ff)
2822
- - release: 0.17.0 by @getsentry-bot in [d6132a96](https://github.com/getsentry/warden/commit/d6132a960cb033ec737042bea68f195b5cadef76)
2823
- - release: 0.16.0 by @getsentry-bot in [62909fe4](https://github.com/getsentry/warden/commit/62909fe4d28c322508945382d001d0a6844852f2)
2824
- - release: 0.15.0 by @getsentry-bot in [d9905cee](https://github.com/getsentry/warden/commit/d9905ceee868cba2aa41f8f17233eacb44901c36)
2825
- - release: 0.14.0 by @getsentry-bot in [538f13b4](https://github.com/getsentry/warden/commit/538f13b44a4e78f30ecc668957f6cede7d8e7161)
2826
- - release: 0.13.0 by @getsentry-bot in [063517a9](https://github.com/getsentry/warden/commit/063517a90a903b56919eec66542b129950ff866c)
2827
- - release: 0.12.0 by @getsentry-bot in [7177c99f](https://github.com/getsentry/warden/commit/7177c99fb10de1cbec8b788881d501a4f8d72965)
2828
- - Remove outdated SPEC.md by @dcramer in [#181](https://github.com/getsentry/warden/pull/181)
2829
- - release: 0.11.0 by @getsentry-bot in [b5525e63](https://github.com/getsentry/warden/commit/b5525e6332a7090940f066b676ea4cf587aa1e2a)
2830
- - release: 0.10.0 by @getsentry-bot in [5762bc7a](https://github.com/getsentry/warden/commit/5762bc7a0b608cdbe31db7b740e8eeff21da2081)
2831
- - Add repository and source context to skill metrics by @dcramer in [#165](https://github.com/getsentry/warden/pull/165)
2832
- - Add end-to-end eval system with LLM judge by @dcramer in [#152](https://github.com/getsentry/warden/pull/152)
2833
- - release: 0.9.0 by @getsentry-bot in [d36b060f](https://github.com/getsentry/warden/commit/d36b060f650314a1dfafa78a1801be980272e3c0)
2834
- - release: 0.8.0 by @getsentry-bot in [7f71a98d](https://github.com/getsentry/warden/commit/7f71a98d931a128ba936df2ff5b73a72a987e6ab)
2835
- - release: 0.7.0 by @getsentry-bot in [b6e61976](https://github.com/getsentry/warden/commit/b6e6197647e44211f5d1a30788d0c6792e24c97a)
2836
- - Remove dist/action from main, build at release time by @dcramer in [#101](https://github.com/getsentry/warden/pull/101)
2837
-
2838
- ## 0.23.0
2839
-
2840
- ### New Features ✨
2841
-
2842
- #### Action
2843
-
2844
- - Support org base configs with repo overlays by @dcramer in [#279](https://github.com/getsentry/warden/pull/279)
2845
- - Write structured findings JSON and expose as output by @gricha in [#233](https://github.com/getsentry/warden/pull/233)
2846
-
2847
- #### Cli
2848
-
2849
- - Build generated skills from path targets by @dcramer in [#282](https://github.com/getsentry/warden/pull/282)
2850
- - Add --staged flag and default to HEAD for uncommitted changes by @dcramer in [#205](https://github.com/getsentry/warden/pull/205)
2851
- - Display confidence level in findings output by @dcramer in [#194](https://github.com/getsentry/warden/pull/194)
2852
- - Always-on JSONL logging with repo-local log directory by @dcramer in [#179](https://github.com/getsentry/warden/pull/179)
2853
- - Add --fail-fast flag to stop after first finding by @dcramer in [#174](https://github.com/getsentry/warden/pull/174)
2854
- - Surface failure details for chunk analysis and finding extraction by @dcramer in [#162](https://github.com/getsentry/warden/pull/162)
2855
- - Interactive fix step-through with y/n/a/s/q prompt by @dcramer in [#161](https://github.com/getsentry/warden/pull/161)
2856
-
2857
- #### Docs
2858
-
2859
- - Improved landing visuals by @PickleNik in [#245](https://github.com/getsentry/warden/pull/245)
2860
- - Add LLM content negotiation and llms.txt by @dcramer in [#178](https://github.com/getsentry/warden/pull/178)
2861
-
2862
- #### Runs
2863
-
2864
- - Write chunk-level JSONL logs by @dcramer in [#265](https://github.com/getsentry/warden/pull/265)
2865
- - Stream in-progress runs via 'warden runs follow' by @dcramer in [#261](https://github.com/getsentry/warden/pull/261)
2866
-
2867
- #### Sdk
2868
-
2869
- - Add finding verification pass by @dcramer in [#290](https://github.com/getsentry/warden/pull/290)
2870
- - Store Claude SDK sessions in .warden/sessions/ by @dcramer in [#193](https://github.com/getsentry/warden/pull/193)
2871
-
2872
- #### Skills
2873
-
2874
- - Add built-in security review skill by @dcramer in [#292](https://github.com/getsentry/warden/pull/292)
2875
- - Consolidate warden-sweep into bundled scripts with prescribed reporting by @dcramer in [#201](https://github.com/getsentry/warden/pull/201)
2876
- - Replace notseer with find-warden-bugs skill by @dcramer in [#200](https://github.com/getsentry/warden/pull/200)
2877
- - Add warden-sweep skill and bundled skill installation by @dcramer in [#196](https://github.com/getsentry/warden/pull/196)
2878
- - Add agent discovery alongside skills by @dcramer in [#136](https://github.com/getsentry/warden/pull/136)
2879
-
2880
- #### Sweep
2881
-
2882
- - Add --skill flag to scan.py by @dcramer in [#211](https://github.com/getsentry/warden/pull/211)
2883
- - Add master tracking issue for sweep PRs by @dcramer in [#210](https://github.com/getsentry/warden/pull/210)
2884
-
2885
- #### Telemetry
2886
-
2887
- - Add skill and model attribution to metrics by @gricha in [#231](https://github.com/getsentry/warden/pull/231)
2888
- - Add namespaced fix-eval feedback metrics by @dcramer in [#229](https://github.com/getsentry/warden/pull/229)
2889
- - Add global scope attributes, run metric, and trace ID surfacing by @dcramer in [#166](https://github.com/getsentry/warden/pull/166)
2890
- - Add input/output attributes to gen_ai spans by @dcramer in [#142](https://github.com/getsentry/warden/pull/142)
2891
- - Add per-turn tracing for Claude Code SDK agent calls by @dcramer in [#141](https://github.com/getsentry/warden/pull/141)
2892
-
2893
- #### Other
2894
-
2895
- - (config) Make auxiliary max retries configurable via defaults.auxiliaryMaxRetries by @dcramer in [#175](https://github.com/getsentry/warden/pull/175)
2896
- - (dedup) Add intra-batch finding consolidation by @dcramer in [#135](https://github.com/getsentry/warden/pull/135)
2897
- - (init) Add section-based output and interactive skill prompt by @dcramer in [#182](https://github.com/getsentry/warden/pull/182)
2898
- - (o11y) Capture run failures in JSONL output by @dcramer in [#259](https://github.com/getsentry/warden/pull/259)
2899
- - (output) Default to COMMENT instead of REQUEST_CHANGES on PRs by @dcramer in [#137](https://github.com/getsentry/warden/pull/137)
2900
- - (runner) Global concurrency pool for file analyses by @dcramer in [#158](https://github.com/getsentry/warden/pull/158)
2901
- - (skill-builder) Build generated repo-local skills by @dcramer in [#280](https://github.com/getsentry/warden/pull/280)
2902
- - Add verification field and confidence filtering by @dcramer in [#191](https://github.com/getsentry/warden/pull/191)
2903
- - Pnpm workspace monorepo with docs migration by @dcramer in [#185](https://github.com/getsentry/warden/pull/185)
2904
- - Adopt dotagents for skill management by @dcramer in [#168](https://github.com/getsentry/warden/pull/168)
2905
- - Cross-location finding merge by @dcramer in [#148](https://github.com/getsentry/warden/pull/148)
2906
- - Add env vars to generated workflow and docs by @dcramer in [#138](https://github.com/getsentry/warden/pull/138)
2907
- - Add Sentry observability (errors, tracing, metrics, structured logs) by @dcramer in [#133](https://github.com/getsentry/warden/pull/133)
2908
- - Split failOn into independent requestChanges and failCheck controls by @dcramer in [#129](https://github.com/getsentry/warden/pull/129)
2909
-
2910
- ### Bug Fixes 🐛
2911
-
2912
- #### Action
2913
-
2914
- - Use relative findings output path by @dcramer in [#289](https://github.com/getsentry/warden/pull/289)
2915
- - Handle missing warden.toml gracefully by @gricha in [#235](https://github.com/getsentry/warden/pull/235)
2916
- - Thread maxContextFiles config through Action workflows by @dcramer in [#216](https://github.com/getsentry/warden/pull/216)
2917
-
2918
- #### Cli
2919
-
2920
- - Report final per-file finding counts by @dcramer in [#293](https://github.com/getsentry/warden/pull/293)
2921
- - Align local review diff context by @dcramer in [#276](https://github.com/getsentry/warden/pull/276)
2922
- - Replace process.exit(130) with thrown error for graceful cleanup by @dcramer in [#213](https://github.com/getsentry/warden/pull/213)
2923
- - Write --output file on auth error early exit by @dcramer in [#214](https://github.com/getsentry/warden/pull/214)
2924
- - Normalize path separators in synthetic file changes by @dcramer in [#217](https://github.com/getsentry/warden/pull/217)
2925
- - Exclude node_modules from gitignore file discovery by @dcramer in [#220](https://github.com/getsentry/warden/pull/220)
2926
- - Collapse skipped files into a single count on Ctrl+C by @dcramer in [#172](https://github.com/getsentry/warden/pull/172)
2927
- - Render warnings through Ink's Static component by @dcramer in [#170](https://github.com/getsentry/warden/pull/170)
2928
- - Cap 'Other Files' list in prompts for CLI mode by @dcramer in [#171](https://github.com/getsentry/warden/pull/171)
2929
- - Move completed files to Static to prevent flickering by @dcramer in [#149](https://github.com/getsentry/warden/pull/149)
2930
- - Run all skills locally regardless of trigger type by @gricha in [#145](https://github.com/getsentry/warden/pull/145)
2931
- - Resolve remote config for --skill flag by @dcramer in [#130](https://github.com/getsentry/warden/pull/130)
2932
-
2933
- #### Output
2934
-
2935
- - List only successfully applied fixes in PR body by @dcramer in [#219](https://github.com/getsentry/warden/pull/219)
2936
- - Use backticks instead of brackets in attribution footer by @dcramer in [#197](https://github.com/getsentry/warden/pull/197)
2937
-
2938
- #### Sdk
2939
-
2940
- - Short-circuit repeated provider failures by @dcramer in [#291](https://github.com/getsentry/warden/pull/291)
2941
- - Strip invalid suggested fixes from reports by @dcramer in [#228](https://github.com/getsentry/warden/pull/228)
2942
- - Prevent Warden sessions from polluting Claude Code history by @dcramer in [#202](https://github.com/getsentry/warden/pull/202)
2943
- - Handle EPIPE errors from Claude subprocess failures by @dcramer in [#198](https://github.com/getsentry/warden/pull/198)
2944
- - Add verification checklist and Glob tool to reduce analysis hallucinations by @dcramer in [#173](https://github.com/getsentry/warden/pull/173)
2945
- - Constrain skill findings to diff hunk line range by @dcramer in [#151](https://github.com/getsentry/warden/pull/151)
2946
-
2947
- #### Sweep
2948
-
2949
- - Add self-validation to fix subagent prompt by @dcramer in [#223](https://github.com/getsentry/warden/pull/223)
2950
- - Branch worktrees from default branch instead of HEAD by @dcramer in [#221](https://github.com/getsentry/warden/pull/221)
2951
-
2952
- #### Telemetry
2953
-
2954
- - Improve OTel GenAI semantic convention compliance by @dcramer in [#140](https://github.com/getsentry/warden/pull/140)
2955
- - Fix missing Sentry traces and negative token costs by @dcramer in [#139](https://github.com/getsentry/warden/pull/139)
2956
-
2957
- #### Other
2958
-
2959
- - (ci) Enable auto-generated changelogs for GitHub releases by @gricha in [#234](https://github.com/getsentry/warden/pull/234)
2960
- - (config) Add missing fields to TOML writer for config round-trip by @dcramer in [#218](https://github.com/getsentry/warden/pull/218)
2961
- - (evals) Update default model to claude-sonnet-4-6 by @dcramer in [#163](https://github.com/getsentry/warden/pull/163)
2962
- - (o11y) Add gen_ai.request.model attribute by @obostjancic in [#247](https://github.com/getsentry/warden/pull/247)
2963
- - (prepare) Skip files with zero content automatically by @dcramer in [#226](https://github.com/getsentry/warden/pull/226)
2964
- - (review) Preserve active Warden threads by @dcramer in [#272](https://github.com/getsentry/warden/pull/272)
2965
- - (skill-builder) Stabilize generated skill authoring by @dcramer in [#284](https://github.com/getsentry/warden/pull/284)
2966
- - (skills) Support private repos in `warden add --remote` by @dcramer in [#187](https://github.com/getsentry/warden/pull/187)
2967
- - (usage) Normalize inputTokens to include cached and cache-write tokens by @vgrozdanic in [#143](https://github.com/getsentry/warden/pull/143)
2968
- - Prevent command injection in release workflow by @fix-it-felix-sentry in [#277](https://github.com/getsentry/warden/pull/277)
2969
- - Handle multi-line YAML scalar values in SKILL.md frontmatter by @odysseus0 in [#243](https://github.com/getsentry/warden/pull/243)
2970
- - Server error handler calls process.exit() bypassing cleanup by @dcramer in [#206](https://github.com/getsentry/warden/pull/206)
2971
- - Preserve error chains across error wrapping boundaries by @dcramer in [#215](https://github.com/getsentry/warden/pull/215)
2972
- - Respect ignorePaths in all code paths by @dcramer in [#204](https://github.com/getsentry/warden/pull/204)
2973
- - Exclude dev files and secrets from npm package by @dcramer in [#186](https://github.com/getsentry/warden/pull/186)
2974
- - Clean up orphaned Warden comments when no triggers match by @dcramer in [#134](https://github.com/getsentry/warden/pull/134)
2975
- - Show findings in PR review body when inline comments fail by @dcramer in [#128](https://github.com/getsentry/warden/pull/128)
2976
- - Show skipped status for files not processed during Ctrl+C by @dcramer in [#127](https://github.com/getsentry/warden/pull/127)
2977
-
2978
- ### Documentation 📚
2979
-
2980
- - (homepage) Redesign to lead with skills by @dcramer in [#238](https://github.com/getsentry/warden/pull/238)
2981
- - Use scoped Warden package in npx examples by @dcramer in [#273](https://github.com/getsentry/warden/pull/273)
2982
- - Lead homepage with GitHub PR review story by @dcramer in [#240](https://github.com/getsentry/warden/pull/240)
2983
- - Add org-wide GitHub setup guide by @dcramer in [#239](https://github.com/getsentry/warden/pull/239)
2984
- - Replace non-existent skill names with generic placeholders by @dcramer in [#199](https://github.com/getsentry/warden/pull/199)
2985
- - Simplify getting started guide to use native warden add --remote by @dcramer in [#164](https://github.com/getsentry/warden/pull/164)
2986
- - Fix documentation inconsistencies with codebase by @dcramer in [#147](https://github.com/getsentry/warden/pull/147)
2987
- - Update config reference with missing fields by @dcramer in [#132](https://github.com/getsentry/warden/pull/132)
2988
-
2989
- ### Internal Changes 🔧
2990
-
2991
- #### Sdk
2992
-
2993
- - Add flat runtime provider contract by @dcramer in [#270](https://github.com/getsentry/warden/pull/270)
2994
- - Extract applyMergeGroups to unify cross-location merge logic by @dcramer in [#153](https://github.com/getsentry/warden/pull/153)
2995
-
2996
- #### Skills
2997
-
2998
- - Adopt @sentry/dotagents-lib for skill resolution primitives by @gricha in [#285](https://github.com/getsentry/warden/pull/285)
2999
- - Restructure distributed Warden skills by @dcramer in [#268](https://github.com/getsentry/warden/pull/268)
3000
-
3001
- #### Other
3002
-
3003
- - (agents) Update configured skills list by @dcramer in [#241](https://github.com/getsentry/warden/pull/241)
3004
- - (cli) Use git ls-files for .gitignore discovery by @dcramer in [#222](https://github.com/getsentry/warden/pull/222)
3005
- - (config) Exclude evals directory from warden analysis by @dcramer in [#203](https://github.com/getsentry/warden/pull/203)
3006
- - (deps) Bump yaml from 2.8.2 to 2.8.3 by @dependabot in [#254](https://github.com/getsentry/warden/pull/254)
3007
- - (dotagents) Gitignore auto-generated files instead of tracking them by @gricha in [#246](https://github.com/getsentry/warden/pull/246)
3008
- - (output) Clean up GitHub finding rendering by @dcramer in [#176](https://github.com/getsentry/warden/pull/176)
3009
- - (skill-builder) Use internal authoring provider by @dcramer in [#283](https://github.com/getsentry/warden/pull/283)
3010
- - (sweep) Clean up warden-sweep skill per skill-creator review by @dcramer in [#225](https://github.com/getsentry/warden/pull/225)
3011
- - Add GitHub Actions workflow skill by @dcramer in [#278](https://github.com/getsentry/warden/pull/278)
3012
- - Add .serena to gitignore by @ericapisani in [#180](https://github.com/getsentry/warden/pull/180)
3013
- - Extract shared skill selection and validate setup-app args by @dcramer in [#208](https://github.com/getsentry/warden/pull/208)
3014
- - Combine multiple reduce operations into single pass by @dcramer in [#207](https://github.com/getsentry/warden/pull/207)
3015
- - Simplify repetitive column width calculations in logs by @dcramer in [#209](https://github.com/getsentry/warden/pull/209)
3016
- - Collapse severity to 3 levels, add warden logs command by @dcramer in [#192](https://github.com/getsentry/warden/pull/192)
3017
- - Migrate to dotagents and add skills reference to AGENTS.md by @dcramer in [#195](https://github.com/getsentry/warden/pull/195)
3018
- - Tighten weak mock assertions in test suite by @dcramer in [#160](https://github.com/getsentry/warden/pull/160)
3019
- - Add conductor.json configuration by @dcramer in [#159](https://github.com/getsentry/warden/pull/159)
3020
- - Remove generated artifacts from dist, keep only ncc bundle by @dcramer in [#131](https://github.com/getsentry/warden/pull/131)
3021
- - Replace batch-based concurrency with sliding window pool by @dcramer in [#126](https://github.com/getsentry/warden/pull/126)
3022
-
3023
- ### Other
3024
-
3025
- - release: 0.22.0 by @getsentry-bot in [08a3b2f0](https://github.com/getsentry/warden/commit/08a3b2f0139248c80ba499038320556bedb66347)
3026
- - release: 0.21.0 by @getsentry-bot in [2795626e](https://github.com/getsentry/warden/commit/2795626e8f1ff3c5a7a041d0ecb9ae3c047641cd)
3027
- - Docs UI improvements by @PickleNik in [#248](https://github.com/getsentry/warden/pull/248)
3028
- - release: 0.20.0 by @getsentry-bot in [e7dbd6eb](https://github.com/getsentry/warden/commit/e7dbd6eb1680d1d15df6388084237e5d231ec929)
3029
- - release: 0.19.0 by @getsentry-bot in [0096b702](https://github.com/getsentry/warden/commit/0096b7024749edf9e62a791340cfea2ef5b899bf)
3030
- - chores(docs): Add instruction for creating org rulesets by @Jeffreyhung in [#244](https://github.com/getsentry/warden/pull/244)
3031
- - release: 0.18.0 by @getsentry-bot in [e3691621](https://github.com/getsentry/warden/commit/e3691621d9f92de1f47fadb47be162b90f7042ff)
3032
- - release: 0.17.0 by @getsentry-bot in [d6132a96](https://github.com/getsentry/warden/commit/d6132a960cb033ec737042bea68f195b5cadef76)
3033
- - release: 0.16.0 by @getsentry-bot in [62909fe4](https://github.com/getsentry/warden/commit/62909fe4d28c322508945382d001d0a6844852f2)
3034
- - release: 0.15.0 by @getsentry-bot in [d9905cee](https://github.com/getsentry/warden/commit/d9905ceee868cba2aa41f8f17233eacb44901c36)
3035
- - release: 0.14.0 by @getsentry-bot in [538f13b4](https://github.com/getsentry/warden/commit/538f13b44a4e78f30ecc668957f6cede7d8e7161)
3036
- - release: 0.13.0 by @getsentry-bot in [063517a9](https://github.com/getsentry/warden/commit/063517a90a903b56919eec66542b129950ff866c)
3037
- - release: 0.12.0 by @getsentry-bot in [7177c99f](https://github.com/getsentry/warden/commit/7177c99fb10de1cbec8b788881d501a4f8d72965)
3038
- - Remove outdated SPEC.md by @dcramer in [#181](https://github.com/getsentry/warden/pull/181)
3039
- - release: 0.11.0 by @getsentry-bot in [b5525e63](https://github.com/getsentry/warden/commit/b5525e6332a7090940f066b676ea4cf587aa1e2a)
3040
- - release: 0.10.0 by @getsentry-bot in [5762bc7a](https://github.com/getsentry/warden/commit/5762bc7a0b608cdbe31db7b740e8eeff21da2081)
3041
- - Add repository and source context to skill metrics by @dcramer in [#165](https://github.com/getsentry/warden/pull/165)
3042
- - Add end-to-end eval system with LLM judge by @dcramer in [#152](https://github.com/getsentry/warden/pull/152)
3043
- - release: 0.9.0 by @getsentry-bot in [d36b060f](https://github.com/getsentry/warden/commit/d36b060f650314a1dfafa78a1801be980272e3c0)
3044
- - release: 0.8.0 by @getsentry-bot in [7f71a98d](https://github.com/getsentry/warden/commit/7f71a98d931a128ba936df2ff5b73a72a987e6ab)
3045
- - release: 0.7.0 by @getsentry-bot in [b6e61976](https://github.com/getsentry/warden/commit/b6e6197647e44211f5d1a30788d0c6792e24c97a)
3046
- - Remove dist/action from main, build at release time by @dcramer in [#101](https://github.com/getsentry/warden/pull/101)
3047
-
3048
- ## 0.22.0
3049
-
3050
- ### New Features ✨
3051
-
3052
- #### Cli
3053
-
3054
- - Add --staged flag and default to HEAD for uncommitted changes by @dcramer in [#205](https://github.com/getsentry/warden/pull/205)
3055
- - Display confidence level in findings output by @dcramer in [#194](https://github.com/getsentry/warden/pull/194)
3056
- - Always-on JSONL logging with repo-local log directory by @dcramer in [#179](https://github.com/getsentry/warden/pull/179)
3057
- - Add --fail-fast flag to stop after first finding by @dcramer in [#174](https://github.com/getsentry/warden/pull/174)
3058
- - Surface failure details for chunk analysis and finding extraction by @dcramer in [#162](https://github.com/getsentry/warden/pull/162)
3059
- - Interactive fix step-through with y/n/a/s/q prompt by @dcramer in [#161](https://github.com/getsentry/warden/pull/161)
3060
-
3061
- #### Docs
3062
-
3063
- - Improved landing visuals by @PickleNik in [#245](https://github.com/getsentry/warden/pull/245)
3064
- - Add LLM content negotiation and llms.txt by @dcramer in [#178](https://github.com/getsentry/warden/pull/178)
3065
-
3066
- #### Runs
3067
-
3068
- - Write chunk-level JSONL logs by @dcramer in [#265](https://github.com/getsentry/warden/pull/265)
3069
- - Stream in-progress runs via 'warden runs follow' by @dcramer in [#261](https://github.com/getsentry/warden/pull/261)
3070
-
3071
- #### Skills
3072
-
3073
- - Consolidate warden-sweep into bundled scripts with prescribed reporting by @dcramer in [#201](https://github.com/getsentry/warden/pull/201)
3074
- - Replace notseer with find-warden-bugs skill by @dcramer in [#200](https://github.com/getsentry/warden/pull/200)
3075
- - Add warden-sweep skill and bundled skill installation by @dcramer in [#196](https://github.com/getsentry/warden/pull/196)
3076
- - Add agent discovery alongside skills by @dcramer in [#136](https://github.com/getsentry/warden/pull/136)
3077
-
3078
- #### Sweep
3079
-
3080
- - Add --skill flag to scan.py by @dcramer in [#211](https://github.com/getsentry/warden/pull/211)
3081
- - Add master tracking issue for sweep PRs by @dcramer in [#210](https://github.com/getsentry/warden/pull/210)
3082
-
3083
- #### Telemetry
3084
-
3085
- - Add skill and model attribution to metrics by @gricha in [#231](https://github.com/getsentry/warden/pull/231)
3086
- - Add namespaced fix-eval feedback metrics by @dcramer in [#229](https://github.com/getsentry/warden/pull/229)
3087
- - Add global scope attributes, run metric, and trace ID surfacing by @dcramer in [#166](https://github.com/getsentry/warden/pull/166)
3088
- - Add input/output attributes to gen_ai spans by @dcramer in [#142](https://github.com/getsentry/warden/pull/142)
3089
- - Add per-turn tracing for Claude Code SDK agent calls by @dcramer in [#141](https://github.com/getsentry/warden/pull/141)
3090
-
3091
- #### Other
3092
-
3093
- - (action) Write structured findings JSON and expose as output by @gricha in [#233](https://github.com/getsentry/warden/pull/233)
3094
- - (config) Make auxiliary max retries configurable via defaults.auxiliaryMaxRetries by @dcramer in [#175](https://github.com/getsentry/warden/pull/175)
3095
- - (dedup) Add intra-batch finding consolidation by @dcramer in [#135](https://github.com/getsentry/warden/pull/135)
3096
- - (init) Add section-based output and interactive skill prompt by @dcramer in [#182](https://github.com/getsentry/warden/pull/182)
3097
- - (o11y) Capture run failures in JSONL output by @dcramer in [#259](https://github.com/getsentry/warden/pull/259)
3098
- - (output) Default to COMMENT instead of REQUEST_CHANGES on PRs by @dcramer in [#137](https://github.com/getsentry/warden/pull/137)
3099
- - (runner) Global concurrency pool for file analyses by @dcramer in [#158](https://github.com/getsentry/warden/pull/158)
3100
- - (sdk) Store Claude SDK sessions in .warden/sessions/ by @dcramer in [#193](https://github.com/getsentry/warden/pull/193)
3101
- - Add verification field and confidence filtering by @dcramer in [#191](https://github.com/getsentry/warden/pull/191)
3102
- - Pnpm workspace monorepo with docs migration by @dcramer in [#185](https://github.com/getsentry/warden/pull/185)
3103
- - Adopt dotagents for skill management by @dcramer in [#168](https://github.com/getsentry/warden/pull/168)
3104
- - Cross-location finding merge by @dcramer in [#148](https://github.com/getsentry/warden/pull/148)
3105
- - Add env vars to generated workflow and docs by @dcramer in [#138](https://github.com/getsentry/warden/pull/138)
3106
- - Add Sentry observability (errors, tracing, metrics, structured logs) by @dcramer in [#133](https://github.com/getsentry/warden/pull/133)
3107
- - Split failOn into independent requestChanges and failCheck controls by @dcramer in [#129](https://github.com/getsentry/warden/pull/129)
3108
-
3109
- ### Bug Fixes 🐛
3110
-
3111
- #### Action
3112
-
3113
- - Handle missing warden.toml gracefully by @gricha in [#235](https://github.com/getsentry/warden/pull/235)
3114
- - Thread maxContextFiles config through Action workflows by @dcramer in [#216](https://github.com/getsentry/warden/pull/216)
3115
-
3116
- #### Cli
3117
-
3118
- - Replace process.exit(130) with thrown error for graceful cleanup by @dcramer in [#213](https://github.com/getsentry/warden/pull/213)
3119
- - Write --output file on auth error early exit by @dcramer in [#214](https://github.com/getsentry/warden/pull/214)
3120
- - Normalize path separators in synthetic file changes by @dcramer in [#217](https://github.com/getsentry/warden/pull/217)
3121
- - Exclude node_modules from gitignore file discovery by @dcramer in [#220](https://github.com/getsentry/warden/pull/220)
3122
- - Collapse skipped files into a single count on Ctrl+C by @dcramer in [#172](https://github.com/getsentry/warden/pull/172)
3123
- - Render warnings through Ink's Static component by @dcramer in [#170](https://github.com/getsentry/warden/pull/170)
3124
- - Cap 'Other Files' list in prompts for CLI mode by @dcramer in [#171](https://github.com/getsentry/warden/pull/171)
3125
- - Move completed files to Static to prevent flickering by @dcramer in [#149](https://github.com/getsentry/warden/pull/149)
3126
- - Run all skills locally regardless of trigger type by @gricha in [#145](https://github.com/getsentry/warden/pull/145)
3127
- - Resolve remote config for --skill flag by @dcramer in [#130](https://github.com/getsentry/warden/pull/130)
3128
-
3129
- #### Output
3130
-
3131
- - List only successfully applied fixes in PR body by @dcramer in [#219](https://github.com/getsentry/warden/pull/219)
3132
- - Use backticks instead of brackets in attribution footer by @dcramer in [#197](https://github.com/getsentry/warden/pull/197)
3133
-
3134
- #### Sdk
3135
-
3136
- - Strip invalid suggested fixes from reports by @dcramer in [#228](https://github.com/getsentry/warden/pull/228)
3137
- - Prevent Warden sessions from polluting Claude Code history by @dcramer in [#202](https://github.com/getsentry/warden/pull/202)
3138
- - Handle EPIPE errors from Claude subprocess failures by @dcramer in [#198](https://github.com/getsentry/warden/pull/198)
3139
- - Add verification checklist and Glob tool to reduce analysis hallucinations by @dcramer in [#173](https://github.com/getsentry/warden/pull/173)
3140
- - Constrain skill findings to diff hunk line range by @dcramer in [#151](https://github.com/getsentry/warden/pull/151)
3141
-
3142
- #### Sweep
3143
-
3144
- - Add self-validation to fix subagent prompt by @dcramer in [#223](https://github.com/getsentry/warden/pull/223)
3145
- - Branch worktrees from default branch instead of HEAD by @dcramer in [#221](https://github.com/getsentry/warden/pull/221)
3146
-
3147
- #### Telemetry
3148
-
3149
- - Improve OTel GenAI semantic convention compliance by @dcramer in [#140](https://github.com/getsentry/warden/pull/140)
3150
- - Fix missing Sentry traces and negative token costs by @dcramer in [#139](https://github.com/getsentry/warden/pull/139)
3151
-
3152
- #### Other
3153
-
3154
- - (ci) Enable auto-generated changelogs for GitHub releases by @gricha in [#234](https://github.com/getsentry/warden/pull/234)
3155
- - (config) Add missing fields to TOML writer for config round-trip by @dcramer in [#218](https://github.com/getsentry/warden/pull/218)
3156
- - (evals) Update default model to claude-sonnet-4-6 by @dcramer in [#163](https://github.com/getsentry/warden/pull/163)
3157
- - (o11y) Add gen_ai.request.model attribute by @obostjancic in [#247](https://github.com/getsentry/warden/pull/247)
3158
- - (prepare) Skip files with zero content automatically by @dcramer in [#226](https://github.com/getsentry/warden/pull/226)
3159
- - (review) Preserve active Warden threads by @dcramer in [#272](https://github.com/getsentry/warden/pull/272)
3160
- - (skills) Support private repos in `warden add --remote` by @dcramer in [#187](https://github.com/getsentry/warden/pull/187)
3161
- - (usage) Normalize inputTokens to include cached and cache-write tokens by @vgrozdanic in [#143](https://github.com/getsentry/warden/pull/143)
3162
- - Handle multi-line YAML scalar values in SKILL.md frontmatter by @odysseus0 in [#243](https://github.com/getsentry/warden/pull/243)
3163
- - Server error handler calls process.exit() bypassing cleanup by @dcramer in [#206](https://github.com/getsentry/warden/pull/206)
3164
- - Preserve error chains across error wrapping boundaries by @dcramer in [#215](https://github.com/getsentry/warden/pull/215)
3165
- - Respect ignorePaths in all code paths by @dcramer in [#204](https://github.com/getsentry/warden/pull/204)
3166
- - Exclude dev files and secrets from npm package by @dcramer in [#186](https://github.com/getsentry/warden/pull/186)
3167
- - Clean up orphaned Warden comments when no triggers match by @dcramer in [#134](https://github.com/getsentry/warden/pull/134)
3168
- - Show findings in PR review body when inline comments fail by @dcramer in [#128](https://github.com/getsentry/warden/pull/128)
3169
- - Show skipped status for files not processed during Ctrl+C by @dcramer in [#127](https://github.com/getsentry/warden/pull/127)
3170
-
3171
- ### Documentation 📚
3172
-
3173
- - (homepage) Redesign to lead with skills by @dcramer in [#238](https://github.com/getsentry/warden/pull/238)
3174
- - Use scoped Warden package in npx examples by @dcramer in [#273](https://github.com/getsentry/warden/pull/273)
3175
- - Lead homepage with GitHub PR review story by @dcramer in [#240](https://github.com/getsentry/warden/pull/240)
3176
- - Add org-wide GitHub setup guide by @dcramer in [#239](https://github.com/getsentry/warden/pull/239)
3177
- - Replace non-existent skill names with generic placeholders by @dcramer in [#199](https://github.com/getsentry/warden/pull/199)
3178
- - Simplify getting started guide to use native warden add --remote by @dcramer in [#164](https://github.com/getsentry/warden/pull/164)
3179
- - Fix documentation inconsistencies with codebase by @dcramer in [#147](https://github.com/getsentry/warden/pull/147)
3180
- - Update config reference with missing fields by @dcramer in [#132](https://github.com/getsentry/warden/pull/132)
3181
-
3182
- ### Internal Changes 🔧
3183
-
3184
- - (agents) Update configured skills list by @dcramer in [#241](https://github.com/getsentry/warden/pull/241)
3185
- - (cli) Use git ls-files for .gitignore discovery by @dcramer in [#222](https://github.com/getsentry/warden/pull/222)
3186
- - (config) Exclude evals directory from warden analysis by @dcramer in [#203](https://github.com/getsentry/warden/pull/203)
3187
- - (deps) Bump yaml from 2.8.2 to 2.8.3 by @dependabot in [#254](https://github.com/getsentry/warden/pull/254)
3188
- - (dotagents) Gitignore auto-generated files instead of tracking them by @gricha in [#246](https://github.com/getsentry/warden/pull/246)
3189
- - (output) Clean up GitHub finding rendering by @dcramer in [#176](https://github.com/getsentry/warden/pull/176)
3190
- - (sdk) Extract applyMergeGroups to unify cross-location merge logic by @dcramer in [#153](https://github.com/getsentry/warden/pull/153)
3191
- - (skills) Restructure distributed Warden skills by @dcramer in [#268](https://github.com/getsentry/warden/pull/268)
3192
- - (sweep) Clean up warden-sweep skill per skill-creator review by @dcramer in [#225](https://github.com/getsentry/warden/pull/225)
3193
- - Add .serena to gitignore by @ericapisani in [#180](https://github.com/getsentry/warden/pull/180)
3194
- - Extract shared skill selection and validate setup-app args by @dcramer in [#208](https://github.com/getsentry/warden/pull/208)
3195
- - Combine multiple reduce operations into single pass by @dcramer in [#207](https://github.com/getsentry/warden/pull/207)
3196
- - Simplify repetitive column width calculations in logs by @dcramer in [#209](https://github.com/getsentry/warden/pull/209)
3197
- - Collapse severity to 3 levels, add warden logs command by @dcramer in [#192](https://github.com/getsentry/warden/pull/192)
3198
- - Migrate to dotagents and add skills reference to AGENTS.md by @dcramer in [#195](https://github.com/getsentry/warden/pull/195)
3199
- - Tighten weak mock assertions in test suite by @dcramer in [#160](https://github.com/getsentry/warden/pull/160)
3200
- - Add conductor.json configuration by @dcramer in [#159](https://github.com/getsentry/warden/pull/159)
3201
- - Remove generated artifacts from dist, keep only ncc bundle by @dcramer in [#131](https://github.com/getsentry/warden/pull/131)
3202
- - Replace batch-based concurrency with sliding window pool by @dcramer in [#126](https://github.com/getsentry/warden/pull/126)
3203
-
3204
- ### Other
3205
-
3206
- - release: 0.21.0 by @getsentry-bot in [2795626e](https://github.com/getsentry/warden/commit/2795626e8f1ff3c5a7a041d0ecb9ae3c047641cd)
3207
- - Docs UI improvements by @PickleNik in [#248](https://github.com/getsentry/warden/pull/248)
3208
- - release: 0.20.0 by @getsentry-bot in [e7dbd6eb](https://github.com/getsentry/warden/commit/e7dbd6eb1680d1d15df6388084237e5d231ec929)
3209
- - release: 0.19.0 by @getsentry-bot in [0096b702](https://github.com/getsentry/warden/commit/0096b7024749edf9e62a791340cfea2ef5b899bf)
3210
- - chores(docs): Add instruction for creating org rulesets by @Jeffreyhung in [#244](https://github.com/getsentry/warden/pull/244)
3211
- - release: 0.18.0 by @getsentry-bot in [e3691621](https://github.com/getsentry/warden/commit/e3691621d9f92de1f47fadb47be162b90f7042ff)
3212
- - release: 0.17.0 by @getsentry-bot in [d6132a96](https://github.com/getsentry/warden/commit/d6132a960cb033ec737042bea68f195b5cadef76)
3213
- - release: 0.16.0 by @getsentry-bot in [62909fe4](https://github.com/getsentry/warden/commit/62909fe4d28c322508945382d001d0a6844852f2)
3214
- - release: 0.15.0 by @getsentry-bot in [d9905cee](https://github.com/getsentry/warden/commit/d9905ceee868cba2aa41f8f17233eacb44901c36)
3215
- - release: 0.14.0 by @getsentry-bot in [538f13b4](https://github.com/getsentry/warden/commit/538f13b44a4e78f30ecc668957f6cede7d8e7161)
3216
- - release: 0.13.0 by @getsentry-bot in [063517a9](https://github.com/getsentry/warden/commit/063517a90a903b56919eec66542b129950ff866c)
3217
- - release: 0.12.0 by @getsentry-bot in [7177c99f](https://github.com/getsentry/warden/commit/7177c99fb10de1cbec8b788881d501a4f8d72965)
3218
- - Remove outdated SPEC.md by @dcramer in [#181](https://github.com/getsentry/warden/pull/181)
3219
- - release: 0.11.0 by @getsentry-bot in [b5525e63](https://github.com/getsentry/warden/commit/b5525e6332a7090940f066b676ea4cf587aa1e2a)
3220
- - release: 0.10.0 by @getsentry-bot in [5762bc7a](https://github.com/getsentry/warden/commit/5762bc7a0b608cdbe31db7b740e8eeff21da2081)
3221
- - Add repository and source context to skill metrics by @dcramer in [#165](https://github.com/getsentry/warden/pull/165)
3222
- - Add end-to-end eval system with LLM judge by @dcramer in [#152](https://github.com/getsentry/warden/pull/152)
3223
- - release: 0.9.0 by @getsentry-bot in [d36b060f](https://github.com/getsentry/warden/commit/d36b060f650314a1dfafa78a1801be980272e3c0)
3224
- - release: 0.8.0 by @getsentry-bot in [7f71a98d](https://github.com/getsentry/warden/commit/7f71a98d931a128ba936df2ff5b73a72a987e6ab)
3225
- - release: 0.7.0 by @getsentry-bot in [b6e61976](https://github.com/getsentry/warden/commit/b6e6197647e44211f5d1a30788d0c6792e24c97a)
3226
- - Remove dist/action from main, build at release time by @dcramer in [#101](https://github.com/getsentry/warden/pull/101)
3227
-
3228
- ## 0.21.0
3229
-
3230
- ### New Features ✨
3231
-
3232
- #### Cli
3233
-
3234
- - Add --staged flag and default to HEAD for uncommitted changes by @dcramer in [#205](https://github.com/getsentry/warden/pull/205)
3235
- - Display confidence level in findings output by @dcramer in [#194](https://github.com/getsentry/warden/pull/194)
3236
- - Always-on JSONL logging with repo-local log directory by @dcramer in [#179](https://github.com/getsentry/warden/pull/179)
3237
- - Add --fail-fast flag to stop after first finding by @dcramer in [#174](https://github.com/getsentry/warden/pull/174)
3238
- - Surface failure details for chunk analysis and finding extraction by @dcramer in [#162](https://github.com/getsentry/warden/pull/162)
3239
- - Interactive fix step-through with y/n/a/s/q prompt by @dcramer in [#161](https://github.com/getsentry/warden/pull/161)
3240
-
3241
- #### Docs
3242
-
3243
- - Improved landing visuals by @PickleNik in [#245](https://github.com/getsentry/warden/pull/245)
3244
- - Add LLM content negotiation and llms.txt by @dcramer in [#178](https://github.com/getsentry/warden/pull/178)
3245
-
3246
- #### Skills
3247
-
3248
- - Consolidate warden-sweep into bundled scripts with prescribed reporting by @dcramer in [#201](https://github.com/getsentry/warden/pull/201)
3249
- - Replace notseer with find-warden-bugs skill by @dcramer in [#200](https://github.com/getsentry/warden/pull/200)
3250
- - Add warden-sweep skill and bundled skill installation by @dcramer in [#196](https://github.com/getsentry/warden/pull/196)
3251
- - Add agent discovery alongside skills by @dcramer in [#136](https://github.com/getsentry/warden/pull/136)
3252
-
3253
- #### Sweep
3254
-
3255
- - Add --skill flag to scan.py by @dcramer in [#211](https://github.com/getsentry/warden/pull/211)
3256
- - Add master tracking issue for sweep PRs by @dcramer in [#210](https://github.com/getsentry/warden/pull/210)
3257
-
3258
- #### Telemetry
3259
-
3260
- - Add skill and model attribution to metrics by @gricha in [#231](https://github.com/getsentry/warden/pull/231)
3261
- - Add namespaced fix-eval feedback metrics by @dcramer in [#229](https://github.com/getsentry/warden/pull/229)
3262
- - Add global scope attributes, run metric, and trace ID surfacing by @dcramer in [#166](https://github.com/getsentry/warden/pull/166)
3263
- - Add input/output attributes to gen_ai spans by @dcramer in [#142](https://github.com/getsentry/warden/pull/142)
3264
- - Add per-turn tracing for Claude Code SDK agent calls by @dcramer in [#141](https://github.com/getsentry/warden/pull/141)
3265
-
3266
- #### Other
3267
-
3268
- - (action) Write structured findings JSON and expose as output by @gricha in [#233](https://github.com/getsentry/warden/pull/233)
3269
- - (config) Make auxiliary max retries configurable via defaults.auxiliaryMaxRetries by @dcramer in [#175](https://github.com/getsentry/warden/pull/175)
3270
- - (dedup) Add intra-batch finding consolidation by @dcramer in [#135](https://github.com/getsentry/warden/pull/135)
3271
- - (init) Add section-based output and interactive skill prompt by @dcramer in [#182](https://github.com/getsentry/warden/pull/182)
3272
- - (o11y) Capture run failures in JSONL output by @dcramer in [#259](https://github.com/getsentry/warden/pull/259)
3273
- - (output) Default to COMMENT instead of REQUEST_CHANGES on PRs by @dcramer in [#137](https://github.com/getsentry/warden/pull/137)
3274
- - (runner) Global concurrency pool for file analyses by @dcramer in [#158](https://github.com/getsentry/warden/pull/158)
3275
- - (runs) Stream in-progress runs via 'warden runs follow' by @dcramer in [#261](https://github.com/getsentry/warden/pull/261)
3276
- - (sdk) Store Claude SDK sessions in .warden/sessions/ by @dcramer in [#193](https://github.com/getsentry/warden/pull/193)
3277
- - Add verification field and confidence filtering by @dcramer in [#191](https://github.com/getsentry/warden/pull/191)
3278
- - Pnpm workspace monorepo with docs migration by @dcramer in [#185](https://github.com/getsentry/warden/pull/185)
3279
- - Adopt dotagents for skill management by @dcramer in [#168](https://github.com/getsentry/warden/pull/168)
3280
- - Cross-location finding merge by @dcramer in [#148](https://github.com/getsentry/warden/pull/148)
3281
- - Add env vars to generated workflow and docs by @dcramer in [#138](https://github.com/getsentry/warden/pull/138)
3282
- - Add Sentry observability (errors, tracing, metrics, structured logs) by @dcramer in [#133](https://github.com/getsentry/warden/pull/133)
3283
- - Split failOn into independent requestChanges and failCheck controls by @dcramer in [#129](https://github.com/getsentry/warden/pull/129)
3284
-
3285
- ### Bug Fixes 🐛
3286
-
3287
- #### Action
3288
-
3289
- - Handle missing warden.toml gracefully by @gricha in [#235](https://github.com/getsentry/warden/pull/235)
3290
- - Thread maxContextFiles config through Action workflows by @dcramer in [#216](https://github.com/getsentry/warden/pull/216)
3291
-
3292
- #### Cli
3293
-
3294
- - Replace process.exit(130) with thrown error for graceful cleanup by @dcramer in [#213](https://github.com/getsentry/warden/pull/213)
3295
- - Write --output file on auth error early exit by @dcramer in [#214](https://github.com/getsentry/warden/pull/214)
3296
- - Normalize path separators in synthetic file changes by @dcramer in [#217](https://github.com/getsentry/warden/pull/217)
3297
- - Exclude node_modules from gitignore file discovery by @dcramer in [#220](https://github.com/getsentry/warden/pull/220)
3298
- - Collapse skipped files into a single count on Ctrl+C by @dcramer in [#172](https://github.com/getsentry/warden/pull/172)
3299
- - Render warnings through Ink's Static component by @dcramer in [#170](https://github.com/getsentry/warden/pull/170)
3300
- - Cap 'Other Files' list in prompts for CLI mode by @dcramer in [#171](https://github.com/getsentry/warden/pull/171)
3301
- - Move completed files to Static to prevent flickering by @dcramer in [#149](https://github.com/getsentry/warden/pull/149)
3302
- - Run all skills locally regardless of trigger type by @gricha in [#145](https://github.com/getsentry/warden/pull/145)
3303
- - Resolve remote config for --skill flag by @dcramer in [#130](https://github.com/getsentry/warden/pull/130)
3304
-
3305
- #### Output
3306
-
3307
- - List only successfully applied fixes in PR body by @dcramer in [#219](https://github.com/getsentry/warden/pull/219)
3308
- - Use backticks instead of brackets in attribution footer by @dcramer in [#197](https://github.com/getsentry/warden/pull/197)
3309
-
3310
- #### Sdk
3311
-
3312
- - Strip invalid suggested fixes from reports by @dcramer in [#228](https://github.com/getsentry/warden/pull/228)
3313
- - Prevent Warden sessions from polluting Claude Code history by @dcramer in [#202](https://github.com/getsentry/warden/pull/202)
3314
- - Handle EPIPE errors from Claude subprocess failures by @dcramer in [#198](https://github.com/getsentry/warden/pull/198)
3315
- - Add verification checklist and Glob tool to reduce analysis hallucinations by @dcramer in [#173](https://github.com/getsentry/warden/pull/173)
3316
- - Constrain skill findings to diff hunk line range by @dcramer in [#151](https://github.com/getsentry/warden/pull/151)
3317
-
3318
- #### Sweep
3319
-
3320
- - Add self-validation to fix subagent prompt by @dcramer in [#223](https://github.com/getsentry/warden/pull/223)
3321
- - Branch worktrees from default branch instead of HEAD by @dcramer in [#221](https://github.com/getsentry/warden/pull/221)
3322
-
3323
- #### Telemetry
3324
-
3325
- - Improve OTel GenAI semantic convention compliance by @dcramer in [#140](https://github.com/getsentry/warden/pull/140)
3326
- - Fix missing Sentry traces and negative token costs by @dcramer in [#139](https://github.com/getsentry/warden/pull/139)
3327
-
3328
- #### Other
3329
-
3330
- - (ci) Enable auto-generated changelogs for GitHub releases by @gricha in [#234](https://github.com/getsentry/warden/pull/234)
3331
- - (config) Add missing fields to TOML writer for config round-trip by @dcramer in [#218](https://github.com/getsentry/warden/pull/218)
3332
- - (evals) Update default model to claude-sonnet-4-6 by @dcramer in [#163](https://github.com/getsentry/warden/pull/163)
3333
- - (o11y) Add gen_ai.request.model attribute by @obostjancic in [#247](https://github.com/getsentry/warden/pull/247)
3334
- - (prepare) Skip files with zero content automatically by @dcramer in [#226](https://github.com/getsentry/warden/pull/226)
3335
- - (skills) Support private repos in `warden add --remote` by @dcramer in [#187](https://github.com/getsentry/warden/pull/187)
3336
- - (usage) Normalize inputTokens to include cached and cache-write tokens by @vgrozdanic in [#143](https://github.com/getsentry/warden/pull/143)
3337
- - Handle multi-line YAML scalar values in SKILL.md frontmatter by @odysseus0 in [#243](https://github.com/getsentry/warden/pull/243)
3338
- - Server error handler calls process.exit() bypassing cleanup by @dcramer in [#206](https://github.com/getsentry/warden/pull/206)
3339
- - Preserve error chains across error wrapping boundaries by @dcramer in [#215](https://github.com/getsentry/warden/pull/215)
3340
- - Respect ignorePaths in all code paths by @dcramer in [#204](https://github.com/getsentry/warden/pull/204)
3341
- - Exclude dev files and secrets from npm package by @dcramer in [#186](https://github.com/getsentry/warden/pull/186)
3342
- - Clean up orphaned Warden comments when no triggers match by @dcramer in [#134](https://github.com/getsentry/warden/pull/134)
3343
- - Show findings in PR review body when inline comments fail by @dcramer in [#128](https://github.com/getsentry/warden/pull/128)
3344
- - Show skipped status for files not processed during Ctrl+C by @dcramer in [#127](https://github.com/getsentry/warden/pull/127)
3345
-
3346
- ### Documentation 📚
3347
-
3348
- - (homepage) Redesign to lead with skills by @dcramer in [#238](https://github.com/getsentry/warden/pull/238)
3349
- - Lead homepage with GitHub PR review story by @dcramer in [#240](https://github.com/getsentry/warden/pull/240)
3350
- - Add org-wide GitHub setup guide by @dcramer in [#239](https://github.com/getsentry/warden/pull/239)
3351
- - Replace non-existent skill names with generic placeholders by @dcramer in [#199](https://github.com/getsentry/warden/pull/199)
3352
- - Simplify getting started guide to use native warden add --remote by @dcramer in [#164](https://github.com/getsentry/warden/pull/164)
3353
- - Fix documentation inconsistencies with codebase by @dcramer in [#147](https://github.com/getsentry/warden/pull/147)
3354
- - Update config reference with missing fields by @dcramer in [#132](https://github.com/getsentry/warden/pull/132)
3355
-
3356
- ### Internal Changes 🔧
3357
-
3358
- - (agents) Update configured skills list by @dcramer in [#241](https://github.com/getsentry/warden/pull/241)
3359
- - (cli) Use git ls-files for .gitignore discovery by @dcramer in [#222](https://github.com/getsentry/warden/pull/222)
3360
- - (config) Exclude evals directory from warden analysis by @dcramer in [#203](https://github.com/getsentry/warden/pull/203)
3361
- - (deps) Bump yaml from 2.8.2 to 2.8.3 by @dependabot in [#254](https://github.com/getsentry/warden/pull/254)
3362
- - (dotagents) Gitignore auto-generated files instead of tracking them by @gricha in [#246](https://github.com/getsentry/warden/pull/246)
3363
- - (output) Clean up GitHub finding rendering by @dcramer in [#176](https://github.com/getsentry/warden/pull/176)
3364
- - (sdk) Extract applyMergeGroups to unify cross-location merge logic by @dcramer in [#153](https://github.com/getsentry/warden/pull/153)
3365
- - (sweep) Clean up warden-sweep skill per skill-creator review by @dcramer in [#225](https://github.com/getsentry/warden/pull/225)
3366
- - Add .serena to gitignore by @ericapisani in [#180](https://github.com/getsentry/warden/pull/180)
3367
- - Extract shared skill selection and validate setup-app args by @dcramer in [#208](https://github.com/getsentry/warden/pull/208)
3368
- - Combine multiple reduce operations into single pass by @dcramer in [#207](https://github.com/getsentry/warden/pull/207)
3369
- - Simplify repetitive column width calculations in logs by @dcramer in [#209](https://github.com/getsentry/warden/pull/209)
3370
- - Collapse severity to 3 levels, add warden logs command by @dcramer in [#192](https://github.com/getsentry/warden/pull/192)
3371
- - Migrate to dotagents and add skills reference to AGENTS.md by @dcramer in [#195](https://github.com/getsentry/warden/pull/195)
3372
- - Tighten weak mock assertions in test suite by @dcramer in [#160](https://github.com/getsentry/warden/pull/160)
3373
- - Add conductor.json configuration by @dcramer in [#159](https://github.com/getsentry/warden/pull/159)
3374
- - Remove generated artifacts from dist, keep only ncc bundle by @dcramer in [#131](https://github.com/getsentry/warden/pull/131)
3375
- - Replace batch-based concurrency with sliding window pool by @dcramer in [#126](https://github.com/getsentry/warden/pull/126)
3376
-
3377
- ### Other
3378
-
3379
- - Docs UI improvements by @PickleNik in [#248](https://github.com/getsentry/warden/pull/248)
3380
- - release: 0.20.0 by @getsentry-bot in [e7dbd6eb](https://github.com/getsentry/warden/commit/e7dbd6eb1680d1d15df6388084237e5d231ec929)
3381
- - release: 0.19.0 by @getsentry-bot in [0096b702](https://github.com/getsentry/warden/commit/0096b7024749edf9e62a791340cfea2ef5b899bf)
3382
- - chores(docs): Add instruction for creating org rulesets by @Jeffreyhung in [#244](https://github.com/getsentry/warden/pull/244)
3383
- - release: 0.18.0 by @getsentry-bot in [e3691621](https://github.com/getsentry/warden/commit/e3691621d9f92de1f47fadb47be162b90f7042ff)
3384
- - release: 0.17.0 by @getsentry-bot in [d6132a96](https://github.com/getsentry/warden/commit/d6132a960cb033ec737042bea68f195b5cadef76)
3385
- - release: 0.16.0 by @getsentry-bot in [62909fe4](https://github.com/getsentry/warden/commit/62909fe4d28c322508945382d001d0a6844852f2)
3386
- - release: 0.15.0 by @getsentry-bot in [d9905cee](https://github.com/getsentry/warden/commit/d9905ceee868cba2aa41f8f17233eacb44901c36)
3387
- - release: 0.14.0 by @getsentry-bot in [538f13b4](https://github.com/getsentry/warden/commit/538f13b44a4e78f30ecc668957f6cede7d8e7161)
3388
- - release: 0.13.0 by @getsentry-bot in [063517a9](https://github.com/getsentry/warden/commit/063517a90a903b56919eec66542b129950ff866c)
3389
- - release: 0.12.0 by @getsentry-bot in [7177c99f](https://github.com/getsentry/warden/commit/7177c99fb10de1cbec8b788881d501a4f8d72965)
3390
- - Remove outdated SPEC.md by @dcramer in [#181](https://github.com/getsentry/warden/pull/181)
3391
- - release: 0.11.0 by @getsentry-bot in [b5525e63](https://github.com/getsentry/warden/commit/b5525e6332a7090940f066b676ea4cf587aa1e2a)
3392
- - release: 0.10.0 by @getsentry-bot in [5762bc7a](https://github.com/getsentry/warden/commit/5762bc7a0b608cdbe31db7b740e8eeff21da2081)
3393
- - Add repository and source context to skill metrics by @dcramer in [#165](https://github.com/getsentry/warden/pull/165)
3394
- - Add end-to-end eval system with LLM judge by @dcramer in [#152](https://github.com/getsentry/warden/pull/152)
3395
- - release: 0.9.0 by @getsentry-bot in [d36b060f](https://github.com/getsentry/warden/commit/d36b060f650314a1dfafa78a1801be980272e3c0)
3396
- - release: 0.8.0 by @getsentry-bot in [7f71a98d](https://github.com/getsentry/warden/commit/7f71a98d931a128ba936df2ff5b73a72a987e6ab)
3397
- - release: 0.7.0 by @getsentry-bot in [b6e61976](https://github.com/getsentry/warden/commit/b6e6197647e44211f5d1a30788d0c6792e24c97a)
3398
- - Remove dist/action from main, build at release time by @dcramer in [#101](https://github.com/getsentry/warden/pull/101)
3399
-