Skip to main content

SOURCE_METADATA_SCHEMA_VERSION

Constant SOURCE_METADATA_SCHEMA_VERSION 

Source
pub const SOURCE_METADATA_SCHEMA_VERSION: u32 = 4;
Expand description

The source-metadata sidecar schema version this module emits.

phase-463 W1 – 1 -> 2. Version 2 is ADDITIVE over version 1 and every reader in the tree defaults the new fields, so a v1 sidecar still parses:

  • every endpoint kind carries qos (v1: publishers and subscribers only); the value is the profile the runtime was handed AFTER overrides, which is what the executor sizes for;
  • a timers[] row carries kind – wall / clock / oneshot / in_group – and a guard condition is a row of that array with kind: "guard_condition", so slot consumers that count the array keep counting one slot each while a census can tell the two apart;
  • a parameters[] row carries type.

phase-457 W3 – 2 -> 3, additive again, and every reader defaults the new field:

  • a subscribers[] row may carry in_place – whether THAT registration’s delivery shape can dispatch out of the backend’s own receive slot (EntityMetadata::in_place_capable). An absent key is a refusal, not a false: it is what a probe that declares without registering leaves behind, and a consumer that read it as false would state a registration path nobody observed.

Version 4 (issue 1648) is additive again:

  • a subscribers[] row may carry buffered – "typed_bound" or "unbounded", the BUFFERED row that registration claimed (EntityMetadata::buffered_row): whether its receive slot is a bound the call site stated or the closure buffer (RX_BUF). Written beside in_place by the same observation, and absent exactly when it is.

Serialised in exactly one place (this module), as phase-308’s layer rule requires: the adapters that feed the recorder contain no JSON.