---
url: >-
  https://adk.nht.io/api/@nhtio/adk/batteries/context/compact/summarizer/variables/DEFAULT_SUMMARY_MESSAGE_ID.md
description: >-
  The default id assigned to the synthetic summary message {@link
  assembleCompactedTurns} emits.
---

# Variable: DEFAULT\_SUMMARY\_MESSAGE\_ID

```ts
const DEFAULT_SUMMARY_MESSAGE_ID: "__compact-summary" = "__compact-summary";
```

Defined in: [src/batteries/context/compact/summarizer.ts:54](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/context/compact/summarizer.ts#L54)

The default id assigned to the synthetic summary message [assembleCompactedTurns](../functions/assembleCompactedTurns.md) emits.

## Remarks

This exact string is the cross-battery contract with Token Thrift: `thrift`'s
[@nhtio/adk/batteries/context/thrift/contracts!IsSummaryMessageFn](../../../thrift/contracts/type-aliases/IsSummaryMessageFn.md) default predicate is
`id === '__compact-summary'` — a caller running `compact` upstream of `thrift` in the same pipeline
gets, for free, thrift's protection of this message from being shed like an ordinary old turn. If a
caller overrides `summaryMessageId` here, they must also override thrift's `isSummaryMessage` option
to match, or thrift will treat the running summary as just another shed-able message.
