diff --git a/apps/desktop/assets/msix-manifest.xml b/apps/desktop/assets/msix-manifest.xml
index 01d3132eac..db334307d1 100644
--- a/apps/desktop/assets/msix-manifest.xml
+++ b/apps/desktop/assets/msix-manifest.xml
@@ -31,6 +31,11 @@
${description}
${logo}
${packageIntegrity}
+
+ disabled
+ disabled
${resourceLanguages}
diff --git a/apps/desktop/electron-builder.config.cjs b/apps/desktop/electron-builder.config.cjs
index 67aaabf30e..55a7e65f57 100644
--- a/apps/desktop/electron-builder.config.cjs
+++ b/apps/desktop/electron-builder.config.cjs
@@ -221,6 +221,10 @@ module.exports = {
// time, so typecheck/test imports don't touch the filesystem.
customExtensionsPath: 'build/msix-extensions.xml',
customManifestPath: store ? 'build/store-msix-manifest.xml' : 'assets/msix-manifest.xml',
+ // Hermes state is deliberately shared with unpackaged CLI/gateway
+ // processes. Pair the manifest's disabled virtualization properties with
+ // the restricted capability that permits unvirtualized AppData/HKCU writes.
+ capabilities: ['unvirtualizedResources'],
showNameOnTiles: true
},
linux: {