Problem
The spec makes metadata.timestamp a required field ("server clock time in microseconds for when this metadata is valid") because the progress-drift formula depends on it.
The conformance harness discards it:
- Client normalizer
aiosendspin_client.py:126-148 _normalize_metadata_state has no timestamp key.
- Server expected snapshot
aiosendspin_server.py:151-167 _metadata_snapshot has no timestamp key.
- Go server
adapters/sendspin-go/server/main.go:648-665 metadataSnapshot has no timestamp key.
A server that omits timestamp or sets it to 0 would pass.
Proposed fix
- Include
timestamp in the client and server metadata summaries.
- Assert it's present, an integer, > 0, and in microsecond range.
- Assert server-emitted value equals client-received value exactly.
See sibling issue on the progress-drift formula for the downstream effect of having a trustworthy timestamp.
Spec references
- "Server → Client:
server/state metadata object"
Problem
The spec makes
metadata.timestampa required field ("server clock time in microseconds for when this metadata is valid") because the progress-drift formula depends on it.The conformance harness discards it:
aiosendspin_client.py:126-148 _normalize_metadata_statehas notimestampkey.aiosendspin_server.py:151-167 _metadata_snapshothas notimestampkey.adapters/sendspin-go/server/main.go:648-665 metadataSnapshothas notimestampkey.A server that omits
timestampor sets it to 0 would pass.Proposed fix
timestampin the client and server metadata summaries.See sibling issue on the progress-drift formula for the downstream effect of having a trustworthy
timestamp.Spec references
server/statemetadata object"