Under an experimental mode, empty CLAUDE.md content is now sent as an explicit empty string to keep prompt caching stable.
The per-session context builder now tracks a separate instructionFiles field alongside memoryFiles, via new userContextInstructionFiles state. This path only runs when the Ml() gate (checking CLAUDE_CODE_CARVED_SLATE or the tengu_carved_slate remote flag, default false) is enabled; otherwise it is short-circuited. The context refresh function that clears/rebuilds this cached user context now also takes a refreshReason argument (session_start, compaction, policy_refresh, directory_added, settings_sync, account_change), shown to the model via strings like "after the conversation was compacted" or "after the organization's managed settings changed".
When the same carved-slate gate is on and there is no CLAUDE.md content, the context block now explicitly emits claudeMd: "" instead of omitting the key, keeping the block structure stable, likely for prompt caching.
tengu_carved_slate Off in both readingsThe flag server returned off for the account this site reads and for the anonymous baseline. A reading of off cannot rule out a rollout these two readings sit outside of.
This account: off · anonymous baseline: off · compiled default in v2.1.252: not a boolean we can read
Read once, for one account on one subscription tier, against v2.1.252. It isn't a statement about your account. What a flag value here can and cannot tell you
A reading is one sample. Claude Code evaluates its flags remotely, so no client sees the targeting rule behind a value and this says nothing about your account.
A reading is one sample. Claude Code evaluates its flags remotely, so no client sees the targeting rule behind a value and this says nothing about your account.