{"version":"2.1.291","summary":"Session transcripts now load in a single pass again when you resume, without pausing or retrying. Claude Code no longer stops partway to let the interface catch up. It also no longer starts the read over when the file is rewritten during loading. On very large sessions, the screen may stall briefly while the transcript loads.\n\nLive cost and token updates during a turn are now tied to a server setting, but this is not switched on yet. It affects print mode and SDK sessions. These updates only run if the server sends a reporting interval. When no interval is set, the mid-turn updates are skipped.\n\nBackground task output links are now fixed up correctly after a session moves to another folder. Claude Code repoints those links only when the move actually worked. It also uses the right paths when it does. One kind of failed session load is no longer reported as an unreadable transcript. That error now goes through the general error handling instead.","filter":{"section":null,"tier":null,"area":null},"offset":0,"limit":50,"count":9,"total":9,"next_offset":null,"next_url":null,"entries":[{"anchor":"transcript-loader-reverts-to-a-synchronous-scan-and-drops-th","heading":"Session transcripts load in a single pass again, without pausing or retrying","glance":"Reading a session file no longer pauses for the interface or restarts after rewrites, so very large resumes may stall the screen","teaser":null,"tier":"notice","area":"Sessions","section":"Improvements","position":0,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.291\/e\/transcript-loader-reverts-to-a-synchronous-scan-and-drops-th","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.291\/e\/transcript-loader-reverts-to-a-synchronous-scan-and-drops-th.json"},{"anchor":"task-output-symlink-repointing-after-a-session-transcript-re","heading":"Background task output links are fixed up correctly after a session moves","glance":"After a session moves to another directory, Claude Code now repoints background task output links only when the move worked, using the right paths","teaser":null,"tier":"notice","area":"Elsewhere","section":"Bug Fixes","position":0,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.291\/e\/task-output-symlink-repointing-after-a-session-transcript-re","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.291\/e\/task-output-symlink-repointing-after-a-session-transcript-re.json"},{"anchor":"mid-turn-cost-push-to-the-session-now-depends-on-a-remote-co","heading":"Running cost updates during a turn now depend on a server setting","glance":"Mid-turn cost and token updates for print and SDK sessions now only run if a server-provided interval is set; with none, they are skipped","teaser":null,"tier":"soon","area":"SDK","section":"In Development","position":0,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.291\/e\/mid-turn-cost-push-to-the-session-now-depends-on-a-remote-co","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.291\/e\/mid-turn-cost-push-to-the-session-now-depends-on-a-remote-co.json"},{"anchor":"transcript-loader-no-longer-yields-to-the-event-loop","heading":"Loading a saved conversation now runs in one uninterrupted pass","glance":"Reading a session's transcript no longer pauses to let the interface respond, so resuming a very large session may briefly freeze the screen","teaser":null,"tier":"internal","area":"Sessions","section":"Internal Changes","position":0,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.291\/e\/transcript-loader-no-longer-yields-to-the-event-loop","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.291\/e\/transcript-loader-no-longer-yields-to-the-event-loop.json"},{"anchor":"relocatesessiontranscript-drops-its-lock-acquisitions-and-a","heading":"Session transcript files are no longer locked while they are moved or written","glance":"Claude Code stopped taking a per-file lock on session transcripts when moving them, hydrating sessions and writing subagent transcripts","teaser":null,"tier":"internal","area":"Elsewhere","section":"Internal Changes","position":1,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.291\/e\/relocatesessiontranscript-drops-its-lock-acquisitions-and-a","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.291\/e\/relocatesessiontranscript-drops-its-lock-acquisitions-and-a.json"},{"anchor":"subagent-transcript-fetch-swapped-from-a-helper-to-promisea","heading":"Subagent transcripts for a session now all load at the same time","glance":"Claude Code now reads every subagent transcript of a session at once instead of a few at a time; a failed read still just skips that one","teaser":null,"tier":"internal","area":"Elsewhere","section":"Internal Changes","position":2,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.291\/e\/subagent-transcript-fetch-swapped-from-a-helper-to-promisea","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.291\/e\/subagent-transcript-fetch-swapped-from-a-helper-to-promisea.json"},{"anchor":"agent-transcript-loading-no-longer-passes-a-concurrency-limi","heading":"Loading subagent transcripts no longer sets its own parallel limit","glance":"Claude Code no longer passes a fixed limit on how many subagent transcripts it loads at the same time","teaser":null,"tier":"internal","area":"Elsewhere","section":"Internal Changes","position":3,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.291\/e\/agent-transcript-loading-no-longer-passes-a-concurrency-limi","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.291\/e\/agent-transcript-loading-no-longer-passes-a-concurrency-limi.json"},{"anchor":"transcript-compact-and-tombstone-removal-no-longer-take-a-pe","heading":"Shrinking a transcript and removing messages from it skip an opening wait","glance":"Compacting a session transcript and deleting messages from it no longer start by waiting on the file, which may have been a lock","teaser":null,"tier":"internal","area":"Elsewhere","section":"Internal Changes","position":5,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.291\/e\/transcript-compact-and-tombstone-removal-no-longer-take-a-pe","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.291\/e\/transcript-compact-and-tombstone-removal-no-longer-take-a-pe.json"},{"anchor":"transcript-loading-drops-the-load-exhausted-unreadable-tra","heading":"One kind of failed session load is no longer reported as an unreadable transcript","glance":"A session load that fails with one particular error no longer goes through the 'transcript unreadable' path; the general error handling takes it instead","teaser":null,"tier":"internal","area":"Sessions","section":"Removed","position":0,"scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.291\/e\/transcript-loading-drops-the-load-exhausted-unreadable-tra","entry_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.291\/e\/transcript-loading-drops-the-load-exhausted-unreadable-tra.json"}],"facets":{"sections":[{"value":"Improvements","entries":1},{"value":"Bug Fixes","entries":1},{"value":"In Development","entries":1},{"value":"Internal Changes","entries":5},{"value":"Removed","entries":1}],"tiers":[{"value":"internal","entries":6},{"value":"notice","entries":2},{"value":"soon","entries":1}],"areas":[{"value":"Elsewhere","entries":5},{"value":"Sessions","entries":3},{"value":"SDK","entries":1}]}}