# 4-43 [done] 侧栏「复制页面」从 `/api/documents/duplicate` 迁移到 `/api/tree/commands` > 更新时间:2026-05-16 > > 状态:`done` ## 问题 `sidebar.tsx:924` 的 `handleDuplicateDocument` 直接 `fetch("/api/documents/duplicate")`,走旧 Next.js compat 路由,不经过 Rust tree command 链,不生成 tree domain event。 ## 修复 改为调用 `tree-command-client.ts` 中已有的 `copyTreeCommand`,POST 到 `/api/tree/commands`,使用 `action: "copy"` + Rust `tree.subtree.copy` 命令。 ## 证据 - `wolai-frontend/src/components/sidebar/sidebar.tsx`:`handleDuplicateDocument` 改为 `copyTreeCommand({ targetParentId: null, items: [{ documentId: node.id, recursive: true }] })` - `wolai-frontend/src/components/sidebar/sidebar.tsx`:import 新增 `copyTreeCommand` - 验证:单页面复制后 `/api/tree/commands` 应收到 `action: "copy"`,不走 `/api/documents/duplicate`