- 移除 TodoItem 中的 priority、created_at 和 updated_at 字段 - 强制每个任务都必须有唯一 id,且由用户负责生成 - 修改合并模式逻辑,merge=true 下保留未提及的旧任务 - 支持已完成和已取消任务重新激活(状态改回 pending 或 in_progress) - 禁止 in_progress 状态退回到 pending,必须标记为 completed 或 cancelled - 优化状态转换校验,允许特定状态间合法切换 - 简化任务变更消息,移除详细的新增/更新/移除统计 - 更新文档和示例,明确 id 必须由用户生成和使用 - 修复和补充测试,增强状态转换和合并模式验证 - 调整任务时间戳生成逻辑,统一使用当前时间及索引 - 该变更提供更合理的任务状态机械及管理模式,提升稳定性和易用性
2.9 KiB
2.9 KiB
lark-wiki +node-delete
Delete a wiki node (or pull a cloud doc out of Wiki). OpenAPI: DELETE /open-apis/wiki/v2/spaces/:space_id/nodes/:node_token.
⚠️ High-risk write & irreversible — deletes the node and (by default) its whole subtree. Requires explicit
--yes; without it the CLI returns aconfirmation_requirederror and nothing is deleted.
- Sync / async: an empty
task_idmeans the delete completed synchronously (ready=true). A non-emptytask_idtriggers bounded polling; if the window elapses the output carriestimed_out=trueand anext_command:lark-cli drive +task_result --scenario wiki_delete_node --task-id <TASK_ID> --as <user|bot>
Usage
lark-cli wiki +node-delete \
--node-token <node_token | obj_token | Lark URL> \
[--obj-type <wiki|doc|docx|sheet|bitable|mindnote|slides|file>] \
[--space-id <space_id>] \
[--include-children=true|false] \
--yes \
[--as user|bot]
# Preview the call chain without deleting
lark-cli wiki +node-delete --node-token <token> --obj-type wiki --dry-run
Flags
| Flag | Type | Required | Default | Description |
|---|---|---|---|---|
--node-token |
string | Yes | — | node_token, cloud-doc obj_token, or a Lark URL embedding one; URL paths also imply --obj-type |
--obj-type |
enum | Conditional | — | Required for a raw token (URL inputs auto-infer). wiki = the token is a node_token; otherwise the cloud-doc type |
--space-id |
string | No | — | Auto-resolved via get_node when omitted (extra lookup; pass it to skip) |
--include-children |
bool | No | true |
Cascade-delete the subtree (default). --include-children=false lifts direct children up to the parent |
--yes |
bool | Yes (real delete) | — | Confirm the high-risk operation. Without it the CLI returns confirmation_required |
--as |
enum | No | auto |
Identity user/bot; wiki is user-centric → pass --as user |
Output
{
"space_id": "7160145948494381236",
"node_token": "wikcnEXAMPLE",
"obj_type": "wiki",
"include_children": true,
"ready": true,
"failed": false,
"status": "success",
"status_msg": "success"
}
Async/timeout adds task_id, timed_out, and next_command.
Behavior
- Task poll:
GET /open-apis/wiki/v2/tasks/{task_id}?task_type=delete_node. The status lives underdata.task.simple_task_result.status(the gateway's generic key — notdelete_node_result); that object has nostatus_msg, so the label falls back to the status code. - Error hints:
131011→ the node has delete-approval enabled; apply via the Wiki UI (CLI cannot bypass approval).131003→ subtree too large to cascade-delete; use--include-children=falseor delete sub-trees first.
Required Scope
wiki:node:create (the delete endpoint declares this scope). Auto-resolving space_id additionally needs wiki:node:retrieve; pass --space-id to avoid that lookup.