From f725e15382dfc2831bc46279dbfdf5d2fb8cea14 Mon Sep 17 00:00:00 2001 From: kdletters Date: Mon, 3 Aug 2026 19:52:25 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=A8Linux=E6=8C=81=E4=B9=85?= =?UTF-8?q?=E5=91=BD=E4=BB=A4=E6=B2=99=E7=AE=B1=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 恢复 command.start 的 workspace-write 与 network-disabled 合同 增加 Linux 平台持久命令沙箱回归断言 --- .../runtime_actions/provider_request_builders.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/apps/ai-game-creator-shell/src-tauri/src/agent/runtime_actions/provider_request_builders.rs b/apps/ai-game-creator-shell/src-tauri/src/agent/runtime_actions/provider_request_builders.rs index 7d5873f3a..402854ac5 100644 --- a/apps/ai-game-creator-shell/src-tauri/src/agent/runtime_actions/provider_request_builders.rs +++ b/apps/ai-game-creator-shell/src-tauri/src/agent/runtime_actions/provider_request_builders.rs @@ -25,7 +25,7 @@ fn provider_command_exec_contract() -> &'static str { #[cfg(target_os = "linux")] fn provider_command_start_contract() -> &'static str { - "command.start 使用 {\"program\":\"受信任 PATH 中的裸可执行名\",\"args\":[\"逐项 argv\"],\"cwd\":\"项目内相对目录\",\"timeoutSeconds\":300}" + "command.start 使用 {\"program\":\"受信任 PATH 中的裸可执行名\",\"args\":[\"逐项 argv\"],\"cwd\":\"项目内相对目录\",\"timeoutSeconds\":300};Linux 持久进程同样固定运行在 bubblewrap workspace-write、network-disabled 沙箱内" } #[cfg(not(target_os = "linux"))] @@ -493,9 +493,12 @@ mod tests { assert_eq!(supervisor_prompt.matches("command.exec 使用").count(), 1); assert_eq!(supervisor_prompt.matches("command.start 使用").count(), 1); #[cfg(target_os = "linux")] - assert!( - !supervisor_prompt.contains("command.exec 使用 {\"program\":\"cargo|npm|node|git|rg\"") - ); + { + assert!(!supervisor_prompt + .contains("command.exec 使用 {\"program\":\"cargo|npm|node|git|rg\"")); + assert!(provider_command_start_contract().contains("workspace-write")); + assert!(provider_command_start_contract().contains("network-disabled")); + } let ordinary_state = start_game_creator_agent_runtime_task_at( &root,