Shipped: 0.1.0-alpha.19 — CacheControl shape lock + cacheSavingsUSD rename (BREAKING) #42
Replies: 1 comment
-
|
Follow-up: shipped alpha.19.1. Honest reason for the dot-release: alpha.19 locked the What landed:
Test stats: 654 passing across 7 packages (was 626 in alpha.19; +28 new). No breaking changes vs alpha.19. The four-alpha sequence holds: alpha.20 BudgetScope on 2026-06-17, alpha.21 observability hooks on 2026-06-20, beta.0 on 2026-06-30. Full release notes: https://github.com/baabakk/llm-ports/releases/tag/%40llm-ports%2Fcore%400.1.0-alpha.19.1 |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Shipped:
0.1.0-alpha.19.npm install @llm-ports/core@alpharesolves to it now. Everything previewed in #41 landed exactly as described, including the BREAKING rename.This is the third of four shape-locks before
beta.0on 2026-06-30. Two more alphas in the next 8 days, then the surface stops moving and the beta minors start shipping the things you actually want (more on that below).The breaking thing (do this first)
cost.cacheDiscountUSDis dead. Long livecost.cacheSavingsUSD.The old name implied the provider was generously giving you a discount. They aren't. It's your money you didn't have to spend because you re-sent the same context. OpenInference's
llm.cost.cache_savings, Helicone's dashboards, and every observability vendor in the field already use "savings". We were the odd one out. Fixed.TypeScript catches every read site. Runtime code that hand-rolled the old name silently resolves to
undefined, so check your dashboards too.The new typed surface
One field, three providers, four modes. Anthropic explicit markers, OpenAI implicit always-on, Gemini handle pattern — all collapsed behind one optional field that the adapter translates per provider:
automanualpreCreatedcachedContentHandleoffcache_controlfrom blocksPlus
namespacefor per-tenant cache partitioning through Helicone-style proxies, andttlSecondsfor Anthropic's 300/3600 tiers or Gemini's arbitrary positive values.Shape is locked. Per-mode adapter behaviors mature across beta minors without breaking the shape. Write call sites against it today; they won't change.
Full per-provider behavior in docs/concepts/cache.md.
What's coming (since you'll ask anyway)
The next 18 days finish the shape-lock sequence:
BudgetScope. Five tiers:tenant → customer → user → agent → session. Your noisy customer can't burn the rest of your budget. Minute-grain windows because Cerebras's 30-RPM cap is not expressible ascost:N/dayno matter how creatively you squint at the math.gen_ai.*.onCost/onTokenUsage/onFallback/onValidationRetry/onCacheHit. Drop-in Langfuse / Phoenix / OpenLLMetry / Datadog. Zero adapter code on your side.Then the beta minors stop locking and start delivering:
runtimeFallback.shouldFallback). Adapter-anthropic stops burning your tokens on extended-thinking models that spend their entire output budget on hidden reasoning. Auto multi-turn cache placement. Four capability factories you've been writing yourself:createDetector,createTagger,createAnswerer,createResponder."$X per 1M tokens per tenant per day". PluggableCacheBackendso your exact-prompt cache lives where you want it (Redis, file, your own KV). Three more factories:createRewriter,createDecider,createExpander.RerankPortgets its first adapter. Three harder factories:createRedactorfor PII-safe prompts,createAgentergonomics so multi-turn tool-use stops feeling like assembling IKEA without instructions, capability-wrapper aroundRerankPort.Test stats
626 passing across the workspace (up from ~615 in alpha.18). 11 new tests in
packages/core/tests/cache-control.test.tscover the shape lock and the field rename.Links
Found a real gap in the four modes before beta.0? Reply here or file an issue. Additive fields are still on the table; structural changes aren't.
Beta Was this translation helpful? Give feedback.
All reactions