-
Notifications
You must be signed in to change notification settings - Fork 170
Closed
Labels
enhancementNew feature or requestNew feature or request
Description
Feature
Currently in the client/src/components/chat-v2/thread/mcp-apps-renderer.tsx, we cannot send ui/request-display-mode messages (defined in the ext-apps definition). Hence, request for display mode are not taken into account
Solution
- Add a handler l512 for ui/request-display-mode (got inspired from the openai apps)
case "ui/request-display-mode": {
const requestedMode = (params as { mode?: DisplayMode })?.mode || "inline";
const isMobile = window.innerWidth < 768;
// On mobile, upgrade PiP to fullscreen (same as OpenAI)
const actualMode: DisplayMode =
isMobile && requestedMode === "pip" ? "fullscreen" : requestedMode;
setDisplayMode(actualMode);
// Notify parent about PiP state changes
if (actualMode === "pip") {
onRequestPip?.(toolCallId);
} else if (
(actualMode === "inline" || actualMode === "fullscreen") &&
pipWidgetId === toolCallId
) {
onExitPip?.(toolCallId);
}
// Respond to the request (JSON-RPC requires response for requests with id)
sendResponse(id, { displayMode: actualMode });
// Also notify via host-context-changed so widget gets the update
sendNotification("ui/notifications/host-context-changed", {
displayMode: actualMode,
});
break;
}Alternatives
N/A
Additional Context
N/A
coderabbitai
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request