Skip to content

dev.superpipeline.attention.answer.v2

A person’s answer to an attention.v2, naming the wait they were shown (board, card, wait id) and referencing the card’s message. A resume carries its instruction as text. Readers ignore properties they do not know.

An m.room.message whose content carries suite_event_type: "dev.superpipeline.attention.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" no
body string no
suite_event_type "dev.superpipeline.attention.answer.v2" yes
board_id string yes at least 1 character; at most 200 characters
card_id string yes at least 1 character; at most 200 characters
wait_id string yes at least 1 character; at most 200 characters
option_id string yes pattern ^(resume_here|archive|resume_at:.+)$; at most 200 characters
text string no at most 16000 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": {
"pattern": "^resume"
}
}
},
"then": {
"required": [
"text"
],
"properties": {
"text": {
"pattern": "\\S",
"maxLength": 2730
}
}
}
}
]
}

From fixtures/matrix-events/examples.json, case “resume here with an instruction”:

{
"msgtype": "m.text",
"body": "Resume here",
"suite_event_type": "dev.superpipeline.attention.answer.v2",
"board_id": "brd_7c1f",
"card_id": "crd_6b40",
"wait_id": "wait_0123456789abcdef",
"option_id": "resume_here",
"text": "The database is back; run the migrations again.",
"m.relates_to": {
"rel_type": "m.reference",
"event_id": "$attentionEventId"
}
}

The corpus has 3 valid cases in all:

resume at an earlier stage
{
"msgtype": "m.text",
"body": "Resume at Plan",
"suite_event_type": "dev.superpipeline.attention.answer.v2",
"board_id": "brd_7c1f",
"card_id": "crd_6b40",
"wait_id": "wait_0123456789abcdef",
"option_id": "resume_at:plan",
"text": "Re-plan around the outage.",
"m.relates_to": {
"rel_type": "m.reference",
"event_id": "$attentionEventId"
}
}
archive, with no text
{
"msgtype": "m.text",
"body": "Archive",
"suite_event_type": "dev.superpipeline.attention.answer.v2",
"board_id": "brd_7c1f",
"card_id": "crd_6b40",
"wait_id": "wait_0123456789abcdef",
"option_id": "archive",
"m.relates_to": {
"rel_type": "m.reference",
"event_id": "$attentionEventId"
}
}

Each of these must fail. The corpus says why:

  • a resume with no instruction (refused by schema)
  • a resume whose instruction is longer than the board takes (refused by schema)
  • a forward move the card did not offer (refused by schema)
  • a different wait than the one posted (refused by recorded)
  • a quoted reply, not a reference (refused by schema)
  • a reference to another message (refused by recorded)