NOTES.md MARKDOWN 85 lines View on github.com → Search inside
1# scc 4.0.0 Release Notes23This is a major release. It bundles new modes of operation (MCP, git4processing), new cost/output models, broader language support, and a handful of5behavioural changes to flag parsing, language detection and config handling that6can produce different results than 3.7.0 for the same input  hence the major7version bump.89## ⚠️ Breaking / behavioural changes1011These can change scc's output or behaviour for an identical invocation against123.7.0. Review before upgrading in scripts/CI.1314- **Last duplicate flag now wins** (#723)  pflag parsing changed so that when a15  flag is supplied more than once on the command line, the last occurrence takes16  precedence. Scripts relying on the previous precedence may behave differently.17- **Linguist-inspired language detection** (#721)  files may now be classified18  as different languages than before, shifting per-language counts and the19  contents of JSON/CSV output.20- **Per-user and per-project config overrides** (#724)  scc now reads config21  overrides from user/project locations. A repository containing a config file22  will behave differently than under 3.7.0 for the same command.2324##  New features2526- **MCP server support** (#686)  run scc as a Model Context Protocol server over27  stdio (`--mcp`), exposing an `analyze` tool for programmatic/LLM consumers.28  Includes sorting/limit tuning and shared settings with the CLI path.29- **Git processing** (#707)  integrated git handling, with `gc` enabled for git30  operations and help text highlighting the git options.31- **LOCOMO  LLM Output Cost Model** (#682)  a new cost calculation aimed at32  estimating LLM output cost, with configurable cycles.33- **Infographic report output** (#709)  new report/infographic rendering.34- **Percentage outputs in JSON** (#720)  JSON output now includes percentage35  figures.36- **Codeberg support** (#866376f)  Codeberg as a supported badge/target.37- **External ignore files via `--ignore-file`**  supply additional gitignore-format38  ignore files from outside the scanned tree (repeatable, order-sensitive, anchored39  at the scan root; any in-tree `.gitignore`/`.ignore`/`.sccignore` takes precedence).40  Resolves the long-standing request for global/shared ignore support without scc41  shelling out to git  point it at `~/.config/git/ignore` directly, or set it once42  in a `.scc` file via `SCC_CONFIG_PATH`. Backed by `CustomIgnoreFiles` in gocodewalker.4344## 🗣 Language support4546- Linguist-inspired language detection (#721).47- New / updated languages: Mojo (#685), Zen C (#708), XHTML (#681),48  IEC61131-3 Siemens extensions (#702), Mog (#683), Phoenix LiveView fix (#722).49- Patch/diff: recognize `.diff` files as Patch (#705).50- Rust: count the `?` try operator toward complexity (#701).51- C/C++ language information updated (#691); CUDA updated (#693).52- New "move" classifier (#703).53- Python: prevent apostrophes in docstrings from breaking parsing (#695); extra54  docstring test coverage.5556## 🐛 Fixes5758- Fix potential MCP issue (a148002) and MCP settings/sorting/limit tweaks.59- Fix circular symlinks bug (#694).60- Catch error when mapping to an unknown language (30fa28a); fix a panic61  (dc8c92e).62- Fix for issue #412 (#719).63- WIP/fix for issue #531 (#714).6465## 🏎 Performance & internals6667- Reduce string allocations (#687).68- Minor performance tweaks (#711) and general cleanup/optimization (#680).69- Apply `go fix` suggestions (#712); convert more shell tests to Go tests (#696).70- Automate file generation and add CI tests (#688, #706); update to latest Go71  and refresh dependencies.7273## 🗒 To discuss / follow-up7475- **Remaining `git` subprocess shell-out**  `remoteOriginName` in76  `processor/report.go` still runs `git config --get remote.origin.url` to derive77  the HTML report title. This is the only place scc shells out to the `git` binary78  (the rest use the go-git library or `gocodewalker.FindRepositoryRoot`). Decide79  whether to drop it (fall back to the path basename) or read it via go-git's config80  instead, so scc has no hard dependency on a `git` binary being installed.8182---8384_Generated from the commit history between `v3.7.0` and the 4.0.0 release._

Findings

✓ No findings reported for this file.

Get this view in your editor

Same data, no extra tab — call code_get_file + code_get_findings over MCP from Claude/Cursor/Copilot.