优化: 清理无意义注释(走查编号前缀/过时历史标注/死代码注释)
This commit is contained in:
@@ -316,7 +316,7 @@ impl AppState {
|
||||
// 启动恢复:重启前卡 pending 的工具审批(内存 pending_approvals 已丢)从审计表重建,
|
||||
// 使重启后待审批不丢。前端经 ai_pending_tool_calls + switchConversation 恢复 toolCard 态。
|
||||
crate::commands::ai::restore_pending_approvals(&state).await;
|
||||
// F-260614-04c: 启动一次性初始化 per-provider caps 表。
|
||||
// c: 启动一次性初始化 per-provider caps 表。
|
||||
// 根据 DB enabled providers 建 HashMap<provider_id, global_cap>,让 agentic loop 的
|
||||
// try_acquire_for_provider 从 NotConfigured(无限流)切换到 Acquired/Exhausted(按配置限流)。
|
||||
// disabled / weight=0 的 provider 不入表(其被 provider_pool::select 过滤出候选,不会被 acquire)。
|
||||
@@ -352,10 +352,10 @@ impl AppState {
|
||||
Ok(state)
|
||||
}
|
||||
|
||||
/// F-260614-04c: 从 DB enabled providers 重建 per_provider caps 并 set_provider_caps。
|
||||
/// c: 从 DB enabled providers 重建 per_provider caps 并 set_provider_caps。
|
||||
///
|
||||
/// 启动 + provider 变更(ai_update_provider_pool / 删除 / 新增)后调用。caps 策略见
|
||||
/// AppState::init 注释(本轮每 provider cap = global_cap,F-04d 配差异化上限时仅改此)。
|
||||
/// AppState::init 注释(本轮每 provider cap = global_cap,d 配差异化上限时仅改此)。
|
||||
pub async fn reload_provider_caps(&self) {
|
||||
let providers = match self.ai_providers.list_all().await {
|
||||
Ok(ps) => ps,
|
||||
@@ -425,7 +425,7 @@ impl AppState {
|
||||
/// 每条路径尝试 canonicalize 规范化(防大小写/分隔符差异绕过);canonicalize 失败
|
||||
/// (目录不存在)回退原字面量 trim(写入后再校验场景:先授权目录路径,目录暂不存在)。
|
||||
pub async fn reload_allowed_dirs(&self) {
|
||||
// F-260619-03: 白名单 = Settings KV allowed_dirs(用户配)+ projects.bind_directory(项目绑定目录自动授权)。
|
||||
// 白名单 = Settings KV allowed_dirs(用户配)+ projects.bind_directory(项目绑定目录自动授权)。
|
||||
// 项目绑定目录 = AI 天然可访问(用户已主动绑定),不应重复弹窗。reload 时自动合并入 persistent。
|
||||
let kv_dirs: Vec<String> = match self.settings.get(AllowedDirs::SETTINGS_KEY).await {
|
||||
Ok(Some(v)) => serde_json::from_str(&v).unwrap_or_default(),
|
||||
@@ -592,7 +592,7 @@ impl AppState {
|
||||
/// 这里注册 df-nodes 提供的真实 HumanNode / AiNode。
|
||||
///
|
||||
/// "script" 节点不注册:ScriptNode 走 cmd /C | sh -c 执行 config.command 原始串,
|
||||
/// 前端可构造任意 DagDef 触达无审批 shell(R-PD-2)。DevFlow 工作流当前为纯演示
|
||||
/// 前端可构造任意 DagDef 触达无审批 shell。DevFlow 工作流当前为纯演示
|
||||
/// 功能(前端唯一构造点 ProjectDetail.vue demoDag 三步 echo),无真实构建/部署脚本
|
||||
/// 需求。需要脚本执行能力时新建独立 BuildNode(白名单 + 项目目录锚定 + 复用 AI 工具
|
||||
/// RiskLevel 审批链),而非回头启用 ScriptNode + 黑名单。
|
||||
@@ -621,7 +621,7 @@ fn build_registry(db: Arc<Database>) -> NodeRegistry {
|
||||
// 推进链阶段 2 工作流联动入口 — DAG 内触发 advance_task。
|
||||
// 持有 Arc<Database> 在此构造时注入(NodeRegistry::register 工厂闭包 move 捕获 db,
|
||||
// Arc clone 廉价),Node::execute 从 NodeContext.config 读 task_id/target_status。
|
||||
// D-260616-03: 推进链/状态机/闸门走 df-nodes Node trait,非复活 df-task。
|
||||
// 推进链/状态机/闸门走 df-nodes Node trait,非复活 df-task。
|
||||
registry.register("task_advance", move |_config| {
|
||||
Box::new(df_nodes::task_advance_node::TaskAdvanceNode::new(db.clone()))
|
||||
});
|
||||
@@ -662,11 +662,11 @@ mod tests {
|
||||
use super::*;
|
||||
|
||||
// ============================================================
|
||||
// F-260620: strip_verbatim 比对侧收口 + 黑名单增强测试
|
||||
// strip_verbatim 比对侧收口 + 黑名单增强测试
|
||||
// 三方审查(安全/UX/跨端)交叉印证:strip_verbatim 仅写入侧调用,比对侧遗漏致误弹窗。
|
||||
// ============================================================
|
||||
|
||||
/// F-260620: strip_verbatim 三前缀(\\?\ / \\.\ / \??\)统一去除
|
||||
/// strip_verbatim 三前缀(\\?\ / \\.\ / \??\)统一去除
|
||||
#[test]
|
||||
fn test_strip_verbatim_three_prefixes() {
|
||||
assert_eq!(strip_verbatim(PathBuf::from(r"\\?\E:\foo")), PathBuf::from("E:\\foo"));
|
||||
|
||||
Reference in New Issue
Block a user