diff --git a/plugin-designs/doxa-maps-spa/doxa-maps-spa.vue b/plugin-designs/doxa-maps-spa/doxa-maps-spa.vue
index 14b94c6ae..c4c1fcd7b 100644
--- a/plugin-designs/doxa-maps-spa/doxa-maps-spa.vue
+++ b/plugin-designs/doxa-maps-spa/doxa-maps-spa.vue
@@ -660,6 +660,26 @@ function assertNoDuplicateTabKeys(navModel) {
return dupes
}
+// ★ FRESH BUNDLES AFTER A DEPLOY, AT THE SAME URLs (2026-10-02). A host that serves the tree with Last-Modified and no
+// Cache-Control (the DX Life landing does) lets a browser run its cached copies for hours: measured, a typed-URL revisit
+// after a deploy requested NONE of the gallery, the manifest or the bundles, so a returning reader ran the old files, or
+// an old manifest against a new bundle. A version query cannot fix it here: loadScriptOnce keys its registry by the full
+// href, so X.js?v= beside a composite's plain X.js would run the bundle twice. So the manifest is always revalidated, and
+// when its fingerprint (every bundle's integrity) differs from this reader's last visit to this tree, every listed bundle
+// gets ONE conditional request before any tab mounts: a 304 refreshes the cached copy, and a 200 is cancelled at its
+// headers, which drops the stale entry. The plain
-
+
-
+
\n\n\n"
+ "script": "\n\n\n"
},
"instances": [
{
diff --git a/public/dx-maps/manifest.json b/public/dx-maps/manifest.json
index 0ef52406d..60e37a682 100644
--- a/public/dx-maps/manifest.json
+++ b/public/dx-maps/manifest.json
@@ -409,7 +409,7 @@
"bundle": "doxa-maps-spa",
"scriptUrl": "./doxa-maps-spa/doxa-maps-spa.js",
"output": "dx-maps/doxa-maps-spa/doxa-maps-spa.js",
- "integrity": "sha384-6LiR6vjB5GrQ6TfcAVuCU0pon7+MTANx5bWgB0a9RiWqYqBvFZ1DS9XX7/hg07iO",
+ "integrity": "sha384-D/MCvAZhvdZ4CaVcpxKTxFLdT9GEuHidcKwBImnHSQfvUJg6mkAae/Y5JeUQYUjc",
"elements": [
"doxa-maps-spa"
],
@@ -439,7 +439,7 @@
"scriptUrl": "./doxa-maps-spa/doxa-maps-spa.js",
"embed": {
"iframe": "",
- "script": "\n\n\n"
+ "script": "\n\n\n"
},
"instances": [
{