Version: 0.9.48.dev.260428

后端:
1.新增任务批量状态查询能力,补齐入参归一化、单次上限控制、按当前用户隔离与空结果兼容。
2.QuickTask 从纯文本升级为“正文 + business_card”输出,覆盖 task_record/task_query 两类卡片语义。
3.查询链路新增时间窗边界筛选与异常窗口兜底,SSE/timeline 同步扩展 business_card 事件并持久化。

前端:
1.助手面板接入任务状态 hydration 与增量同步,卡片状态可实时联动(完成/撤销、编辑、删除、同步中)。
2.TaskRecord/TaskQuery 卡片升级为可交互任务卡,并新增对话页任务编辑弹窗与回写闭环。
3.助手路由升级为 /assistant/:id?,支持 URL 驱动会话切换与刷新恢复。

仓库:
同步更新 business card 前端对接说明文档。
This commit is contained in:
Losita
2026-04-28 00:32:33 +08:00
parent 20d8f2acae
commit 495d520b20
19 changed files with 1864 additions and 212 deletions

View File

@@ -184,8 +184,27 @@ interface TaskQueryCardTaskItem {
is_completed?: boolean
}
type TaskQueryFilterOperator = 'eq' | 'contains' | 'gte' | 'lt'
interface TaskQueryCardFilter {
key:
| 'quadrant'
| 'keyword'
| 'deadline_after'
| 'deadline_before'
| 'include_completed'
| 'sort'
label: string
value: string | number | boolean
operator?: TaskQueryFilterOperator
display_text: string
}
interface TaskQueryCardData {
// 展示摘要:只适合整段展示,不作为前端切分协议。
query_summary?: string
// 稳定结构化筛选条件:前端若要渲染标签/chip应优先消费此字段。
query_filters?: TaskQueryCardFilter[]
result_count: number
shown_count: number
has_more?: boolean
@@ -212,12 +231,15 @@ interface TaskQueryCardData {
有条件时建议补充:
- `query_summary`
- `query_filters`
- `priority_label`
- `deadline_at`
- `is_completed`
- `shown_count`
- `has_more`
其中 `query_summary` 是给人看的整段摘要,不保证分隔符可解析;前端若要拆成标签,应使用 `query_filters[].display_text` 或根据 `key/operator/value` 自行格式化,禁止按 `` 切分 `query_summary`
### 5.1.5 降级规则
1. 若只有 `result_count` 无任务列表:
@@ -242,6 +264,29 @@ interface TaskQueryCardData {
"summary": "按截止时间升序",
"data": {
"query_summary": "关键词:离散数学;仅未完成;截止时间升序",
"query_filters": [
{
"key": "keyword",
"label": "关键词",
"value": "离散数学",
"operator": "contains",
"display_text": "关键词:离散数学"
},
{
"key": "include_completed",
"label": "完成状态",
"value": false,
"operator": "eq",
"display_text": "仅未完成"
},
{
"key": "sort",
"label": "排序",
"value": "deadline_asc",
"operator": "eq",
"display_text": "按截止时间升序"
}
],
"result_count": 4,
"shown_count": 3,
"has_more": true,