Repository navigation
[2.20.3] - 2026-11-02
tagpack-tool sync --clone-filter blob:none clones the tagpack repos without old file versions, so a large repo's cache shrinks while lastmod stays exact. Also: user-reported BCH tags on a cashaddr are stored in legacy form, and a sync daemon with an unconfigured -c network exits 2 at startup. The API version stays 2.19.0 (no OpenAPI change, no new Python client).
Library
Added
tagpack-tool sync --clone-filter blob:noneclones tagpack repos without the contents of old file versions. A git partial clone: the first clone and the repo cache get smaller (most of a large repo's history is old file versions), andlastmodstays exact, because its singlegit log --no-renames --name-onlywalk needs commits and trees only. Git keeps the filter in the repo config, so later fetches stay partial and a reset downloads only the files it writes. Off by default. An existing full clone in--repo-cache-diris kept as it is (re-cloning a large repo would cost a long run); delete its cache directory once to re-clone it partially.
Changed
- The cross-chain pubkey jobs are no longer marked alpha.
transformation pubkey-update,pubkey-detect,pubkey-compact,pubkey-loadandpubkey-update-alldrop the[ALPHA]tag from their help and no longer print the alpha warning to stderr.top-untagged-addressesandraw-to-transformedstay alpha.
Fixed
- An MCP client hanging up mid tool call no longer logs
RuntimeError: No response returned.and pages Slack. With the 2026-07-28 MCP protocol, the mcp SDK cancels a call whose client disconnected and returns without a response; the REST app'sBaseHTTPMiddlewares turned that into an unhandled 500. The/mcpmount now answers such a request with an empty 499 (never reaches the gone client) and logs one WARNING with method, path and duration (mcp/disconnect.py). - User-reported BCH tags on a cashaddr are stored in legacy form, so they are found and cluster-mapped.
add_user_reported_tag(POST /tags/report-tag) only lowercased hex addresses and kept a cashaddr as typed, while address lookups and the cluster mapping use the legacy form the tagpack importer stores; such a tag never showed up. It now uses the importer'snormalize_tag_address, which also converts a cashaddr without thebitcoincash:prefix (the importer kept those as typed too; the REST lookups accept them). A malformed cashaddr is still stored as typed, with a warning. Tags reported before the fix keep their cashaddr identifier until repaired. sync runexits 2 at startup when a-cnetwork or thesyncsection is missing from the config, before starting any network, instead of warning once and idling. A typo in a compose service's-cnow shows as a failing container. A network removed from the config while the daemon runs still only warns;--onceis unchanged (runs the configured networks, then exits 2).
Full Changelog: v2.20.2...v2.20.3