I shipped a fix to my MCP server last week for LinkedIn's ProseMirror composer. It worked. Two days later, every LinkedIn post automation broke. This is the post-mortem of what changed, how I figured it out, and why "automate the platform" stories almost always end this way. The crash The symptom was specific. My MCP server's safari_fill tool — which dutifully filled ProseMirror by walking React Fiber and calling editor.commands.setContent(html) — was now crashing the helper daemon and dismissing the composer dialog the instant it touched the contenteditable. Same composer URL. Same DOM tree at first glance. Same selectors. Different editor underneath. The DOM tells the truth I dropped into the browser console and ran the usual probe: const el = document . querySelector ( ' [contenteditable="true"] ' ); el . editor // -> undefined el . closest ( ' .ProseMirror ' ) // -> null el . closest ( ' .ql-editor ' ) // -> <div class="ql-editor"> Enter fullscreen mode Exit fullscreen mode There it was.…