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