Skip to content

feat(core): promote siteConfig.storage to stable + add future.v4.siteStorageNamespacing flag [Claude]#11797

Merged
slorber merged 6 commits intomainfrom
slorber/stable-site-storage
Mar 12, 2026
Merged

feat(core): promote siteConfig.storage to stable + add future.v4.siteStorageNamespacing flag [Claude]#11797
slorber merged 6 commits intomainfrom
slorber/stable-site-storage

Conversation

@slorber
Copy link
Copy Markdown
Collaborator

@slorber slorber commented Mar 12, 2026

Summary

  • Promotes future.experimental_storage to a stable top-level storage site config attribute
  • Using the old future.experimental_storage config now throws a clear error pointing users to the new location (breaking change acceptable since it was experimental)
  • Adds a future.v4.siteStorageNamespacing flag (default: false) that changes the default of storage.namespace to true, enabling automatic browser storage key namespacing and opting in for the upcoming Docusaurus v4 breaking change

Migration

 const config = {
+  storage: {
+    type: 'localStorage',
+    namespace: true,
+  },
   future: {
-    experimental_storage: {
-      type: 'localStorage',
-      namespace: true,
-    },
   },
 };

Or simply enable the v4 future flag to get namespace: true by default, which will become the new default in Docusaurus v4:

export default {
  future: {
    v4: { siteStorageNamespacing: true },
  },
};

Namespacing - Need to preserve existing storage?

The localStorage keys using namespacing will now use a suffix.
For example, theme becomes theme-xyz123

This means that when turning on namespacing, the theme of your website's visitor will likely reset to undefined.

If you want to enable storage namespacing, but have stored important values that need to be preserved, you will need to migrate these values. It's possible to migrate them with a client-side script.

We give an example of how to do so in this PR: #10121

Note:

  • It's outside the scope of Docusaurus to migrate the keys
  • The migration script should rather be temporary. After a while, it's better to remove the script so that you don't keep reading localStorage keys uselessly.
  • For Docusaurus v4, we will apply a namespace by default, but you can definitely use namespace: false to preserve the retrocompatible v3 behavior.

Test plan

  • packages/docusaurus/src/server/__tests__/storage.test.ts - all pass
  • packages/docusaurus/src/server/__tests__/configValidation.test.ts - all pass (new tests for: error on old config, v4 flag namespace resolution, siteStorageNamespacing unit tests under describe('v4'))
  • packages/docusaurus/src/server/__tests__/config.test.ts - snapshots updated
  • packages/docusaurus/src/server/__tests__/site.test.ts - snapshots updated
  • All 421 server tests pass
  • Core package builds successfully

🤖 Generated with Claude Code

…config

The `future.experimental_storage` config has been promoted to a stable
top-level `storage` site config attribute. Using the old config path now
throws a clear error pointing users to the new location.

Also adds a `future.v4.siteStorageNamespacing` flag (default: false) that
changes the default of `storage.namespace` to `true`, enabling automatic
browser storage key namespacing in v4.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@slorber slorber requested a review from Josh-Cena as a code owner March 12, 2026 11:29
@meta-cla meta-cla bot added the CLA Signed Signed Facebook CLA label Mar 12, 2026
@slorber slorber added the pr: new feature This PR adds a new API or behavior. label Mar 12, 2026
The Joi.object<FutureConfig> generic enforced the type, but
experimental_storage is no longer on FutureConfig. Remove the
generic to allow the extra key for the error-throwing validator.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@netlify
Copy link
Copy Markdown

netlify bot commented Mar 12, 2026

[V2]

Name Link
🔨 Latest commit b05cdd3
🔍 Latest deploy log https://app.netlify.com/projects/docusaurus-2/deploys/69b2d694a244b20008457964
😎 Deploy Preview https://deploy-preview-11797--docusaurus-2.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 12, 2026

Size Change: +2.3 kB (+0.02%)

Total Size: 11.9 MB

Filename Size Change
website/build/docs/api/docusaurus-config.html 229 kB +2.15 kB (+0.95%)
ℹ️ View Unchanged
Filename Size Change
website/.docusaurus/codeTranslations.json 2 B 0 B
website/.docusaurus/docusaurus.config.mjs 29 kB +17 B (+0.06%)
website/.docusaurus/globalData.json 38.7 kB 0 B
website/.docusaurus/i18n.json 1.36 kB 0 B
website/.docusaurus/registry.js 178 kB 0 B
website/.docusaurus/routes.js 88.6 kB 0 B
website/.docusaurus/routesChunkNames.json 92.4 kB 0 B
website/.docusaurus/site-metadata.json 2.54 kB 0 B
website/build/assets/css/styles.********.css 146 kB 0 B
website/build/assets/js/main.********.js 742 kB +13 B (0%)
website/build/assets/js/runtime~main.********.js 39.2 kB 0 B
website/build/blog.html 77.1 kB 0 B
website/build/blog/2017/12/14/introducing-docusaurus.html 65.5 kB +1 B (0%)
website/build/blog/2018/04/30/How-I-Converted-Profilo-To-Docusaurus.html 44.8 kB +1 B (0%)
website/build/blog/2018/09/11/Towards-Docusaurus-2.html 49.2 kB +1 B (0%)
website/build/blog/2018/12/14/Happy-First-Birthday-Slash.html 29 kB +1 B (0%)
website/build/blog/2019/12/30/docusaurus-2019-recap.html 40 kB +1 B (0%)
website/build/blog/2020/01/07/tribute-to-endi.html 32.6 kB +1 B (0%)
website/build/blog/2021/01/19/docusaurus-2020-recap.html 51.4 kB +1 B (0%)
website/build/blog/2021/03/09/releasing-docusaurus-i18n.html 47.4 kB +1 B (0%)
website/build/blog/2021/05/12/announcing-docusaurus-two-beta.html 48 kB +1 B (0%)
website/build/blog/2021/11/21/algolia-docsearch-migration.html 54.2 kB +1 B (0%)
website/build/blog/2022/01/24/docusaurus-2021-recap.html 43.3 kB +1 B (0%)
website/build/blog/2022/08/01/announcing-docusaurus-2.0.html 133 kB +1 B (0%)
website/build/blog/2022/09/01/docusaurus-2.1.html 50.1 kB +1 B (0%)
website/build/blog/archive.html 23.5 kB 0 B
website/build/blog/authors.html 50.3 kB 0 B
website/build/blog/authors/j-marcey.html 70.2 kB 0 B
website/build/blog/authors/josh-cena.html 46.7 kB 0 B
website/build/blog/authors/lex-111.html 55.5 kB 0 B
website/build/blog/authors/slorber.html 80.6 kB 0 B
website/build/blog/authors/slorber/page/2.html 80.7 kB 0 B
website/build/blog/authors/slorber/page/3.html 82.9 kB 0 B
website/build/blog/authors/slorber/page/4.html 97.4 kB 0 B
website/build/blog/authors/slorber/page/5.html 42.2 kB 0 B
website/build/blog/authors/yangshun.html 66.1 kB 0 B
website/build/blog/authors/zpao.html 47.2 kB 0 B
website/build/blog/page/2.html 77.2 kB 0 B
website/build/blog/page/3.html 80.2 kB 0 B
website/build/blog/page/4.html 87.5 kB 0 B
website/build/blog/page/5.html 62.4 kB 0 B
website/build/blog/page/6.html 38 kB 0 B
website/build/blog/preparing-your-site-for-docusaurus-v3.html 125 kB +1 B (0%)
website/build/blog/releases/2.2.html 50.3 kB +1 B (0%)
website/build/blog/releases/2.3.html 60.6 kB +1 B (0%)
website/build/blog/releases/2.4.html 64.1 kB +1 B (0%)
website/build/blog/releases/3.0.html 105 kB +1 B (0%)
website/build/blog/releases/3.1.html 53.1 kB +1 B (0%)
website/build/blog/releases/3.2.html 48.9 kB +1 B (0%)
website/build/blog/releases/3.3.html 56 kB +1 B (0%)
website/build/blog/releases/3.4.html 55.1 kB +1 B (0%)
website/build/blog/releases/3.5.html 57.8 kB +1 B (0%)
website/build/blog/releases/3.6.html 76.1 kB +1 B (0%)
website/build/blog/releases/3.7.html 50.6 kB +1 B (0%)
website/build/blog/releases/3.8.html 85.4 kB +1 B (0%)
website/build/blog/releases/3.9.html 60.4 kB +1 B (0%)
website/build/blog/tags.html 27.2 kB 0 B
website/build/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing.html 123 kB +1 B (0%)
website/build/docs.html 48.4 kB +1 B (0%)
website/build/docs/advanced.html 30.9 kB 0 B
website/build/docs/advanced/architecture.html 29.5 kB +4 B (+0.01%)
website/build/docs/advanced/client.html 68.5 kB +1 B (0%)
website/build/docs/advanced/plugins.html 54 kB +1 B (0%)
website/build/docs/advanced/routing.html 69 kB +1 B (0%)
website/build/docs/advanced/ssg.html 73.1 kB +1 B (0%)
website/build/docs/api/misc/@docusaurus/eslint-plugin.html 44.3 kB +1 B (0%)
website/build/docs/api/misc/@docusaurus/eslint-plugin/no-html-links.html 35.8 kB +1 B (0%)
website/build/docs/api/misc/@docusaurus/eslint-plugin/no-untranslated-text.html 34.8 kB +1 B (0%)
website/build/docs/api/misc/@docusaurus/eslint-plugin/prefer-docusaurus-heading.html 36 kB +1 B (0%)
website/build/docs/api/misc/@docusaurus/eslint-plugin/string-literal-i18n-messages.html 39.6 kB +1 B (0%)
website/build/docs/api/misc/@docusaurus/logger.html 38.2 kB +1 B (0%)
website/build/docs/api/misc/create-docusaurus.html 33.3 kB +1 B (0%)
website/build/docs/api/misc/docusaurus-init/index.html 361 B 0 B
website/build/docs/api/plugin-methods.html 64.1 kB +1 B (0%)
website/build/docs/api/plugin-methods/extend-infrastructure.html 58.1 kB +1 B (0%)
website/build/docs/api/plugin-methods/i18n-lifecycles.html 56.5 kB +1 B (0%)
website/build/docs/api/plugin-methods/lifecycle-apis.html 157 kB +1 B (0%)
website/build/docs/api/plugin-methods/static-methods.html 43.9 kB +1 B (0%)
website/build/docs/api/plugins.html 32.5 kB +1 B (0%)
website/build/docs/api/plugins/@docusaurus/plugin-client-redirects.html 58.9 kB +1 B (0%)
website/build/docs/api/plugins/@docusaurus/plugin-content-blog.html 182 kB +1 B (0%)
website/build/docs/api/plugins/@docusaurus/plugin-content-docs.html 189 kB +1 B (0%)
website/build/docs/api/plugins/@docusaurus/plugin-content-pages.html 73.5 kB +1 B (0%)
website/build/docs/api/plugins/@docusaurus/plugin-css-cascade-layers.html 46.8 kB +1 B (0%)
website/build/docs/api/plugins/@docusaurus/plugin-debug.html 47.4 kB +1 B (0%)
website/build/docs/api/plugins/@docusaurus/plugin-google-analytics.html 48.9 kB +1 B (0%)
website/build/docs/api/plugins/@docusaurus/plugin-google-gtag.html 48.4 kB +1 B (0%)
website/build/docs/api/plugins/@docusaurus/plugin-google-tag-manager.html 47.2 kB +1 B (0%)
website/build/docs/api/plugins/@docusaurus/plugin-ideal-image.html 51.1 kB +1 B (0%)
website/build/docs/api/plugins/@docusaurus/plugin-pwa.html 115 kB +1 B (0%)
website/build/docs/api/plugins/@docusaurus/plugin-rsdoctor.html 40.1 kB +1 B (0%)
website/build/docs/api/plugins/@docusaurus/plugin-sitemap.html 64.7 kB +1 B (0%)
website/build/docs/api/plugins/@docusaurus/plugin-svgr.html 45.1 kB +1 B (0%)
website/build/docs/api/plugins/@docusaurus/plugin-vercel-analytics.html 40.4 kB +1 B (0%)
website/build/docs/api/themes.html 29.4 kB +1 B (0%)
website/build/docs/api/themes/@docusaurus/theme-classic.html 42.6 kB +1 B (0%)
website/build/docs/api/themes/@docusaurus/theme-live-codeblock.html 35.8 kB +1 B (0%)
website/build/docs/api/themes/@docusaurus/theme-mermaid.html 34.6 kB +1 B (0%)
website/build/docs/api/themes/@docusaurus/theme-search-algolia.html 32.5 kB 0 B
website/build/docs/api/themes/configuration.html 246 kB +1 B (0%)
website/build/docs/blog.html 198 kB +1 B (0%)
website/build/docs/browser-support.html 46.8 kB +1 B (0%)
website/build/docs/category/getting-started.html 27.7 kB 0 B
website/build/docs/category/guides.html 38.1 kB 0 B
website/build/docs/category/miscellaneous.html 27.5 kB 0 B
website/build/docs/cli.html 59.2 kB +1 B (0%)
website/build/docs/configuration.html 90.1 kB +1 B (0%)
website/build/docs/create-doc.html 60.3 kB +1 B (0%)
website/build/docs/creating-pages.html 56 kB +1 B (0%)
website/build/docs/deployment.html 210 kB +1 B (0%)
website/build/docs/docs-introduction.html 49.6 kB +1 B (0%)
website/build/docs/docs-multi-instance.html 72 kB +1 B (0%)
website/build/docs/docusaurus-core.html 219 kB +1 B (0%)
website/build/docs/guides/whats-next.html 32.2 kB 0 B
website/build/docs/i18n/crowdin.html 141 kB +1 B (0%)
website/build/docs/i18n/git.html 75.4 kB +1 B (0%)
website/build/docs/i18n/introduction.html 48.4 kB +1 B (0%)
website/build/docs/i18n/tutorial.html 161 kB +1 B (0%)
website/build/docs/installation.html 63.3 kB +1 B (0%)
website/build/docs/introduction/index.html 280 B 0 B
website/build/docs/markdown-features.html 78.5 kB +1 B (0%)
website/build/docs/markdown-features/admonitions.html 115 kB +1 B (0%)
website/build/docs/markdown-features/assets.html 84.9 kB +1 B (0%)
website/build/docs/markdown-features/code-blocks.html 214 kB +1 B (0%)
website/build/docs/markdown-features/diagrams.html 53.8 kB +1 B (0%)
website/build/docs/markdown-features/head-metadata.html 50.2 kB +1 B (0%)
website/build/docs/markdown-features/links.html 40.3 kB +1 B (0%)
website/build/docs/markdown-features/math-equations.html 89.5 kB +1 B (0%)
website/build/docs/markdown-features/plugins.html 93.8 kB +1 B (0%)
website/build/docs/markdown-features/react.html 130 kB +1 B (0%)
website/build/docs/markdown-features/tabs.html 137 kB +1 B (0%)
website/build/docs/markdown-features/toc.html 85.2 kB +1 B (0%)
website/build/docs/migration.html 38.5 kB +1 B (0%)
website/build/docs/migration/v2.html 38.9 kB +1 B (0%)
website/build/docs/migration/v2/automated.html 39.3 kB +1 B (0%)
website/build/docs/migration/v2/manual.html 185 kB +1 B (0%)
website/build/docs/migration/v2/translated-sites.html 50.1 kB +1 B (0%)
website/build/docs/migration/v2/versioned-sites.html 58.9 kB +1 B (0%)
website/build/docs/migration/v3.html 187 kB +1 B (0%)
website/build/docs/playground.html 31.1 kB 0 B
website/build/docs/resources/index.html 325 B 0 B
website/build/docs/search.html 121 kB +1 B (0%)
website/build/docs/seo.html 86.3 kB +1 B (0%)
website/build/docs/sidebar.html 133 kB +1 B (0%)
website/build/docs/sidebar/autogenerated.html 143 kB +1 B (0%)
website/build/docs/sidebar/items.html 171 kB +1 B (0%)
website/build/docs/sidebar/multiple-sidebars.html 60.8 kB +1 B (0%)
website/build/docs/static-assets.html 50.9 kB +1 B (0%)
website/build/docs/styling-layout.html 136 kB +1 B (0%)
website/build/docs/support/index.html 319 B 0 B
website/build/docs/swizzling.html 109 kB +1 B (0%)
website/build/docs/team/index.html 310 B 0 B
website/build/docs/typescript-support.html 58.9 kB +1 B (0%)
website/build/docs/using-plugins.html 104 kB +1 B (0%)
website/build/docs/versioning.html 89.8 kB +1 B (0%)
website/build/index.html 35.5 kB 0 B

compressed-size-action::DOCUSAURUS_INFRA_FASTER

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 12, 2026

⚡️ Lighthouse report for the deploy preview of this PR

URL Performance Accessibility Best Practices SEO Report
/ 🟠 64 🟢 98 🟢 100 🟢 100 Report
/docs/installation 🟠 65 🟢 97 🟢 100 🟢 100 Report
/docs/category/getting-started 🟠 71 🟢 100 🟢 100 🟠 86 Report
/blog 🟠 66 🟢 96 🟢 100 🟠 86 Report
/blog/preparing-your-site-for-docusaurus-v3 🟠 65 🟢 92 🟢 100 🟢 100 Report
/blog/tags/release 🟠 67 🟢 96 🟢 100 🟠 86 Report
/blog/tags 🟠 71 🟢 100 🟢 100 🟠 86 Report

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 12, 2026

Size Change: +1.23 kB (+0.01%)

Total Size: 12.3 MB

Filename Size Change
website/build/docs/api/docusaurus-config.html 238 kB +2.2 kB (+0.94%)
ℹ️ View Unchanged
Filename Size Change
website/.docusaurus/codeTranslations.json 2 B 0 B
website/.docusaurus/docusaurus.config.mjs 29 kB +19 B (+0.07%)
website/.docusaurus/globalData.json 38.7 kB 0 B
website/.docusaurus/i18n.json 1.36 kB 0 B
website/.docusaurus/registry.js 178 kB 0 B
website/.docusaurus/routes.js 88.6 kB 0 B
website/.docusaurus/routesChunkNames.json 92.4 kB 0 B
website/.docusaurus/site-metadata.json 2.38 kB 0 B
website/build/assets/css/styles.********.css 138 kB 0 B
website/build/assets/js/main.********.js 744 kB +9 B (0%)
website/build/assets/js/runtime~main.********.js 38.9 kB 0 B
website/build/blog.html 79.8 kB -8 B (-0.01%)
website/build/blog/2017/12/14/introducing-docusaurus.html 67.6 kB -7 B (-0.01%)
website/build/blog/2018/04/30/How-I-Converted-Profilo-To-Docusaurus.html 46.7 kB -7 B (-0.01%)
website/build/blog/2018/09/11/Towards-Docusaurus-2.html 51.2 kB -7 B (-0.01%)
website/build/blog/2018/12/14/Happy-First-Birthday-Slash.html 30.6 kB -7 B (-0.02%)
website/build/blog/2019/12/30/docusaurus-2019-recap.html 41.9 kB -7 B (-0.02%)
website/build/blog/2020/01/07/tribute-to-endi.html 34.2 kB -7 B (-0.02%)
website/build/blog/2021/01/19/docusaurus-2020-recap.html 53.5 kB -7 B (-0.01%)
website/build/blog/2021/03/09/releasing-docusaurus-i18n.html 49.4 kB -7 B (-0.01%)
website/build/blog/2021/05/12/announcing-docusaurus-two-beta.html 50.1 kB -7 B (-0.01%)
website/build/blog/2021/11/21/algolia-docsearch-migration.html 56.5 kB -7 B (-0.01%)
website/build/blog/2022/01/24/docusaurus-2021-recap.html 45.3 kB -7 B (-0.02%)
website/build/blog/2022/08/01/announcing-docusaurus-2.0.html 137 kB -7 B (-0.01%)
website/build/blog/2022/09/01/docusaurus-2.1.html 52.4 kB -7 B (-0.01%)
website/build/blog/archive.html 24.9 kB -8 B (-0.03%)
website/build/blog/authors.html 52.5 kB -8 B (-0.02%)
website/build/blog/authors/j-marcey.html 72.8 kB -8 B (-0.01%)
website/build/blog/authors/josh-cena.html 48.8 kB -8 B (-0.02%)
website/build/blog/authors/lex-111.html 57.9 kB -8 B (-0.01%)
website/build/blog/authors/slorber.html 83.5 kB -8 B (-0.01%)
website/build/blog/authors/slorber/page/2.html 83.6 kB -8 B (-0.01%)
website/build/blog/authors/slorber/page/3.html 85.9 kB -8 B (-0.01%)
website/build/blog/authors/slorber/page/4.html 101 kB -8 B (-0.01%)
website/build/blog/authors/slorber/page/5.html 44.2 kB -8 B (-0.02%)
website/build/blog/authors/yangshun.html 68.8 kB -8 B (-0.01%)
website/build/blog/authors/zpao.html 49.3 kB -8 B (-0.02%)
website/build/blog/page/2.html 80 kB -8 B (-0.01%)
website/build/blog/page/3.html 82.9 kB -8 B (-0.01%)
website/build/blog/page/4.html 90.5 kB -8 B (-0.01%)
website/build/blog/page/5.html 64.8 kB -8 B (-0.01%)
website/build/blog/page/6.html 39.7 kB -8 B (-0.02%)
website/build/blog/preparing-your-site-for-docusaurus-v3.html 130 kB -7 B (-0.01%)
website/build/blog/releases/2.2.html 52.5 kB -7 B (-0.01%)
website/build/blog/releases/2.3.html 63.1 kB -7 B (-0.01%)
website/build/blog/releases/2.4.html 66.8 kB -7 B (-0.01%)
website/build/blog/releases/3.0.html 110 kB -7 B (-0.01%)
website/build/blog/releases/3.1.html 55.2 kB -7 B (-0.01%)
website/build/blog/releases/3.2.html 51 kB -7 B (-0.01%)
website/build/blog/releases/3.3.html 58.3 kB -7 B (-0.01%)
website/build/blog/releases/3.4.html 57.4 kB -7 B (-0.01%)
website/build/blog/releases/3.5.html 60.2 kB -7 B (-0.01%)
website/build/blog/releases/3.6.html 79 kB -7 B (-0.01%)
website/build/blog/releases/3.7.html 52.9 kB -7 B (-0.01%)
website/build/blog/releases/3.8.html 88.6 kB -7 B (-0.01%)
website/build/blog/releases/3.9.html 62.9 kB -7 B (-0.01%)
website/build/blog/tags.html 28.9 kB -8 B (-0.03%)
website/build/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing.html 127 kB -7 B (-0.01%)
website/build/docs.html 50.3 kB -7 B (-0.01%)
website/build/docs/advanced.html 32.4 kB -8 B (-0.02%)
website/build/docs/advanced/architecture.html 31 kB -4 B (-0.01%)
website/build/docs/advanced/client.html 71.2 kB -7 B (-0.01%)
website/build/docs/advanced/plugins.html 56.2 kB -7 B (-0.01%)
website/build/docs/advanced/routing.html 71.6 kB -7 B (-0.01%)
website/build/docs/advanced/ssg.html 76.2 kB -7 B (-0.01%)
website/build/docs/api/misc/@docusaurus/eslint-plugin.html 46.5 kB -7 B (-0.02%)
website/build/docs/api/misc/@docusaurus/eslint-plugin/no-html-links.html 37.6 kB -7 B (-0.02%)
website/build/docs/api/misc/@docusaurus/eslint-plugin/no-untranslated-text.html 36.6 kB -7 B (-0.02%)
website/build/docs/api/misc/@docusaurus/eslint-plugin/prefer-docusaurus-heading.html 37.8 kB -7 B (-0.02%)
website/build/docs/api/misc/@docusaurus/eslint-plugin/string-literal-i18n-messages.html 41.5 kB -7 B (-0.02%)
website/build/docs/api/misc/@docusaurus/logger.html 39.9 kB -7 B (-0.02%)
website/build/docs/api/misc/create-docusaurus.html 34.9 kB -7 B (-0.02%)
website/build/docs/api/misc/docusaurus-init/index.html 361 B 0 B
website/build/docs/api/plugin-methods.html 66.5 kB -7 B (-0.01%)
website/build/docs/api/plugin-methods/extend-infrastructure.html 60.4 kB -7 B (-0.01%)
website/build/docs/api/plugin-methods/i18n-lifecycles.html 58.7 kB -7 B (-0.01%)
website/build/docs/api/plugin-methods/lifecycle-apis.html 163 kB -7 B (0%)
website/build/docs/api/plugin-methods/static-methods.html 45.8 kB -7 B (-0.02%)
website/build/docs/api/plugins.html 34.1 kB -7 B (-0.02%)
website/build/docs/api/plugins/@docusaurus/plugin-client-redirects.html 61.7 kB -7 B (-0.01%)
website/build/docs/api/plugins/@docusaurus/plugin-content-blog.html 190 kB -7 B (0%)
website/build/docs/api/plugins/@docusaurus/plugin-content-docs.html 196 kB -7 B (0%)
website/build/docs/api/plugins/@docusaurus/plugin-content-pages.html 77.1 kB -7 B (-0.01%)
website/build/docs/api/plugins/@docusaurus/plugin-css-cascade-layers.html 49 kB -7 B (-0.01%)
website/build/docs/api/plugins/@docusaurus/plugin-debug.html 49.6 kB -7 B (-0.01%)
website/build/docs/api/plugins/@docusaurus/plugin-google-analytics.html 51.2 kB -7 B (-0.01%)
website/build/docs/api/plugins/@docusaurus/plugin-google-gtag.html 50.7 kB -7 B (-0.01%)
website/build/docs/api/plugins/@docusaurus/plugin-google-tag-manager.html 49.5 kB -7 B (-0.01%)
website/build/docs/api/plugins/@docusaurus/plugin-ideal-image.html 53.6 kB -7 B (-0.01%)
website/build/docs/api/plugins/@docusaurus/plugin-pwa.html 120 kB -7 B (-0.01%)
website/build/docs/api/plugins/@docusaurus/plugin-rsdoctor.html 42.1 kB -7 B (-0.02%)
website/build/docs/api/plugins/@docusaurus/plugin-sitemap.html 67.6 kB -7 B (-0.01%)
website/build/docs/api/plugins/@docusaurus/plugin-svgr.html 47.2 kB -7 B (-0.01%)
website/build/docs/api/plugins/@docusaurus/plugin-vercel-analytics.html 42.5 kB -7 B (-0.02%)
website/build/docs/api/themes.html 30.9 kB -7 B (-0.02%)
website/build/docs/api/themes/@docusaurus/theme-classic.html 44.7 kB -7 B (-0.02%)
website/build/docs/api/themes/@docusaurus/theme-live-codeblock.html 37.6 kB -7 B (-0.02%)
website/build/docs/api/themes/@docusaurus/theme-mermaid.html 36.3 kB -7 B (-0.02%)
website/build/docs/api/themes/@docusaurus/theme-search-algolia.html 34.1 kB -8 B (-0.02%)
website/build/docs/api/themes/configuration.html 258 kB -7 B (0%)
website/build/docs/blog.html 204 kB -7 B (0%)
website/build/docs/browser-support.html 49 kB -7 B (-0.01%)
website/build/docs/category/getting-started.html 29.1 kB -8 B (-0.03%)
website/build/docs/category/guides.html 39.8 kB -8 B (-0.02%)
website/build/docs/category/miscellaneous.html 28.9 kB -8 B (-0.03%)
website/build/docs/cli.html 62.7 kB -7 B (-0.01%)
website/build/docs/configuration.html 93.6 kB -7 B (-0.01%)
website/build/docs/create-doc.html 62.7 kB -7 B (-0.01%)
website/build/docs/creating-pages.html 58.4 kB -7 B (-0.01%)
website/build/docs/deployment.html 218 kB -7 B (0%)
website/build/docs/docs-introduction.html 51.8 kB -7 B (-0.01%)
website/build/docs/docs-multi-instance.html 75.2 kB -7 B (-0.01%)
website/build/docs/docusaurus-core.html 227 kB -7 B (0%)
website/build/docs/guides/whats-next.html 34 kB -8 B (-0.02%)
website/build/docs/i18n/crowdin.html 146 kB -7 B (0%)
website/build/docs/i18n/git.html 78.6 kB -7 B (-0.01%)
website/build/docs/i18n/introduction.html 50.6 kB -7 B (-0.01%)
website/build/docs/i18n/tutorial.html 168 kB -7 B (0%)
website/build/docs/installation.html 66 kB -7 B (-0.01%)
website/build/docs/introduction/index.html 280 B 0 B
website/build/docs/markdown-features.html 81.4 kB -7 B (-0.01%)
website/build/docs/markdown-features/admonitions.html 119 kB -7 B (-0.01%)
website/build/docs/markdown-features/assets.html 88.8 kB -7 B (-0.01%)
website/build/docs/markdown-features/code-blocks.html 222 kB -7 B (0%)
website/build/docs/markdown-features/diagrams.html 56.3 kB -7 B (-0.01%)
website/build/docs/markdown-features/head-metadata.html 52.5 kB -7 B (-0.01%)
website/build/docs/markdown-features/links.html 42.3 kB -7 B (-0.02%)
website/build/docs/markdown-features/math-equations.html 93.4 kB -7 B (-0.01%)
website/build/docs/markdown-features/plugins.html 97.5 kB -7 B (-0.01%)
website/build/docs/markdown-features/react.html 136 kB -7 B (-0.01%)
website/build/docs/markdown-features/tabs.html 143 kB -7 B (0%)
website/build/docs/markdown-features/toc.html 88.7 kB -7 B (-0.01%)
website/build/docs/migration.html 40.4 kB -7 B (-0.02%)
website/build/docs/migration/v2.html 40.7 kB -7 B (-0.02%)
website/build/docs/migration/v2/automated.html 41.2 kB -7 B (-0.02%)
website/build/docs/migration/v2/manual.html 192 kB -7 B (0%)
website/build/docs/migration/v2/translated-sites.html 52.3 kB -7 B (-0.01%)
website/build/docs/migration/v2/versioned-sites.html 61.2 kB -7 B (-0.01%)
website/build/docs/migration/v3.html 194 kB -7 B (0%)
website/build/docs/playground.html 32.6 kB -8 B (-0.02%)
website/build/docs/resources/index.html 325 B 0 B
website/build/docs/search.html 125 kB -7 B (-0.01%)
website/build/docs/seo.html 90.1 kB -7 B (-0.01%)
website/build/docs/sidebar.html 139 kB -7 B (-0.01%)
website/build/docs/sidebar/autogenerated.html 148 kB -7 B (0%)
website/build/docs/sidebar/items.html 177 kB -7 B (0%)
website/build/docs/sidebar/multiple-sidebars.html 63.7 kB -7 B (-0.01%)
website/build/docs/static-assets.html 53.2 kB -7 B (-0.01%)
website/build/docs/styling-layout.html 141 kB -7 B (0%)
website/build/docs/support/index.html 319 B 0 B
website/build/docs/swizzling.html 113 kB -7 B (-0.01%)
website/build/docs/team/index.html 310 B 0 B
website/build/docs/typescript-support.html 61.4 kB -7 B (-0.01%)
website/build/docs/using-plugins.html 108 kB -7 B (-0.01%)
website/build/docs/versioning.html 93.6 kB -7 B (-0.01%)
website/build/index.html 37.1 kB -8 B (-0.02%)

compressed-size-action::DOCUSAURUS_INFRA_SLOWER

@slorber slorber changed the title feat(core): promote experimental_storage to stable top-level storage config feat(core): promote siteConfig.storage to stable + add future.v4.siteStorageNamespacing flag [Claude] Mar 12, 2026
slorber and others added 2 commits March 12, 2026 14:16
- Use Joi .forbidden() instead of .custom() for cleaner error messages
- Move storageContaining() helper to describe('future') scope for reuse
- Add dedicated describe('siteStorageNamespacing') test block
- Add test for siteStorageNamespacing = false
- Add siteStorageNamespacing to v4 flags example in docs
- Use storageContaining() helper consistently in storage tests

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…acing unit tests under v4

Storage+v4 namespace interaction tests belong in describe('storage') > describe('namespace').
Dedicated describe('siteStorageNamespacing') unit tests added inside describe('v4')
following the same pattern as other v4 flags.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Storage tests are now a top-level describe('storage') block since
  storage is no longer under future config
- storageContaining() helper moved back inside describe('storage')
- Fix 'rejects - null' test to actually use null instead of 42

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@slorber slorber merged commit 2a7f8b9 into main Mar 12, 2026
53 of 57 checks passed
@slorber slorber deleted the slorber/stable-site-storage branch March 12, 2026 15:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed Signed Facebook CLA pr: new feature This PR adds a new API or behavior.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant