I archive my own agent sessions, and even before provider-sealed state the local half of the promise is already broken: Claude Code deletes local transcripts after ~30 days by default, and the JSONL it does keep has edge cases like the same message id appearing twice with different usage tuples. "The local event log is canonical" is the right rule, but today you have to actively rescue that log from your own client before you ever get to fight the API.
The encrypted thinking signature blocks are the part I still have no good answer for: you can store them losslessly, but on restore into a different client they are just dead weight.
I archive my own agent sessions, and even before provider-sealed state the local half of the promise is already broken: Claude Code deletes local transcripts after ~30 days by default, and the JSONL it does keep has edge cases like the same message id appearing twice with different usage tuples. "The local event log is canonical" is the right rule, but today you have to actively rescue that log from your own client before you ever get to fight the API.
The encrypted thinking signature blocks are the part I still have no good answer for: you can store them losslessly, but on restore into a different client they are just dead weight.
[dead]