Releases: getsentry/warden
Releases · getsentry/warden
0.32.0
Bug Fixes 🐛
- (action) Install Claude Code only for Claude runtime by @tmustier in #334
- (output) Render finding evidence traces by @dcramer in #335
Internal Changes 🔧
Evals
- Upgrade vitest-evals to 0.9.0-beta.6 by @sentry-junior in #332
- Move eval harness into workspace package by @dcramer in #331
- Add vitest-evals reporter bug fixtures by @dcramer in #330
- Centralize fixture provenance by @dcramer in #329
Other
0.31.1
Bug Fixes 🐛
- (action) Install Claude Code only for Claude runtime by @tmustier in #334
- (output) Render finding evidence traces by @dcramer in #335
Internal Changes 🔧
Evals
- Upgrade vitest-evals to 0.9.0-beta.6 by @sentry-junior in #332
- Move eval harness into workspace package by @dcramer in #331
- Add vitest-evals reporter bug fixtures by @dcramer in #330
- Centralize fixture provenance by @dcramer in #329
Other
0.31.0
New Features ✨
Action
- Support org base configs with repo overlays by @dcramer in #279
- Write structured findings JSON and expose as output by @gricha in #233
Cli
- Add @file target lists by @dcramer in #316
- Build generated skills from path targets by @dcramer in #282
- Add --staged flag and default to HEAD for uncommitted changes by @dcramer in #205
- Display confidence level in findings output by @dcramer in #194
- Always-on JSONL logging with repo-local log directory by @dcramer in #179
- Add --fail-fast flag to stop after first finding by @dcramer in #174
- Surface failure details for chunk analysis and finding extraction by @dcramer in #162
- Interactive fix step-through with y/n/a/s/q prompt by @dcramer in #161
Docs
- Improved landing visuals by @PickleNik in #245
- Add LLM content negotiation and llms.txt by @dcramer in #178
Runs
- Write chunk-level JSONL logs by @dcramer in #265
- Stream in-progress runs via 'warden runs follow' by @dcramer in #261
Sdk
- Add Pi runtime by @dcramer in #318
- Add finding verification pass by @dcramer in #290
- Store Claude SDK sessions in .warden/sessions/ by @dcramer in #193
Skills
- Add built-in code review skill by @dcramer in #298
- Add built-in security review skill by @dcramer in #292
- Consolidate warden-sweep into bundled scripts with prescribed reporting by @dcramer in #201
- Replace notseer with find-warden-bugs skill by @dcramer in #200
- Add warden-sweep skill and bundled skill installation by @dcramer in #196
- Add agent discovery alongside skills by @dcramer in #136
Sweep
- Add --skill flag to scan.py by @dcramer in #211
- Add master tracking issue for sweep PRs by @dcramer in #210
Telemetry
- Add skill and model attribution to metrics by @gricha in #231
- Add namespaced fix-eval feedback metrics by @dcramer in #229
- Add global scope attributes, run metric, and trace ID surfacing by @dcramer in #166
- Add input/output attributes to gen_ai spans by @dcramer in #142
- Add per-turn tracing for Claude Code SDK agent calls by @dcramer in #141
Other
- (config) Make auxiliary max retries configurable via defaults.auxiliaryMaxRetries by @dcramer in #175
- (dedup) Add intra-batch finding consolidation by @dcramer in #135
- (init) Add section-based output and interactive skill prompt by @dcramer in #182
- (o11y) Capture run failures in JSONL output by @dcramer in #259
- (output) Default to COMMENT instead of REQUEST_CHANGES on PRs by @dcramer in #137
- (runner) Global concurrency pool for file analyses by @dcramer in #158
- (skill-builder) Build generated repo-local skills by @dcramer in #280
- Add verification field and confidence filtering by @dcramer in #191
- Pnpm workspace monorepo with docs migration by @dcramer in #185
- Adopt dotagents for skill management by @dcramer in #168
- Cross-location finding merge by @dcramer in #148
- Add env vars to generated workflow and docs by @dcramer in #138
- Add Sentry observability (errors, tracing, metrics, structured logs) by @dcramer in #133
- Split failOn into independent requestChanges and failCheck controls by @dcramer in #129
Bug Fixes 🐛
Action
- Honor PR trigger parallelism by @dcramer in #325
- Preload Pi node-only providers by @dcramer in #324
- Validate Pi model selectors before execution by @dcramer in #321
- Correct fix evaluation verdict handling by @dcramer in #314
- Use relative findings output path by @dcramer in #289
- Handle missing warden.toml gracefully by @gricha in #235
- Thread maxContextFiles config through Action workflows by @dcramer in #216
Cli
- Label built-in skill sources by @dcramer in #294
- Report final per-file finding counts by @dcramer in #293
- Align local review diff context by @dcramer in #276
- Replace process.exit(130) with thrown error for graceful cleanup by @dcramer in #213
- Write --output file on auth error early exit by @dcramer in #214
- Normalize path separators in synthetic file changes by @dcramer in #217
- Exclude node_modules from gitignore file discovery by @dcramer in #220
- Collapse skipped files into a single count on Ctrl+C by @dcramer in #172
- Render warnings through Ink's Static component by @dcramer in #170
- Cap 'Other Files' list in prompts for CLI mode by @dcramer in #171
- Move completed files to Static to prevent flickering by @dcramer in #149
- Run all skills locally regardless of trigger type by @gricha in #145
- Resolve remote config for --skill flag by @dcramer in #130
Config
- Allow base configs to use built-in skills by @dcramer in #305
- Warn on duplicate layered skills by @dcramer in #304
- Add missing fields to TOML writer for config round-trip by @dcramer in #218
Output
- Render GitHub footers as muted text by @dcramer in #306
- List only successfully applied fixes in PR body by @dcramer in #219
- Use backticks instead of brackets in attribution footer by @dcramer in #197
Sdk
- Short-circuit repeated provider failures by @dcramer in #291
- Strip invalid suggested fixes from reports by @dcramer in #228
- Prevent Warden sessions from polluting Claude Code history by @dcramer in #202
- Handle EPIPE errors from Claude subprocess failures by @dcramer in #198
- Add verification checklist and Glob tool to reduce analysis hallucinations by @dcramer in #173
- Constrain skill findings to diff hunk line range by @dcramer in #151
Sweep
- Add self-validation to fix subagent prompt by @dcramer in #223
- Branch worktrees from default branch instead of HEAD by @dcramer in #221
Telemetry
- Fill finding analytics gaps by @dcramer in #311
- Align attributes with OTel semantics by @dcramer in #307
- Improve OTel GenAI semantic convention compliance by @dcramer in #140
- Fix missing Sentry traces and negative token costs by @dcramer in #139
Other
- (ci) Enable auto-generated changelogs for GitHub releases by @gricha in #234
- (code-review) Calibrate config severity by @dcramer in [#319](https://github.com/getsentry/warden/pull/...
0.30.0
New Features ✨
Action
- Support org base configs with repo overlays by @dcramer in #279
- Write structured findings JSON and expose as output by @gricha in #233
Cli
- Add @file target lists by @dcramer in #316
- Build generated skills from path targets by @dcramer in #282
- Add --staged flag and default to HEAD for uncommitted changes by @dcramer in #205
- Display confidence level in findings output by @dcramer in #194
- Always-on JSONL logging with repo-local log directory by @dcramer in #179
- Add --fail-fast flag to stop after first finding by @dcramer in #174
- Surface failure details for chunk analysis and finding extraction by @dcramer in #162
- Interactive fix step-through with y/n/a/s/q prompt by @dcramer in #161
Docs
- Improved landing visuals by @PickleNik in #245
- Add LLM content negotiation and llms.txt by @dcramer in #178
Runs
- Write chunk-level JSONL logs by @dcramer in #265
- Stream in-progress runs via 'warden runs follow' by @dcramer in #261
Sdk
- Add Pi runtime by @dcramer in #318
- Add finding verification pass by @dcramer in #290
- Store Claude SDK sessions in .warden/sessions/ by @dcramer in #193
Skills
- Add built-in code review skill by @dcramer in #298
- Add built-in security review skill by @dcramer in #292
- Consolidate warden-sweep into bundled scripts with prescribed reporting by @dcramer in #201
- Replace notseer with find-warden-bugs skill by @dcramer in #200
- Add warden-sweep skill and bundled skill installation by @dcramer in #196
- Add agent discovery alongside skills by @dcramer in #136
Sweep
- Add --skill flag to scan.py by @dcramer in #211
- Add master tracking issue for sweep PRs by @dcramer in #210
Telemetry
- Add skill and model attribution to metrics by @gricha in #231
- Add namespaced fix-eval feedback metrics by @dcramer in #229
- Add global scope attributes, run metric, and trace ID surfacing by @dcramer in #166
- Add input/output attributes to gen_ai spans by @dcramer in #142
- Add per-turn tracing for Claude Code SDK agent calls by @dcramer in #141
Other
- (config) Make auxiliary max retries configurable via defaults.auxiliaryMaxRetries by @dcramer in #175
- (dedup) Add intra-batch finding consolidation by @dcramer in #135
- (init) Add section-based output and interactive skill prompt by @dcramer in #182
- (o11y) Capture run failures in JSONL output by @dcramer in #259
- (output) Default to COMMENT instead of REQUEST_CHANGES on PRs by @dcramer in #137
- (runner) Global concurrency pool for file analyses by @dcramer in #158
- (skill-builder) Build generated repo-local skills by @dcramer in #280
- Add verification field and confidence filtering by @dcramer in #191
- Pnpm workspace monorepo with docs migration by @dcramer in #185
- Adopt dotagents for skill management by @dcramer in #168
- Cross-location finding merge by @dcramer in #148
- Add env vars to generated workflow and docs by @dcramer in #138
- Add Sentry observability (errors, tracing, metrics, structured logs) by @dcramer in #133
- Split failOn into independent requestChanges and failCheck controls by @dcramer in #129
Bug Fixes 🐛
Action
- Honor PR trigger parallelism by @dcramer in #325
- Preload Pi node-only providers by @dcramer in #324
- Validate Pi model selectors before execution by @dcramer in #321
- Correct fix evaluation verdict handling by @dcramer in #314
- Use relative findings output path by @dcramer in #289
- Handle missing warden.toml gracefully by @gricha in #235
- Thread maxContextFiles config through Action workflows by @dcramer in #216
Cli
- Label built-in skill sources by @dcramer in #294
- Report final per-file finding counts by @dcramer in #293
- Align local review diff context by @dcramer in #276
- Replace process.exit(130) with thrown error for graceful cleanup by @dcramer in #213
- Write --output file on auth error early exit by @dcramer in #214
- Normalize path separators in synthetic file changes by @dcramer in #217
- Exclude node_modules from gitignore file discovery by @dcramer in #220
- Collapse skipped files into a single count on Ctrl+C by @dcramer in #172
- Render warnings through Ink's Static component by @dcramer in #170
- Cap 'Other Files' list in prompts for CLI mode by @dcramer in #171
- Move completed files to Static to prevent flickering by @dcramer in #149
- Run all skills locally regardless of trigger type by @gricha in #145
- Resolve remote config for --skill flag by @dcramer in #130
Config
- Allow base configs to use built-in skills by @dcramer in #305
- Warn on duplicate layered skills by @dcramer in #304
- Add missing fields to TOML writer for config round-trip by @dcramer in #218
Output
- Render GitHub footers as muted text by @dcramer in #306
- List only successfully applied fixes in PR body by @dcramer in #219
- Use backticks instead of brackets in attribution footer by @dcramer in #197
Sdk
- Short-circuit repeated provider failures by @dcramer in #291
- Strip invalid suggested fixes from reports by @dcramer in #228
- Prevent Warden sessions from polluting Claude Code history by @dcramer in #202
- Handle EPIPE errors from Claude subprocess failures by @dcramer in #198
- Add verification checklist and Glob tool to reduce analysis hallucinations by @dcramer in #173
- Constrain skill findings to diff hunk line range by @dcramer in #151
Sweep
- Add self-validation to fix subagent prompt by @dcramer in #223
- Branch worktrees from default branch instead of HEAD by @dcramer in #221
Telemetry
- Fill finding analytics gaps by @dcramer in #311
- Align attributes with OTel semantics by @dcramer in #307
- Improve OTel GenAI semantic convention compliance by @dcramer in #140
- Fix missing Sentry traces and negative token costs by @dcramer in #139
Other
- (ci) Enable auto-generated changelogs for GitHub releases by @gricha in #234
- (code-review) Calibrate config severity by @dcramer in [#319](https://github.com/getsentry/warden/pull/...
0.29.1
New Features ✨
Action
- Support org base configs with repo overlays by @dcramer in #279
- Write structured findings JSON and expose as output by @gricha in #233
Cli
- Add @file target lists by @dcramer in #316
- Build generated skills from path targets by @dcramer in #282
- Add --staged flag and default to HEAD for uncommitted changes by @dcramer in #205
- Display confidence level in findings output by @dcramer in #194
- Always-on JSONL logging with repo-local log directory by @dcramer in #179
- Add --fail-fast flag to stop after first finding by @dcramer in #174
- Surface failure details for chunk analysis and finding extraction by @dcramer in #162
- Interactive fix step-through with y/n/a/s/q prompt by @dcramer in #161
Docs
- Improved landing visuals by @PickleNik in #245
- Add LLM content negotiation and llms.txt by @dcramer in #178
Runs
- Write chunk-level JSONL logs by @dcramer in #265
- Stream in-progress runs via 'warden runs follow' by @dcramer in #261
Sdk
- Add Pi runtime by @dcramer in #318
- Add finding verification pass by @dcramer in #290
- Store Claude SDK sessions in .warden/sessions/ by @dcramer in #193
Skills
- Add built-in code review skill by @dcramer in #298
- Add built-in security review skill by @dcramer in #292
- Consolidate warden-sweep into bundled scripts with prescribed reporting by @dcramer in #201
- Replace notseer with find-warden-bugs skill by @dcramer in #200
- Add warden-sweep skill and bundled skill installation by @dcramer in #196
- Add agent discovery alongside skills by @dcramer in #136
Sweep
- Add --skill flag to scan.py by @dcramer in #211
- Add master tracking issue for sweep PRs by @dcramer in #210
Telemetry
- Add skill and model attribution to metrics by @gricha in #231
- Add namespaced fix-eval feedback metrics by @dcramer in #229
- Add global scope attributes, run metric, and trace ID surfacing by @dcramer in #166
- Add input/output attributes to gen_ai spans by @dcramer in #142
- Add per-turn tracing for Claude Code SDK agent calls by @dcramer in #141
Other
- (config) Make auxiliary max retries configurable via defaults.auxiliaryMaxRetries by @dcramer in #175
- (dedup) Add intra-batch finding consolidation by @dcramer in #135
- (init) Add section-based output and interactive skill prompt by @dcramer in #182
- (o11y) Capture run failures in JSONL output by @dcramer in #259
- (output) Default to COMMENT instead of REQUEST_CHANGES on PRs by @dcramer in #137
- (runner) Global concurrency pool for file analyses by @dcramer in #158
- (skill-builder) Build generated repo-local skills by @dcramer in #280
- Add verification field and confidence filtering by @dcramer in #191
- Pnpm workspace monorepo with docs migration by @dcramer in #185
- Adopt dotagents for skill management by @dcramer in #168
- Cross-location finding merge by @dcramer in #148
- Add env vars to generated workflow and docs by @dcramer in #138
- Add Sentry observability (errors, tracing, metrics, structured logs) by @dcramer in #133
- Split failOn into independent requestChanges and failCheck controls by @dcramer in #129
Bug Fixes 🐛
Action
- Validate Pi model selectors before execution by @dcramer in #321
- Correct fix evaluation verdict handling by @dcramer in #314
- Use relative findings output path by @dcramer in #289
- Handle missing warden.toml gracefully by @gricha in #235
- Thread maxContextFiles config through Action workflows by @dcramer in #216
Cli
- Label built-in skill sources by @dcramer in #294
- Report final per-file finding counts by @dcramer in #293
- Align local review diff context by @dcramer in #276
- Replace process.exit(130) with thrown error for graceful cleanup by @dcramer in #213
- Write --output file on auth error early exit by @dcramer in #214
- Normalize path separators in synthetic file changes by @dcramer in #217
- Exclude node_modules from gitignore file discovery by @dcramer in #220
- Collapse skipped files into a single count on Ctrl+C by @dcramer in #172
- Render warnings through Ink's Static component by @dcramer in #170
- Cap 'Other Files' list in prompts for CLI mode by @dcramer in #171
- Move completed files to Static to prevent flickering by @dcramer in #149
- Run all skills locally regardless of trigger type by @gricha in #145
- Resolve remote config for --skill flag by @dcramer in #130
Config
- Allow base configs to use built-in skills by @dcramer in #305
- Warn on duplicate layered skills by @dcramer in #304
- Add missing fields to TOML writer for config round-trip by @dcramer in #218
Output
- Render GitHub footers as muted text by @dcramer in #306
- List only successfully applied fixes in PR body by @dcramer in #219
- Use backticks instead of brackets in attribution footer by @dcramer in #197
Sdk
- Short-circuit repeated provider failures by @dcramer in #291
- Strip invalid suggested fixes from reports by @dcramer in #228
- Prevent Warden sessions from polluting Claude Code history by @dcramer in #202
- Handle EPIPE errors from Claude subprocess failures by @dcramer in #198
- Add verification checklist and Glob tool to reduce analysis hallucinations by @dcramer in #173
- Constrain skill findings to diff hunk line range by @dcramer in #151
Sweep
- Add self-validation to fix subagent prompt by @dcramer in #223
- Branch worktrees from default branch instead of HEAD by @dcramer in #221
Telemetry
- Fill finding analytics gaps by @dcramer in #311
- Align attributes with OTel semantics by @dcramer in #307
- Improve OTel GenAI semantic convention compliance by @dcramer in #140
- Fix missing Sentry traces and negative token costs by @dcramer in #139
Other
0.29.0
New Features ✨
Action
- Support org base configs with repo overlays by @dcramer in #279
- Write structured findings JSON and expose as output by @gricha in #233
Cli
- Add @file target lists by @dcramer in #316
- Build generated skills from path targets by @dcramer in #282
- Add --staged flag and default to HEAD for uncommitted changes by @dcramer in #205
- Display confidence level in findings output by @dcramer in #194
- Always-on JSONL logging with repo-local log directory by @dcramer in #179
- Add --fail-fast flag to stop after first finding by @dcramer in #174
- Surface failure details for chunk analysis and finding extraction by @dcramer in #162
- Interactive fix step-through with y/n/a/s/q prompt by @dcramer in #161
Docs
- Improved landing visuals by @PickleNik in #245
- Add LLM content negotiation and llms.txt by @dcramer in #178
Runs
- Write chunk-level JSONL logs by @dcramer in #265
- Stream in-progress runs via 'warden runs follow' by @dcramer in #261
Sdk
- Add Pi runtime by @dcramer in #318
- Add finding verification pass by @dcramer in #290
- Store Claude SDK sessions in .warden/sessions/ by @dcramer in #193
Skills
- Add built-in code review skill by @dcramer in #298
- Add built-in security review skill by @dcramer in #292
- Consolidate warden-sweep into bundled scripts with prescribed reporting by @dcramer in #201
- Replace notseer with find-warden-bugs skill by @dcramer in #200
- Add warden-sweep skill and bundled skill installation by @dcramer in #196
- Add agent discovery alongside skills by @dcramer in #136
Sweep
- Add --skill flag to scan.py by @dcramer in #211
- Add master tracking issue for sweep PRs by @dcramer in #210
Telemetry
- Add skill and model attribution to metrics by @gricha in #231
- Add namespaced fix-eval feedback metrics by @dcramer in #229
- Add global scope attributes, run metric, and trace ID surfacing by @dcramer in #166
- Add input/output attributes to gen_ai spans by @dcramer in #142
- Add per-turn tracing for Claude Code SDK agent calls by @dcramer in #141
Other
- (config) Make auxiliary max retries configurable via defaults.auxiliaryMaxRetries by @dcramer in #175
- (dedup) Add intra-batch finding consolidation by @dcramer in #135
- (init) Add section-based output and interactive skill prompt by @dcramer in #182
- (o11y) Capture run failures in JSONL output by @dcramer in #259
- (output) Default to COMMENT instead of REQUEST_CHANGES on PRs by @dcramer in #137
- (runner) Global concurrency pool for file analyses by @dcramer in #158
- (skill-builder) Build generated repo-local skills by @dcramer in #280
- Add verification field and confidence filtering by @dcramer in #191
- Pnpm workspace monorepo with docs migration by @dcramer in #185
- Adopt dotagents for skill management by @dcramer in #168
- Cross-location finding merge by @dcramer in #148
- Add env vars to generated workflow and docs by @dcramer in #138
- Add Sentry observability (errors, tracing, metrics, structured logs) by @dcramer in #133
- Split failOn into independent requestChanges and failCheck controls by @dcramer in #129
Bug Fixes 🐛
Action
- Correct fix evaluation verdict handling by @dcramer in #314
- Use relative findings output path by @dcramer in #289
- Handle missing warden.toml gracefully by @gricha in #235
- Thread maxContextFiles config through Action workflows by @dcramer in #216
Cli
- Label built-in skill sources by @dcramer in #294
- Report final per-file finding counts by @dcramer in #293
- Align local review diff context by @dcramer in #276
- Replace process.exit(130) with thrown error for graceful cleanup by @dcramer in #213
- Write --output file on auth error early exit by @dcramer in #214
- Normalize path separators in synthetic file changes by @dcramer in #217
- Exclude node_modules from gitignore file discovery by @dcramer in #220
- Collapse skipped files into a single count on Ctrl+C by @dcramer in #172
- Render warnings through Ink's Static component by @dcramer in #170
- Cap 'Other Files' list in prompts for CLI mode by @dcramer in #171
- Move completed files to Static to prevent flickering by @dcramer in #149
- Run all skills locally regardless of trigger type by @gricha in #145
- Resolve remote config for --skill flag by @dcramer in #130
Config
- Allow base configs to use built-in skills by @dcramer in #305
- Warn on duplicate layered skills by @dcramer in #304
- Add missing fields to TOML writer for config round-trip by @dcramer in #218
Output
- Render GitHub footers as muted text by @dcramer in #306
- List only successfully applied fixes in PR body by @dcramer in #219
- Use backticks instead of brackets in attribution footer by @dcramer in #197
Sdk
- Short-circuit repeated provider failures by @dcramer in #291
- Strip invalid suggested fixes from reports by @dcramer in #228
- Prevent Warden sessions from polluting Claude Code history by @dcramer in #202
- Handle EPIPE errors from Claude subprocess failures by @dcramer in #198
- Add verification checklist and Glob tool to reduce analysis hallucinations by @dcramer in #173
- Constrain skill findings to diff hunk line range by @dcramer in #151
Sweep
- Add self-validation to fix subagent prompt by @dcramer in #223
- Branch worktrees from default branch instead of HEAD by @dcramer in #221
Telemetry
- Fill finding analytics gaps by @dcramer in #311
- Align attributes with OTel semantics by @dcramer in #307
- Improve OTel GenAI semantic convention compliance by @dcramer in #140
- Fix missing Sentry traces and negative token costs by @dcramer in #139
Other
- (ci) Enable auto-generated changelogs for GitHub releases by @gricha in #234
- (code-review) Calibrate config severity by @dcramer in #319
- (evals) Update default model to claude-sonnet-4-6 by @dcramer in #163
- (o11y) Add gen_ai.request.model attribute by @obostjancic in #247
- (prepare) Skip files with zero content automatically by @dcramer in [#22...
0.28.0
New Features ✨
Action
- Support org base configs with repo overlays by @dcramer in #279
- Write structured findings JSON and expose as output by @gricha in #233
Cli
- Build generated skills from path targets by @dcramer in #282
- Add --staged flag and default to HEAD for uncommitted changes by @dcramer in #205
- Display confidence level in findings output by @dcramer in #194
- Always-on JSONL logging with repo-local log directory by @dcramer in #179
- Add --fail-fast flag to stop after first finding by @dcramer in #174
- Surface failure details for chunk analysis and finding extraction by @dcramer in #162
- Interactive fix step-through with y/n/a/s/q prompt by @dcramer in #161
Docs
- Improved landing visuals by @PickleNik in #245
- Add LLM content negotiation and llms.txt by @dcramer in #178
Runs
- Write chunk-level JSONL logs by @dcramer in #265
- Stream in-progress runs via 'warden runs follow' by @dcramer in #261
Sdk
- Add finding verification pass by @dcramer in #290
- Store Claude SDK sessions in .warden/sessions/ by @dcramer in #193
Skills
- Add built-in code review skill by @dcramer in #298
- Add built-in security review skill by @dcramer in #292
- Consolidate warden-sweep into bundled scripts with prescribed reporting by @dcramer in #201
- Replace notseer with find-warden-bugs skill by @dcramer in #200
- Add warden-sweep skill and bundled skill installation by @dcramer in #196
- Add agent discovery alongside skills by @dcramer in #136
Sweep
- Add --skill flag to scan.py by @dcramer in #211
- Add master tracking issue for sweep PRs by @dcramer in #210
Telemetry
- Add skill and model attribution to metrics by @gricha in #231
- Add namespaced fix-eval feedback metrics by @dcramer in #229
- Add global scope attributes, run metric, and trace ID surfacing by @dcramer in #166
- Add input/output attributes to gen_ai spans by @dcramer in #142
- Add per-turn tracing for Claude Code SDK agent calls by @dcramer in #141
Other
- (config) Make auxiliary max retries configurable via defaults.auxiliaryMaxRetries by @dcramer in #175
- (dedup) Add intra-batch finding consolidation by @dcramer in #135
- (init) Add section-based output and interactive skill prompt by @dcramer in #182
- (o11y) Capture run failures in JSONL output by @dcramer in #259
- (output) Default to COMMENT instead of REQUEST_CHANGES on PRs by @dcramer in #137
- (runner) Global concurrency pool for file analyses by @dcramer in #158
- (skill-builder) Build generated repo-local skills by @dcramer in #280
- Add verification field and confidence filtering by @dcramer in #191
- Pnpm workspace monorepo with docs migration by @dcramer in #185
- Adopt dotagents for skill management by @dcramer in #168
- Cross-location finding merge by @dcramer in #148
- Add env vars to generated workflow and docs by @dcramer in #138
- Add Sentry observability (errors, tracing, metrics, structured logs) by @dcramer in #133
- Split failOn into independent requestChanges and failCheck controls by @dcramer in #129
Bug Fixes 🐛
Action
- Correct fix evaluation verdict handling by @dcramer in #314
- Use relative findings output path by @dcramer in #289
- Handle missing warden.toml gracefully by @gricha in #235
- Thread maxContextFiles config through Action workflows by @dcramer in #216
Cli
- Label built-in skill sources by @dcramer in #294
- Report final per-file finding counts by @dcramer in #293
- Align local review diff context by @dcramer in #276
- Replace process.exit(130) with thrown error for graceful cleanup by @dcramer in #213
- Write --output file on auth error early exit by @dcramer in #214
- Normalize path separators in synthetic file changes by @dcramer in #217
- Exclude node_modules from gitignore file discovery by @dcramer in #220
- Collapse skipped files into a single count on Ctrl+C by @dcramer in #172
- Render warnings through Ink's Static component by @dcramer in #170
- Cap 'Other Files' list in prompts for CLI mode by @dcramer in #171
- Move completed files to Static to prevent flickering by @dcramer in #149
- Run all skills locally regardless of trigger type by @gricha in #145
- Resolve remote config for --skill flag by @dcramer in #130
Config
- Allow base configs to use built-in skills by @dcramer in #305
- Warn on duplicate layered skills by @dcramer in #304
- Add missing fields to TOML writer for config round-trip by @dcramer in #218
Output
- Render GitHub footers as muted text by @dcramer in #306
- List only successfully applied fixes in PR body by @dcramer in #219
- Use backticks instead of brackets in attribution footer by @dcramer in #197
Sdk
- Short-circuit repeated provider failures by @dcramer in #291
- Strip invalid suggested fixes from reports by @dcramer in #228
- Prevent Warden sessions from polluting Claude Code history by @dcramer in #202
- Handle EPIPE errors from Claude subprocess failures by @dcramer in #198
- Add verification checklist and Glob tool to reduce analysis hallucinations by @dcramer in #173
- Constrain skill findings to diff hunk line range by @dcramer in #151
Sweep
- Add self-validation to fix subagent prompt by @dcramer in #223
- Branch worktrees from default branch instead of HEAD by @dcramer in #221
Telemetry
- Fill finding analytics gaps by @dcramer in #311
- Align attributes with OTel semantics by @dcramer in #307
- Improve OTel GenAI semantic convention compliance by @dcramer in #140
- Fix missing Sentry traces and negative token costs by @dcramer in #139
Other
- (ci) Enable auto-generated changelogs for GitHub releases by @gricha in #234
- (evals) Update default model to claude-sonnet-4-6 by @dcramer in #163
- (o11y) Add gen_ai.request.model attribute by @obostjancic in #247
- (prepare) Skip files with zero content automatically by @dcramer in #226
- (review) Preserve active Warden threads by @dcramer in #272
- (reviews) Compact inline finding comments by @dcramer in #315
- (sentry) Tag ac...
0.27.0
New Features ✨
Action
- Support org base configs with repo overlays by @dcramer in #279
- Write structured findings JSON and expose as output by @gricha in #233
Cli
- Build generated skills from path targets by @dcramer in #282
- Add --staged flag and default to HEAD for uncommitted changes by @dcramer in #205
- Display confidence level in findings output by @dcramer in #194
- Always-on JSONL logging with repo-local log directory by @dcramer in #179
- Add --fail-fast flag to stop after first finding by @dcramer in #174
- Surface failure details for chunk analysis and finding extraction by @dcramer in #162
- Interactive fix step-through with y/n/a/s/q prompt by @dcramer in #161
Docs
- Improved landing visuals by @PickleNik in #245
- Add LLM content negotiation and llms.txt by @dcramer in #178
Runs
- Write chunk-level JSONL logs by @dcramer in #265
- Stream in-progress runs via 'warden runs follow' by @dcramer in #261
Sdk
- Add finding verification pass by @dcramer in #290
- Store Claude SDK sessions in .warden/sessions/ by @dcramer in #193
Skills
- Add built-in code review skill by @dcramer in #298
- Add built-in security review skill by @dcramer in #292
- Consolidate warden-sweep into bundled scripts with prescribed reporting by @dcramer in #201
- Replace notseer with find-warden-bugs skill by @dcramer in #200
- Add warden-sweep skill and bundled skill installation by @dcramer in #196
- Add agent discovery alongside skills by @dcramer in #136
Sweep
- Add --skill flag to scan.py by @dcramer in #211
- Add master tracking issue for sweep PRs by @dcramer in #210
Telemetry
- Add skill and model attribution to metrics by @gricha in #231
- Add namespaced fix-eval feedback metrics by @dcramer in #229
- Add global scope attributes, run metric, and trace ID surfacing by @dcramer in #166
- Add input/output attributes to gen_ai spans by @dcramer in #142
- Add per-turn tracing for Claude Code SDK agent calls by @dcramer in #141
Other
- (config) Make auxiliary max retries configurable via defaults.auxiliaryMaxRetries by @dcramer in #175
- (dedup) Add intra-batch finding consolidation by @dcramer in #135
- (init) Add section-based output and interactive skill prompt by @dcramer in #182
- (o11y) Capture run failures in JSONL output by @dcramer in #259
- (output) Default to COMMENT instead of REQUEST_CHANGES on PRs by @dcramer in #137
- (runner) Global concurrency pool for file analyses by @dcramer in #158
- (skill-builder) Build generated repo-local skills by @dcramer in #280
- Add verification field and confidence filtering by @dcramer in #191
- Pnpm workspace monorepo with docs migration by @dcramer in #185
- Adopt dotagents for skill management by @dcramer in #168
- Cross-location finding merge by @dcramer in #148
- Add env vars to generated workflow and docs by @dcramer in #138
- Add Sentry observability (errors, tracing, metrics, structured logs) by @dcramer in #133
- Split failOn into independent requestChanges and failCheck controls by @dcramer in #129
Bug Fixes 🐛
Action
- Use relative findings output path by @dcramer in #289
- Handle missing warden.toml gracefully by @gricha in #235
- Thread maxContextFiles config through Action workflows by @dcramer in #216
Cli
- Label built-in skill sources by @dcramer in #294
- Report final per-file finding counts by @dcramer in #293
- Align local review diff context by @dcramer in #276
- Replace process.exit(130) with thrown error for graceful cleanup by @dcramer in #213
- Write --output file on auth error early exit by @dcramer in #214
- Normalize path separators in synthetic file changes by @dcramer in #217
- Exclude node_modules from gitignore file discovery by @dcramer in #220
- Collapse skipped files into a single count on Ctrl+C by @dcramer in #172
- Render warnings through Ink's Static component by @dcramer in #170
- Cap 'Other Files' list in prompts for CLI mode by @dcramer in #171
- Move completed files to Static to prevent flickering by @dcramer in #149
- Run all skills locally regardless of trigger type by @gricha in #145
- Resolve remote config for --skill flag by @dcramer in #130
Config
- Allow base configs to use built-in skills by @dcramer in #305
- Warn on duplicate layered skills by @dcramer in #304
- Add missing fields to TOML writer for config round-trip by @dcramer in #218
Output
- Render GitHub footers as muted text by @dcramer in #306
- List only successfully applied fixes in PR body by @dcramer in #219
- Use backticks instead of brackets in attribution footer by @dcramer in #197
Sdk
- Short-circuit repeated provider failures by @dcramer in #291
- Strip invalid suggested fixes from reports by @dcramer in #228
- Prevent Warden sessions from polluting Claude Code history by @dcramer in #202
- Handle EPIPE errors from Claude subprocess failures by @dcramer in #198
- Add verification checklist and Glob tool to reduce analysis hallucinations by @dcramer in #173
- Constrain skill findings to diff hunk line range by @dcramer in #151
Sweep
- Add self-validation to fix subagent prompt by @dcramer in #223
- Branch worktrees from default branch instead of HEAD by @dcramer in #221
Telemetry
- Fill finding analytics gaps by @dcramer in #311
- Align attributes with OTel semantics by @dcramer in #307
- Improve OTel GenAI semantic convention compliance by @dcramer in #140
- Fix missing Sentry traces and negative token costs by @dcramer in #139
Other
- (ci) Enable auto-generated changelogs for GitHub releases by @gricha in #234
- (evals) Update default model to claude-sonnet-4-6 by @dcramer in #163
- (o11y) Add gen_ai.request.model attribute by @obostjancic in #247
- (prepare) Skip files with zero content automatically by @dcramer in #226
- (review) Preserve active Warden threads by @dcramer in #272
- (sentry) Tag action errors with repository by @dcramer in #303
- (skill-builder) Stabilize generated skill authoring by @dcramer in #284
- (s...
0.26.2
New Features ✨
Action
- Support org base configs with repo overlays by @dcramer in #279
- Write structured findings JSON and expose as output by @gricha in #233
Cli
- Build generated skills from path targets by @dcramer in #282
- Add --staged flag and default to HEAD for uncommitted changes by @dcramer in #205
- Display confidence level in findings output by @dcramer in #194
- Always-on JSONL logging with repo-local log directory by @dcramer in #179
- Add --fail-fast flag to stop after first finding by @dcramer in #174
- Surface failure details for chunk analysis and finding extraction by @dcramer in #162
- Interactive fix step-through with y/n/a/s/q prompt by @dcramer in #161
Docs
- Improved landing visuals by @PickleNik in #245
- Add LLM content negotiation and llms.txt by @dcramer in #178
Runs
- Write chunk-level JSONL logs by @dcramer in #265
- Stream in-progress runs via 'warden runs follow' by @dcramer in #261
Sdk
- Add finding verification pass by @dcramer in #290
- Store Claude SDK sessions in .warden/sessions/ by @dcramer in #193
Skills
- Add built-in code review skill by @dcramer in #298
- Add built-in security review skill by @dcramer in #292
- Consolidate warden-sweep into bundled scripts with prescribed reporting by @dcramer in #201
- Replace notseer with find-warden-bugs skill by @dcramer in #200
- Add warden-sweep skill and bundled skill installation by @dcramer in #196
- Add agent discovery alongside skills by @dcramer in #136
Sweep
- Add --skill flag to scan.py by @dcramer in #211
- Add master tracking issue for sweep PRs by @dcramer in #210
Telemetry
- Add skill and model attribution to metrics by @gricha in #231
- Add namespaced fix-eval feedback metrics by @dcramer in #229
- Add global scope attributes, run metric, and trace ID surfacing by @dcramer in #166
- Add input/output attributes to gen_ai spans by @dcramer in #142
- Add per-turn tracing for Claude Code SDK agent calls by @dcramer in #141
Other
- (config) Make auxiliary max retries configurable via defaults.auxiliaryMaxRetries by @dcramer in #175
- (dedup) Add intra-batch finding consolidation by @dcramer in #135
- (init) Add section-based output and interactive skill prompt by @dcramer in #182
- (o11y) Capture run failures in JSONL output by @dcramer in #259
- (output) Default to COMMENT instead of REQUEST_CHANGES on PRs by @dcramer in #137
- (runner) Global concurrency pool for file analyses by @dcramer in #158
- (skill-builder) Build generated repo-local skills by @dcramer in #280
- Add verification field and confidence filtering by @dcramer in #191
- Pnpm workspace monorepo with docs migration by @dcramer in #185
- Adopt dotagents for skill management by @dcramer in #168
- Cross-location finding merge by @dcramer in #148
- Add env vars to generated workflow and docs by @dcramer in #138
- Add Sentry observability (errors, tracing, metrics, structured logs) by @dcramer in #133
- Split failOn into independent requestChanges and failCheck controls by @dcramer in #129
Bug Fixes 🐛
Action
- Use relative findings output path by @dcramer in #289
- Handle missing warden.toml gracefully by @gricha in #235
- Thread maxContextFiles config through Action workflows by @dcramer in #216
Cli
- Label built-in skill sources by @dcramer in #294
- Report final per-file finding counts by @dcramer in #293
- Align local review diff context by @dcramer in #276
- Replace process.exit(130) with thrown error for graceful cleanup by @dcramer in #213
- Write --output file on auth error early exit by @dcramer in #214
- Normalize path separators in synthetic file changes by @dcramer in #217
- Exclude node_modules from gitignore file discovery by @dcramer in #220
- Collapse skipped files into a single count on Ctrl+C by @dcramer in #172
- Render warnings through Ink's Static component by @dcramer in #170
- Cap 'Other Files' list in prompts for CLI mode by @dcramer in #171
- Move completed files to Static to prevent flickering by @dcramer in #149
- Run all skills locally regardless of trigger type by @gricha in #145
- Resolve remote config for --skill flag by @dcramer in #130
Config
- Allow base configs to use built-in skills by @dcramer in #305
- Warn on duplicate layered skills by @dcramer in #304
- Add missing fields to TOML writer for config round-trip by @dcramer in #218
Output
- Render GitHub footers as muted text by @dcramer in #306
- List only successfully applied fixes in PR body by @dcramer in #219
- Use backticks instead of brackets in attribution footer by @dcramer in #197
Sdk
- Short-circuit repeated provider failures by @dcramer in #291
- Strip invalid suggested fixes from reports by @dcramer in #228
- Prevent Warden sessions from polluting Claude Code history by @dcramer in #202
- Handle EPIPE errors from Claude subprocess failures by @dcramer in #198
- Add verification checklist and Glob tool to reduce analysis hallucinations by @dcramer in #173
- Constrain skill findings to diff hunk line range by @dcramer in #151
Sweep
- Add self-validation to fix subagent prompt by @dcramer in #223
- Branch worktrees from default branch instead of HEAD by @dcramer in #221
Telemetry
- Improve OTel GenAI semantic convention compliance by @dcramer in #140
- Fix missing Sentry traces and negative token costs by @dcramer in #139
Other
- (ci) Enable auto-generated changelogs for GitHub releases by @gricha in #234
- (evals) Update default model to claude-sonnet-4-6 by @dcramer in #163
- (o11y) Add gen_ai.request.model attribute by @obostjancic in #247
- (prepare) Skip files with zero content automatically by @dcramer in #226
- (review) Preserve active Warden threads by @dcramer in #272
- (sentry) Tag action errors with repository by @dcramer in #303
- (skill-builder) Stabilize generated skill authoring by @dcramer in #284
- (skills) Support private repos in
warden add --remoteby @dcramer in #187 - (usage) Normalize inputTokens to include cached and cache-write tokens by @vgrozd...
0.26.1
New Features ✨
Action
- Support org base configs with repo overlays by @dcramer in #279
- Write structured findings JSON and expose as output by @gricha in #233
Cli
- Build generated skills from path targets by @dcramer in #282
- Add --staged flag and default to HEAD for uncommitted changes by @dcramer in #205
- Display confidence level in findings output by @dcramer in #194
- Always-on JSONL logging with repo-local log directory by @dcramer in #179
- Add --fail-fast flag to stop after first finding by @dcramer in #174
- Surface failure details for chunk analysis and finding extraction by @dcramer in #162
- Interactive fix step-through with y/n/a/s/q prompt by @dcramer in #161
Docs
- Improved landing visuals by @PickleNik in #245
- Add LLM content negotiation and llms.txt by @dcramer in #178
Runs
- Write chunk-level JSONL logs by @dcramer in #265
- Stream in-progress runs via 'warden runs follow' by @dcramer in #261
Sdk
- Add finding verification pass by @dcramer in #290
- Store Claude SDK sessions in .warden/sessions/ by @dcramer in #193
Skills
- Add built-in code review skill by @dcramer in #298
- Add built-in security review skill by @dcramer in #292
- Consolidate warden-sweep into bundled scripts with prescribed reporting by @dcramer in #201
- Replace notseer with find-warden-bugs skill by @dcramer in #200
- Add warden-sweep skill and bundled skill installation by @dcramer in #196
- Add agent discovery alongside skills by @dcramer in #136
Sweep
- Add --skill flag to scan.py by @dcramer in #211
- Add master tracking issue for sweep PRs by @dcramer in #210
Telemetry
- Add skill and model attribution to metrics by @gricha in #231
- Add namespaced fix-eval feedback metrics by @dcramer in #229
- Add global scope attributes, run metric, and trace ID surfacing by @dcramer in #166
- Add input/output attributes to gen_ai spans by @dcramer in #142
- Add per-turn tracing for Claude Code SDK agent calls by @dcramer in #141
Other
- (config) Make auxiliary max retries configurable via defaults.auxiliaryMaxRetries by @dcramer in #175
- (dedup) Add intra-batch finding consolidation by @dcramer in #135
- (init) Add section-based output and interactive skill prompt by @dcramer in #182
- (o11y) Capture run failures in JSONL output by @dcramer in #259
- (output) Default to COMMENT instead of REQUEST_CHANGES on PRs by @dcramer in #137
- (runner) Global concurrency pool for file analyses by @dcramer in #158
- (skill-builder) Build generated repo-local skills by @dcramer in #280
- Add verification field and confidence filtering by @dcramer in #191
- Pnpm workspace monorepo with docs migration by @dcramer in #185
- Adopt dotagents for skill management by @dcramer in #168
- Cross-location finding merge by @dcramer in #148
- Add env vars to generated workflow and docs by @dcramer in #138
- Add Sentry observability (errors, tracing, metrics, structured logs) by @dcramer in #133
- Split failOn into independent requestChanges and failCheck controls by @dcramer in #129
Bug Fixes 🐛
Action
- Use relative findings output path by @dcramer in #289
- Handle missing warden.toml gracefully by @gricha in #235
- Thread maxContextFiles config through Action workflows by @dcramer in #216
Cli
- Label built-in skill sources by @dcramer in #294
- Report final per-file finding counts by @dcramer in #293
- Align local review diff context by @dcramer in #276
- Replace process.exit(130) with thrown error for graceful cleanup by @dcramer in #213
- Write --output file on auth error early exit by @dcramer in #214
- Normalize path separators in synthetic file changes by @dcramer in #217
- Exclude node_modules from gitignore file discovery by @dcramer in #220
- Collapse skipped files into a single count on Ctrl+C by @dcramer in #172
- Render warnings through Ink's Static component by @dcramer in #170
- Cap 'Other Files' list in prompts for CLI mode by @dcramer in #171
- Move completed files to Static to prevent flickering by @dcramer in #149
- Run all skills locally regardless of trigger type by @gricha in #145
- Resolve remote config for --skill flag by @dcramer in #130
Config
- Allow base configs to use built-in skills by @dcramer in #305
- Warn on duplicate layered skills by @dcramer in #304
- Add missing fields to TOML writer for config round-trip by @dcramer in #218
Output
- List only successfully applied fixes in PR body by @dcramer in #219
- Use backticks instead of brackets in attribution footer by @dcramer in #197
Sdk
- Short-circuit repeated provider failures by @dcramer in #291
- Strip invalid suggested fixes from reports by @dcramer in #228
- Prevent Warden sessions from polluting Claude Code history by @dcramer in #202
- Handle EPIPE errors from Claude subprocess failures by @dcramer in #198
- Add verification checklist and Glob tool to reduce analysis hallucinations by @dcramer in #173
- Constrain skill findings to diff hunk line range by @dcramer in #151
Sweep
- Add self-validation to fix subagent prompt by @dcramer in #223
- Branch worktrees from default branch instead of HEAD by @dcramer in #221
Telemetry
- Improve OTel GenAI semantic convention compliance by @dcramer in #140
- Fix missing Sentry traces and negative token costs by @dcramer in #139
Other
- (ci) Enable auto-generated changelogs for GitHub releases by @gricha in #234
- (evals) Update default model to claude-sonnet-4-6 by @dcramer in #163
- (o11y) Add gen_ai.request.model attribute by @obostjancic in #247
- (prepare) Skip files with zero content automatically by @dcramer in #226
- (review) Preserve active Warden threads by @dcramer in #272
- (sentry) Tag action errors with repository by @dcramer in #303
- (skill-builder) Stabilize generated skill authoring by @dcramer in #284
- (skills) Support private repos in
warden add --remoteby @dcramer in #187 - (usage) Normalize inputTokens to include cached and cache-write tokens by @vgrozdanic in #143
- Preserve interrupted findings and parse run...