Consultation
object type
A Consultation: the VERBATIM TRANSCRIPT is the record (bounded turn rows — read via consultationTurns) and the MEMORY is the STORED rolling summary ON this record — auditable, purgeable, merchant-visible, never hidden model state. Each ask composes the summary + the last 12 turns verbatim + the asked materials' STORED extractions (EXTRACT-THEN-COMPOSE — raw content is read exactly once, at material confirm). Aldric may attach a DRAFTED PLAN to a reply; TAKING a drafted plan (takeConsultationPlan) mints a Scratchpad through the live spine (origin consultation) and the walk proceeds under the TAKER's own capability (the hardened-Aldric law — the chat holds ZERO mutation authority). Outgrowing the 200-turn transcript refuses HONESTLY naming the cure: a follow-on consultation linked via followOnOfId (never silent middle-loss). USER-parented (the consulter owns the chat), group-rooted. The ops event domain (at.ops.consultation.*).
Fields
| Field | Type | Notes |
|---|---|---|
id | ID ID! | The record’s id — a UUID the platform assigned when the record was created; every reference to this record uses it. |
sysId | String String! | The group-scoped human-facing system id (CI-…). |
type | String String! | The kind of record — always Consultation here. |
caption | String String! | The record’s display name — what people see it called. |
status | String String! | The FSM state: open | archived | discarded. |
parentId | ID ID! | The consulting User; parentId ≠ rootId by construction (the org group is the root). |
rootId | ID ID! | The org-group family root. |
createdAt | String String! | When the record was created, as a UTC timestamp. |
updatedAt | String String! | When the record last changed, as a UTC timestamp. |
revisionNum | Int Int! | How many times this record has been edited; the first save is 0. |
revision | ID ID! | The OCC revision token — supply it on every mutation of this record; rotates on every write. |
refCaptions | RefCaption [RefCaption!]! | The server-composed captions of this record's declared references (the referenced-caption rule) — one row per referenced id; see RefCaption. |
turnCount | Int Int! | The transcript length (== the next turn's seq; the turn rows are the truth, this is the OCC-stamped cache). |
summary | String | THE STORED ROLLING SUMMARY. |
summarizedThroughSeq | Int Int! | Turns below this seq live INSIDE the summary; turns from it onward compose verbatim into each ask. |
followOnOfId | ID | The outgrowth link — the consultation THIS one continues. |
idleArchiveAt | String | SYSTEM-stamped at birth, at every ask and at reopen = the last activity + 30 days — the scheduler archives the conversation at this instant if it is still open; a parked row keeps its last stamp as history. |
turnsTierAt | String | SYSTEM-stamped when the conversation archives (by you or by the idle sweep) = the archive instant + 90 days — the scheduler moves the transcript to the archive bucket at this instant if the conversation is still archived; reopen removes it; a tiered row carries none. |
turnsTier | String | Present (archive) once the transcript has moved to the archive bucket after 90 days archived — consultationTurns still reads it whole (the tier is transparent); taking a drafted plan then needs a reopen first; reopen brings the rows back and clears this. Absent while the rows are hot. |