changedInput schema / properties / domain_id / description
Previous value: -"Accepted for compatibility (0..232). TopicForge observes the domain it joined at startup (TOPICFORGE_DDS_DOMAIN_ID); this argument does not switch domains, and the response `domain_id` says which one was observed."New value: +"Ignored: it does not switch domains and is only range-checked (0..232). The domain observed is the one joined at startup (`TOPICFORGE_DDS_DOMAIN_ID`), reported in the response `domain_id`; `note` flags a different non-zero value."
removedInput schema / properties / domain_id / title
Removed value: -"Domain Id"
addedInput schema / properties / lookback_s
Added value: +{
+ "default": 300,
+ "description": "Window in seconds, 1..86400, default 300. A larger window may hit the 200-event cap.",
+ "maximum": 86400,
+ "minimum": 1,
+ "type": "integer"
+}
removedInput schema / properties / lookback_seconds
Removed value: -{
- "default": 300,
- "description": "Window (in seconds) over which to return events. Defaults to 300 (5 minutes). Range: 1..86400 (1 second to 24 hours). Larger windows may hit the 200-event cap: narrow the window or filter on `domain_id` when that happens.",
- "maximum": 86400,
- "minimum": 1,
- "title": "Lookback Seconds",
- "type": "integer"
-}
removedInput schema / title
Removed value: -"participant_eventsArguments"
addedOutput schema / $defs / NameLifecycle
Added value: +{
+ "additionalProperties": false,
+ "properties": {
+ "departures": {
+ "description": "Times a participant with this name was lost.",
+ "minimum": 0,
+ "type": "integer"
+ },
+ "lives": {
+ "description": "Distinct GUIDs that carried this name; restarts = `lives` - 1.",
+ "minimum": 1,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "lives",
+ "departures"
+ ],
+ "type": "object"
+}
removedOutput schema / $defs / ParticipantEvent / description
Removed value: -"A point-in-time lifecycle event (discovered or lost) for a DDS participant.\n\n`ParticipantInfo` is the current state; this is one event in its history.\nReturned by `participant_events`."
addedOutput schema / $defs / ParticipantEvent / properties / age_s
Added value: +{
+ "anyOf": [
+ {
+ "minimum": 0,
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Seconds between `timestamp_ns` and this response; `None` in mock mode."
+}
removedOutput schema / $defs / ParticipantEvent / properties / domain_id / description
Removed value: -"DDS domain id the event occurred on."
removedOutput schema / $defs / ParticipantEvent / properties / domain_id / title
Removed value: -"Domain Id"
changedOutput schema / $defs / ParticipantEvent / properties / event_type / description
Previous value: -"`discovered` when the participant first joined the bus (or rejoined after leaving). `lost` when TopicForge observed a `REMOVED` callback (Fast DDS) or a polling delta where the GUID no longer appears in the DCPSParticipant builtin reader snapshot (Cyclone). The transition is reported once per state change."New value: +"`discovered` (joined or rejoined) or `lost` (removed, or gone from discovery); reported once per change."
removedOutput schema / $defs / ParticipantEvent / properties / event_type / title
Removed value: -"Event Type"
removedOutput schema / $defs / ParticipantEvent / properties / guid / description
Removed value: -"DDS Global Unique Identifier of the participant involved."
removedOutput schema / $defs / ParticipantEvent / properties / guid / title
Removed value: -"Guid"
removedOutput schema / $defs / ParticipantEvent / properties / hostname / description
Removed value: -"Hostname announced by the participant when known, else `None`."
removedOutput schema / $defs / ParticipantEvent / properties / hostname / title
Removed value: -"Hostname"
removedOutput schema / $defs / ParticipantEvent / properties / mode_effective
Removed value: -{
- "description": "Runtime mode the adapter served this response in: `live` (real ROS2 introspection) or `mock` (deterministic fixtures). Lets a caller tell a real graph from a demo one without calling `health_check`.",
- "enum": [
- "mock",
- "live"
- ],
- "title": "Mode Effective",
- "type": "string"
-}
removedOutput schema / $defs / ParticipantEvent / properties / name / description
Removed value: -"Participant name (EntityName QoS) when known, else `None`."
removedOutput schema / $defs / ParticipantEvent / properties / name / title
Removed value: -"Name"
changedOutput schema / $defs / ParticipantEvent / properties / observed_ns / description
Previous value: -"Local wall-clock time (ns since epoch) at which TopicForge noticed the event. Always at or after `timestamp_ns` when the latter is DDS-derived. `None` when not tracked."New value: +"Local ns when TopicForge noticed the event, never before a DDS-derived `timestamp_ns`; `None` when untracked."
removedOutput schema / $defs / ParticipantEvent / properties / observed_ns / title
Removed value: -"Observed Ns"
changedOutput schema / $defs / ParticipantEvent / properties / time_source / description
Previous value: -"Where `timestamp_ns` comes from. `dds_source_timestamp`: the DDS timestamp of the discovery announcement or dispose. For a `lost` event it is an upper bound: exact after a clean shutdown, the lease expiry after a crash (the process died up to one lease earlier: 10 s Cyclone default, 20 s Fast, 100 s RTI), and the two cannot be told apart. `observed_local`: the moment TopicForge noticed (weakest)."New value: +"`dds_source_timestamp` (DDS timestamp of the announcement or dispose; for `lost` an upper bound of the death) or `observed_local` (when TopicForge noticed, weakest)."
removedOutput schema / $defs / ParticipantEvent / properties / time_source / title
Removed value: -"Time Source"
changedOutput schema / $defs / ParticipantEvent / properties / timestamp_ns / description
Previous value: -"Wall-clock timestamp (nanoseconds since epoch) when TopicForge captured the event. For Fast DDS this is when the listener callback ran; for Cyclone this is when the polling delta was computed; for mock fixtures this is a deterministic anchor."New value: +"Wall-clock ns of the event; its origin is `time_source`."
removedOutput schema / $defs / ParticipantEvent / properties / timestamp_ns / title
Removed value: -"Timestamp Ns"
removedOutput schema / $defs / ParticipantEvent / properties / vendor / description
Removed value: -"DDS implementation tag for the participant involved, decoded the same way as `ParticipantInfo.vendor`."
removedOutput schema / $defs / ParticipantEvent / properties / vendor / title
Removed value: -"Vendor"
changedOutput schema / $defs / ParticipantEvent / required
Previous value: -[
- "guid",
- "event_type",
- "vendor",
- "timestamp_ns",
- "domain_id",
- "mode_effective"
-]New value: +[
+ "guid",
+ "event_type",
+ "vendor",
+ "timestamp_ns",
+ "domain_id"
+]
removedOutput schema / $defs / ParticipantEvent / title
Removed value: -"ParticipantEvent"
addedOutput schema / additionalProperties
Added value: +false
addedOutput schema / description
Added value: +"Envelope returned by `participant_events`."
addedOutput schema / properties / domain_id
Added value: +{
+ "description": "DDS domain observed (joined at startup).",
+ "maximum": 232,
+ "minimum": 0,
+ "type": "integer"
+}
addedOutput schema / properties / events
Added value: +{
+ "items": {
+ "$ref": "#/$defs/ParticipantEvent"
+ },
+ "type": "array"
+}
addedOutput schema / properties / mode_effective
Added value: +{
+ "description": "`live` or `mock` (fixtures).",
+ "enum": [
+ "mock",
+ "live"
+ ],
+ "type": "string"
+}
addedOutput schema / properties / note
Added value: +{
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "One sentence of context, or `None`."
+}
addedOutput schema / properties / restarts_by_name
Added value: +{
+ "additionalProperties": {
+ "$ref": "#/$defs/NameLifecycle"
+ },
+ "description": "Names seen with several GUIDs or lost at least once (absent: ran once and stayed). A restart is a new GUID with the same name. Window only.",
+ "type": "object"
+}
addedOutput schema / properties / restarts_note
Added value: +{
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Set when unnamed participants were left out of `restarts_by_name`."
+}
removedOutput schema / properties / result
Removed value: -{
- "items": {
- "$ref": "#/$defs/ParticipantEvent"
- },
- "title": "Result",
- "type": "array"
-}
addedOutput schema / properties / returned
Added value: +{
+ "minimum": 0,
+ "type": "integer"
+}
addedOutput schema / properties / total
Added value: +{
+ "minimum": 0,
+ "type": "integer"
+}
addedOutput schema / properties / truncated
Added value: +{
+ "description": "True when cut to the 200-event cap.",
+ "type": "boolean"
+}
changedOutput schema / required
Previous value: -[
- "result"
-]New value: +[
+ "events",
+ "returned",
+ "total",
+ "truncated",
+ "domain_id",
+ "mode_effective"
+]
changedOutput schema / title
Previous value: -"participant_eventsOutput"New value: +"ParticipantEventListing"