Skip to content

decision.pulled_back v1

A held approval was pulled back before its release time, as request changes (charter 2026-11-09, an approval may wait for its release time §4). pulledBackBy is a principal id. Mirrors SuperPipeline’s DecisionPulledBackBody (apps/api/src/board/views.ts). Readers ignore properties they do not know.

Every event below carries dataschema https://raw.githubusercontent.com/SuperJackfruitLabs/treaty/main/schemas/superpipeline/decision.pulled_back.v1.json.

Body event CloudEvents type Subject
decision.pulled_back com.superjackfruit.superpipeline.decision.pulled_back.v1 evt.<workspace>.superpipeline.decision.pulled_back

The subject is the NATS subject the relay files it under; <workspace> is the board’s workspace. See the envelope and subjects.

  • Produced by SuperPipeline, through the relay.
  • Consumed by:
    • SuperExchange: Posts it to the board’s room, for the boards it carries. Receives it through the relay.
    • AgentPod: The hub’s board chat posts it, for the boards it still carries.
    • SuperDispatch: Takes it as a nudge to look at the board soon, on a board opted into scheduling. Reads nothing from its data.

Readers ignore properties they do not know, so a field may be added without a new version.

Field Type Required Description Constraints
event "decision.pulled_back" yes
boardId string or null yes Null only on a board not yet initialised; a carrier needs it to route the event.
cardId string yes
gateId string yes
pulledBackBy string yes
at string yes format date-time
comment string yes Why, as the person wrote it; the board refuses a blank one. pattern \S

From fixtures/superpipeline-events/examples.json, case “pulled-back”:

{
"event": "decision.pulled_back",
"boardId": "brd_134a0ddb6d434478",
"cardId": "crd_0f3c9a2b7d4e4a11",
"gateId": "gat_5d1e2f3a4b5c6d7e",
"pulledBackBy": "usr_decider",
"at": "2026-11-10T09:45:00.000Z",
"comment": "wrong image"
}

Each of these must fail. The corpus says why:

  • a pull-back says why
  • pulledBackBy is required