Follow Discord
Sweep 22 Oct 2026 · 04:32Z Build v2.1.308 527 read Stable v2.1.308 Latest v2.1.308 Next v2.1.308 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.248 ·

Transcripts owned by the Claude desktop app are exempt from the retention sweep

Desktop-owned transcripts survive the retention sweep, capped by a new desktopSessionCleanupPeriodDays setting.

Use it now Notable New Features
JSON All of v2.1.248
Use it nowTier: how much it should matter to you
4Useful: my rating, 1 to 5
4Signal: worth watching, 1 to 5
Transcript RetentionArea: what it touches
New FeaturesKind: in v2.1.248,
What probably matters to youSection of the release
What

The sweep that deletes old local .jsonl conversation transcripts now identifies the ones created or last written by a desktop-host surface (Claude Desktop or Cowork) and keeps them instead of deleting them, giving them a grace period for as long as the desktop client still holds them. A new settings key, desktopSessionCleanupPeriodDays, puts a ceiling on that exemption, and kept files are counted separately from deleted ones in the sweep's telemetry. The exemption is dropped entirely when cleanupPeriodDays is set by org policy or the session runs under the hipaa or zdr compliance posture, so those deployments keep deleting on the old schedule.

Details
  • desktopSessionCleanupPeriodDays is a maximum age in days, validated as a non-negative integer, described in the settings schema as "Retention ceiling in days for session transcripts created or last written by a desktop-host surface (Claude Desktop, Cowork), which are otherwise exempt from the cleanupPeriodDays sweep." Its compiled default is 0, meaning no ceiling, so nothing is deleted unless you set it, for example { "desktopSessionCleanupPeriodDays": 30 }.
  • The cleanup pass now iterates both retention keys rather than only cleanupPeriodDays.
  • Ownership is decided by reading the head and tail of each transcript and inspecting its entrypoint field.
  • A companion marker file named .desktop-released.json, sitting next to the transcript, is how the desktop app hands a file back: reason: "delete" releases it immediately, reason: "archive" releases it once the marker itself is older than the cutoff, and any other value leaves the grace period in place.
  • Claude Code only reads that marker and never writes it, so the desktop app is the sole producer.
  • .desktop-released.json and its .desktop-released.json.tmp temporary form are themselves sweepable, except that a marker matching a transcript still on disk is skipped.
  • Kept files get a distinct "grace" outcome rather than counting as deleted or skipped, reported as transcriptsExemptedDesktop in the tengu_retention_sweep event and as transcripts_exempted_desktop in the OTEL-style record.
  • There is no flag to turn the exemption on or off; only the compliance posture or an org-set cleanupPeriodDays suppresses it.
  • Deletion of transcript side files is now staged: paths are collected while walking a directory and unlinked only at the end, and the whole batch is dropped if any error occurred during the walk, so a partial failure no longer leaves half-deleted state.
Evidence

.desktop-released.json, var U = ".desktop-released.json", transcriptsExemptedDesktop, transient read failure while classifying a transcript for the desktop retention exemption, Retention ceiling in days for session transcripts created or last written by a desktop-host surface (Claude Desktop, Cowork), which are otherwise exempt from the cleanupPeriodDays sweep., transcripts_exempted_desktop

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Read from
Since it was published

The entry above is what we published on the day. These lines were added later, as Anthropic's own pages caught up, and they sit beside the original rather than replacing it.

Confirmed since Anthropic's documentation has since written up desktopSessionCleanupPeriodDays, on Configure server-managed settings. * An invalid `cleanupPeriodDays` or `desktopSessionCleanupPeriodDays` value stays in the cached copy and is never applied. server-managed-settings see the edit
Confirmed since Anthropic's documentation has since written up cleanupPeriodDays, on All settings. | Every other key | Takes the value from the highest source that sets it | [`cleanupPeriodDays`](#cleanupperioddays), [`model`](#model) | settings-reference see the edit
How sure we are
Two sources agreeTwo things we can check say the same as this entry.
Anthropic's documentation agreesAnthropic's documentation has since written up cleanupPeriodDays, on All settings.
Anthropic's release notes agreeFixed Claude Desktop and Cowork sessions disappearing after 30 days: the transcript cleanup now keeps desktop-written sessions while they…
The name it cites is new in this buildNew in this build: desktopSessionCleanupPeriodDays

See this entry in the whole of v2.1.248 →

Feedback