{"version":"2.1.206","anchor":"plugin-binary-provisioning-mismatch-detection-and-bare-name-","canonical_anchor":"plugin-binary-provisioning-mismatch-detection-and-bare-name-","heading":"Plugin Binary Provisioning \u2014 Mismatch Detection and Bare Name Linking","tier":null,"area":null,"scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.206\/e\/plugin-binary-provisioning-mismatch-detection-and-bare-name-","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.206","markdown":"### Plugin Binary Provisioning \u2014 Mismatch Detection and Bare Name Linking\n\n**What**\n\nPlugin binary installation now removes and re-fetches binaries whose on-disk digest doesn't match the manifest, and creates hard links from arch-specific binary names (e.g., `tool-aarch64-apple-darwin`) to bare names (e.g., `tool`) for easier execution.\n\n**Details**\n\n- If a `bin\/` entry exists but its SHA-256 doesn't match the manifest, Claude logs \"removed bin\/{name} \u2014 it is not the artifact pinned by the manifest\" and re-downloads it.\n- After placement, a hard link from the arch-specific filename to a bare name is created on macOS\/Linux when exactly one declared entry derives that bare name (collision-safe).\n- Four target triples are recognized for bare-name derivation: `aarch64-apple-darwin`, `x86_64-apple-darwin`, `aarch64-unknown-linux-musl`, `x86_64-unknown-linux-musl`.\n- New telemetry fields track `mismatch_removed_count` and `bare_placed_count` separately from download and cache-hit counts.\n- A new validation pass checks `.mcp.json` and nested MCP server configs for binary references that aren't in the `binaries` map, warning: \"bin\/{name} is not a shipped file, a declared binaries entry, or a name derivable from the declared entries \u2014 the server will fail to start.\"\n\n**Evidence**\n\nMismatch removal (search for `\"it is not the artifact pinned by the manifest\"`); validation (search for `\"Check for a typo against the \\\"binaries\\\" map in plugin.json\"`)"}