+ Agent-loop e2e target
+ Tracer element for agent-loop e2e tests.
+
+
+ )
+}
diff --git a/playgrounds/stress-test/apps/mfe-react-workflows/src/agent-loop-target.css b/playgrounds/stress-test/apps/mfe-react-workflows/src/agent-loop-target.css
new file mode 100644
index 0000000..0c6e5ab
--- /dev/null
+++ b/playgrounds/stress-test/apps/mfe-react-workflows/src/agent-loop-target.css
@@ -0,0 +1,8 @@
+/*
+ * Agent-loop e2e: tracer stylesheet. Rewritten by the simulator during
+ * style_update tests, then restored in afterEach. Vite HMR picks up
+ * each edit and the test asserts the iframe's computed style flipped.
+ */
+[data-agent-loop-target='paragraph'] {
+ color: rgb(255, 0, 0);
+}
diff --git a/playgrounds/stress-test/apps/mfe-react-workflows/src/main.tsx b/playgrounds/stress-test/apps/mfe-react-workflows/src/main.tsx
index a2999a7..9567f38 100644
--- a/playgrounds/stress-test/apps/mfe-react-workflows/src/main.tsx
+++ b/playgrounds/stress-test/apps/mfe-react-workflows/src/main.tsx
@@ -5,6 +5,7 @@ import { bootstrapTheme } from '@annotask/stress-ui-tokens'
import { StrictMode } from 'react'
import { createRoot } from 'react-dom/client'
import { Root } from './Root'
+import { AgentLoopTarget } from './AgentLoopTarget'
bootstrapTheme()
@@ -13,3 +14,14 @@ createRoot(document.getElementById('app')!).render(