Background
arkd #960 (merged 2026-03-25) adds a new version compatibility check via a build version header:
gRPC: x-build-version metadata key
REST: X-Build-Version HTTP header
Format: semver string, e.g. 1.0.0 or v1.0.0
Enforcement: only major version is compared; missing/malformed headers are silently allowed through (opt-in today)
When the server enforces a minimum major version, clients sending an older major will receive error BUILD_VERSION_TOO_OLD (error code 48).
Required Changes
This SDK needs to send x-build-version (gRPC) / X-Build-Version (REST) on every request, populated with its own build/package version.
Tasks
Reference
arkd PR: version in header arkd#960
Version compat doc: added in arkd at docs/version-compat.md
Error code 48 = BUILD_VERSION_TOO_OLD, gRPC status FAILED_PRECONDITION (code 9)
Notes
No header = server allows through (backwards compatible for now). But this should be implemented before any major version bump on arkd enforces it.
Background
arkd#960 (merged 2026-03-25) adds a new version compatibility check via a build version header:x-build-versionmetadata keyX-Build-VersionHTTP header1.0.0orv1.0.0When the server enforces a minimum major version, clients sending an older major will receive error
BUILD_VERSION_TOO_OLD(error code 48).Required Changes
This SDK needs to send
x-build-version(gRPC) /X-Build-Version(REST) on every request, populated with its own build/package version.Tasks
x-build-versioninto gRPC client metadata on every callX-Build-Versioninto REST HTTP headers on every requestBUILD_VERSION_TOO_OLDerror code (48) with a clear user-facing error messageReference
docs/version-compat.mdBUILD_VERSION_TOO_OLD, gRPC status FAILED_PRECONDITION (code 9)Notes
No header = server allows through (backwards compatible for now). But this should be implemented before any major version bump on arkd enforces it.