OptionalBoundaryThe boundary row's Sequence — the new summary covers everything below it
OptionalErrorSet when the attempt failed — the conversation is left untouched
True when a summary was generated and persisted
OptionalPromptThe summary prompt used
OptionalPromptThe summary AIPromptRun entity (rollup fields populated by the runner) — threaded into the Compaction run step's transient PromptRun so calculateTokenStats can include the summary sub-call's tokens/cost in the agent run's totals.
OptionalPromptThe AIPromptRun that produced the summary (also written to ConversationDetail.SummaryPromptRunID)
OptionalSkippedWhy the check was a no-op (only when Fired is false and no error occurred)
OptionalSummaryThe generated summary text (so a pre-turn caller can splice it into live messages without a re-fetch)
OptionalTokensEstimated window tokens after compaction (new summary + retained tail)
Estimated window tokens before compaction
Non-fatal notes (e.g. budget clamp) surfaced into the run step's OutputData
Result of a ConversationCompactionManager.CompactIfNeeded call.