This release adds 3 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+8 more
Summary
AI summaryUpdates Minor Changes, sdk, and d8caad3 across a mixed release.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Medium |
Adds CDN bundle preload mode to @contentrain/query SDK Adds CDN bundle preload mode to @contentrain/query SDK Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Feature | Low |
Bundle revalidation occurs after 60,000 ms with conditional GET request Bundle revalidation occurs after 60,000 ms with conditional GET request Source: granite4.1:30b@2026-07-15-audit Confidence: low |
— |
| Feature | Low |
Provides transparent fallback to per-path fetching if bundle is missing or errors Provides transparent fallback to per-path fetching if bundle is missing or errors Source: granite4.1:30b@2026-07-15-audit Confidence: low |
— |
| Feature | Low |
Limits bundle usage to content/, documents/, and meta/ paths only Limits bundle usage to content/, documents/, and meta/ paths only Source: granite4.1:30b@2026-07-15-audit Confidence: low |
— |
| Feature | Low |
Adds client.preload(locale?) method for eager warm‑up of the bundle cache Adds client.preload(locale?) method for eager warm‑up of the bundle cache Source: granite4.1:30b@2026-07-15-audit Confidence: low |
— |
Full changelog
Minor Changes
-
d8caad3: feat(sdk): CDN bundle preload mode — collapse per-render fetch waterfalls into a single conditional GET
@contentrain/query:
createContentrain({ bundle: true })makesHttpTransportfetch_bundle/{locale}.json(one artifact with every JSON model for the locale) and serve all collection/singleton/dictionary/document-index reads from memory. Default off — behavior withoutbundleis unchanged.- Opt-in
bundleconfig.true→{ revalidateMs: 60_000 }; the bundle is revalidated with a conditional request (unchanged →304) afterrevalidateMs. - Transparent fallback. Bundle
404/invalid/network error → per-path fetching (retried afterrevalidateMs), so the SDK can ship before the CDN publishes bundles. - Scoped coverage. Only
content/,documents/,meta/paths consult the bundle; document bodies,withMeta(), manifests, andmodels/*keep per-path fetch. Stale primed paths are evicted when a fresh bundle drops them. Non-i18ncontent/{model}/data.jsonentries resolve viadefaultLocale. client.preload(locale?)for eager warmup (e.g. SSR boot); resolvestruewhen a bundle was found. Concurrent first reads dedupe into a single bundle request.
- Opt-in
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About Contentrain/ai
Local-first MCP server for AI content governance — 13 tools for model/content CRUD, validation, normalization, and i18n across any framework.
Related context
Earlier breaking changes
- v@contentrain/[email protected] `validateModelDefinition` now returns `{ errors, warnings }` instead of a string array.
- v@contentrain/[email protected] `model_save` rejects models with unknown keys, `min > max`, invalid constraints, and `unique` on singletons.
- v@contentrain/[email protected] `content_save` now validates before committing and rejects invalid content.
- v@contentrain/[email protected] `validateModelDefinition` now returns `{ errors, warnings }` instead of a string array.
- v@contentrain/[email protected] `model_save` rejects models with unknown keys, `min > max`, invalid constraints, and `unique` on singletons.
Beta — feedback welcome: [email protected]