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.
CloudEvents
Section titled “CloudEvents”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.
Who sends it, who reads it
Section titled “Who sends it, who reads it”- 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.
Fields
Section titled “Fields”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 |
Example
Section titled “Example”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"}Refused
Section titled “Refused”Each of these must fail. The corpus says why:
- a pull-back says why
- pulledBackBy is required
Source
Section titled “Source”- Schema:
schemas/superpipeline/decision.pulled_back.v1.json - In the package:
import schema from "@superjackfruitlabs/treaty-event-schemas/superpipeline/decision.pulled_back.v1.json" with { type: "json" };