# 05 - 云同步（基础可用）：客户端配置与同步工作流

## 目标（PRD 约束）

- 首次启用同步时，用户需要**手动填写服务端地址**（例如 `https://example.com`），并允许后续在设置中修改
- 客户端对地址格式做基础校验，并在保存时提示可达性/证书异常等风险信息
- 用户登录成功后，从服务端获取该用户任务并更新到前端展示

## 范围（建议最小闭环）

- “同步设置”入口与界面（服务端地址、登录、同步开关）
- 地址校验与风险提示
- 登录后拉取任务并刷新 UI
- 与本地数据的关系（v1.2.0 建议先做到“服务端为准/或本地为准”的单一策略，避免引入复杂冲突解决）

## 依赖

- 依赖 `04-*` 提供可用的服务端接口（至少登录 + 获取任务 + 获取安全策略）
- 与 `03-*`（Search）互不影响，可并行

## 关键交互与状态

需要定义并贯穿实现的状态机（至少包含）：
- 未配置服务端地址
- 已配置未登录
- 已登录（可同步）
- 同步中/同步失败/同步成功（含失败原因）

## 实施步骤（建议）

1. 增加“同步设置”UI
   - 放置在主界面可发现位置（例如顶部右侧设置按钮/侧边栏）
2. 服务端地址配置
   - 基础校验：`https?://`、host 合法性、尾部 `/` 处理规则
   - 保存时探测：尝试请求服务端健康检查或登录端点（并提示证书异常/不可达等）
3. 登录与凭据存储策略（与 `06-*` 协同）
   - 在允许落盘场景下可持久化 token/会话
   - 在禁止落盘场景下仅保留内存会话（退出即失效）
4. 登录后拉取任务
   - 拉取成功后更新前端任务列表
   - 拉取失败给出可理解提示，并允许重试

## 验收标准

- 首次启用同步必须先配置服务端地址；地址非法时不可保存并提示原因
- 保存地址时能提示“不可达/证书异常”等风险信息（至少能区分：成功、失败、存在风险但可继续）
- 登录后能从服务端拉取任务并展示在主界面

