[eric] windows 1.1.57: (a) relax CSP frame-src to allow http: and https: so BrowserCard iframe can render external sites (our own app-level CSP was the second-layer blocker after the upstream XFO/CSP frame-ancestors we already strip in main.js — together they let the iframe load Google et al); (b) gate AgenticCursor's portaled Framer Motion infinite-loop scale + drop-shadow node on Windows so the onboarding panel commit phase no longer segfaults from that subtree (visual cursor disabled on Windows, imperative handle still works for AC runtime); Mac path untouched

This commit is contained in:
Eric
2026-05-25 23:16:14 -07:00
parent 0076909145
commit 3903766e96
3 changed files with 6 additions and 4 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "openswarm",
"version": "1.1.56",
"version": "1.1.57",
"description": "OpenSwarm — AI Agent Orchestrator",
"author": "openswarm-ai",
"main": "main.js",
+1 -1
View File
@@ -24,7 +24,7 @@
img-src 'self' data: blob: file: http: https:;
media-src 'self' data: blob: http: https:;
connect-src 'self' file: http://localhost:* http://127.0.0.1:* ws://localhost:* ws://127.0.0.1:* https://api.openswarm.com https://*.openswarm.com https://openswarm.com https://api.github.com;
frame-src 'self' file: http://localhost:* http://127.0.0.1:*;
frame-src 'self' file: http: https: http://localhost:* http://127.0.0.1:*;
worker-src 'self' blob:;
object-src 'none';
base-uri 'self';
@@ -54,6 +54,8 @@ interface MultiChoiceState {
const SPRING = { type: 'spring' as const, stiffness: 260, damping: 26 };
const AgenticCursor = forwardRef<AgenticCursorHandle>((_props, ref) => {
// Windows ablation: the AgenticCursor uses a portaled Framer Motion infinite-loop scale animation with drop-shadow filters that is the prime suspect for the onboarding panel commit-phase 0xC0000005 crash; disable the visual cursor on Windows but keep the imperative handle (so the AC runtime can no-op its move/click ops without breaking the step machine).
const isWindows = typeof navigator !== 'undefined' && navigator.userAgent.includes('Windows');
const c = useClaudeTokens();
const controls = useAnimationControls();
const posRef = useRef({ x: 0, y: 0 });
@@ -257,7 +259,8 @@ const AgenticCursor = forwardRef<AgenticCursorHandle>((_props, ref) => {
transformOrigin: 'top left',
}}
>
{visible && (
{visible && !isWindows && (
// Windows ablation: this portaled Framer Motion infinite-loop scale + drop-shadow node is the prime suspect for the onboarding panel commit-phase 0xC0000005 segfault on Chromium 144; suppressing the visual ring on Windows leaves the imperative cursor handle intact so the AC step runtime keeps functioning headlessly.
<motion.div
animate={{
scale: [1, 1.04, 1],
@@ -269,7 +272,6 @@ const AgenticCursor = forwardRef<AgenticCursorHandle>((_props, ref) => {
}}
style={{
transform: 'translate(-2px, -2px)',
// Tight inner ring + soft outer halo reads on light AND dark canvases.
filter: `drop-shadow(0 0 6px ${c.accent.primary}cc) drop-shadow(0 0 14px ${c.accent.primary}55)`,
}}
>