{"version":"2.1.213","anchor":"sdk-protocol-plugin-version-field","canonical_anchor":"sdk-protocol-plugin-version-field","heading":"SDK Protocol: Plugin Version Field","tier":null,"area":null,"scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.213\/e\/sdk-protocol-plugin-version-field","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.213","markdown":"### SDK Protocol: Plugin Version Field\n\n**What**\n\nPlugins now expose their `version` as declared in `plugin.json` through the SDK wire format.\n\n**Details**\n\n- The version string is emitted verbatim from the plugin manifest (plugin-author-controlled \u2014 validate before trusting)\n- Omitted when the manifest declares no version\n- The `version` field appears in the `plugins` array in two SDK message types: the `system:init` message (sent at session startup listing all loaded plugins) and the `reload_plugins` engine-control response (sent after a plugin reload)\n- In both locations the field is typed as `S.string().optional()`, so hosts must handle its absence for plugins that omit a `version` in their manifest\n- A separate `plugin_version` attribute is also recorded in telemetry events for marketplace-approved plugins when a skill command is invoked, enabling per-version usage metrics on the server side; third-party plugins emit `\"third-party\"` as the repository sentinel and no version is sent to telemetry\n\n**Evidence**\n\nSchema addition (search for `\"The plugin's version as declared in its plugin.json manifest, emitted verbatim\"`); wire positions (search for `u7a` used in `system:init` plugins array and `reload_plugins` response schema)"}