- 移除 TodoItem 中的 priority、created_at 和 updated_at 字段 - 强制每个任务都必须有唯一 id,且由用户负责生成 - 修改合并模式逻辑,merge=true 下保留未提及的旧任务 - 支持已完成和已取消任务重新激活(状态改回 pending 或 in_progress) - 禁止 in_progress 状态退回到 pending,必须标记为 completed 或 cancelled - 优化状态转换校验,允许特定状态间合法切换 - 简化任务变更消息,移除详细的新增/更新/移除统计 - 更新文档和示例,明确 id 必须由用户生成和使用 - 修复和补充测试,增强状态转换和合并模式验证 - 调整任务时间戳生成逻辑,统一使用当前时间及索引 - 该变更提供更合理的任务状态机械及管理模式,提升稳定性和易用性
54 lines
2.9 KiB
Markdown
54 lines
2.9 KiB
Markdown
# task +get-related-tasks
|
|
|
|
> **Prerequisites:** Please read `../lark-shared/SKILL.md` to understand authentication, global parameters, and security rules.
|
|
>
|
|
> **⚠️ Note:** This API must be called with a user identity. **Do NOT use an app identity, otherwise the call will fail.**
|
|
>
|
|
> **Pagination / Time Cursor Rule:**
|
|
> In `+get-related-tasks`, `page_token` is the task `updated_at` cursor in microseconds.
|
|
>
|
|
> **Execution Priority:**
|
|
> 1. If the request contains a start/end time boundary (for example, "今年以来", "最近一个月", "从 3 月 1 日开始"), first convert the **start time** boundary to a microsecond `page_token` and query from that token.
|
|
> 2. Continue pagination using returned `page_token` until `has_more=false`, but never exceed 40 total page fetches.
|
|
> 3. Do NOT default to `--page-all` for time-bounded queries.
|
|
>
|
|
> Only use `--page-all` from the beginning when:
|
|
> 1. the user explicitly asks for a full scan of all related tasks, or
|
|
> 2. no time boundary can be inferred from the request.
|
|
|
|
List tasks related to the current user.
|
|
|
|
## Recommended Commands
|
|
|
|
```bash
|
|
# List all related tasks
|
|
lark-cli task +get-related-tasks
|
|
|
|
# List incomplete related tasks starting from a page token
|
|
lark-cli task +get-related-tasks --include-complete=false --page-token "1752730590582902"
|
|
|
|
# Show only tasks created by me
|
|
lark-cli task +get-related-tasks --created-by-me
|
|
```
|
|
|
|
## Parameters
|
|
|
|
| Parameter | Required | Description |
|
|
|-----------|----------|-------------|
|
|
| `--include-complete=<bool>` | No | Default behavior includes completed tasks. Set to `false` to keep only incomplete tasks. |
|
|
| `--page-all` | No | Automatically paginate through all pages (max 40). |
|
|
| `--page-limit <int>` | No | Max page limit (default 20). |
|
|
| `--page-token <string>` | No | Start from the specified page token. This token is the task's last update time cursor in microseconds. |
|
|
| `--created-by-me` | No | Keep only tasks whose creator is the current user. This is a client-side filter applied after fetching related-task pages. |
|
|
| `--followed-by-me` | No | Keep only tasks followed by the current user. This is a client-side filter applied after fetching related-task pages. |
|
|
|
|
> **Page Token Note:** In `+get-related-tasks`, the `page_token` is a microsecond-level cursor representing the task's last update time. For example, `1752730590582902` should be treated as an updated-at cursor, not a task ID.
|
|
>
|
|
> **Pagination Note for Client-side Filters:** When `--created-by-me` or `--followed-by-me` is used, filtering happens locally after each upstream related-task page is fetched. The returned `has_more` and `page_token` still describe the upstream cursor, so later pages may contain more matching tasks, or may contain none.
|
|
|
|
## Workflow
|
|
|
|
1. Determine whether the user needs all related tasks or a filtered subset.
|
|
2. Execute `lark-cli task +get-related-tasks ...`
|
|
3. Report the matching tasks and, if present, the next `page_token`.
|