fix(security): fail closed on malformed app visibility (#11341)

Signed-off-by: Jasper Hugo <jasper@spiral.xyz>
This commit is contained in:
Jasper
2026-08-19 15:34:00 +00:00
committed by GitHub
parent c9d940ec66
commit f167ca6908
+7 -1
View File
@@ -795,7 +795,7 @@ pub fn is_tool_visible_to_app(tool: &Tool) -> bool {
return true;
};
let Some(arr) = visibility.as_array() else {
return true;
return false;
};
arr.iter().any(|v| v.as_str() == Some("app"))
}
@@ -1757,6 +1757,12 @@ mod tests {
assert!(!is_tool_visible_to_app(&tool));
}
#[test]
fn test_app_hidden_when_visibility_is_not_array() {
let tool = make_tool_with_meta(Some(serde_json::json!({"ui": {"visibility": "model"}})));
assert!(!is_tool_visible_to_app(&tool));
}
fn usage_with_stats(stats: Option<ProviderStats>) -> ProviderUsage {
let mut usage = ProviderUsage::new("mock".to_string(), Usage::default());
usage.stats = stats;