14868c45c7
1. 重构用户与任务实体:UserEntity实现IUser<Guid>,TaskEntity继承ABP风格FullAuditedEntityWithUser,主键从int改为Guid 2. 新增云同步代理系统:嵌入式WebServer支持CloudSyncProxy转发云同步请求,新增配置API与持久化 3. 完善前端适配:新增Guid工具函数,更新任务类型定义与API交互逻辑,调整云同步设置弹窗适配本地代理 4. 文档与配置优化:更新文档结构,新增部署文档、版本记录,统一各项目配置项 5. 补充测试与迁移:新增单元测试,更新EF Core数据库迁移快照
4.2 KiB
4.2 KiB
Hua.Todo v1.2.0 研发工单总览
术语澄清:本目录下"工单 / 子工单 / 研发工单"指编码工作项;文中提到的"任务/任务列表/任务标题/父子任务/拉取任务/同步任务"等指 Hua.Todo 项目业务领域的 Todo 待办项(Task 实体),二者请勿混淆。详见
.trae/rules/全局/05-研发工单规则.md。
本目录用于把 产品需求文档-1.2.0.md 拆解为可落地、可并行推进的子工单。各工单文件之间尽量解耦;存在明确依赖时会在工单内标注。
目标(来自 PRD)
- Linux 平台官方支持:MAUI 入口保持不动,Linux 新增 Avalonia 入口;继续用 WebView 承载同一套 Vue 前端;复用既有"本地 API ↔ 前端"的交互协议
- Todo 待办项检索(Search):主界面顶部新增搜索框,按 Todo 待办项标题模糊匹配
- 云同步(基础可用):用户手动配置服务端地址;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:已完成:主界面搜索框(按 Todo 待办项标题包含匹配;命中即显示含上下文;Esc 清空;英文大小写不敏感)
- 云同步线:
04-*+05-*+06-*- 04:服务端基础能力(登录、Todo 数据同步/读取、配置下发、用户隔离)
- 05:客户端配置与同步工作流(手动指定服务端地址、登录后拉取 Todo 数据)
- 06:安全与落盘策略(RBAC、二次认证、可控落盘与"内存模式")
- 文档与验收线:
07-*- 对齐文档与现实现状/接口;补齐验收步骤与自测清单
待验证表
| 子工单 | 实现状态 | 验证状态 | 备注 |
|---|---|---|---|
| 01 - Linux 入口 | 已完成 | 待验证 | 基于 Avalonia + WebView.Avalonia 实现 |
| 02 - Linux 打包/交付 | 已落地 | 待验证 | .tar.gz 发布脚本 + Flatpak 基础结构 |
| 03 - Search 关键词检索 | 已完成 | 待验证 | 搜索框 + 树状 Todo 待办项标题包含匹配 |
| 04 - 云同步 服务端基础能力 | 已完成 | 已验证 | API 契约与错误码已固化到 04 文档 |
| 05 - 云同步 客户端配置与同步 | 已完成 | 待验证 | 新增"云同步设置"弹窗:地址校验+保存探测、登录/登出、登录后拉取云端 Todo 数据并在主界面只读展示 |
| 06 - 安全与落盘策略 | 未标注 | 待验证 | |
| 07 - 文档与验收 | 未标注 | 待验证 | |
| 08 - 同源 Host 重构 | 已设计 | 待实现 | Vite proxy 补 /auth /tasks /sync /security /cloud-sync |
| 09 - 同步策略改进 | 待实现 | 待验证 | 重构 TaskEntity 继承 ABP 基类(FullAuditedEntityWithUser<Guid, IdentityUser>),主键从 int 改为 Guid,新增 ABP 审计字段(ExtraProperties/ConcurrencyStamp/CreationTime/CreatorId/LastModificationTime/LastModifierId/IsDeleted/DeletionTime/DeleterId) |
交付判定(v1.2.0 Done Definition)
- Linux:在基线发行版(建议 Ubuntu LTS)上可启动、可渲染前端、可调用本地 API;且有可安装/可运行的交付产物
- Search:可在主界面按 Todo 待办项标题实时过滤(含层级 Todo 的展示策略清晰)
- 云同步(基础可用):可配置服务端地址;登录后可拉取该用户的 Todo 数据;服务端可下发"是否允许落盘";客户端在禁止落盘时不产生本地持久化