mcptoon 0.8.4
Fixes the crash that made the README's first screen unusable.
mcptoon install --pack <name> died with TypeError: 'NoneType' object is not callable
on every machine: packs.install_pack() named its optional destination parameter
packs_root, shadowing the module-level packs_root() function, so the default path
(packs_root or packs_root()) evaluated None or None(). The README's headline
"one command to a working toolset" (mcptoon install --pack essentials) died with a
raw traceback; only tests that passed an explicit destination were ever green, which
is why the suite missed it. The parameter is now root and a regression test
exercises the default path.
Also in this release
mcptoon update— re-read every configured server's live tool list, diff it
against the snapshot mcptoon is trusting, write the fresh surface back, and report
what moved (+added/-removed/~changed).--checkreports drift only and
exits 1 when anything moved;--jsonfor scripts.
Tests / CI
- New agent-load test: registers a server, runs
sync --self, parses the written
entry, spawns that exact command and completes an MCP handshake — so a wrong
interpreter or an empty tool list now fails the suite instead of shipping. - New release-smoke workflow verifies the published PyPI artifact on
Linux/macOS/Windows. - Test isolation hardened: the suite no longer writes the developer's real agent
configs (%APPDATA%) or~/.cache/mcptoon/usage.json.
Full suite: 1657 passed, 2 skipped.