13 Commits

Author SHA1 Message Date
d10db1d667 chore: auto release commit (2026-09-11 15:12:31)
All checks were successful
技能自动化发布 / release (push) Successful in 8s
2026-09-11 15:12:31 +08:00
26efbf7f82 chore: auto release commit (2026-09-11 00:17:16)
All checks were successful
技能自动化发布 / release (push) Successful in 6s
2026-09-11 00:17:16 +08:00
cb9bb4342f chore: auto release commit (2026-09-11 00:04:36)
All checks were successful
技能自动化发布 / release (push) Successful in 5s
2026-09-11 00:04:37 +08:00
21242cdd6d chore: auto release commit (2026-09-10 23:57:26)
All checks were successful
技能自动化发布 / release (push) Successful in 5s
2026-09-10 23:57:26 +08:00
05a71cff9b chore: auto release commit (2026-09-10 23:56:06)
All checks were successful
技能自动化发布 / release (push) Successful in 5s
2026-09-10 23:56:06 +08:00
f7290d5563 chore: auto release commit (2026-09-10 23:53:22)
All checks were successful
技能自动化发布 / release (push) Successful in 5s
2026-09-10 23:53:22 +08:00
848bd537ed chore: auto release commit (2026-09-10 23:51:10)
All checks were successful
技能自动化发布 / release (push) Successful in 6s
2026-09-10 23:51:10 +08:00
1e623e5c0f chore: auto release commit (2026-09-10 23:35:50)
All checks were successful
技能自动化发布 / release (push) Successful in 7s
2026-09-10 23:35:50 +08:00
2be083c0c9 chore: auto release commit (2026-09-10 23:28:38)
All checks were successful
技能自动化发布 / release (push) Successful in 9s
2026-09-10 23:28:38 +08:00
828437779c chore: auto release commit (2026-09-10 23:22:36)
All checks were successful
技能自动化发布 / release (push) Successful in 7s
2026-09-10 23:22:36 +08:00
abe4ea80a0 chore: auto release commit (2026-09-10 23:21:28)
All checks were successful
技能自动化发布 / release (push) Successful in 7s
2026-09-10 23:21:28 +08:00
e14cb97232 chore: auto release commit (2026-09-10 23:15:15)
All checks were successful
技能自动化发布 / release (push) Successful in 7s
2026-09-10 23:15:15 +08:00
2c7b23ac77 chore: auto release commit (2026-09-10 23:12:07)
All checks were successful
技能自动化发布 / release (push) Successful in 5s
2026-09-10 23:12:07 +08:00
3 changed files with 94 additions and 8 deletions

View File

@@ -111,7 +111,7 @@
}
},
{
"id": "todo-create",
"id": "item-create",
"label": "新增记录",
"description": "添加待办事项。",
"replaces": "create",
@@ -172,6 +172,92 @@
"{{due-at}}"
]
}
},
{
"id": "todo-done-row",
"label": "完成本行",
"description": "将当前待办标记为已完成。",
"placements": [
"row"
],
"executionProfile": "sync",
"interaction": "direct",
"bind": {
"tables": [
"todos"
]
},
"inputSchema": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number",
"title": "编号",
"readOnly": true
}
}
},
"hostEffects": {
"onSuccess": [
"reloadTable"
]
},
"entrypoint": {
"type": "cli",
"command": "todo",
"args": [
"done",
"{{id}}"
]
}
},
{
"id": "todo-delete",
"label": "删除记录",
"description": "删除待办事项。",
"replaces": "delete",
"placements": [],
"executionProfile": "sync",
"interaction": "confirm",
"confirmation": {
"message": "确定删除该记录?关联数据将一并清理。"
},
"bind": {
"tables": [
"todos"
]
},
"hostEffects": {
"onSuccess": [
"reloadTable",
"clearSelection"
]
},
"inputSchema": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number",
"title": "编号",
"readOnly": true
}
}
},
"entrypoint": {
"type": "cli",
"command": "todo",
"args": [
"delete",
"ids",
"{{id}}"
]
}
}
]
}

View File

@@ -16,9 +16,9 @@
| 主能力(Action id / CLI) | 对话 | 数据管理 | 定时 | 不挂理由(若不挂) |
|---------------------------|------|----------|------|--------------------|
| `todo add` | 挂 | toolbar(新增按钮) | 不挂 | 定时无意义 |
| `todo list` | 挂 | 仅展示表 | 不挂 | 定时无意义 |
| `todo done` | 挂 | row + batch(标记完成) | 不挂 | 定时无意义 |
| `todo delete` | 挂 | row + batch(删除) | 不挂 | 定时无意义 |
| `todo list` | 挂 | row | 不挂 | 定时无意义 |
| `todo done`(Action `todo-done-row`) | 挂(短 CLI 直调) | row(「完成」按钮) | 不挂 | 定时无意义;batch 批量完成暂未声明 |
| `todo delete` | 挂 | row(「删除」按钮)) + batch(删除) | 不挂 | 定时无意义 |
| `todo stats` | 挂 | toolbar(统计) | 不挂 | 定时无意义 |
| `remind` | 挂 | toolbar | 挂 | 定时扫描到期/待办项并提醒 |
| `init-db` | 不挂 | 不挂 | 不挂 | 宿主安装/更新时静默调用,不对用户暴露 |
@@ -28,7 +28,6 @@
说明:
- `todos` 表在数据管理中为**整表只读**(`readonly=1`),所有增删改必须通过技能 Action(`todo add/done/delete`)走,宿主不直写业务表。
- 数据管理页面默认展示列:`title`、`status`、`priority`、`due_at`、`created_at`;默认按 `created_at` 倒序。
- `status` 与 `priority` 字段在数据管理中以下拉枚举展示(pending=待办/done=完成;high=高/normal=中/low=低)。
@@ -225,3 +224,4 @@
| 日期 | 版本 | 变更人 | 变更内容 |
|------|------|--------|----------|
| 2026-09-07 | v0.1.0 | - | 初版需求文档 |
| 2026-09-11 | v0.1.1 | - | 入口定位表登记行级 Action `todo-done-row`(todos 表操作列「完成本行」,sync/direct,`$row.$pk` 预填) |

View File

@@ -69,17 +69,17 @@ def _seed_todos_display_metadata(cursor) -> None:
{"column_name": "id", "display_name": "编号", "description": "主键",
"visible": 1, "searchable": 1, "editable": 0, "display_type": "number"},
{"column_name": "title", "display_name": "标题", "description": "待办事项内容",
"grid_help": "简明描述要做的事", "visible": 1, "searchable": 1, "editable": 0,
"grid_help": "简明描述要做的事", "visible": 1, "searchable": 1, "editable": 1,
"display_type": "text"},
{"column_name": "status", "display_name": "状态", "description": "pending/done",
"grid_help": "pending=待办,done=完成", "visible": 1, "searchable": 1, "editable": 0,
"display_type": "enum",
"options_json": '[{"value":"pending","label":"待办"},{"value":"done","label":"完成"}]'},
{"column_name": "priority", "display_name": "优先级", "description": "high/normal/low",
"visible": 1, "searchable": 1, "editable": 0, "display_type": "enum",
"visible": 1, "searchable": 1, "editable": 1, "display_type": "enum",
"options_json": '[{"value":"high","label":"高"},{"value":"normal","label":"中"},{"value":"low","label":"低"}]'},
{"column_name": "due_at", "display_name": "截止时间", "description": "Unix 秒;可空",
"visible": 1, "searchable": 1, "editable": 0, "display_type": "datetime_unix_seconds"},
"visible": 1, "searchable": 1, "editable": 1, "display_type": "datetime_unix_seconds"},
{"column_name": "created_at", "display_name": "创建时间", "description": "Unix 秒",
"visible": 1, "searchable": 0, "editable": 0, "display_type": "datetime_unix_seconds"},
{"column_name": "updated_at", "display_name": "更新时间", "description": "Unix 秒",