Preflight Checklist
What's Wrong?
Several Claude Code behaviours that materially affect data retention and cost are not disclosed at install, not surfaced in /config, and not documented where a user would look. The only way to find them is to investigate — and on a token-metered product, that investigation is billed to the user.
This issue is about the disclosure gap itself, not any one of the behaviours. Each is filed separately; the pattern is what needs an owner.
The undisclosed behaviours, and how each had to be discovered
| Behaviour |
How a user finds out |
Filed as |
| Transcripts are deleted after 30 days by default |
Notice history is gone, or audit the store against history.jsonl |
#62476, #59248, #79758 |
cleanupPeriodDays may be ignored even when set |
Compare git-tracked settings against surviving sessions |
#41458 (data-loss, regression) |
/bug opens a public GitHub form and attaches no transcript |
Extract the URL from the CLI binary |
filed alongside this |
Bash timeout sometimes hard-kills (exit 143) with no partial output, sometimes auto-backgrounds; criteria undocumented |
Lose a long command and diff the two behaviours |
#79879, #48861, #77645 |
| Session history is re-materialised up to ~11× by compaction |
Parse the transcript store and count duplicate uuids |
filed alongside this |
| Server-gated system-prompt sections change model behaviour, enabled by capability rather than user config, with no opt-out |
Notice the model stop honouring your own configuration |
#80988 |
| Default reasoning effort was reduced 2026-03-04 → 2026-04-07 |
A postmortem published after the window closed |
— |
Why the disclosure gap is the bug
Taken individually each of these is a papercut with a workaround. Taken together they describe a product where the user is the discovery mechanism for the vendor's own defaults, and pays per token for the privilege.
Concretely, in my case: establishing the retention behaviour, the write amplification, and the /bug destination required a full-corpus audit — 3,146 transcript files, 5.39 GB, multi-agent analysis costing millions of tokens, plus a working day of back-and-forth. Every one of those facts is something the vendor already knows and could have stated in one line of documentation or one first-run prompt.
The retention case is the sharpest. On this machine, history.jsonl references 13 sessions and 11 no longer exist on disk — nine from 2026-03-19 → 2026-04-08, one of them 117 prompts long. That data was destroyed by a default I was never shown, and I discovered it only because I happened to audit the store for an unrelated reason, one day before eight more sessions crossed the same threshold.
There is also no in-product path to report any of this privately, and no route to billing or support, so the cost of discovery cannot be recovered or even raised.
Expected Behavior
- First-run disclosure of destructive defaults. Retention in particular: state it, and surface
cleanupPeriodDays in /config where it can be seen and changed.
- A behavioural changelog. Not version numbers — the actual changes to defaults, system prompts, reasoning effort and tool behaviour, published when they ship, not in a postmortem afterwards.
- Document the undocumented tool behaviour already identified in the issues above, rather than leaving users to reverse-engineer it from failures.
- A private support/report path with a route to billing, so a user who has spent real money discovering vendor defaults can raise it somewhere other than a public issue tracker.
Environment
- Claude Code CLI 2.1.220
- VS Code extension 2.1.220 (auto-updated; 19 client versions in 5 weeks, no pinning)
- Linux (Debian)
- 67 sessions / 37 days of continuous use analysed
Preflight Checklist
What's Wrong?
Several Claude Code behaviours that materially affect data retention and cost are not disclosed at install, not surfaced in
/config, and not documented where a user would look. The only way to find them is to investigate — and on a token-metered product, that investigation is billed to the user.This issue is about the disclosure gap itself, not any one of the behaviours. Each is filed separately; the pattern is what needs an owner.
The undisclosed behaviours, and how each had to be discovered
history.jsonlcleanupPeriodDaysmay be ignored even when setdata-loss,regression)/bugopens a public GitHub form and attaches no transcripttimeoutsometimes hard-kills (exit 143) with no partial output, sometimes auto-backgrounds; criteria undocumenteduuidsWhy the disclosure gap is the bug
Taken individually each of these is a papercut with a workaround. Taken together they describe a product where the user is the discovery mechanism for the vendor's own defaults, and pays per token for the privilege.
Concretely, in my case: establishing the retention behaviour, the write amplification, and the
/bugdestination required a full-corpus audit — 3,146 transcript files, 5.39 GB, multi-agent analysis costing millions of tokens, plus a working day of back-and-forth. Every one of those facts is something the vendor already knows and could have stated in one line of documentation or one first-run prompt.The retention case is the sharpest. On this machine,
history.jsonlreferences 13 sessions and 11 no longer exist on disk — nine from 2026-03-19 → 2026-04-08, one of them 117 prompts long. That data was destroyed by a default I was never shown, and I discovered it only because I happened to audit the store for an unrelated reason, one day before eight more sessions crossed the same threshold.There is also no in-product path to report any of this privately, and no route to billing or support, so the cost of discovery cannot be recovered or even raised.
Expected Behavior
cleanupPeriodDaysin/configwhere it can be seen and changed.Environment