{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreibbcfgul2x4ummkh7iweyhc5zonq32eftytm4bhiov6mhiaadqfia",
    "uri": "at://did:plc:lk3jfj3zq4k4wxnk474axylu/app.bsky.feed.post/3mmohu263nq52"
  },
  "path": "/t/published-apps-sdk-widget-updates-csp-behavior-inconsistent-after-redeploy-anyone-else-seeing-this/1381690#post_2",
  "publishedAt": "2026-05-25T11:24:59.000Z",
  "site": "https://community.openai.com",
  "textContent": "**Update — partial resolution**\n\nThanks everyone who looked at this. Updating to save people time:\n\n**Resolved:**\n\n  * The fullscreen flash-revert was a bug in my own widget code, not a platform issue. My desktop “fullscreen” was implemented as local React state only (no `requestDisplayMode` call), while my `openai:set_globals` handler unconditionally synced local `displayMode` from `window.openai.displayMode`. On desktop the host’s displayMode stays `'inline'`, and a `set_globals(inline)` burst fires ~5ms after the Expand click — the sync handler ran and reverted local fullscreen. Fix: persistent desktop-only intent flag that causes the sync handler to ignore `hostMode === 'inline'` while the user is in local fullscreen. Verified in production.\n\n  * Bundle propagation actually works. My “stale runtime” symptoms were ChatGPT-side iframe caching that didn’t clear via disconnect/reconnect alone. Fully deleting and re-adding the app in dev mode invalidated the cache and the new bundle loaded immediately. After that, every server deploy propagated within minutes without resubmission. So the freeze model I was assuming (URI frozen → bytes frozen → resubmission required) was wrong — only the URI string is frozen at approval, the bytes behind it serve fresh on every deploy.\n\n\n\n\n**Still open / unconfirmed:**\n\n  * Whether `_meta.ui.csp.connectDomains` and `openai/widgetCSP.connect_domains` are honored by the published runtime. I’ve worked around it by routing widget->backend through `callTool` instead of direct fetch, so I no longer need the declarations to work for my own app — but I haven’t confirmed they actually function for anyone.\n\n  * The `/backend-api/ecosystem/call_mcp 404` and `system-connectors exceeded the quota` errors. Still showing in console. No correlation found with my widget behavior after the fullscreen fix shipped. Possibly host-internal, not app-side.\n\n\n\n\nIf anyone has data on #1 or #2, still interested. Otherwise no further help needed on the original post.",
  "title": "Published Apps SDK widget updates / CSP behavior inconsistent after redeploy — anyone else seeing this?"
}