@sentry/warden 0.26.2 → 0.28.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 (66) hide show
  1. package/CHANGELOG.md +474 -0
  2. package/TELEMETRY.md +324 -0
  3. package/dist/cli/main.d.ts +1 -0
  4. package/dist/cli/main.d.ts.map +1 -1
  5. package/dist/cli/main.js +5 -3
  6. package/dist/cli/main.js.map +1 -1
  7. package/dist/cli/output/jsonl.d.ts +4 -2
  8. package/dist/cli/output/jsonl.d.ts.map +1 -1
  9. package/dist/cli/output/jsonl.js +2 -1
  10. package/dist/cli/output/jsonl.js.map +1 -1
  11. package/dist/cli/output/tasks.d.ts +1 -0
  12. package/dist/cli/output/tasks.d.ts.map +1 -1
  13. package/dist/cli/output/tasks.js +14 -6
  14. package/dist/cli/output/tasks.js.map +1 -1
  15. package/dist/output/dedup.d.ts +6 -0
  16. package/dist/output/dedup.d.ts.map +1 -1
  17. package/dist/output/dedup.js +18 -0
  18. package/dist/output/dedup.js.map +1 -1
  19. package/dist/output/renderer.d.ts.map +1 -1
  20. package/dist/output/renderer.js +8 -1
  21. package/dist/output/renderer.js.map +1 -1
  22. package/dist/sdk/analyze.d.ts.map +1 -1
  23. package/dist/sdk/analyze.js +39 -14
  24. package/dist/sdk/analyze.js.map +1 -1
  25. package/dist/sdk/extract.d.ts +1 -0
  26. package/dist/sdk/extract.d.ts.map +1 -1
  27. package/dist/sdk/extract.js +2 -0
  28. package/dist/sdk/extract.js.map +1 -1
  29. package/dist/sdk/fix-quality.d.ts +1 -0
  30. package/dist/sdk/fix-quality.d.ts.map +1 -1
  31. package/dist/sdk/fix-quality.js +1 -0
  32. package/dist/sdk/fix-quality.js.map +1 -1
  33. package/dist/sdk/haiku.d.ts +4 -0
  34. package/dist/sdk/haiku.d.ts.map +1 -1
  35. package/dist/sdk/haiku.js +8 -2
  36. package/dist/sdk/haiku.js.map +1 -1
  37. package/dist/sdk/json-output.d.ts +1 -0
  38. package/dist/sdk/json-output.d.ts.map +1 -1
  39. package/dist/sdk/json-output.js +1 -0
  40. package/dist/sdk/json-output.js.map +1 -1
  41. package/dist/sdk/post-process.d.ts.map +1 -1
  42. package/dist/sdk/post-process.js +6 -4
  43. package/dist/sdk/post-process.js.map +1 -1
  44. package/dist/sdk/prompt.d.ts.map +1 -1
  45. package/dist/sdk/prompt.js +7 -5
  46. package/dist/sdk/prompt.js.map +1 -1
  47. package/dist/sdk/runtimes/claude.d.ts.map +1 -1
  48. package/dist/sdk/runtimes/claude.js +6 -0
  49. package/dist/sdk/runtimes/claude.js.map +1 -1
  50. package/dist/sdk/runtimes/types.d.ts +4 -0
  51. package/dist/sdk/runtimes/types.d.ts.map +1 -1
  52. package/dist/sdk/types.d.ts +2 -0
  53. package/dist/sdk/types.d.ts.map +1 -1
  54. package/dist/sentry.d.ts +13 -3
  55. package/dist/sentry.d.ts.map +1 -1
  56. package/dist/sentry.js +99 -39
  57. package/dist/sentry.js.map +1 -1
  58. package/dist/skill-builder/agentic.d.ts.map +1 -1
  59. package/dist/skill-builder/agentic.js +1 -0
  60. package/dist/skill-builder/agentic.js.map +1 -1
  61. package/dist/skill-builder/outline.d.ts.map +1 -1
  62. package/dist/skill-builder/outline.js +1 -0
  63. package/dist/skill-builder/outline.js.map +1 -1
  64. package/package.json +1 -1
  65. package/src/builtin-skills/code-review/SKILL.md +2 -2
  66. package/src/builtin-skills/security-review/SKILL.md +2 -2
package/CHANGELOG.md CHANGED
@@ -1,4 +1,478 @@
1
1
  # Changelog
2
+ ## 0.28.0
3
+
4
+ ### New Features ✨
5
+
6
+ #### Action
7
+
8
+ - Support org base configs with repo overlays by @dcramer in [#279](https://github.com/getsentry/warden/pull/279)
9
+ - Write structured findings JSON and expose as output by @gricha in [#233](https://github.com/getsentry/warden/pull/233)
10
+
11
+ #### Cli
12
+
13
+ - Build generated skills from path targets by @dcramer in [#282](https://github.com/getsentry/warden/pull/282)
14
+ - Add --staged flag and default to HEAD for uncommitted changes by @dcramer in [#205](https://github.com/getsentry/warden/pull/205)
15
+ - Display confidence level in findings output by @dcramer in [#194](https://github.com/getsentry/warden/pull/194)
16
+ - Always-on JSONL logging with repo-local log directory by @dcramer in [#179](https://github.com/getsentry/warden/pull/179)
17
+ - Add --fail-fast flag to stop after first finding by @dcramer in [#174](https://github.com/getsentry/warden/pull/174)
18
+ - Surface failure details for chunk analysis and finding extraction by @dcramer in [#162](https://github.com/getsentry/warden/pull/162)
19
+ - Interactive fix step-through with y/n/a/s/q prompt by @dcramer in [#161](https://github.com/getsentry/warden/pull/161)
20
+
21
+ #### Docs
22
+
23
+ - Improved landing visuals by @PickleNik in [#245](https://github.com/getsentry/warden/pull/245)
24
+ - Add LLM content negotiation and llms.txt by @dcramer in [#178](https://github.com/getsentry/warden/pull/178)
25
+
26
+ #### Runs
27
+
28
+ - Write chunk-level JSONL logs by @dcramer in [#265](https://github.com/getsentry/warden/pull/265)
29
+ - Stream in-progress runs via 'warden runs follow' by @dcramer in [#261](https://github.com/getsentry/warden/pull/261)
30
+
31
+ #### Sdk
32
+
33
+ - Add finding verification pass by @dcramer in [#290](https://github.com/getsentry/warden/pull/290)
34
+ - Store Claude SDK sessions in .warden/sessions/ by @dcramer in [#193](https://github.com/getsentry/warden/pull/193)
35
+
36
+ #### Skills
37
+
38
+ - Add built-in code review skill by @dcramer in [#298](https://github.com/getsentry/warden/pull/298)
39
+ - Add built-in security review skill by @dcramer in [#292](https://github.com/getsentry/warden/pull/292)
40
+ - Consolidate warden-sweep into bundled scripts with prescribed reporting by @dcramer in [#201](https://github.com/getsentry/warden/pull/201)
41
+ - Replace notseer with find-warden-bugs skill by @dcramer in [#200](https://github.com/getsentry/warden/pull/200)
42
+ - Add warden-sweep skill and bundled skill installation by @dcramer in [#196](https://github.com/getsentry/warden/pull/196)
43
+ - Add agent discovery alongside skills by @dcramer in [#136](https://github.com/getsentry/warden/pull/136)
44
+
45
+ #### Sweep
46
+
47
+ - Add --skill flag to scan.py by @dcramer in [#211](https://github.com/getsentry/warden/pull/211)
48
+ - Add master tracking issue for sweep PRs by @dcramer in [#210](https://github.com/getsentry/warden/pull/210)
49
+
50
+ #### Telemetry
51
+
52
+ - Add skill and model attribution to metrics by @gricha in [#231](https://github.com/getsentry/warden/pull/231)
53
+ - Add namespaced fix-eval feedback metrics by @dcramer in [#229](https://github.com/getsentry/warden/pull/229)
54
+ - Add global scope attributes, run metric, and trace ID surfacing by @dcramer in [#166](https://github.com/getsentry/warden/pull/166)
55
+ - Add input/output attributes to gen_ai spans by @dcramer in [#142](https://github.com/getsentry/warden/pull/142)
56
+ - Add per-turn tracing for Claude Code SDK agent calls by @dcramer in [#141](https://github.com/getsentry/warden/pull/141)
57
+
58
+ #### Other
59
+
60
+ - (config) Make auxiliary max retries configurable via defaults.auxiliaryMaxRetries by @dcramer in [#175](https://github.com/getsentry/warden/pull/175)
61
+ - (dedup) Add intra-batch finding consolidation by @dcramer in [#135](https://github.com/getsentry/warden/pull/135)
62
+ - (init) Add section-based output and interactive skill prompt by @dcramer in [#182](https://github.com/getsentry/warden/pull/182)
63
+ - (o11y) Capture run failures in JSONL output by @dcramer in [#259](https://github.com/getsentry/warden/pull/259)
64
+ - (output) Default to COMMENT instead of REQUEST_CHANGES on PRs by @dcramer in [#137](https://github.com/getsentry/warden/pull/137)
65
+ - (runner) Global concurrency pool for file analyses by @dcramer in [#158](https://github.com/getsentry/warden/pull/158)
66
+ - (skill-builder) Build generated repo-local skills by @dcramer in [#280](https://github.com/getsentry/warden/pull/280)
67
+ - Add verification field and confidence filtering by @dcramer in [#191](https://github.com/getsentry/warden/pull/191)
68
+ - Pnpm workspace monorepo with docs migration by @dcramer in [#185](https://github.com/getsentry/warden/pull/185)
69
+ - Adopt dotagents for skill management by @dcramer in [#168](https://github.com/getsentry/warden/pull/168)
70
+ - Cross-location finding merge by @dcramer in [#148](https://github.com/getsentry/warden/pull/148)
71
+ - Add env vars to generated workflow and docs by @dcramer in [#138](https://github.com/getsentry/warden/pull/138)
72
+ - Add Sentry observability (errors, tracing, metrics, structured logs) by @dcramer in [#133](https://github.com/getsentry/warden/pull/133)
73
+ - Split failOn into independent requestChanges and failCheck controls by @dcramer in [#129](https://github.com/getsentry/warden/pull/129)
74
+
75
+ ### Bug Fixes 🐛
76
+
77
+ #### Action
78
+
79
+ - Correct fix evaluation verdict handling by @dcramer in [#314](https://github.com/getsentry/warden/pull/314)
80
+ - Use relative findings output path by @dcramer in [#289](https://github.com/getsentry/warden/pull/289)
81
+ - Handle missing warden.toml gracefully by @gricha in [#235](https://github.com/getsentry/warden/pull/235)
82
+ - Thread maxContextFiles config through Action workflows by @dcramer in [#216](https://github.com/getsentry/warden/pull/216)
83
+
84
+ #### Cli
85
+
86
+ - Label built-in skill sources by @dcramer in [#294](https://github.com/getsentry/warden/pull/294)
87
+ - Report final per-file finding counts by @dcramer in [#293](https://github.com/getsentry/warden/pull/293)
88
+ - Align local review diff context by @dcramer in [#276](https://github.com/getsentry/warden/pull/276)
89
+ - Replace process.exit(130) with thrown error for graceful cleanup by @dcramer in [#213](https://github.com/getsentry/warden/pull/213)
90
+ - Write --output file on auth error early exit by @dcramer in [#214](https://github.com/getsentry/warden/pull/214)
91
+ - Normalize path separators in synthetic file changes by @dcramer in [#217](https://github.com/getsentry/warden/pull/217)
92
+ - Exclude node_modules from gitignore file discovery by @dcramer in [#220](https://github.com/getsentry/warden/pull/220)
93
+ - Collapse skipped files into a single count on Ctrl+C by @dcramer in [#172](https://github.com/getsentry/warden/pull/172)
94
+ - Render warnings through Ink's Static component by @dcramer in [#170](https://github.com/getsentry/warden/pull/170)
95
+ - Cap 'Other Files' list in prompts for CLI mode by @dcramer in [#171](https://github.com/getsentry/warden/pull/171)
96
+ - Move completed files to Static to prevent flickering by @dcramer in [#149](https://github.com/getsentry/warden/pull/149)
97
+ - Run all skills locally regardless of trigger type by @gricha in [#145](https://github.com/getsentry/warden/pull/145)
98
+ - Resolve remote config for --skill flag by @dcramer in [#130](https://github.com/getsentry/warden/pull/130)
99
+
100
+ #### Config
101
+
102
+ - Allow base configs to use built-in skills by @dcramer in [#305](https://github.com/getsentry/warden/pull/305)
103
+ - Warn on duplicate layered skills by @dcramer in [#304](https://github.com/getsentry/warden/pull/304)
104
+ - Add missing fields to TOML writer for config round-trip by @dcramer in [#218](https://github.com/getsentry/warden/pull/218)
105
+
106
+ #### Output
107
+
108
+ - Render GitHub footers as muted text by @dcramer in [#306](https://github.com/getsentry/warden/pull/306)
109
+ - List only successfully applied fixes in PR body by @dcramer in [#219](https://github.com/getsentry/warden/pull/219)
110
+ - Use backticks instead of brackets in attribution footer by @dcramer in [#197](https://github.com/getsentry/warden/pull/197)
111
+
112
+ #### Sdk
113
+
114
+ - Short-circuit repeated provider failures by @dcramer in [#291](https://github.com/getsentry/warden/pull/291)
115
+ - Strip invalid suggested fixes from reports by @dcramer in [#228](https://github.com/getsentry/warden/pull/228)
116
+ - Prevent Warden sessions from polluting Claude Code history by @dcramer in [#202](https://github.com/getsentry/warden/pull/202)
117
+ - Handle EPIPE errors from Claude subprocess failures by @dcramer in [#198](https://github.com/getsentry/warden/pull/198)
118
+ - Add verification checklist and Glob tool to reduce analysis hallucinations by @dcramer in [#173](https://github.com/getsentry/warden/pull/173)
119
+ - Constrain skill findings to diff hunk line range by @dcramer in [#151](https://github.com/getsentry/warden/pull/151)
120
+
121
+ #### Sweep
122
+
123
+ - Add self-validation to fix subagent prompt by @dcramer in [#223](https://github.com/getsentry/warden/pull/223)
124
+ - Branch worktrees from default branch instead of HEAD by @dcramer in [#221](https://github.com/getsentry/warden/pull/221)
125
+
126
+ #### Telemetry
127
+
128
+ - Fill finding analytics gaps by @dcramer in [#311](https://github.com/getsentry/warden/pull/311)
129
+ - Align attributes with OTel semantics by @dcramer in [#307](https://github.com/getsentry/warden/pull/307)
130
+ - Improve OTel GenAI semantic convention compliance by @dcramer in [#140](https://github.com/getsentry/warden/pull/140)
131
+ - Fix missing Sentry traces and negative token costs by @dcramer in [#139](https://github.com/getsentry/warden/pull/139)
132
+
133
+ #### Other
134
+
135
+ - (ci) Enable auto-generated changelogs for GitHub releases by @gricha in [#234](https://github.com/getsentry/warden/pull/234)
136
+ - (evals) Update default model to claude-sonnet-4-6 by @dcramer in [#163](https://github.com/getsentry/warden/pull/163)
137
+ - (o11y) Add gen_ai.request.model attribute by @obostjancic in [#247](https://github.com/getsentry/warden/pull/247)
138
+ - (prepare) Skip files with zero content automatically by @dcramer in [#226](https://github.com/getsentry/warden/pull/226)
139
+ - (review) Preserve active Warden threads by @dcramer in [#272](https://github.com/getsentry/warden/pull/272)
140
+ - (reviews) Compact inline finding comments by @dcramer in [#315](https://github.com/getsentry/warden/pull/315)
141
+ - (sentry) Tag action errors with repository by @dcramer in [#303](https://github.com/getsentry/warden/pull/303)
142
+ - (skill-builder) Stabilize generated skill authoring by @dcramer in [#284](https://github.com/getsentry/warden/pull/284)
143
+ - (skills) Support private repos in `warden add --remote` by @dcramer in [#187](https://github.com/getsentry/warden/pull/187)
144
+ - (usage) Normalize inputTokens to include cached and cache-write tokens by @vgrozdanic in [#143](https://github.com/getsentry/warden/pull/143)
145
+ - Preserve interrupted findings and parse run args by @dcramer in [#297](https://github.com/getsentry/warden/pull/297)
146
+ - Prevent command injection in release workflow by @fix-it-felix-sentry in [#277](https://github.com/getsentry/warden/pull/277)
147
+ - Handle multi-line YAML scalar values in SKILL.md frontmatter by @odysseus0 in [#243](https://github.com/getsentry/warden/pull/243)
148
+ - Server error handler calls process.exit() bypassing cleanup by @dcramer in [#206](https://github.com/getsentry/warden/pull/206)
149
+ - Preserve error chains across error wrapping boundaries by @dcramer in [#215](https://github.com/getsentry/warden/pull/215)
150
+ - Respect ignorePaths in all code paths by @dcramer in [#204](https://github.com/getsentry/warden/pull/204)
151
+ - Exclude dev files and secrets from npm package by @dcramer in [#186](https://github.com/getsentry/warden/pull/186)
152
+ - Clean up orphaned Warden comments when no triggers match by @dcramer in [#134](https://github.com/getsentry/warden/pull/134)
153
+ - Show findings in PR review body when inline comments fail by @dcramer in [#128](https://github.com/getsentry/warden/pull/128)
154
+ - Show skipped status for files not processed during Ctrl+C by @dcramer in [#127](https://github.com/getsentry/warden/pull/127)
155
+
156
+ ### Documentation 📚
157
+
158
+ - (homepage) Redesign to lead with skills by @dcramer in [#238](https://github.com/getsentry/warden/pull/238)
159
+ - Use built-in security review in samples by @dcramer in [#295](https://github.com/getsentry/warden/pull/295)
160
+ - Use scoped Warden package in npx examples by @dcramer in [#273](https://github.com/getsentry/warden/pull/273)
161
+ - Lead homepage with GitHub PR review story by @dcramer in [#240](https://github.com/getsentry/warden/pull/240)
162
+ - Add org-wide GitHub setup guide by @dcramer in [#239](https://github.com/getsentry/warden/pull/239)
163
+ - Replace non-existent skill names with generic placeholders by @dcramer in [#199](https://github.com/getsentry/warden/pull/199)
164
+ - Simplify getting started guide to use native warden add --remote by @dcramer in [#164](https://github.com/getsentry/warden/pull/164)
165
+ - Fix documentation inconsistencies with codebase by @dcramer in [#147](https://github.com/getsentry/warden/pull/147)
166
+ - Update config reference with missing fields by @dcramer in [#132](https://github.com/getsentry/warden/pull/132)
167
+
168
+ ### Internal Changes 🔧
169
+
170
+ #### Config
171
+
172
+ - Use native PR review skills by @dcramer in [#299](https://github.com/getsentry/warden/pull/299)
173
+ - Configure Sentry MCP server by @dcramer in [#301](https://github.com/getsentry/warden/pull/301)
174
+ - Exclude evals directory from warden analysis by @dcramer in [#203](https://github.com/getsentry/warden/pull/203)
175
+
176
+ #### Deps
177
+
178
+ - Bump dotagents lib by @gricha in [#296](https://github.com/getsentry/warden/pull/296)
179
+ - Bump yaml from 2.8.2 to 2.8.3 by @dependabot in [#254](https://github.com/getsentry/warden/pull/254)
180
+
181
+ #### Sdk
182
+
183
+ - Add flat runtime provider contract by @dcramer in [#270](https://github.com/getsentry/warden/pull/270)
184
+ - Extract applyMergeGroups to unify cross-location merge logic by @dcramer in [#153](https://github.com/getsentry/warden/pull/153)
185
+
186
+ #### Skills
187
+
188
+ - Adopt @sentry/dotagents-lib for skill resolution primitives by @gricha in [#285](https://github.com/getsentry/warden/pull/285)
189
+ - Restructure distributed Warden skills by @dcramer in [#268](https://github.com/getsentry/warden/pull/268)
190
+
191
+ #### Other
192
+
193
+ - (agents) Update configured skills list by @dcramer in [#241](https://github.com/getsentry/warden/pull/241)
194
+ - (cli) Use git ls-files for .gitignore discovery by @dcramer in [#222](https://github.com/getsentry/warden/pull/222)
195
+ - (dotagents) Gitignore auto-generated files instead of tracking them by @gricha in [#246](https://github.com/getsentry/warden/pull/246)
196
+ - (output) Clean up GitHub finding rendering by @dcramer in [#176](https://github.com/getsentry/warden/pull/176)
197
+ - (skill-builder) Use internal authoring provider by @dcramer in [#283](https://github.com/getsentry/warden/pull/283)
198
+ - (sweep) Clean up warden-sweep skill per skill-creator review by @dcramer in [#225](https://github.com/getsentry/warden/pull/225)
199
+ - Add GitHub Actions workflow skill by @dcramer in [#278](https://github.com/getsentry/warden/pull/278)
200
+ - Add .serena to gitignore by @ericapisani in [#180](https://github.com/getsentry/warden/pull/180)
201
+ - Extract shared skill selection and validate setup-app args by @dcramer in [#208](https://github.com/getsentry/warden/pull/208)
202
+ - Combine multiple reduce operations into single pass by @dcramer in [#207](https://github.com/getsentry/warden/pull/207)
203
+ - Simplify repetitive column width calculations in logs by @dcramer in [#209](https://github.com/getsentry/warden/pull/209)
204
+ - Collapse severity to 3 levels, add warden logs command by @dcramer in [#192](https://github.com/getsentry/warden/pull/192)
205
+ - Migrate to dotagents and add skills reference to AGENTS.md by @dcramer in [#195](https://github.com/getsentry/warden/pull/195)
206
+ - Tighten weak mock assertions in test suite by @dcramer in [#160](https://github.com/getsentry/warden/pull/160)
207
+ - Add conductor.json configuration by @dcramer in [#159](https://github.com/getsentry/warden/pull/159)
208
+ - Remove generated artifacts from dist, keep only ncc bundle by @dcramer in [#131](https://github.com/getsentry/warden/pull/131)
209
+ - Replace batch-based concurrency with sliding window pool by @dcramer in [#126](https://github.com/getsentry/warden/pull/126)
210
+
211
+ ### Other
212
+
213
+ - release: 0.27.0 by @getsentry-bot in [06a593e0](https://github.com/getsentry/warden/commit/06a593e0a43d4ea5c9af9176a9f555c7b9c965f6)
214
+ - release: 0.26.2 by @getsentry-bot in [3d492972](https://github.com/getsentry/warden/commit/3d492972d2e6ae5c2666a5d61d1e37a6591892ff)
215
+ - release: 0.26.1 by @getsentry-bot in [23280325](https://github.com/getsentry/warden/commit/23280325da28b365fb53e6a33b19b167998e5660)
216
+ - release: 0.26.0 by @getsentry-bot in [2bb08b9d](https://github.com/getsentry/warden/commit/2bb08b9d5b276abaee31aab0e672d3ac4ecaee8c)
217
+ - release: 0.25.0 by @getsentry-bot in [56de18fe](https://github.com/getsentry/warden/commit/56de18fee0a1bb6a80deae2c0e4688ab05754126)
218
+ - release: 0.24.1 by @getsentry-bot in [2b9e2b0c](https://github.com/getsentry/warden/commit/2b9e2b0cdab12b950fcb4abc79e33d7db363ee49)
219
+ - release: 0.24.0 by @getsentry-bot in [715259ec](https://github.com/getsentry/warden/commit/715259ecacc9e1e5d78b6b62623960d86e934162)
220
+ - release: 0.23.0 by @getsentry-bot in [dd7f76ac](https://github.com/getsentry/warden/commit/dd7f76ac25cd8d70f2557638bd8d8678d9776e96)
221
+ - release: 0.22.0 by @getsentry-bot in [08a3b2f0](https://github.com/getsentry/warden/commit/08a3b2f0139248c80ba499038320556bedb66347)
222
+ - release: 0.21.0 by @getsentry-bot in [2795626e](https://github.com/getsentry/warden/commit/2795626e8f1ff3c5a7a041d0ecb9ae3c047641cd)
223
+ - Docs UI improvements by @PickleNik in [#248](https://github.com/getsentry/warden/pull/248)
224
+ - release: 0.20.0 by @getsentry-bot in [e7dbd6eb](https://github.com/getsentry/warden/commit/e7dbd6eb1680d1d15df6388084237e5d231ec929)
225
+ - release: 0.19.0 by @getsentry-bot in [0096b702](https://github.com/getsentry/warden/commit/0096b7024749edf9e62a791340cfea2ef5b899bf)
226
+ - chores(docs): Add instruction for creating org rulesets by @Jeffreyhung in [#244](https://github.com/getsentry/warden/pull/244)
227
+ - release: 0.18.0 by @getsentry-bot in [e3691621](https://github.com/getsentry/warden/commit/e3691621d9f92de1f47fadb47be162b90f7042ff)
228
+ - release: 0.17.0 by @getsentry-bot in [d6132a96](https://github.com/getsentry/warden/commit/d6132a960cb033ec737042bea68f195b5cadef76)
229
+ - release: 0.16.0 by @getsentry-bot in [62909fe4](https://github.com/getsentry/warden/commit/62909fe4d28c322508945382d001d0a6844852f2)
230
+ - release: 0.15.0 by @getsentry-bot in [d9905cee](https://github.com/getsentry/warden/commit/d9905ceee868cba2aa41f8f17233eacb44901c36)
231
+ - release: 0.14.0 by @getsentry-bot in [538f13b4](https://github.com/getsentry/warden/commit/538f13b44a4e78f30ecc668957f6cede7d8e7161)
232
+ - release: 0.13.0 by @getsentry-bot in [063517a9](https://github.com/getsentry/warden/commit/063517a90a903b56919eec66542b129950ff866c)
233
+ - release: 0.12.0 by @getsentry-bot in [7177c99f](https://github.com/getsentry/warden/commit/7177c99fb10de1cbec8b788881d501a4f8d72965)
234
+ - Remove outdated SPEC.md by @dcramer in [#181](https://github.com/getsentry/warden/pull/181)
235
+ - release: 0.11.0 by @getsentry-bot in [b5525e63](https://github.com/getsentry/warden/commit/b5525e6332a7090940f066b676ea4cf587aa1e2a)
236
+ - release: 0.10.0 by @getsentry-bot in [5762bc7a](https://github.com/getsentry/warden/commit/5762bc7a0b608cdbe31db7b740e8eeff21da2081)
237
+
238
+ _Plus 6 more_
239
+
240
+ ## 0.27.0
241
+
242
+ ### New Features ✨
243
+
244
+ #### Action
245
+
246
+ - Support org base configs with repo overlays by @dcramer in [#279](https://github.com/getsentry/warden/pull/279)
247
+ - Write structured findings JSON and expose as output by @gricha in [#233](https://github.com/getsentry/warden/pull/233)
248
+
249
+ #### Cli
250
+
251
+ - Build generated skills from path targets by @dcramer in [#282](https://github.com/getsentry/warden/pull/282)
252
+ - Add --staged flag and default to HEAD for uncommitted changes by @dcramer in [#205](https://github.com/getsentry/warden/pull/205)
253
+ - Display confidence level in findings output by @dcramer in [#194](https://github.com/getsentry/warden/pull/194)
254
+ - Always-on JSONL logging with repo-local log directory by @dcramer in [#179](https://github.com/getsentry/warden/pull/179)
255
+ - Add --fail-fast flag to stop after first finding by @dcramer in [#174](https://github.com/getsentry/warden/pull/174)
256
+ - Surface failure details for chunk analysis and finding extraction by @dcramer in [#162](https://github.com/getsentry/warden/pull/162)
257
+ - Interactive fix step-through with y/n/a/s/q prompt by @dcramer in [#161](https://github.com/getsentry/warden/pull/161)
258
+
259
+ #### Docs
260
+
261
+ - Improved landing visuals by @PickleNik in [#245](https://github.com/getsentry/warden/pull/245)
262
+ - Add LLM content negotiation and llms.txt by @dcramer in [#178](https://github.com/getsentry/warden/pull/178)
263
+
264
+ #### Runs
265
+
266
+ - Write chunk-level JSONL logs by @dcramer in [#265](https://github.com/getsentry/warden/pull/265)
267
+ - Stream in-progress runs via 'warden runs follow' by @dcramer in [#261](https://github.com/getsentry/warden/pull/261)
268
+
269
+ #### Sdk
270
+
271
+ - Add finding verification pass by @dcramer in [#290](https://github.com/getsentry/warden/pull/290)
272
+ - Store Claude SDK sessions in .warden/sessions/ by @dcramer in [#193](https://github.com/getsentry/warden/pull/193)
273
+
274
+ #### Skills
275
+
276
+ - Add built-in code review skill by @dcramer in [#298](https://github.com/getsentry/warden/pull/298)
277
+ - Add built-in security review skill by @dcramer in [#292](https://github.com/getsentry/warden/pull/292)
278
+ - Consolidate warden-sweep into bundled scripts with prescribed reporting by @dcramer in [#201](https://github.com/getsentry/warden/pull/201)
279
+ - Replace notseer with find-warden-bugs skill by @dcramer in [#200](https://github.com/getsentry/warden/pull/200)
280
+ - Add warden-sweep skill and bundled skill installation by @dcramer in [#196](https://github.com/getsentry/warden/pull/196)
281
+ - Add agent discovery alongside skills by @dcramer in [#136](https://github.com/getsentry/warden/pull/136)
282
+
283
+ #### Sweep
284
+
285
+ - Add --skill flag to scan.py by @dcramer in [#211](https://github.com/getsentry/warden/pull/211)
286
+ - Add master tracking issue for sweep PRs by @dcramer in [#210](https://github.com/getsentry/warden/pull/210)
287
+
288
+ #### Telemetry
289
+
290
+ - Add skill and model attribution to metrics by @gricha in [#231](https://github.com/getsentry/warden/pull/231)
291
+ - Add namespaced fix-eval feedback metrics by @dcramer in [#229](https://github.com/getsentry/warden/pull/229)
292
+ - Add global scope attributes, run metric, and trace ID surfacing by @dcramer in [#166](https://github.com/getsentry/warden/pull/166)
293
+ - Add input/output attributes to gen_ai spans by @dcramer in [#142](https://github.com/getsentry/warden/pull/142)
294
+ - Add per-turn tracing for Claude Code SDK agent calls by @dcramer in [#141](https://github.com/getsentry/warden/pull/141)
295
+
296
+ #### Other
297
+
298
+ - (config) Make auxiliary max retries configurable via defaults.auxiliaryMaxRetries by @dcramer in [#175](https://github.com/getsentry/warden/pull/175)
299
+ - (dedup) Add intra-batch finding consolidation by @dcramer in [#135](https://github.com/getsentry/warden/pull/135)
300
+ - (init) Add section-based output and interactive skill prompt by @dcramer in [#182](https://github.com/getsentry/warden/pull/182)
301
+ - (o11y) Capture run failures in JSONL output by @dcramer in [#259](https://github.com/getsentry/warden/pull/259)
302
+ - (output) Default to COMMENT instead of REQUEST_CHANGES on PRs by @dcramer in [#137](https://github.com/getsentry/warden/pull/137)
303
+ - (runner) Global concurrency pool for file analyses by @dcramer in [#158](https://github.com/getsentry/warden/pull/158)
304
+ - (skill-builder) Build generated repo-local skills by @dcramer in [#280](https://github.com/getsentry/warden/pull/280)
305
+ - Add verification field and confidence filtering by @dcramer in [#191](https://github.com/getsentry/warden/pull/191)
306
+ - Pnpm workspace monorepo with docs migration by @dcramer in [#185](https://github.com/getsentry/warden/pull/185)
307
+ - Adopt dotagents for skill management by @dcramer in [#168](https://github.com/getsentry/warden/pull/168)
308
+ - Cross-location finding merge by @dcramer in [#148](https://github.com/getsentry/warden/pull/148)
309
+ - Add env vars to generated workflow and docs by @dcramer in [#138](https://github.com/getsentry/warden/pull/138)
310
+ - Add Sentry observability (errors, tracing, metrics, structured logs) by @dcramer in [#133](https://github.com/getsentry/warden/pull/133)
311
+ - Split failOn into independent requestChanges and failCheck controls by @dcramer in [#129](https://github.com/getsentry/warden/pull/129)
312
+
313
+ ### Bug Fixes 🐛
314
+
315
+ #### Action
316
+
317
+ - Use relative findings output path by @dcramer in [#289](https://github.com/getsentry/warden/pull/289)
318
+ - Handle missing warden.toml gracefully by @gricha in [#235](https://github.com/getsentry/warden/pull/235)
319
+ - Thread maxContextFiles config through Action workflows by @dcramer in [#216](https://github.com/getsentry/warden/pull/216)
320
+
321
+ #### Cli
322
+
323
+ - Label built-in skill sources by @dcramer in [#294](https://github.com/getsentry/warden/pull/294)
324
+ - Report final per-file finding counts by @dcramer in [#293](https://github.com/getsentry/warden/pull/293)
325
+ - Align local review diff context by @dcramer in [#276](https://github.com/getsentry/warden/pull/276)
326
+ - Replace process.exit(130) with thrown error for graceful cleanup by @dcramer in [#213](https://github.com/getsentry/warden/pull/213)
327
+ - Write --output file on auth error early exit by @dcramer in [#214](https://github.com/getsentry/warden/pull/214)
328
+ - Normalize path separators in synthetic file changes by @dcramer in [#217](https://github.com/getsentry/warden/pull/217)
329
+ - Exclude node_modules from gitignore file discovery by @dcramer in [#220](https://github.com/getsentry/warden/pull/220)
330
+ - Collapse skipped files into a single count on Ctrl+C by @dcramer in [#172](https://github.com/getsentry/warden/pull/172)
331
+ - Render warnings through Ink's Static component by @dcramer in [#170](https://github.com/getsentry/warden/pull/170)
332
+ - Cap 'Other Files' list in prompts for CLI mode by @dcramer in [#171](https://github.com/getsentry/warden/pull/171)
333
+ - Move completed files to Static to prevent flickering by @dcramer in [#149](https://github.com/getsentry/warden/pull/149)
334
+ - Run all skills locally regardless of trigger type by @gricha in [#145](https://github.com/getsentry/warden/pull/145)
335
+ - Resolve remote config for --skill flag by @dcramer in [#130](https://github.com/getsentry/warden/pull/130)
336
+
337
+ #### Config
338
+
339
+ - Allow base configs to use built-in skills by @dcramer in [#305](https://github.com/getsentry/warden/pull/305)
340
+ - Warn on duplicate layered skills by @dcramer in [#304](https://github.com/getsentry/warden/pull/304)
341
+ - Add missing fields to TOML writer for config round-trip by @dcramer in [#218](https://github.com/getsentry/warden/pull/218)
342
+
343
+ #### Output
344
+
345
+ - Render GitHub footers as muted text by @dcramer in [#306](https://github.com/getsentry/warden/pull/306)
346
+ - List only successfully applied fixes in PR body by @dcramer in [#219](https://github.com/getsentry/warden/pull/219)
347
+ - Use backticks instead of brackets in attribution footer by @dcramer in [#197](https://github.com/getsentry/warden/pull/197)
348
+
349
+ #### Sdk
350
+
351
+ - Short-circuit repeated provider failures by @dcramer in [#291](https://github.com/getsentry/warden/pull/291)
352
+ - Strip invalid suggested fixes from reports by @dcramer in [#228](https://github.com/getsentry/warden/pull/228)
353
+ - Prevent Warden sessions from polluting Claude Code history by @dcramer in [#202](https://github.com/getsentry/warden/pull/202)
354
+ - Handle EPIPE errors from Claude subprocess failures by @dcramer in [#198](https://github.com/getsentry/warden/pull/198)
355
+ - Add verification checklist and Glob tool to reduce analysis hallucinations by @dcramer in [#173](https://github.com/getsentry/warden/pull/173)
356
+ - Constrain skill findings to diff hunk line range by @dcramer in [#151](https://github.com/getsentry/warden/pull/151)
357
+
358
+ #### Sweep
359
+
360
+ - Add self-validation to fix subagent prompt by @dcramer in [#223](https://github.com/getsentry/warden/pull/223)
361
+ - Branch worktrees from default branch instead of HEAD by @dcramer in [#221](https://github.com/getsentry/warden/pull/221)
362
+
363
+ #### Telemetry
364
+
365
+ - Fill finding analytics gaps by @dcramer in [#311](https://github.com/getsentry/warden/pull/311)
366
+ - Align attributes with OTel semantics by @dcramer in [#307](https://github.com/getsentry/warden/pull/307)
367
+ - Improve OTel GenAI semantic convention compliance by @dcramer in [#140](https://github.com/getsentry/warden/pull/140)
368
+ - Fix missing Sentry traces and negative token costs by @dcramer in [#139](https://github.com/getsentry/warden/pull/139)
369
+
370
+ #### Other
371
+
372
+ - (ci) Enable auto-generated changelogs for GitHub releases by @gricha in [#234](https://github.com/getsentry/warden/pull/234)
373
+ - (evals) Update default model to claude-sonnet-4-6 by @dcramer in [#163](https://github.com/getsentry/warden/pull/163)
374
+ - (o11y) Add gen_ai.request.model attribute by @obostjancic in [#247](https://github.com/getsentry/warden/pull/247)
375
+ - (prepare) Skip files with zero content automatically by @dcramer in [#226](https://github.com/getsentry/warden/pull/226)
376
+ - (review) Preserve active Warden threads by @dcramer in [#272](https://github.com/getsentry/warden/pull/272)
377
+ - (sentry) Tag action errors with repository by @dcramer in [#303](https://github.com/getsentry/warden/pull/303)
378
+ - (skill-builder) Stabilize generated skill authoring by @dcramer in [#284](https://github.com/getsentry/warden/pull/284)
379
+ - (skills) Support private repos in `warden add --remote` by @dcramer in [#187](https://github.com/getsentry/warden/pull/187)
380
+ - (usage) Normalize inputTokens to include cached and cache-write tokens by @vgrozdanic in [#143](https://github.com/getsentry/warden/pull/143)
381
+ - Preserve interrupted findings and parse run args by @dcramer in [#297](https://github.com/getsentry/warden/pull/297)
382
+ - Prevent command injection in release workflow by @fix-it-felix-sentry in [#277](https://github.com/getsentry/warden/pull/277)
383
+ - Handle multi-line YAML scalar values in SKILL.md frontmatter by @odysseus0 in [#243](https://github.com/getsentry/warden/pull/243)
384
+ - Server error handler calls process.exit() bypassing cleanup by @dcramer in [#206](https://github.com/getsentry/warden/pull/206)
385
+ - Preserve error chains across error wrapping boundaries by @dcramer in [#215](https://github.com/getsentry/warden/pull/215)
386
+ - Respect ignorePaths in all code paths by @dcramer in [#204](https://github.com/getsentry/warden/pull/204)
387
+ - Exclude dev files and secrets from npm package by @dcramer in [#186](https://github.com/getsentry/warden/pull/186)
388
+ - Clean up orphaned Warden comments when no triggers match by @dcramer in [#134](https://github.com/getsentry/warden/pull/134)
389
+ - Show findings in PR review body when inline comments fail by @dcramer in [#128](https://github.com/getsentry/warden/pull/128)
390
+ - Show skipped status for files not processed during Ctrl+C by @dcramer in [#127](https://github.com/getsentry/warden/pull/127)
391
+
392
+ ### Documentation 📚
393
+
394
+ - (homepage) Redesign to lead with skills by @dcramer in [#238](https://github.com/getsentry/warden/pull/238)
395
+ - Use built-in security review in samples by @dcramer in [#295](https://github.com/getsentry/warden/pull/295)
396
+ - Use scoped Warden package in npx examples by @dcramer in [#273](https://github.com/getsentry/warden/pull/273)
397
+ - Lead homepage with GitHub PR review story by @dcramer in [#240](https://github.com/getsentry/warden/pull/240)
398
+ - Add org-wide GitHub setup guide by @dcramer in [#239](https://github.com/getsentry/warden/pull/239)
399
+ - Replace non-existent skill names with generic placeholders by @dcramer in [#199](https://github.com/getsentry/warden/pull/199)
400
+ - Simplify getting started guide to use native warden add --remote by @dcramer in [#164](https://github.com/getsentry/warden/pull/164)
401
+ - Fix documentation inconsistencies with codebase by @dcramer in [#147](https://github.com/getsentry/warden/pull/147)
402
+ - Update config reference with missing fields by @dcramer in [#132](https://github.com/getsentry/warden/pull/132)
403
+
404
+ ### Internal Changes 🔧
405
+
406
+ #### Config
407
+
408
+ - Use native PR review skills by @dcramer in [#299](https://github.com/getsentry/warden/pull/299)
409
+ - Configure Sentry MCP server by @dcramer in [#301](https://github.com/getsentry/warden/pull/301)
410
+ - Exclude evals directory from warden analysis by @dcramer in [#203](https://github.com/getsentry/warden/pull/203)
411
+
412
+ #### Deps
413
+
414
+ - Bump dotagents lib by @gricha in [#296](https://github.com/getsentry/warden/pull/296)
415
+ - Bump yaml from 2.8.2 to 2.8.3 by @dependabot in [#254](https://github.com/getsentry/warden/pull/254)
416
+
417
+ #### Sdk
418
+
419
+ - Add flat runtime provider contract by @dcramer in [#270](https://github.com/getsentry/warden/pull/270)
420
+ - Extract applyMergeGroups to unify cross-location merge logic by @dcramer in [#153](https://github.com/getsentry/warden/pull/153)
421
+
422
+ #### Skills
423
+
424
+ - Adopt @sentry/dotagents-lib for skill resolution primitives by @gricha in [#285](https://github.com/getsentry/warden/pull/285)
425
+ - Restructure distributed Warden skills by @dcramer in [#268](https://github.com/getsentry/warden/pull/268)
426
+
427
+ #### Other
428
+
429
+ - (agents) Update configured skills list by @dcramer in [#241](https://github.com/getsentry/warden/pull/241)
430
+ - (cli) Use git ls-files for .gitignore discovery by @dcramer in [#222](https://github.com/getsentry/warden/pull/222)
431
+ - (dotagents) Gitignore auto-generated files instead of tracking them by @gricha in [#246](https://github.com/getsentry/warden/pull/246)
432
+ - (output) Clean up GitHub finding rendering by @dcramer in [#176](https://github.com/getsentry/warden/pull/176)
433
+ - (skill-builder) Use internal authoring provider by @dcramer in [#283](https://github.com/getsentry/warden/pull/283)
434
+ - (sweep) Clean up warden-sweep skill per skill-creator review by @dcramer in [#225](https://github.com/getsentry/warden/pull/225)
435
+ - Add GitHub Actions workflow skill by @dcramer in [#278](https://github.com/getsentry/warden/pull/278)
436
+ - Add .serena to gitignore by @ericapisani in [#180](https://github.com/getsentry/warden/pull/180)
437
+ - Extract shared skill selection and validate setup-app args by @dcramer in [#208](https://github.com/getsentry/warden/pull/208)
438
+ - Combine multiple reduce operations into single pass by @dcramer in [#207](https://github.com/getsentry/warden/pull/207)
439
+ - Simplify repetitive column width calculations in logs by @dcramer in [#209](https://github.com/getsentry/warden/pull/209)
440
+ - Collapse severity to 3 levels, add warden logs command by @dcramer in [#192](https://github.com/getsentry/warden/pull/192)
441
+ - Migrate to dotagents and add skills reference to AGENTS.md by @dcramer in [#195](https://github.com/getsentry/warden/pull/195)
442
+ - Tighten weak mock assertions in test suite by @dcramer in [#160](https://github.com/getsentry/warden/pull/160)
443
+ - Add conductor.json configuration by @dcramer in [#159](https://github.com/getsentry/warden/pull/159)
444
+ - Remove generated artifacts from dist, keep only ncc bundle by @dcramer in [#131](https://github.com/getsentry/warden/pull/131)
445
+ - Replace batch-based concurrency with sliding window pool by @dcramer in [#126](https://github.com/getsentry/warden/pull/126)
446
+
447
+ ### Other
448
+
449
+ - release: 0.26.2 by @getsentry-bot in [3d492972](https://github.com/getsentry/warden/commit/3d492972d2e6ae5c2666a5d61d1e37a6591892ff)
450
+ - release: 0.26.1 by @getsentry-bot in [23280325](https://github.com/getsentry/warden/commit/23280325da28b365fb53e6a33b19b167998e5660)
451
+ - release: 0.26.0 by @getsentry-bot in [2bb08b9d](https://github.com/getsentry/warden/commit/2bb08b9d5b276abaee31aab0e672d3ac4ecaee8c)
452
+ - release: 0.25.0 by @getsentry-bot in [56de18fe](https://github.com/getsentry/warden/commit/56de18fee0a1bb6a80deae2c0e4688ab05754126)
453
+ - release: 0.24.1 by @getsentry-bot in [2b9e2b0c](https://github.com/getsentry/warden/commit/2b9e2b0cdab12b950fcb4abc79e33d7db363ee49)
454
+ - release: 0.24.0 by @getsentry-bot in [715259ec](https://github.com/getsentry/warden/commit/715259ecacc9e1e5d78b6b62623960d86e934162)
455
+ - release: 0.23.0 by @getsentry-bot in [dd7f76ac](https://github.com/getsentry/warden/commit/dd7f76ac25cd8d70f2557638bd8d8678d9776e96)
456
+ - release: 0.22.0 by @getsentry-bot in [08a3b2f0](https://github.com/getsentry/warden/commit/08a3b2f0139248c80ba499038320556bedb66347)
457
+ - release: 0.21.0 by @getsentry-bot in [2795626e](https://github.com/getsentry/warden/commit/2795626e8f1ff3c5a7a041d0ecb9ae3c047641cd)
458
+ - Docs UI improvements by @PickleNik in [#248](https://github.com/getsentry/warden/pull/248)
459
+ - release: 0.20.0 by @getsentry-bot in [e7dbd6eb](https://github.com/getsentry/warden/commit/e7dbd6eb1680d1d15df6388084237e5d231ec929)
460
+ - release: 0.19.0 by @getsentry-bot in [0096b702](https://github.com/getsentry/warden/commit/0096b7024749edf9e62a791340cfea2ef5b899bf)
461
+ - chores(docs): Add instruction for creating org rulesets by @Jeffreyhung in [#244](https://github.com/getsentry/warden/pull/244)
462
+ - release: 0.18.0 by @getsentry-bot in [e3691621](https://github.com/getsentry/warden/commit/e3691621d9f92de1f47fadb47be162b90f7042ff)
463
+ - release: 0.17.0 by @getsentry-bot in [d6132a96](https://github.com/getsentry/warden/commit/d6132a960cb033ec737042bea68f195b5cadef76)
464
+ - release: 0.16.0 by @getsentry-bot in [62909fe4](https://github.com/getsentry/warden/commit/62909fe4d28c322508945382d001d0a6844852f2)
465
+ - release: 0.15.0 by @getsentry-bot in [d9905cee](https://github.com/getsentry/warden/commit/d9905ceee868cba2aa41f8f17233eacb44901c36)
466
+ - release: 0.14.0 by @getsentry-bot in [538f13b4](https://github.com/getsentry/warden/commit/538f13b44a4e78f30ecc668957f6cede7d8e7161)
467
+ - release: 0.13.0 by @getsentry-bot in [063517a9](https://github.com/getsentry/warden/commit/063517a90a903b56919eec66542b129950ff866c)
468
+ - release: 0.12.0 by @getsentry-bot in [7177c99f](https://github.com/getsentry/warden/commit/7177c99fb10de1cbec8b788881d501a4f8d72965)
469
+ - Remove outdated SPEC.md by @dcramer in [#181](https://github.com/getsentry/warden/pull/181)
470
+ - release: 0.11.0 by @getsentry-bot in [b5525e63](https://github.com/getsentry/warden/commit/b5525e6332a7090940f066b676ea4cf587aa1e2a)
471
+ - release: 0.10.0 by @getsentry-bot in [5762bc7a](https://github.com/getsentry/warden/commit/5762bc7a0b608cdbe31db7b740e8eeff21da2081)
472
+ - Add repository and source context to skill metrics by @dcramer in [#165](https://github.com/getsentry/warden/pull/165)
473
+
474
+ _Plus 5 more_
475
+
2
476
  ## 0.26.2
3
477
 
4
478
  ### New Features ✨