# 03 - Search：任务标题关键词检索

## 目标

- 在主界面顶部增加搜索框
- 支持按任务标题进行模糊匹配（实时过滤）

## 范围

- 前端 UI：输入框、清空按钮、键盘交互（Esc 清空、Enter 可选）
- 过滤逻辑：对“树状任务”给出明确策略
- 性能：任务量增大时仍保持可用（至少避免 O(n^2) 的明显退化）

## 依赖

- 不依赖 Linux/Avalonia 或云同步，可独立并行完成

## 过滤策略（需在实现时确定，并写入实现说明）

树状任务（父子任务）常见两种策略，任选其一并保持一致：

1. **命中即显示（含上下文）**
   - 任意节点标题命中则显示该节点
   - 若子任务命中，可同时显示其祖先链（便于理解层级）
2. **扁平化命中**
   - 只显示命中的任务（可能丢失层级语义）

建议优先采用“命中即显示（含上下文）”，用户可更快定位。

## 实施步骤（建议）

1. 确定搜索框放置位置（主界面顶部）
2. 增加 `searchQuery` 状态与派生 `filteredTasks`
3. 将过滤逻辑接入现有列表渲染
4. 补充交互细节
   - 输入时实时过滤
   - 清空按钮
   - Esc 清空、保持输入焦点（可选）

## 验收标准

- 输入关键字后，任务列表实时过滤，仅展示命中结果（符合上述策略）
- 清空后恢复原列表
- 对中英文与大小写的处理行为明确（至少：英文大小写不敏感；中文按包含匹配）

