Summary
Every limacharlie release since 5.3.1 declares toon_format>=0.9.0b1,<1.0.
The toon-format package has no stable release in that range (PyPI has only
0.1.0 and 0.9.0b1), so the constraint is only satisfiable by a pre-release.
uv refuses pre-releases of transitive dependencies unless
--prerelease=allow is passed. Instead of erroring, its resolver silently
backtracks to the newest version with no pre-release dependency — 5.3.0
(April 2026). pip/pipx honor the pre-release specifier per PEP 440 and
install the current release, so the recommended install paths now produce
very different CLIs.
Reproduction (2026-07-25, uv 0.11.32)
$ uvx limacharlie --version
limacharlie, version 5.3.0 # latest on PyPI is 5.5.4
$ uv tool install limacharlie # same result: 5.3.0
$ uv tool upgrade limacharlie
Nothing to upgrade # a stranded install self-reports as current
$ uvx --from 'limacharlie==5.5.4' limacharlie --version
× No solution found when resolving tool dependencies:
╰─▶ Because only toon-format<0.9.0b1 is available and limacharlie>=5.5.4
depends on toon-format>=0.9.0b1, ...
hint: `toon-format` was requested with a pre-release marker, but
pre-releases weren't enabled (try: `--prerelease=allow`)
Impact
This affects a documented install path: the official docs list
uv tool install limacharlie as a supported installation method
(https://docs.limacharlie.io/6-developer-guide/mcp-server/#installation)
with no --prerelease flag or minimum-version note, so users following
the docs today get 5.3.0.
This has already bitten downstream: the lc-essentials Claude Code plugin's
CLI auto-install was stranded on 5.3.0 the same way (refractionPOINT/lc-ai#111),
worked around in refractionPOINT/lc-ai#112 by forcing --prerelease=allow and
a 5.4.0 version floor in the installer. A packaging fix removes the need for
per-consumer workarounds like that one.
Users who installed via uv are pinned to 5.3.0 with no error and no upgrade
path, and miss ~3 months of fixes. Notably, 5.3.0 still contains the
hive enable/disable bug fixed in 5.4.0 (GET /mtd returns "data": {},
the round-tripped record then routes Hive.set() to the /data endpoint with
data={}, and enabling any D&R rule fails with the misleading
lc_error_code:INVALID - edr rules require "event" or "events" at the detection root — the validator is rejecting the empty payload, not the stored
rule). That fix never appeared in the CHANGELOG, which made this hard to
diagnose from the outside.
Suggested fixes
Any one of these resolves it:
- Make
toon_format an optional extra (PR attached — the code already
treats it as optional at runtime).
- Publish or depend on a stable
toon-format release.
- Document that
uv installs require --prerelease=allow.
Note that exact-pinning ==0.9.0b1 would not help: uv only honors
pre-release specifiers on direct requirements, never transitive ones.
Also worth adding the 5.4.0 get_metadata()/hive enable fix to the
CHANGELOG retroactively so stranded 5.3.0 users can find it.
Environment
- uv 0.11.32 (Homebrew, aarch64-apple-darwin), macOS 15
- Reproduced against PyPI as of 2026-07-25
Summary
Every
limacharlierelease since 5.3.1 declarestoon_format>=0.9.0b1,<1.0.The
toon-formatpackage has no stable release in that range (PyPI has only0.1.0and0.9.0b1), so the constraint is only satisfiable by a pre-release.uvrefuses pre-releases of transitive dependencies unless--prerelease=allowis passed. Instead of erroring, its resolver silentlybacktracks to the newest version with no pre-release dependency — 5.3.0
(April 2026).
pip/pipxhonor the pre-release specifier per PEP 440 andinstall the current release, so the recommended install paths now produce
very different CLIs.
Reproduction (2026-07-25, uv 0.11.32)
Impact
This affects a documented install path: the official docs list
uv tool install limacharlieas a supported installation method(https://docs.limacharlie.io/6-developer-guide/mcp-server/#installation)
with no
--prereleaseflag or minimum-version note, so users followingthe docs today get 5.3.0.
This has already bitten downstream: the lc-essentials Claude Code plugin's
CLI auto-install was stranded on 5.3.0 the same way (refractionPOINT/lc-ai#111),
worked around in refractionPOINT/lc-ai#112 by forcing
--prerelease=allowanda 5.4.0 version floor in the installer. A packaging fix removes the need for
per-consumer workarounds like that one.
Users who installed via
uvare pinned to 5.3.0 with no error and no upgradepath, and miss ~3 months of fixes. Notably, 5.3.0 still contains the
hive enable/disablebug fixed in 5.4.0 (GET/mtdreturns"data": {},the round-tripped record then routes
Hive.set()to the/dataendpoint withdata={}, and enabling any D&R rule fails with the misleadinglc_error_code:INVALID - edr rules require "event" or "events" at the detection root— the validator is rejecting the empty payload, not the storedrule). That fix never appeared in the CHANGELOG, which made this hard to
diagnose from the outside.
Suggested fixes
Any one of these resolves it:
toon_formatan optional extra (PR attached — the code alreadytreats it as optional at runtime).
toon-formatrelease.uvinstalls require--prerelease=allow.Note that exact-pinning
==0.9.0b1would not help: uv only honorspre-release specifiers on direct requirements, never transitive ones.
Also worth adding the 5.4.0
get_metadata()/hive enablefix to theCHANGELOG retroactively so stranded 5.3.0 users can find it.
Environment