ChatApprovalOutcome
A resolved approval card, kept so the transcript still shows what the user agreed to and what it produced.
type ChatApprovalOutcome {
status: ChatApprovalStatus!
artifact: Map!
resourceKind: String
resourceID: String
resourceName: String
resourceVersion: Int
refusalCode: String
}
Fields
ChatApprovalOutcome.status ● ChatApprovalStatus! non-null enum
ChatApprovalOutcome.artifact ● Map! non-null scalar
The artifact the user was shown AND AGREED TO, in the same JSON shape the
preview SSE frame carries — deliberately the frozen one, not a re-read of
the resource as it stands today. The generated Python is NOT included:
chat_message is never purged and is readable by every org member holding
org__chat__read, and strategy code may be encrypted at rest.
ChatApprovalOutcome.resourceKind ● String scalar
The created/started row, when the server could prove one exists.
resourceID is String, not ID: it is whatever the approved mutation's own
id field returned, kept verbatim. The console routes on it and never parses
it, and binding it to a uuid would turn any id this server does not happen to
mint as a UUID into a LOST LINK — the one thing on a spent card that
contradicts "nothing happened".
ChatApprovalOutcome.resourceID ● String scalar
ChatApprovalOutcome.resourceName ● String scalar
ChatApprovalOutcome.resourceVersion ● Int scalar
The version number the approved mutation LANDED ON, when its return type has one — an iteration's card says "Saved version 2 of …" and this is the 2 (#2753).
NULL means the server did not say, and the card then uses the wording that
names no number. It is never computed: previousVersion + 1 is arithmetic
over a sequence that counts soft-deleted rows, so it is only accidentally
right, and naming a version that does not exist is worse than naming none.
It exists HERE and on the approval response's resource.version together,
from the one Go value (chat.ApprovedResource). The first attempt at this
wording was reverted because only the live path had the number, which would
have made the card say one thing before a reload and another after — #2719's
invariant, and the exact class of defect #2753 is about.
ChatApprovalOutcome.refusalCode ● String scalar
The server's stable refusal code, when the approval did not simply succeed.
Member Of
ChatTurnOutcome object