Something went wrong. Try again.
source dump of claude code forked from oppi.li/claude-code
Something went wrong. Try again.
1.8 kB · 43 lines
TypeScript
at main
1234567891011121314151617181920212223242526272829303132333435363738394041424344import { getFeatureValue_CACHED_MAY_BE_STALE } from '../analytics/growthbook.js'
/** * GrowthBook config for time-based microcompact. * * Triggers content-clearing microcompact when the gap since the last main-loop * assistant message exceeds a threshold — the server-side prompt cache has * almost certainly expired, so the full prefix will be rewritten anyway. * Clearing old tool results before the request shrinks what gets rewritten. * * Runs BEFORE the API call (in microcompactMessages, upstream of callModel) * so the shrunk prompt is what actually gets sent. Running after the first * miss would only help subsequent turns. * * Main thread only — subagents have short lifetimes where gap-based eviction * doesn't apply. */export type TimeBasedMCConfig = { /** Master switch. When false, time-based microcompact is a no-op. */ enabled: boolean /** Trigger when (now − last assistant timestamp) exceeds this many minutes. * 60 is the safe choice: the server's 1h cache TTL is guaranteed expired * for all users, so we never force a miss that wouldn't have happened. */ gapThresholdMinutes: number /** Keep this many most-recent compactable tool results. * When set, takes priority over any default; older results are cleared. */ keepRecent: number}
const TIME_BASED_MC_CONFIG_DEFAULTS: TimeBasedMCConfig = { enabled: false, gapThresholdMinutes: 60, keepRecent: 5,}
export function getTimeBasedMCConfig(): TimeBasedMCConfig { // Hoist the GB read so exposure fires on every eval path, not just when // the caller's other conditions (querySource, messages.length) pass. return getFeatureValue_CACHED_MAY_BE_STALE<TimeBasedMCConfig>( 'tengu_slate_heron', TIME_BASED_MC_CONFIG_DEFAULTS, )}