Skip to content

Commit 8b331d5

Browse files
jerelmillerDaleSeo
andauthored
Set _meta['openai/widgetPrefersBorder'] (#668)
At the moment it seems like ChatGPT ignores `_meta.ui.prefersBorder` but honors `_meta['openai/widgetPrefersBorder']` so this change makes sure its set when rendering an OpenAI app. --------- Co-authored-by: Dale Seo <5466341+DaleSeo@users.noreply.github.com>
1 parent b335da6 commit 8b331d5

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
default: patch
3+
---
4+
5+
# Use `openai/widgetPrefersBorder` when `prefersBorder` setting is provided
6+
7+
Set `_meta['openai/widgetPrefersBorder']` for the resource because ChatGPT ignores `_meta.ui.prefersBorder` at the moment.

crates/apollo-mcp-server/src/apps/resource.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,15 @@ pub(crate) async fn get_app_resource(
130130
"prefersBorder".into(),
131131
serde_json::to_value(prefers_border).unwrap_or_default(),
132132
);
133+
134+
// ChatGPT currently ignores _meta.ui.prefersBorder, so we set
135+
// this field to ensure this setting is honored
136+
if matches!(app_target, AppTarget::AppsSDK) {
137+
meta.get_or_insert_with(Meta::new).insert(
138+
"openai/widgetPrefersBorder".into(),
139+
serde_json::to_value(prefers_border).unwrap_or_default(),
140+
);
141+
}
133142
}
134143
}
135144

@@ -246,6 +255,7 @@ mod tests {
246255
assert!(csp.get("redirect_domains").is_some());
247256
// OpenAI-specific description should be at root
248257
assert!(meta.get("openai/widgetDescription").is_some());
258+
assert!(meta.get("openai/widgetPrefersBorder").is_some());
249259
// ui nesting should contain the common properties
250260
let ui_meta = meta.get("ui").unwrap();
251261
let ui_csp = ui_meta.get("csp").unwrap();
@@ -314,6 +324,8 @@ mod tests {
314324
assert!(ui_meta.get("prefersBorder").is_some());
315325
// MCPApps should not have description
316326
assert!(ui_meta.get("description").is_none());
327+
// MCPApps should not have openai-specific root meta keys
328+
assert!(meta.get("openai/widgetPrefersBorder").is_none());
317329
}
318330

319331
#[tokio::test]

0 commit comments

Comments
 (0)