Skip to content

Releases: getsentry/warden

0.32.0

19 May 22:02

Choose a tag to compare

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

  • (release) Create source tags before artifact tags by @dcramer in #328

0.31.1

19 May 22:25

Choose a tag to compare

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

  • (release) Create source tags before artifact tags by @dcramer in #328

0.31.0

17 May 04:39

Choose a tag to compare

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

Runs

Sdk

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

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

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

Read more

0.30.0

15 May 17:55

Choose a tag to compare

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

Runs

Sdk

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

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

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

Read more

0.29.1

14 May 23:25

Choose a tag to compare

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

Runs

Sdk

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

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

  • (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](https...
Read more

0.29.0

14 May 22:22

Choose a tag to compare

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

Runs

Sdk

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

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...
Read more

0.28.0

12 May 23:50

Choose a tag to compare

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

Runs

Sdk

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

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...
Read more

0.27.0

12 May 00:03

Choose a tag to compare

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

Runs

Sdk

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

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...
Read more

0.26.2

09 May 01:03

Choose a tag to compare

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

Runs

Sdk

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

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 --remote by @dcramer in #187
  • (usage) Normalize inputTokens to include cached and cache-write tokens by @vgrozd...
Read more

0.26.1

08 May 23:37

Choose a tag to compare

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

Runs

Sdk

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

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 --remote by @dcramer in #187
  • (usage) Normalize inputTokens to include cached and cache-write tokens by @vgrozdanic in #143
  • Preserve interrupted findings and parse run...
Read more