Cha
1.7.0 - 2026-04-23
v1.7.0
Apr 23 2026 at 15:12 UTC
Added
cha analyze --top Nflag — show only the N most severe findings (terminal format), complements--all- Smell-level disable:
disabled_smells = ["smell_name"]in.cha.toml(global) or under[languages.<lang>](language-scoped). Finer-grained than disabling a whole plugin when it produces multiple smells Plugin::smells()— plugins declare whichsmell_namevalues they can produce. Exposed as a WIT export for WASM pluginscha plugin listnow shows each plugin's declared smellscha preset show <lang>now shows effective disabled smells- SDK helper
cha_plugin_sdk::is_smell_disabled!(&input.options, "smell_name")— WASM plugins can skip disabled work proactively
Changed
- C/C++ builtin profile:
builder_pattern,null_object_pattern,strategy_pattern,data_clumpsare now properly disabled via smell-level config (previously tried — and failed — to disable them by plugin name) - WIT
analyzerworld gainssmells: func() -> list<string>export — breaking change for WASM plugins (recompile to pick up default impl)
Fixed
- lvgl-scale improvement: analyze now emits ~1200 fewer false positives because smell-level disables actually take effect