# 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:可在主界面按标题实时过滤任务(含层级任务的展示策略清晰) - 云同步(基础可用):可配置服务端地址;登录后可拉取该用户任务;服务端可下发“是否允许落盘”;客户端在禁止落盘时不产生本地持久化