Skip to content

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.3.0 - 2026-08-31

Breaking Changes

  • style: Consolidate naming-convention rules into the style engine (#258) by @santosr2

CI/CD

  • release: Re-release existing tags and bump goreleaser to v2.16.0 (#250) by @santosr2
  • release: Fix downstream release jobs and stop alias-tag loop (#251) by @santosr2

Dependencies

Documentation

Fixed

  • ci: Sign releases from the tag ref, not the dispatching branch (#280) by @Marukome0743

VS Code Extension

  • Refresh bun.lock to pull patched transitive deps (#283) by @santosr2

0.2.0 - 2026-07-22

Added

  • plugins: Integrate plugin rules into style and lint engines (#93) by @santosr2
  • plugins: Add block_types, forbidden_attributes, and attribute_patterns to YAML rules (#94) by @santosr2
  • Add cache config and LSP engine toggles (#95) by @santosr2
  • cli: Add --exclude flag for glob-based file filtering (#98) by @santosr2
  • engines: Add suppression annotation support (#99) by @santosr2
  • cli: Add --no-recurse flag for non-recursive scanning (#100) by @santosr2
  • cli: Add --absolute-paths flag for absolute file paths in output (#101) by @santosr2
  • lsp: Add debouncing, config watching, and comprehensive tests (d021dc9) by @santosr2
  • cli: Improve fmt command config handling and add tests (2af065d) by @santosr2
  • sdk: Add exit codes, config redesign, and CLI integration (5106349) by @santosr2
  • Cli UX improvements and config redesign (#120) by @santosr2
  • style: Detect fix loops via content hashing (#143) by @santosr2
  • sdk: Add Finding.IsDiff for diff-as-message routing (#144) by @santosr2
  • engines: Preserve original file permissions on fmt and style writes (#145) by @santosr2
  • cli: Add --no-parallel flag to check command (#146) by @santosr2
  • fmt: Structured output mode + diff-color polish (#153) by @santosr2
  • fmt: Indent --check --diff output and add unformatted-file summary (#158) by @santosr2
  • plugins: Scaffold .gitignore and tidy target in plugins init (f7cea97) by @santosr2
  • cst: Add concrete syntax tree package for structural fixes (#183) by @santosr2
  • style: Add terragrunt-include-first rule on top of CST (#197) by @santosr2

Breaking Changes

  • Clarify Fixer tie-break, WholeFileEdit caveat, breaking-change parsers (a1d5a80) by @santosr2

CI/CD

  • Expand workflow coverage with container and precommit tests (7e82de2) by @santosr2
  • Fix workflow failures in container tests and pre-commit (298577b) by @santosr2
  • fuzz: Make fuzz workflow label-triggered with PR comments (d8d5a99) by @santosr2
  • vscode: Allow Dependabot PRs to regenerate bun.lockb (#119) by @santosr2
  • Float Go version to 1.26.x with check-latest (#170) by @santosr2
  • vscode: Push dependabot lockfile update to PR branch (#181) by @santosr2
  • vscode: Check out branch head for dependabot lockfile commit (#182) by @santosr2
  • fuzz,benchmark: Scope pull-requests: write to job level (#209) by @santosr2
  • pip: Hash-pin installs and add dependabot ecosystem (#216) by @santosr2
  • security: Run SAST on all pushes and PRs (#220) by @santosr2
  • Harden scorecard concurrency and document test cache choice (#221) by @santosr2
  • release: Use gh auth setup-git for changelog and tag pushes (#242) by @santosr2
  • Publish the VS Code extension from the release workflow (84369a0) by @santosr2
  • action: Float Go version to 1.26.x (c01d91a) by @santosr2

Changed

  • sdk: Redesign Context with embedded context.Context (#86) by @santosr2
  • sdk: Replace hcl.Range with sdk.Location (#87) by @santosr2
  • sdk: Replace FixFunc closure with FixResult struct (#88) by @santosr2
  • sdk: Add Severity.Level() method (#89) by @santosr2
  • config: Add typed engine configs with ConfigFromEngine converters (#91) by @santosr2
  • config: Remove custom_rules in favor of overrides.rules (#92) by @santosr2
  • Improve code quality across core components (#107) by @santosr2
  • output: Ensure deterministic output and remove dead code (#108) by @santosr2
  • Code quality improvements and dead code removal (#109) by @santosr2
  • Test quality improvements and LSP fix (#111) by @santosr2
  • cli: Improve CLI UX and flag naming (#112) by @santosr2
  • style: Own Fixable signal in engine, dispatch fixes lazily (#140) by @santosr2
  • sdk: Replace Finding.Fix *FixResult with Fixable bool (#141) by @santosr2
  • style: Remove 16 no-op Fix methods from non-fixer rules (#142) by @santosr2
  • sdk: Return *FixResult with byte-range TextEdits from Fixer.Fix (684493a) by @santosr2
  • lsp: Aggregate format-fallback CodeActions (d31dae6) by @santosr2
  • sdk: Return byte-range TextEdits from Fixer.Fix (#166) by @santosr2
  • cst: Preserve nested-block indentation, drop dirty-walk (#184) by @santosr2
  • style: Rewrite depends-on-order Fix on top of CST (#190) by @santosr2
  • style: Rewrite ordering Fixes on top of CST (#191) by @santosr2
  • style: Rewrite provider-block-order Fix on top of CST (#192) by @santosr2
  • style: Rewrite attribute-group-spacing Fix on top of CST (#193) by @santosr2
  • style: Rewrite meta-arguments-order Fix on top of CST (#194) by @santosr2
  • style: Rewrite lifecycle-attribute-order Fix on top of CST (#195) by @santosr2
  • style: Drop unused pre-CST helpers and stale references (#196) by @santosr2
  • lsp,vscode: Remove dead on-save settings (#206) by @santosr2
  • style: Make snake_case explicit in naming case switch (#208) by @santosr2
  • Drop error returns from functions that never fail (#222) by @santosr2
  • Drop redundant wrappers over sdk file helpers (#225) by @santosr2
  • style: Unexport internal rule helpers (#226) by @santosr2
  • style: Rename rule files to describe their contents (#227) by @santosr2

Dependencies

Documentation

Fixed

  • Resolve 7 critical bugs across engines and CLI (#90) by @santosr2
  • ci: Update existing benchmark comment instead of creating new (#97) by @santosr2
  • output: Always include line:col in text formatter (e80468c) by @santosr2
  • style: Preserve comments during attribute reordering (#130) by @santosr2
  • cli: Make fmt and style diff flags work consistently (#131) by @santosr2
  • style: Improve rule accuracy, preserve comments and nested blocks (#151) by @santosr2
  • cli: Print error and exit 3 on missing target file (#159) by @santosr2
  • lsp: Use UTF-16 code units for Position.character (76d518d) by @santosr2
  • style: Make MetaArgumentsOrderRule.Fix a no-op on canonical input (d14e9d5) by @santosr2
  • style: Relocate tags above lifecycle when authored below (#185) by @santosr2
  • style: Preserve floating section comments on terraform-block reorder (#186) by @santosr2
  • style: Preserve leading comment on lifecycle reorder (#189) by @santosr2
  • docs: Close unclosed code fence + wire CST into project setup (#199) by @santosr2
  • config: Accumulate plugins.tags across imports (#224) by @santosr2
  • config: Fail on unset ${VAR:?} required environment variables (e8ae637) by @santosr2
  • action: Fail on tool errors and honor parallel:false (04ef99a) by @santosr2
  • release: Correct VS Code Marketplace link in release notes (c1b82ee) by @santosr2
  • ci: Smoke-test the published Homebrew formula, not the tag's (2b53ed8) by @santosr2
  • output: Use relative display path for JUnit testsuite name (cf11cd4) by @santosr2
  • release: Keep output-formats version strings tracking current_version (264f89e) by @santosr2
  • action: Upload SARIF results even when findings fail the run (28ea4f4) by @santosr2
  • plugins: Import pkg/plugins in the init scaffold and guide (52df705) by @santosr2

Other

VS Code Extension

  • Switch to pattern-based activation for extension compatibility (#110) by @santosr2
  • Add error handling and comprehensive test coverage (0da7bbd) by @santosr2
  • release: Decouple versioning and enhance action outputs (7e4142a) by @santosr2
  • Override undici to ^7.28.0 to clear transitive CVEs (#231) by @santosr2
  • Bump esbuild and override 7 transitive deps to clear CVEs (#232) by @santosr2
  • Override diff and serialize-javascript to clear CVEs (#238) by @santosr2
  • Regenerate lockfile to clear remaining transitive CVEs (#239) by @santosr2
  • Bump extension to 0.2.1 and pin moduleResolution for TypeScript 7 (dedf26c) by @santosr2

Build

0.2.0-alpha.4 - 2026-04-04

Added

  • plugins: Add YAML and Bash rule loaders with examples (#4) by @santosr2

CI/CD

  • release: Mark pre-releases as latest on GitHub (8f2a130) by @santosr2
  • Add dependabot and development utility scripts (#5) by @santosr2
  • Add permissions, timeouts, concurrency, and path filters to workflows (#35) by @santosr2
  • Fix injection risks, pin actions to SHAs, and harden Dockerfile (#36) by @santosr2
  • Add security scanning, quality checks, and pin mise tool versions (#38) by @santosr2
  • Add SBOM, cosign signing, attestations, and OpenSSF Scorecard (#39) by @santosr2
  • Improve release pipeline with shared version parsing, crane, and smoke tests (#40) by @santosr2
  • quality: Cache pre-commit hooks and skip branch guard in CI (#45) by @santosr2
  • Add PR title checker and standardize commit conventions (#51) by @santosr2

Changed

  • style: Remove documentation rules duplicated by lint engine (#3) by @santosr2
  • Consolidate duplicated utilities and standardize interface{} to any (#47) by @santosr2
  • sdk: Split Rule/Fixer interfaces, unify Engine, remove Context.Logger (#58) by @santosr2
  • build: Consolidate Makefile into mise tasks (#63) by @santosr2

Dependencies

Documentation

  • Update changelog for v0.2.0-alpha.3 (f188998) by @github-actions[bot]
  • Align documentation with actual implementation (#18) by @santosr2
  • Fix version refs, dead links, and missing output formats (#21) by @santosr2
  • Document style rules, commands, and output formats (#24) by @santosr2
  • Document config features, plugin system, and custom rules (#25) by @santosr2
  • Document policy rules, LSP capabilities, and test-rule format (#26) by @santosr2
  • Create 9 new documentation pages and enhance SDK godoc (#27) by @santosr2
  • Polish navigation, fix pre-commit hooks, and add clarifications (#28) by @santosr2
  • Fix 16 factual inaccuracies across documentation site (#29) by @santosr2
  • readme: Fix output examples, flag docs, and bumpversion coverage (#54) by @santosr2
  • Fix README inaccuracies, broken Homebrew install, and plugin template bug (#55) by @santosr2
  • Sync documentation with recent code changes (#57) by @santosr2
  • lint: Clarify TFLint subprocess integration and add license note (#67) by @santosr2

Fixed

  • Use dynamic version in LSP and fix plugin scaffold (#19) by @santosr2
  • Remove false claims, fix examples, and implement --diff flag (#23) by @santosr2
  • Replace os.Exit with error returns and consolidate SDK utilities (#46) by @santosr2
  • Add LSP write mutex, config cycle detection, and interface cleanup (#56) by @santosr2
  • Toolchain, LSP features, pre-commit hooks, and VSCode security (#60) by @santosr2
  • Docker, GitHub Actions, VSCode, and LSP audit fixes (#61) by @santosr2
  • lsp: Prevent path traversal attacks in URI handling (#68) by @santosr2
  • security: Harden code execution paths (#69) by @santosr2
  • security: Add input validation and error sanitization (#71) by @santosr2
  • release: Update bump-my-version config (#83) by @santosr2
  • release: Use cosign bundle format for signing (#85) by @santosr2

Other

  • dev: Upgrade to Go 1.26.1 and clean up dev tooling (#17) by @santosr2
  • Add Claude Code project instructions (#20) by @santosr2
  • Apply linter fixes and add plan dirs to gitignore (#22) by @santosr2
  • Improve community health templates and add status badges docs (#42) by @santosr2
  • Add CODEOWNERS, extract action script, optimize test matrix (#43) by @santosr2
  • Fix Scorecard URL casing and add branch protection hook (#44) by @santosr2
  • lint: Add golangci-lint config, fix security permissions and code findings (#62) by @santosr2
  • vscode: Add tests, fix LSP diagnostics, improve config handling (#66) by @santosr2
  • Harden CI/CD supply chain and add config enhancements (#72) by @santosr2

Performance

  • Add benchmarks for lint, policy, and output formatters (#59) by @santosr2

Revert

0.2.0-alpha.3 - 2026-01-19

Added

CI/CD

Documentation

Fixed

  • release: Improve changelog and add Docker alias tag updates (3426e86) by @santosr2
  • style: Preserve internal blank lines and re-run fmt after style fixes (9e76798) by @santosr2
  • cli: Fix color flag and add changelog links (b11560c) by @santosr2
  • cli: Apply global color flag to all commands (3f50fbb) by @santosr2
  • style: Preserve inline comments when reordering HCL attributes (#2) by @santosr2

0.2.0-alpha.2 - 2026-01-12

Added

CI/CD

Changed

Documentation

Fixed

Other

0.2.0-alpha - 2026-01-08

Added

Documentation

Fixed

  • test: Use --no-verify for git commits in tests (c50c7c4) by @santosr2
  • action: Use correct terratidy check command and consolidate actions (d2fbd98) by @santosr2
  • Correct changelog.md symlink path (46a2c09) by @santosr2
  • style: Exclude comments when counting blank lines between blocks (856224b) by @santosr2
  • version: Use Go build info for version when ldflags not set (cd91e0b) by @santosr2
  • action: Correct SARIF file path for working directory and output redirection (ddc9a1b) by @santosr2
  • action: Separate stdout and stderr for JSON/SARIF output formats (424e091) by @santosr2
  • action: Build from source when testing in terratidy repo (96e5484) by @santosr2
  • sarif: Ensure line/column numbers are at least 1 per SARIF spec (6dcf341) by @santosr2

Other

[0.1.0] - 2025-12-22

Added

Changed

Documentation

Fixed

Other