v3.4.4
Fixed
- Observatory File Heatmap blank — the File Heatmap panel in
lean-ctx watchstayed empty because historical per-file access data was never loaded on TUI startup. Now pre-populates from the persistentheatmap.jsonso file activity is visible immediately. Also fixedEventTailoffset tracking to prevent event loss during concurrent writes. Fixes #166. - Windows agent hook installs —
dirs::home_dir()does not respectHOME/USERPROFILEoverrides on Windows, causing hooks to install into incorrect directories during CI and in some user setups. Introduced a centralizedcore::home::resolve_home_dir()that checksHOME,USERPROFILE, andHOMEDRIVE+HOMEPATHbefore falling back todirs::home_dir(). All 13 agent installers and the hook manager now use this resolver. - Windows
claude mcp add-jsoninvocation —.cmdshims cannot be executed directly viaCreateProcess; now routes throughcmd /Cfor reliable invocation. - Clippy 1.95 compliance — resolved all new lints introduced by Rust 1.95:
needless_raw_string_hashes,map_unwrap_or,unnecessary_trailing_comma,duration_suboptimal_units,while_let_loopacross 30+ source files. cargo-deny0.19 migration — updateddeny.tomlto new schema, removed deprecated advisory fields, added missing dependency licenses (0BSD,CDLA-Permissive-2.0).- Windows benchmark stability —
bench_rrf_eviction_vs_legacyno longer panics fromInstantunderflow on short-lived processes. - Coverage timeout —
benchmark_task_conditioned_compressionnow skipped under tarpaulin instrumentation and uses smaller input to prevent CI timeouts. - Uninstall dry-run —
lean-ctx uninstall --dry-runno longer accidentally removes components.
Changed
- License updated to Apache-2.0 — all references across the repository and website (11 languages) updated from MIT to Apache-2.0.
- Clippy pedantic across entire codebase — comprehensive refactoring to satisfy
clippy::pedanticwith zero warnings:Copyderives,map_or/is_ok_andpatterns,Duration::from_hours/from_mins,while letloops, and raw string simplification. cfg(tarpaulin)declared in Cargo.toml — preventsunexpected_cfgslint failures when coverage attributes are used.
Upgrade
lean-ctx update # recommended (auto-downloads + refreshes shell hooks)
cargo install lean-ctx # or
npm update -g lean-ctx-bin # or
brew upgrade lean-ctxNote: After upgrading via cargo/npm/brew, run
lean-ctx setupto refresh shell aliases.lean-ctx updatedoes this automatically.
Full Changelog: v3.4.3...v3.4.4