test: close changed-code coverage gaps to satisfy the coverage gate
- fetch_mcp_metadata: extract run()/resolveToken()/writeMetadata with
injectable deps (keychain, servers, lister, registry, exit); full-path
tests reach 100% file coverage.
- internal/cli: drop dead initSafetyByCLIPath (superseded by ResolveMeta),
split buildMetaByCLIPath / assembleSchemaCatalogSnapshot /
assembleCommandRegistryFrom / mergedCommandRegistryJSON so shard and
malformed-snapshot failure modes are testable; cover catalog structure
violation formatting (sort/truncate) and RenderSafetyAnnotation.
- generators: cover registry shard merge and catalog shard write failure
modes.
- helpers/cmdutil: cover LeafSpec default/server dispatch, transform error
propagation, default env hint, devapp member remove validate chain, and
the required-flags error helpers.
Local gate: overall 90.17% vs merge-base 89.96%, changed-code 100%
(861 statements); make policy and go test ./... green.