Render Duo agentic chat from the duo_chat MFE behind a flag
What does this MR do and why?
Part 6b — the final product slice of the registry-direct MFE series: the Duo Chat consumer, first user of the runtime loader.
- When
mfe_duo_chatis enabled and theduo_chatapp is baked, the Duo panel's agentic-chat routes render an adapter that mounts the MFE-published chat (loadMfeModule('duo_chat', 'mfe_duo_chat', 'DuoChatApp')) instead of the in-host implementation. Chrome and routes stay host-owned; the adapter shares the panel's Apollo client and page context. - Rollback is the flag. Registry problems (outage, checksum mismatch, SRI failure) degrade to the baked copy inside the loader (part 6a) without touching this surface.
- Mount requires both flags:
mfe_enabled(instance) andmfe_duo_chat(surface).
How to verify
yarn jest ee/spec/frontend/ai/duo_agents_platform/router/ai_panel_router.spec.js ee/spec/frontend/ai/duo_agentic_chat/components/mfe_duo_chat_adapter_spec.jsLive: enable mfe.enabled in gitlab.yml + both flags, bake duo_chat (rake gitlab:mfe:bake), open Duo Chat. A screen recording of the full chain (bake → runtime switch via admin UI → registry-down fallback) follows in this MR.
Stack
| # | Scope | MR |
|---|---|---|
| 1 | Config section + instance kill switch | !246732 (merged) |
| 2 | Vendor pin file + registry manifest schema + verified bake task | !246736 (closed) |
| 3 | Version overrides table + resolver | !246753 (closed) |
| 4 | Admin API + routes + sidebar | !246758 (closed) |
| 5 | Admin UI (Vue) | !246764 (closed) |
| 6a | Runtime loader: gon contract, manifest verification + SRI, baked fallback, CSP connect-src | !246775 (closed) |
| 6b | Duo Chat consumer behind mfe_duo_chat |
this MR |
| 7 | Developer mode (local dev server + HMR) | !246833 (closed) |
Related
- Phase 1 issue: #605798
- Epic: gitlab-org#22777
Related to #605798.
Edited by Illya Klymov