Limitcast 0.19.2: safer learned checks and clean source maps
An optimizer should preserve the checks you intended to run and the source you actually have. An audit of Limitcast found two places where that could go wrong: learning an unrelated command as a replacement, and reusing a source map generated during temporary edits.
Limitcast 0.19.2 fixes both issues and is available on npm, GitHub and Homebrew. This is a correctness release. It also adds the Limitcast icon to Codex plugin settings and pins every plugin command to 0.19.2.
A successful build does not replace a lint check
The old learning logic could observe a failed
npm run lint, followed by a successful
npm run build, across three sessions and recommend the
build command as a replacement. Both were grouped as non-test
commands, even though they verify different things.
The fix checks the identity of the verification command before
learning a replacement. Equivalent launchers for the same Python test
framework can still qualify, as can npm test and
npm run test. Lint, build, type-check and unrelated test
runners do not substitute for one another.
The same compatibility check runs when saved facts are loaded. That means an incompatible recommendation learned before this patch is excluded from the context supplied to a later session.
Temporary edits should not survive in a cached map
Previously, a source map generated from a dirty working tree could be stored against the unchanged Git commit. Restoring the original source could then leave temporary function names in the map returned for the clean repository.
Limitcast now writes map caches only for clean working trees. Maps can still be generated while you work, but that output cannot overwrite the clean cache. The cache format also changes, so legacy entries are regenerated rather than trusted after the upgrade.
What was checked
- All 258 tests passed, including regression coverage for command identity and map-cache behavior. Lint and privacy/plugin checks passed.
- GitHub CI passed on Linux and macOS with Node 20, 22 and 24.
- Packaged and installed CLI checks confirmed that incompatible saved replacements are suppressed, valid replacements still appear, and a reverted source edit returns the original map.
- Downloaded npm and GitHub packages matched the tested release artifact. Installed Claude, Codex and Grok plugin files matched the release commit.
- Isolated native adapter checks passed for Claude, Codex, Grok, Copilot and Pi. Fresh Codex discovery found six trusted, enabled Limitcast hooks.
Those checks establish the repaired behavior and installation state. They do not measure real-world token savings or replace testing in full signed-in conversations.
Why the packing algorithm stayed the same
The audit also compared the source-map selector with a knapsack reference. At the default 6,000-character budget, all 89 eligible files already fit. A smaller budget improved a synthetic coverage score, but the score alone did not show that developers would get a more useful map. The selector stays unchanged in this release.
Upgrade to 0.19.2
npm install -g limitcast@0.19.2
limitcast --version
limitcast doctor
For an existing Homebrew installation:
brew update
brew upgrade samstull9007/limitcast/limitcast
Update the Limitcast plugin in your agent host too. Restart existing sessions to load refreshed plugin commands and extensions; a CLI upgrade alone does not reload an already-running session.