| Firmware | EV_FIRMWARE_VERSION in firmware/include/evcore_version.h | Semantic version MAJOR.MINOR.PATCH | MAJOR: a behavior change a technician or host must know about (for example a safety rule or result meaning). MINOR: new capability. PATCH: fixes with no interface change. |
| Build | EV_BUILD_ID, set by the build from git rev-parse --short HEAD | Commit hash, _dirty suffix for uncommitted changes | Automatically. A release build must never be _dirty or dev. |
| Host protocol | EV_CONTROL_PROTOCOL_VERSION in evcore_control.h, PROTOCOL_VERSION in Studio transport.js | Integer | Any change an older host cannot safely ignore: removed or renamed commands, changed reply meaning, changed framing. Added INFO fields and new commands do not require a bump. |
| Report schema | schema_version in REPORT JSON | Integer | A field is removed, renamed, or changes meaning. Added fields are allowed within a version because readers ignore unknown fields. |
| Board definition | EV_Board.definition (for example a D1 revision) | Name plus revision, [A-Za-z0-9._-]{1,32} | The hardware binding changes: pins, polarities, scaling, available capabilities. |
| Knowledge package | Not yet implemented (roadmap items 17 to 21) | To be defined with the schema | Reported as none until it exists. |
| Calibration format | Not yet implemented (roadmap item 37) | To be defined with the calibration model | Reported as none until it exists. |
| EVCore Studio | version in software/evcore-studio/package.json | Semantic version | Same rules as firmware, from the technician’s point of view. |