Files
zclaw_openfang/docs/archive/old-audits/V11_REMEDIATION_PLAN.md
iven 2e5f63be32
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
docs: reorganize docs — archive outdated, create brainstorming folder
- Create docs/brainstorming/ with 5 discussion records (Mar 16 - Apr 7)
- Archive ~30 outdated audit reports (V5-V11) to docs/archive/old-audits/
- Archive superseded analysis docs to docs/archive/old-analysis/
- Archive completed session plans to docs/archive/old-plans/
- Archive old test reports/validations to respective archive folders
- Remove empty directories left after moves
- Keep current docs: TRUTH.md, feature docs, deployment, knowledge-base, superpowers
2026-04-07 09:54:30 +08:00

210 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ZCLAW V11 修复优先级计划
> **生成日期**: 2026-04-02
> **关联审计**: COMPREHENSIVE_AUDIT_V11.md + V11_GAP_ANALYSIS.md
---
## Sprint 分配建议
### Sprint 1 (P1 — 紧急修复)
#### V11-P1-01: trigger_update 参数修复
- **影响**: Trigger 配置更新静默失败
- **修复复杂度**: 低1 文件修改)
- **文件**: `desktop/src/lib/kernel-triggers.ts:99`
- **方案**: 将嵌套 `updates` 对象展开为扁平参数
```typescript
// 修复前:
await invoke('trigger_update', { id, updates });
// 修复后:
await invoke('trigger_update', {
id,
name: updates.name,
enabled: updates.enabled,
handId: updates.handId,
});
```
- **同时修复**: Rust 端添加 `trigger_type` 参数支持trigger.rs:183-189
- **验证**: 修改 trigger 配置后检查 Kernel 状态
#### V11-P1-02: SaaS 配置同步传播
- **影响**: SaaS 管理员修改配置后不影响 Kernel 运行时
- **修复复杂度**: 中(需要新增 Tauri 命令或事件机制)
- **方案**:
- 选项 A: saasStore.pullConfig 完成后调用 Tauri command 通知 Kernel 重新加载配置
- 选项 B: Kernel 定期检查配置文件变更watcher
- 选项 C: 明确记录为 "前端缓存同步,不影响 Kernel"
- **建议**: 先选 C文档对齐后续迭代实现 A
- **验证**: 在 SaaS 后台修改配置 → 检查 Kernel 日志是否反映变更
#### V11-P1-03: 孤立 SQL 表处理
- **影响**: 数据写入但无法读取,浪费存储
- **修复复杂度**: 低
- **方案**:
- `prompt_sync_status`: 实现读取查询OTA 端点需要)
- `telemetry_reports`: 添加 admin-v2 查询端点
- `key_usage_window`: 确认是否需要(限流可能已改用内存方案)
- **验证**: `grep -rn "SELECT.*FROM.*<table>" crates/zclaw-saas/src/` 有结果
---
### Sprint 2 (P2 — 高优先级)
#### V11-P2-01: 删除 saas-admin.ts
- **修复复杂度**: 低(删除 1 文件 + saas-client.ts 中的 install 调用)
- **前置条件**: 确认 admin-v2 完全不依赖此文件
- **验证**: admin-v2 所有页面功能正常
#### V11-P2-02: Role/Permission 管理
- **选项 A**: 为 admin-v2 添加 roles service 和页面
- **选项 B**: 移除 SaaS role 路由(如果当前不需要 RBAC
- **建议**: 评估业务需求后决定
#### V11-P2-03: 迁移 deprecated gateway-storage 调用者
- **文件**: `gateway-client.ts:44,71,211`, `configStore.ts:252`
- **方案**: 将 sync 方法调用替换为 async 版本
- **验证**: Gateway 连接功能测试
#### V11-P2-04: ToolDefinition 去重
- **文件**: `zclaw-runtime/src/driver/mod.rs:94`
- **方案**: 重导出 `zclaw-types::tool::ToolDefinition`
- **验证**: `cargo build` 通过
#### V11-P2-05: 未调用 Tauri 命令评估
- **62 个命令**需逐一评估:
- classroom_*: 确认 classroomStore 是否真正调用(可能是 store 中调用的)
- pipeline_*: 确认 workflowStore 是否调用
- gateway_*: 确认是否有侧车进程调用
- viking_*: 确认 Settings 页面是否调用
- **验证**: 对每个命令 grep `invoke('command_name'`
#### V11-P2-06: SQL LIMIT 添加
- **文件**: `migration/service.rs`, `knowledge/service.rs`
- **方案**: 为 config_items SELECT 添加 LIMIT 1000knowledge_categories 添加 LIMIT 100
- **验证**: SQL 执行计划验证
---
### Sprint 3 (P3 — 中优先级)
#### V11-P3-01: audit-logger 接入
- **方案**: 在 ApprovalsPanel、AutonomyConfig、chatStore 的关键操作中添加 logAudit 调用
- **或**: 标记为 reserved 并从 index 导出中移除
#### V11-P3-02: OFP 能力处理
- **方案**: 添加 `// Reserved for OpenFang Protocol` 注释或移除变体
#### V11-P3-03: 移除 deprecated extract_structured_facts
- **方案**: 删除 growth.rs:224 的 deprecated 方法
- **验证**: `cargo build` 通过
#### V11-P3-04: SaaS knowledge stub 实现
- **文件**: knowledge/handlers.rs:91,293,321
- **方案**: 实现真正的分页查询、回滚、推荐算法
- **验证**: admin-v2 Knowledge 页面功能测试
#### V11-P3-05: 定时任务执行结果持久化
- **方案**: 添加 last_result/last_error 列到 scheduled_tasks 表
- **迁移**: 新增 SQL migration
- **验证**: 创建定时任务 → 执行 → 检查结果是否存储
#### V11-P3-06 ~ P3-08: 其他清理
- 移除 secure-storage sync 方法
- 启用 embedding 生成或注释
- 清理 config 预留参数注释
---
### Sprint 4 (P4 — 低优先级 / 文档)
#### V11-P4-01: ContentBlock 命名规范
- **方案**: 为每个 crate 的 ContentBlock 添加 crate 前缀注释
- `zclaw_types::ContentBlock` = LLM 消息内容
- `zclaw_hands::ContentBlock` = 幻灯片渲染
- `zclaw_protocols::ContentBlock` = MCP 协议格式
#### V11-P4-02: 类型名称统一
- **方案**: 建立共享类型包 `@zclaw/types` 或使用 OpenAPI schema 生成
- 13+ 类型名称不一致需要协调
#### V11-P4-03: 文档数字更新
- Skills: 76
- Hands: 9 目录CLAUDE.md 应更新 "11" → "9 目录 + 2 禁用配置"
- Tauri 命令: 175
- SaaS 路由: 58
- Stores: 15
#### V11-P4-04/05: Feature-gated 代码保持现状
- Director/A2A/WASM: 等产品路线图决定
- Embedding 生成: 等 OpenViking 集成完成后启用
---
## 依赖关系图
```
V11-P1-01 (trigger_update 修复)
└── 无依赖,可独立完成
V11-P1-02 (配置同步传播)
└── 依赖设计决策(选项 A/B/C
V11-P1-03 (孤立表处理)
└── V11-P2-06 (SQL LIMIT) 可同时处理
V11-P2-01 (删除 saas-admin.ts)
└── V11-P2-04 (ToolDefinition 去重) 可同时完成
V11-P2-03 (迁移 deprecated 调用)
└── 需要先确认 async 版本稳定性
V11-P3-04 (knowledge stub 实现)
└── 依赖 V11-P1-03确认表用途后实现读取
V11-P4-02 (类型统一)
└── 长期任务,不阻塞其他修复
```
---
## 修复工作量估算
| Sprint | 项数 | 预估工作量 | 风险等级 |
|--------|------|-----------|----------|
| Sprint 1 (P1) | 3 | 中 | 高P1-02 需设计决策) |
| Sprint 2 (P2) | 6 | 高 | 中P2-05 工作量大) |
| Sprint 3 (P3) | 8 | 中 | 低 |
| Sprint 4 (P4) | 5 | 低 | 低 |
---
## 验证检查清单
### 编译验证
```bash
cargo build --workspace
pnpm tsc --noEmit
```
### 功能验证
- [ ] 创建/更新/删除 Trigger → 检查 Kernel 状态
- [ ] SaaS 后台修改配置 → 检查 desktop 前端行为
- [ ] Admin-v2 Knowledge 页面 CRUD
- [ ] 定时任务执行 → 检查结果存储
- [ ] Agent 审批 → Hand 自动执行
- [ ] Pipeline 运行 → 完成事件通知
### 回归验证
```bash
# Rust 测试
cargo test --workspace
# 前端测试
pnpm vitest run
# Admin-v2 测试
cd admin-v2 && pnpm test
```