清理测试编译warning #509
Reference in New Issue
Block a user
Delete Branch "opt/test-compile-warning"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
代码评审(
opt/test-compile-warning→master)对比
origin/master(73090437)到ccfe0205。89 个文件,+5600 / −5140。这次改动把桌面启动、Tauri 命令和 GUI 接线拆到
#[cfg(not(test))]模块,并删掉只在测试编译里告警的死辅助代码。命令注册、预览退出、快照Periodic变体和测试替身都留在对应的 cfg 两侧,生产构建边界大体对齐。有两处
#[cfg(not(test))]收得过宽,把仍被始终编译路径调用的符号藏掉了。按当前模块结构,cargo check --tests会在下面两处失败;普通非测试构建仍然能通过。这次是按 cfg 和调用点核对的,没有另跑完整的cargo check --tests。[bug] MCP loopback 在测试编译中被摘掉
apps/ai-game-creator-shell/src-tauri/src/agent/direct_tools_mcp.rs:2136start_external_mcp_loopback(2136)和stop_external_mcp_loopback(2185)标了#[cfg(not(test))],测试编译里这两个名字不存在。始终编译的direct_game_creator_claude_code_chat_at(agent/claude_code_cli.rs:660)会调用前者,同文件ExternalMcpStopGuard::drop(agent/claude_code_cli.rs:86)会调用后者。该聊天函数又被未加 cfg 的direct_game_creator_codex_chat_at_with_optional_observer(agent/codex_app_server/mod.rs:5344)在 Claude Code CLI 模式下调用。agent.rs对direct_tools_mcp::*的再导出和claude_code_cli的use super::*都没有测试门禁,函数体在cfg(test)下仍会做类型检查。HTTP 处理函数和容量测试仍留在测试编译里,缺的是 loopback 启停。建议:去掉这两个函数以及它们专属的
ExternalMcpServer/EXTERNAL_MCP_SERVER上的#[cfg(not(test))],让 loopback 继续跟着 Claude Direct 路径编译。Tauri 命令start_game_creator_external_mcp、stop_game_creator_external_mcp和run_direct_tools_mcp_if_requested可以继续留在非测试门禁后面。[bug] 会话校验包装在测试编译中被摘掉
apps/ai-game-creator-shell/src-tauri/src/platform_session.rs:242validate_platform_session_input标了#[cfg(not(test))]。未加 cfg 的install_client_session_locally(commands.rs:4596)在spawn_blocking里直接调用它,再写入 runner 与平台会话。auth_session.rs:626的commit_authenticated_session同样始终编译,并等待这次安装完成。commands与platform_session都是无条件模块,crate 根对platform_session::*的导入也没有测试门禁。建议:去掉
validate_platform_session_input上的#[cfg(not(test))]。它只是对仍参与测试编译的validated_platform_session_snapshot的薄包装,会话安装路径在测试里也要能编过。fixture 加载留在platform_session/startup.rs的非测试模块里即可。