# Hua.Todo v1.2.0 任务拆分总览

本目录用于把 [产品需求文档-1.2.0.md](file:///d:/Proj/6.Hua.Todo/docs/project/产品需求文档-1.2.0.md) 拆解为可落地、可并行推进的子任务。各任务文件之间尽量解耦；存在明确依赖时会在任务内标注。

## 目标（来自 PRD）

- Linux 平台官方支持：MAUI 入口保持不动，Linux 新增 Avalonia 入口；继续用 WebView 承载同一套 Vue 前端；复用既有“本地 API ↔ 前端”的交互协议
- 任务检索（Search）：主界面顶部新增搜索框，按任务标题模糊匹配
- 云同步（基础可用）：用户手动配置服务端地址；RBAC + 二次认证；用户级数据隔离；服务端配置驱动的“可控落盘”

## 当前实现基线（用于任务定位）

- MAUI 启动与内嵌 WebServer：`src/Hua.Todo.Maui`
- 前端（Vue）与 API client：`src/Hua.Todo.Web`
- 后端宿主（ASP.NET，动态 API）：`src/Hua.Todo.Host` + `src/Hua.Todo.Application/DynamicApi`
- 现有 WebView ↔ 前端注入协议（示例）：`window.__API_BASE_URL__`、`window.mauiInterop`（用于 JS 侧拿到 API base 与若干事件桥接）

## 任务流（并行建议）

- **Linux 入口线**：`01-*` + `02-*`
  - 01：新增 Avalonia 入口、选择 Linux 可用的 WebView 控件、复用现有前后端协议
  - 02：Linux 打包/交付产物（已落地：`.tar.gz` 发布脚本 + Flatpak 基础结构；详见 `publish-linux.ps1` 与 `pack/linux/`）
- **Search 线**：`03-*`
  - 主要在前端完成；与云同步/平台入口基本无耦合，可并行
  - 03：已完成：主界面搜索框（按标题包含匹配；命中即显示含上下文；Esc 清空；英文大小写不敏感）
- **云同步线**：`04-*` + `05-*` + `06-*`
  - 04：服务端基础能力（登录、任务同步/读取、配置下发、用户隔离）
  - 05：客户端配置与同步工作流（手动指定服务端地址、登录后拉取任务）
  - 06：安全与落盘策略（RBAC、二次认证、可控落盘与“内存模式”）
- **文档与验收线**：`07-*`
  - 对齐文档与现实现状/接口；补齐验收步骤与自测清单

## 待验证表

| 子任务 | 实现状态 | 验证状态 | 备注 |
|---|---|---|---|
| 01 - Linux 入口 | 已完成 | 待验证 | 基于 Avalonia + WebView.Avalonia 实现 |
| 02 - Linux 打包/交付 | 已落地 | 待验证 | `.tar.gz` 发布脚本 + Flatpak 基础结构 |
| 03 - Search 关键词检索 | 已完成 | 待验证 | 搜索框 + 树状任务标题包含匹配 |
| 04 - 云同步 服务端基础能力 | 已完成 | 已验证 | API 契约与错误码已固化到 04 文档 |
| 05 - 云同步 客户端配置与同步 | 已完成 | 待验证 | 新增“云同步设置”弹窗：地址校验+保存探测、登录/登出、登录后拉取云端任务并在主界面只读展示 |
| 06 - 安全与落盘策略 | 未标注 | 待验证 |  |
| 07 - 文档与验收 | 未标注 | 待验证 |  |

## 交付判定（v1.2.0 Done Definition）

- Linux：在基线发行版（建议 Ubuntu LTS）上可启动、可渲染前端、可调用本地 API；且有可安装/可运行的交付产物
- Search：可在主界面按标题实时过滤任务（含层级任务的展示策略清晰）
- 云同步（基础可用）：可配置服务端地址；登录后可拉取该用户任务；服务端可下发“是否允许落盘”；客户端在禁止落盘时不产生本地持久化
