Skip to content

[BUG] Destructive and cost-affecting defaults are undisclosed: the metered user is the discovery mechanism for the vendor’s own behaviour #82187

Description

@pmcnary

Preflight Checklist

  • I have searched existing issues and this hasn't been reported yet
  • This is a single bug report
  • I am using the latest version of Claude Code

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

  1. First-run disclosure of destructive defaults. Retention in particular: state it, and surface cleanupPeriodDays in /config where it can be seen and changed.
  2. 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.
  3. Document the undocumented tool behaviour already identified in the issues above, rather than leaving users to reverse-engineer it from failures.
  4. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions