Under the hoodTier: how much it should matter to you
2Useful: my rating, 1 to 5
2Signal: worth watching, 1 to 5
InternalsArea: what it touches
Internal ChangesKind: in v2.1.292,
Internal ChangesSection of the release
What
Claude Code fetches feature flags, which are server-side switches that turn behaviour on or off, from a service called GrowthBook. It keeps a copy on disk in cachedGrowthBookFeatures so the flags are available at the next startup. A specific set of flags is now kept out of that copy:
When the fetched flags are written to disk, flags in the set are left out of both the cached features and the cached experiment data. Before, everything was written.
When no freshly fetched values are available, getAllFeatures() now filters the cached features before returning them. Before, it returned the cache unfiltered.
getFeatureValueWithSource and checkGateCachedOrBlocking now check whether a flag is in the set. If it is, they ignore the value saved on disk and return the built-in fallback value.
A new okFetchCount() method was also added alongside this.
Why
Flags in this set no longer carry an old saved value over from one startup to the next. Until a fresh value arrives from the server, they use their default instead of a possibly stale one.