Blocked-by: #11292
Found while implementing #11235. Out of that card's scope (producer code, not content/docs/), and the correct replacement is not mechanical — it depends on #11292's outcome — so it is filed rather than fixed.
What was measured
content/docs/api/client-sdk.mdx:90:
constdiscovery=awaitclient.connect();console.log(discovery.version);// "1.0.0"
That comment tells an SDK reader what connect() returns. It has never matched any producer's answer:
So the documented value was accurate for exactly one producer, for as long as that producer was itself hardcoded, and is now accurate for none.
Suggested direction
Stop pinning a literal in the comment. // e.g. "17.2.0" — the serving artifact's version (or a bare // the serving artifact's version) says what the field means without asserting a value that goes stale on every release. The neighbouring discovery.environment line has the same shape and is fine, because "development" is a member of a closed enum rather than a version string.
Worth pairing with #11292: if that card removes the REST override, the SDK's answer becomes the derived artifact version everywhere and one sentence describes all producers. If it does not, the doc has to say which producer answers what — which is itself an argument for #11292.
Not asserting more than was checked
Only content/docs/api/client-sdk.mdx was examined here (it is the file the survey for #11235 surfaced). No repo-wide sweep of hand-written docs for stale discovery values was run, so other pages may carry the same value; pnpm docs:audit / the docs-accuracy-audit playbook is the right instrument if a sweep is wanted.
Generated by Claude Code
Blocked-by: #11292
Found while implementing #11235. Out of that card's scope (producer code, not
content/docs/), and the correct replacement is not mechanical — it depends on #11292's outcome — so it is filed rather than fixed.What was measured
content/docs/api/client-sdk.mdx:90:That comment tells an SDK reader what
connect()returns. It has never matched any producer's answer:@objectstack/rest, the/api/v1/discoverythe SDK connects to first):"v1".rest-server.tsoverwrites the field withconfig.api.version, whose default is'v1'— see@objectstack/restoverwrites discoveryversionwithconfig.api.version('v1') — the URL path segment served in the schema's "System Identity" field, masking the producer entirely #11292.OS_RUNTIME_VERSIONstamp, else the resolved@objectstack/runtimepackage version); before that, the literal'1.0.0'— which is presumably where this doc value came from.getDiscovery()producer directly: the derived@objectstack/metadata-protocolversion since [finding] a THIRD hardcoded discoveryversionliteral —getDiscovery()inpackages/metadata-protocol/src/protocol.ts, identical defect to #10993, different producer/package #11235; before that, the literal'1.0'.So the documented value was accurate for exactly one producer, for as long as that producer was itself hardcoded, and is now accurate for none.
Suggested direction
Stop pinning a literal in the comment.
// e.g. "17.2.0" — the serving artifact's version(or a bare// the serving artifact's version) says what the field means without asserting a value that goes stale on every release. The neighbouringdiscovery.environmentline has the same shape and is fine, because"development"is a member of a closed enum rather than a version string.Worth pairing with #11292: if that card removes the REST override, the SDK's answer becomes the derived artifact version everywhere and one sentence describes all producers. If it does not, the doc has to say which producer answers what — which is itself an argument for #11292.
Not asserting more than was checked
Only
content/docs/api/client-sdk.mdxwas examined here (it is the file the survey for #11235 surfaced). No repo-wide sweep of hand-written docs for stale discovery values was run, so other pages may carry the same value;pnpm docs:audit/ thedocs-accuracy-auditplaybook is the right instrument if a sweep is wanted.Generated by Claude Code