v0.2.1 — Truth Patch
Truth patch: every README claim is now backed by code, and a fresh install works again.
Fixed
- Fresh installs no longer break:
mcpis pinned>=1.29,<2— the 2.x SDK (2026-07-28 spec era) renames the client-facing fields this package reads (Tool.inputSchema→input_schema), so an unpinned install crashed during recording.httpxis now a declared dependency. - CI can no longer go green without HTTP coverage: transport tests locate the interpreter portably and fail (not skip) in CI when the target server cannot boot.
LIFE-02reports the protocol era honestly: the probe requests2025-11-25— the newest revision the legacy initialize handshake carries — and negotiating it is a PASS. The misleading "not yet migrated to 2026-07-28" verdict is gone (that era is announced viaserver/discover; dual-era probing lands in v0.3).- Capability honesty (
LIFE-03): resources- or prompts-only servers are SKIPped, not failed. - The reproducibility claim is now mathematically true: fixtures split into a hashed contract layer and an unhashed observation layer (timestamp/latency/command). Verified end to end — two independent recordings in different environments produce the identical suite fingerprint, and latency advisories no longer perturb the report fingerprint. Fixture schema v3; v1/v2 fixtures keep replaying.
- Crashed servers leave evidence: exit code + a bounded stderr tail land in the report instead of a bare timeout, and pending requests fail fast when the server process dies.
Changed
- README/architecture wording aligned with what the code proves: fingerprinted (not "signed"), explicit transport & protocol-revision support matrix, three deterministic lanes + planned semantic extension, a Limitations section, live CI badge.
- CI: Ubuntu 3.11/3.12/3.13 + macOS + Windows matrix,
ruffgate, and a fresh-install package job (build wheel → runtime-only install → audit the zero-dependency demo end to end).
41 tests · full changelog in CHANGELOG.md