Releases: LegacyCodeHQ/clarity-cli
Releases · LegacyCodeHQ/clarity-cli
Release list
v0.29.3
Changelog
🐞 Bug Fixes
- Rust: The crate source root is now derived from Cargo target paths
- Rust: Crate-root re-exported symbols now resolve to their defining file
⚙️ Internal
- Oracle recall is now measured against in-scope edges
Full Changelog: v0.29.2...v0.29.3
v0.29.2
Changelog
✨ Features
- Rust is now actively tested — Rust has been promoted from experimental to an actively tested language
🐞 Bug Fixes
- Rust: Imports nested inside
modblocks and function bodies are now captured - Rust:
pub usere-exports are now followed throughfoo.rsdirectory modules - Rust:
mod.rsis retained when expanding a bare module import - Rust: Module re-exports now resolve from directory module files
- Rust: Raw string literals are now handled by the import scanner
- Rust: The scanner falls back to tree-sitter when the fast Rust scanner fails
⚙️ Internal
- Added the Rust oracle-diff test harness
Full Changelog: v0.29.1...v0.29.2
v0.29.1
Changelog
🔒 Security
- Bumped the Go toolchain to 1.26.5 to pick up a
crypto/tlsfix (GO-2026-5856)
Full Changelog: v0.29.0...v0.29.1
v0.29.0
Changelog
📄 License
- Relicensed from AGPL-3.0 to Apache-2.0 — Clarity is now available under a permissive license, removing the copyleft and network-use requirements of the AGPL
📚 Documentation
- Removed the Go Report Card badge, which has been sunset
Full Changelog: v0.28.1...v0.29.0
v0.28.1
Changelog
🐞 Bug Fixes
- Swift: Top-level functions,
letbindings, and operators are now indexed by the analyzer - Swift: Inner-scope declarations are no longer counted as references
Full Changelog: v0.28.0...v0.28.1
v0.28.0
Changelog
💥 Breaking release.
clarity showandclarity watchnow share one grammar, and several v0.27.0 commands and flags were removed. Read the Breaking Changes section before upgrading automated callers.
✨ Features
- Unified
show/watchgrammar – Both commands now take positional[paths…]anchors and share the same lenses:--reach,--depth,--collapse,--all,--between, and--modulewatchreached parity withshow, gaining--reach,--depth/-l,--between/-w,--all,--collapse,--module/-m,--prune,--label, and--no-statswatchintentionally has no--commit— a live view is always the working tree
- Dependency reach –
--reach up|down|bothwalks the graph from an anchor, including upstream reach ("who depends on this file?"), which the old surface could not express - Module boundary direction –
--modulerenders a module's boundary with a chosen direction (none/in/out/both) and composes as a framing, not an exclusive anchor - Collapse into modules –
--all --collapsefolds the whole tree into the modules declared in.clarity/modules.json - HTML language support added to the dependency graph
- Machine-readable
languages–languages --format jsonemits the language and extension data the removedextensionscommand used to print - Hugo shortcodes in Markdown –
relref/refshortcodes now resolve to real links when building the graph - Experimental commands are now grouped last in
--help
💥 Breaking Changes
Removed commands
| Removed | Replacement |
|---|---|
clarity extensions |
clarity languages --format json (language + extension data) |
clarity why <from> <to> |
Removed; no direct replacement. |
Removed flags (show)
| Removed | Replacement |
|---|---|
--input, -i <paths> |
positional [paths…] |
--file, -p <file> |
positional <file> with --reach down |
--level |
--depth, -l |
--scope |
--reach down |
--modules |
--collapse |
--direction, -d |
--reach up|down|both (with --module) |
Removed flags (watch)
| Removed | Replacement |
|---|---|
--input, -i <paths> |
positional [paths…] |
--direction, -d |
--orientation, -o |
Migration at a glance
| Old | New |
|---|---|
clarity show -i a b |
clarity show a b |
clarity show -p file.go |
clarity show file.go --reach down |
clarity show -p file.go --level 2 |
clarity show file.go --reach down --depth 2 |
clarity show --modules |
clarity show --all --collapse |
clarity show --module auth -d both |
clarity show --module auth --reach both |
clarity watch -i src |
clarity watch src |
clarity watch -d LR |
clarity watch -o LR |
clarity extensions |
clarity languages --format json |
🐞 Bug Fixes
- Commit snapshots:
shownow resolves modules, file anchors, and module members from commit snapshots instead of the working tree - Sessions: default to the most recent snapshot when switching sessions
- Watch worktrees: recover discovery after stale worktrees and suppress the deleted graph for removed worktrees
- Rust: phantom prod nodes stay solid
- Node labels: graph lifecycle icons are now aligned
- Benign watcher path-removal errors are no longer logged
🔒 Security
- Bump dompurify to 3.4.11 (
cmd/watch/web) - Bump esbuild,
@sveltejs/vite-plugin-svelte,@tailwindcss/vite, and vite
⚙️ Internal
showsnapshot resolution was centralized; watch worktree tabs are driven from a single near-free reconcileci: cache apt packages and the OSXCross toolchain in the release workflow
Full Changelog: v0.27.0...v0.28.0
v0.27.0
Changelog
✨ Features
- Modules – List all modules with
clarity modules, render a single module's view with--module, and opt into module rendering with--modules- Auto-discover module config from
.clarity/modules.json - Sort the modules table by name or size with
--sort-by name|size - See test and non-test file counts split out per module
- Module boundaries now render as a directional box, drawn as a mermaid subgraph
- Auto-discover module config from
--formatoption added towatch- Rename and move detection – Renames and moves are now detected from git status, marked with distinct icons, and collapsed to a single node across staged and unstaged changes
- Deleted file rendering – Deleted and renamed files now appear in
showandwatch, with their pre-deletion edges reconstructed and deleted subtrees rendered - The watch web viewer now renders mermaid
- cgo dependencies now resolve to sibling C sources
- Cycle edges now render as solid lines
🐞 Bug Fixes
- C# partial classes split across files now resolve correctly
- Angle-bracket includes now resolve to project headers (C/C++)
- Same-package Java static method call qualifiers now resolve
- Same-package Kotlin top-level function calls now resolve
- Bare TypeScript imports no longer incorrectly resolve to same-named local files
- Go imports no longer resolve to sibling external test files
Full Changelog: v0.26.0...v0.27.0
v0.26.0
Changelog
✨ Features
- Try out the new experimental
cyclescommand to find circular dependencies in your codebase - Navigate the timeline using arrow keys
- Watch archives now include commit history
🐞 Bug Fixes
- Hardened Zig import resolution
- Improved Java dependency resolution, including annotations and fully qualified references
- TypeScript imports from Svelte files now resolve correctly
- Arrow key timeline navigation now works in the web interface
Full Changelog: v0.25.0...v0.26.0
v0.25.0
Changelog
✨ Features
--moduleflag – collapse files into a single named node in your dependency graph- Original dependency edge labels are now preserved even when modules are collapsed
- Module nodes can show file count and churn at a glance
🐞 Bug Fixes
- Go types now link to their method providers defined in other files
🔒 Security
- Bump Go toolchain to 1.26.4 to address 2 detected vulnerabilities (GO-2026-5039, GO-2026-5037)
Full Changelog: v0.24.1...v0.25.0
v0.24.1
Changelog
🔒 Security
- Bump vite to 6.4.2 to patch CVE-2026-39363 (arbitrary file read via dev-server WebSocket).
Full Changelog: v0.24.0...v0.24.1