Fix
- version: name a registry install instead of reporting
source: ? - cluster: report a cluster count on the cache-hit path, not a row count (#178)
cluster — run_clustering's cache-hit path returned a row count under the
clusters key while the compute path returned a cluster count, so a warm
analyze reported 139054 messages, 80057 clusters against a parquet holding
1,080 real clusters. One helper now derives all three numbers for every cache-hit
branch, and the tests assert the two paths agree rather than pinning literals.
version — publishing to PyPI at v2.1.0 created an install shape
read_install_source could not express: it matched only directory / url /
git, and a registry install's uv receipt carries a specifier and none of
those, so claude-sql --version printed installed from source: ? for the most
common install of all. The kind is now inferred from the absence of a
local-source key.
Both fixes are locked by tests verified to fail against the prior code.