From vidoluco's #946 validation postmortem: their unpublished local build wrote synthetic calls into a shared cache dir; the published build read them back and served them (cost double-counted, 1.83x) because session-cache.v9 entries are fingerprinted on the SOURCE FILE only, with no record of the build/semantics that produced them. Two builds with different cost semantics sharing CODEBURN_CACHE_DIR mix silently and keep matching on fingerprint. Their words: 'a build or schema fence would have turned three days of hunting into a cache miss.' Fix idea: stamp entries (or the envelope) with a semantics token (e.g. the PROVIDER_PARSE_VERSIONS hash already exists — but their build shared it; consider a build-id or an explicit cache-semantics version distinct from parse versions) and treat mismatch as a cache miss for that provider.
From vidoluco's #946 validation postmortem: their unpublished local build wrote synthetic calls into a shared cache dir; the published build read them back and served them (cost double-counted, 1.83x) because session-cache.v9 entries are fingerprinted on the SOURCE FILE only, with no record of the build/semantics that produced them. Two builds with different cost semantics sharing CODEBURN_CACHE_DIR mix silently and keep matching on fingerprint. Their words: 'a build or schema fence would have turned three days of hunting into a cache miss.' Fix idea: stamp entries (or the envelope) with a semantics token (e.g. the PROVIDER_PARSE_VERSIONS hash already exists — but their build shared it; consider a build-id or an explicit cache-semantics version distinct from parse versions) and treat mismatch as a cache miss for that provider.