Lore CLI v0.3.0: Smarter Queries, Correct Limits
Lore CLI v0.3.0 is out. This release fixes two important bugs and adds new query controls.
What changed
Section titled “What changed”--limit now means what you think it means
Section titled “--limit now means what you think it means”Previously, --limit 5 mapped directly to git log --max-count=5 — it limited how many commits git scanned, not how many results you got back. If 3 of those 5 commits were superseded, you’d see only 2 results instead of 5.
Now --limit is a result cap applied after all filtering and supersession. lore constraints src/ --limit 5 guarantees exactly 5 active results.
New --max-commits flag
Section titled “New --max-commits flag”The old git-scan-depth behavior is now available explicitly via --max-commits. This is a performance knob for large repos — it controls how many git commits are scanned, independent of how many results are displayed.
lore context src/ --limit 5 --max-commits 500This scans at most 500 commits and returns exactly 5 active results.
search now filters superseded atoms
Section titled “search now filters superseded atoms”Every other query command filtered out superseded atoms by default — except search. That inconsistency is fixed. lore search now shows only active atoms. Use --all to include superseded entries:
lore search --confidence low --all # include supersededlore log <path> is faster
Section titled “lore log <path> is faster”lore log src/main.ts previously fetched the entire git history and filtered in JavaScript. Now it passes paths directly to git log -- <path>, letting git handle the filtering. On large repos, this is orders of magnitude faster.
Paths are now native arguments — no -- separator needed:
lore log src/auth/ src/types/ # multiple paths, git-level filteringGlobal flags work properly
Section titled “Global flags work properly”A Commander.js option shadowing bug meant --limit, --since, and other flags defined at both the global and subcommand level were silently ignored. This affected all subcommands. Fixed via a mergeOptions utility that correctly reunifies global display flags (--json, --format, --no-color) with subcommand-specific query flags.
Breaking changes
Section titled “Breaking changes”--limit 0and non-numeric values (e.g.--limit 5abc) now produce an error instead of being silently ignoredlore searchfilters superseded atoms by default — use--allto include them
Install / upgrade
Section titled “Install / upgrade”