@@ -5,104 +5,81 @@ All notable changes to RMA (Rust Monorepo Analyzer) will be documented in this f
55The format is based on [ Keep a Changelog] ( https://keepachangelog.com/en/1.1.0/ ) ,
66and this project adheres to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
77
8- ## [ 0.3.0 ] - 2026-01-31
8+ ## [ Unreleased ]
99
1010### Added
11+ - ** IDE Integrations** : VS Code extension, Neovim plugin, JetBrains plugin, Web Dashboard
12+ - ** Real-time Watch Mode** : WebSocket-based live updates with file system monitoring
13+ - ** Duplicate Function Detection** : ` generic/duplicate-function ` rule
14+ - ** Doctor Command** : ` rma doctor ` for installation health checks
15+ - ** PR Workflow Support** : ` --changed-only ` flag to only scan changed files
16+ - ** Release Drafter** : Auto-generate release notes from PRs
1117
12- - ** 8 New Security Rules** : Comprehensive vulnerability detection
13-
14- ** Rust-specific:**
15- - ` rust/transmute-used ` - Detects std::mem::transmute (type safety bypass)
16- - ` rust/raw-pointer-deref ` - Detects raw pointer dereferences
17- - ` rust/command-injection ` - Detects shell command execution patterns
18- - ` rust/sql-injection ` - Detects SQL built with format!/string concatenation
19- - ` rust/unchecked-index ` - Detects direct array indexing without bounds check
20- - ` rust/path-traversal ` - Detects file paths with string interpolation
18+ ### Changed
19+ - Watch mode now has cleaner terminal output with proper raw mode handling
20+ - ` --no-initial-scan ` flag to skip initial directory scan in watch mode
21+ - Daemon shows dashboard URL on startup
2122
22- ** Generic (all languages):**
23- - ` generic/hardcoded-secret ` - Detects API keys, AWS keys, GitHub tokens, private keys
24- - ` generic/insecure-crypto ` - Detects MD5, SHA-1, DES, RC4, ECB mode usage
23+ ## [ 0.6.0] - 2026-02-01
2524
26- - ** Automatic Homebrew Updates** : New workflow auto-updates tap on release
27- - ` .github/workflows/update-homebrew-tap.yml `
28- - Computes SHA256 hashes automatically
29- - Supports macOS + Linux (Intel + ARM)
25+ ### Added
26+ - WebSocket endpoint for real-time file watching (` /ws/watch ` )
27+ - Web dashboard for browser-based monitoring
28+ - Initial scan on watch mode startup
29+ - Interactive keyboard shortcuts in watch mode (q/c/r/s/e/p/?)
3030
3131### Changed
32+ - Categorized rules into high-confidence sinks vs review hints
33+ - Reduced false positives in security rules
3234
33- - Total security rules: 19 (was 11)
34- - Secret detection now redacts sensitive values in output
35- - Detection code patterns are automatically skipped to reduce false positives
35+ ### Fixed
36+ - Clippy warnings for Rust 2024 edition
37+ - Normalized file paths in SARIF and GitHub output
3638
37- ## [ 0.2 .0] - 2026-02-01
39+ ## [ 0.5 .0] - 2026-01-31
3840
3941### Added
42+ - Rich diagnostics with code snippets and suggestions
43+ - GitHub Actions output format (` --format github ` )
4044
41- - ** Config Versioning** : Added ` config_version = 1 ` to rma.toml for future compatibility
42- - Validates version on load, warns if missing, errors on unsupported versions
43-
44- - ** Stable Fingerprints** : New fingerprinting system for baseline comparisons
45- - Survives line number changes, whitespace changes, path format differences
46- - SHA-256 based with normalized inputs
47-
48- - ** Rulesets** : Named groups of rules for targeted scanning
49- - Built-in: ` security ` , ` maintainability `
50- - Custom rulesets via ` [rulesets] ` in rma.toml
51- - CLI: ` --ruleset security `
52-
53- - ** Inline Suppression** : Suppress findings with comments
54- - ` // rma-ignore-next-line <rule_id> reason="..." `
55- - ` // rma-ignore <rule_id> reason="..." ` (block-level)
56- - Python: ` # rma-ignore-next-line <rule_id> reason="..." `
57- - Strict profile requires reason
58-
59- - ** Print Effective Config** : ` rma config print-effective [--format json] `
60- - Shows resolved configuration with precedence tracking
61- - Displays where each value comes from (default, config-file, cli-flag)
62-
63- - ** Timer String Rule** : New ` js/timer-string-eval ` rule
64- - Only flags setTimeout/setInterval with string arguments
65- - Arrow functions, function references are NOT flagged
66- - Default severity: Warning (not Critical)
67-
68- - ** GitHub Actions** : Composite action and reusable workflow
69- - ` .github/actions/rma-scan/action.yml `
70- - ` .github/workflows/rma-scan-reusable.yml `
71- - Automatic SARIF upload to GitHub Security tab
72-
73- - ** New CLI Flags** :
74- - ` --ruleset <name> ` - Use specific ruleset
75- - ` --include-suppressed ` - Include suppressed findings
76- - ` --baseline-mode ` - Only report new findings
45+ ### Fixed
46+ - Clippy warnings for Rust 2024 if-let chains
7747
78- ### Changed
48+ ## [ 0.4.0 ] - 2026-01-31
7949
80- - ** Edition 2024** : Updated Rust edition from 2021 to 2024
81- - ** js/dynamic-code-execution** : Now only flags ` eval() ` and ` Function() ` , not timers
50+ ### Added
51+ - SARIF output improvements
52+ - Better error messages
8253
83- ### Fixed
54+ ## [ 0.3.0 ] - 2026-01-31
8455
85- - Timer rule false positives for normal setTimeout/setInterval usage
86- - Config precedence now correctly applies CLI > config file > defaults
56+ ### Added
57+ - 8 new security rules for Rust, JS/TS, Python, Go, Java
58+ - Automatic Homebrew tap update workflow
59+ - Secret detection (API keys, AWS keys, GitHub tokens, private keys)
60+ - Insecure crypto detection (MD5, SHA-1, DES, RC4, ECB)
8761
88- ## [ 0.1.1 ] - 2025-12-15
62+ ## [ 0.2.0 ] - 2026-01-31
8963
9064### Added
91- - Initial GitHub release with pre-built binaries
92- - Docker images on GHCR
93- - Homebrew tap
65+ - Config versioning (` config_version = 1 ` )
66+ - Stable fingerprints for baseline comparisons
67+ - Rulesets (security, maintainability)
68+ - Inline suppression (` // rma-ignore-next-line ` )
69+ - GitHub Actions integration
70+ - Timer string rule for JS
71+
72+ ### Changed
73+ - Updated to Rust edition 2024
9474
95- ## [ 0.1.0] - 2025-12-01
75+ ## [ 0.1.0] - 2026-01-31
9676
9777### Added
9878- Initial release
9979- Multi-language support: Rust, JavaScript, TypeScript, Python, Go, Java
100- - 10+ security and code quality rules
80+ - Security and code quality rules
10181- SARIF output for GitHub Security tab
10282- Watch mode for real-time analysis
10383- HTTP API daemon
104- - WASM plugin system
105- - AI-powered analysis (optional)
10684- Configuration via rma.toml
10785- Profiles: fast, balanced, strict
108- - Baseline tracking for legacy code
0 commit comments