Skip to main content

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