Follow Discord
Sweep 25 Sep 2026 · 19:33Z Build v2.1.283 504 read Stable v2.1.274 Latest v2.1.283 Next v2.1.283 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.281 ·

Resume after compaction keeps exactly the listed preserved messages

Resuming a compacted conversation now restores exactly the messages compaction kept, and falls back to reading everything if that list is unusable

Entry
JSON All of v2.1.281
EntryKind: in v2.1.281,
ChangesSection of the release
What

Compaction is when Claude Code shortens a long conversation by replacing older messages with a summary, leaving a marker called a compact boundary. When a saved conversation is loaded, a boundary that lists its preserved messages (compactMetadata.preservedMessages, with an anchorUuid and a list of message ids) now restores exactly those messages. It also keeps the boundary, everything after it, and any older messages those later ones point back to.

If the list cannot be used, loading reads every message instead and logs one reason: no_list, boundary_unindexed, uuid_missing, anchor_before_boundary or duplicate_uuid.

Loading now also detects messages whose chain of parents loops back on itself. Reports about a message whose parent cannot be found now give a reason: non_string_parent, unknown_parent or parent_cycle.

Why

A resumed conversation comes back with the messages compaction chose to keep, and a damaged list leads to a full read rather than a broken load.

See this entry in the whole of v2.1.281 →

Feedback