{"version":"2.1.248","anchor":"stale-data-refetch-throttle-becomes-server-tunable-still-off","canonical_anchor":"stale-data-refetch-throttle-becomes-server-tunable-still-off","heading":"Stale-data refetch throttle becomes server-tunable, still off by default","tier":"soon","area":"Internals","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.248\/e\/stale-data-refetch-throttle-becomes-server-tunable-still-off","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.248","markdown":"### Stale-data refetch throttle becomes server-tunable, still off by default\n\nRefetch throttling after stale-data signals is now server-tunable but stays off without a server value.\n\n**What**\n\nWhen the server signals that Claude Code's cached client data is out of date, the refetch is rate-limited. Those limits moved from fixed values to a server-supplied config, `tengu_expressive_whistle_config`: a minimum interval defaulting to 300 seconds (clamped 30 to 86400) and jitter defaulting to 180 seconds (clamped 0 to 3600). The whole path sits behind `tengu_expressive_whistle`, whose compiled fallback is false, so without a server value it never runs.\n\n**Details**\n\n- Both resolved values are reported in the refetch event as `min_interval_ms` and `jitter_ms`.\n- The config key defaults to an empty object, so the defaults above apply if the gate is turned on without config.\n\n**Evidence**\n\n`tengu_expressive_whistle_config`\n\n- Flag `tengu_expressive_whistle`: Off in both readings (read for one account on one subscription tier against v2.1.248; this account: off, anonymous baseline: off, compiled default: off)\n- Area: Internals\n- Tier: Nothing to try yet\n- Useful: 1\/5\n- Signal: 2\/5\n- Present in the build but not switched on"}