M2 audit: excise managed connectors and xAI media-gen tools
Managed connectors (grok.com MCP admin) removed root-and-branch: - The managed-MCP fetch/injection pipeline is gone, including the whole kigi-shell-session-support crate (managed-config fetch client, gateway tool catalog + dispatch, header injection, refresh task), reactive managed re-auth, mcp_doctor's grok.com-source discovery, and the [managed_mcps] config surface. - TUI: the 'Managed by grok.com' section, connectors URL/deep-link, Action::OpenManagedConnectors, and session_team_id are gone. Local MCP management (list/toggle/add/remove/auth/tools) is fully intact. - Kept as LOCAL policy: managed-settings.json MCP allow/deny enforcement, the multi-source local MCP merge, folder-trust gating. PluginOrigin Project/User labels kept (they tag locally discovered plugin dirs). imagine/media-gen tools (xAI image/video generation) removed: - image_gen, image_edit, video_gen, image_to_video, reference_to_video implementations, registrations, ToolKind/ToolInput/Output variants (serde-safe), config plumbing end to end, ZDR video machinery, /imagine + /imagine-video commands and guidance text, the bundled imagine skill (added to legacy cleanup so user installs delete it), and the media-gen render path. - Kept: image INPUT (paste/attach, [Image #N] meta, pdf/image fetch, clipboard wrap), generic media-ref rendering, and the generic tool 401-retry machinery (tests renamed, assertions unweakened). - deploy_app stays: it is a permanently-disabled local stub deploying nowhere. 121 files changed, 8 deleted. Gates: workspace check/clippy 0/0, fmt, deny ok; suites green (tools 2554, shell 4862, tui 6608, workspace 1042). Remaining grok.com strings live only in the auth-method ids and changelog archives (§9/M3 sweep).
This commit is contained in:
@@ -5297,20 +5297,16 @@ mod tests {
|
||||
let (mut reader_a, _writer_a) = connect_and_register(&sock_path, "client-a").await;
|
||||
let (mut reader_b, _writer_b) = connect_and_register(&sock_path, "client-b").await;
|
||||
tokio::time::sleep(Duration::from_millis(20)).await;
|
||||
let update = r#"{"jsonrpc":"2.0","method":"_x.ai/mcp/servers_updated","params":{"method":"x.ai/mcp/servers_updated","params":{"mcpServers":[{"name":"grok_com_slack","source":"managed"}]}}}"#;
|
||||
let update = r#"{"jsonrpc":"2.0","method":"_x.ai/mcp/servers_updated","params":{"method":"x.ai/mcp/servers_updated","params":{"mcpServers":[{"name":"team_slack","source":"local"}]}}}"#;
|
||||
response_tx.send(update.to_string()).unwrap();
|
||||
let got_a = next_acp_payload(&mut reader_a).await;
|
||||
let got_b = next_acp_payload(&mut reader_b).await;
|
||||
assert!(
|
||||
got_a
|
||||
.as_deref()
|
||||
.is_some_and(|p| p.contains("grok_com_slack")),
|
||||
got_a.as_deref().is_some_and(|p| p.contains("team_slack")),
|
||||
"client A must receive the MCP catalog broadcast, got {got_a:?}"
|
||||
);
|
||||
assert!(
|
||||
got_b
|
||||
.as_deref()
|
||||
.is_some_and(|p| p.contains("grok_com_slack")),
|
||||
got_b.as_deref().is_some_and(|p| p.contains("team_slack")),
|
||||
"client B must receive the MCP catalog broadcast, got {got_b:?}"
|
||||
);
|
||||
cancel.cancel();
|
||||
|
||||
Reference in New Issue
Block a user