Skip to content

dev.superpipeline.delivery.answer.v2

A person’s answer to a delivery.v2: record_live_url with the https link as text, or switch_to_automatic, referencing the follow-up’s message. Readers ignore properties they do not know.

An m.room.message whose content carries suite_event_type: "dev.superpipeline.delivery.answer.v2".

The carrier is whichever service carries the board’s chat: AgentPod’s hub, or SuperExchange for a board that has moved to it.

Field Type Required Description Constraints
msgtype "m.text" yes
body string yes
schema_version integer yes at least 1
suite_event_type "dev.superpipeline.delivery.answer.v2" yes
gate_id string yes at least 1 character; at most 200 characters
option_id one of "record_live_url", "switch_to_automatic" yes
text string no at most 2000 characters
m.relates_to object yes
m.relates_to.rel_type "m.reference" yes
m.relates_to.event_id string yes at least 1 character

The schema also states these rules across fields, as written:

{
"allOf": [
{
"if": {
"properties": {
"option_id": {
"const": "record_live_url"
}
}
},
"then": {
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"pattern": "^https://[^\\s<>]+$"
}
}
}
}
]
}

From fixtures/matrix-events/examples.json, case “the live link, as an https URL”:

{
"msgtype": "m.text",
"body": "Live at https://social.example/posts/1",
"schema_version": 1,
"suite_event_type": "dev.superpipeline.delivery.answer.v2",
"gate_id": "gate_8f3a",
"option_id": "record_live_url",
"text": "https://social.example/posts/1",
"m.relates_to": {
"rel_type": "m.reference",
"event_id": "$deliveryEventId"
}
}

The corpus has 2 valid cases in all:

switching to automatic delivery on a complete preview
{
"msgtype": "m.text",
"body": "Post it automatically",
"schema_version": 1,
"suite_event_type": "dev.superpipeline.delivery.answer.v2",
"gate_id": "gate_8f3a",
"option_id": "switch_to_automatic",
"m.relates_to": {
"rel_type": "m.reference",
"event_id": "$deliveryEventId"
}
}

Each of these must fail. The corpus says why:

  • a link that is not https (refused by schema)
  • recording the live link with no link (refused by schema)
  • an option the follow-up did not offer (refused by schema)
  • switching to automatic delivery on a follow-up whose preview was incomplete (refused by recorded)
  • no m.relates_to, exactly as for a gate decision (refused by schema)