diff --git a/docs/UPDATE_REPORT_2026-03-04_P0_P1.md b/docs/UPDATE_REPORT_2026-03-04_P0_P1.md new file mode 100644 index 0000000..be7b2f5 --- /dev/null +++ b/docs/UPDATE_REPORT_2026-03-04_P0_P1.md @@ -0,0 +1,141 @@ +# Star Office UI 更新文档(P0 / P1) + +更新时间:2026-03-04 +分支:`feat/office-art-rebuild` + +--- + +## 1. 更新目标 + +本轮更新目标分为两层: + +- **P0:安全与可发布性**(防泄漏、防弱配置、上线前可自检) +- **P1:结构与稳定性优化**(不减功能、提升状态同步与加载体验) + +同时处理了线上关键问题: + +- 服务偶发 502(进程/服务启动方式不稳定) +- 角色状态与真实工作状态不一致(尤其“回复结束仍在工位”) + +--- + +## 2. P0 已完成项 + +### 2.1 后端安全基线加固 + +- 增加生产模式安全校验(弱密钥/弱口令阻止启动) +- Session Cookie 安全参数加固(HttpOnly / SameSite / Secure) +- `runtime-config.json` 写入后自动尝试收紧文件权限(`600`) + +### 2.2 敏感文件治理 + +- `.gitignore` 补充运行态文件与高风险文件 +- 引入样例文件替代运行态文件: + - `join-keys.sample.json` + - `.env.example` +- `join-keys.json` 改为运行时初始化,不再作为仓库内固定配置 + +### 2.3 上线前安全自检能力 + +- 新增 `scripts/security_check.py` +- 可检查: + - 弱 secret / 弱口令 + - 风险文件是否被 git 跟踪 + - 常见敏感 token 模式 + +--- + +## 3. P1 已完成项(不改业务能力) + +### 3.1 后端结构拆分 + +在不改变现有 API 行为前提下,把 `backend/app.py` 拆出: + +- `backend/security_utils.py` +- `backend/memo_utils.py` +- `backend/store_utils.py` + +收益: +- 降低单文件复杂度 +- 降低后续功能改动时的回归风险 +- 提升可读性与维护效率 + +### 3.2 状态同步修复(核心) + +- 修复状态源路径优先级(避免读取错误状态文件) +- 增加 stale 状态自动回 `idle` 机制(避免假工作中) +- 前端状态轮询改为更快节奏并强制视觉对齐,避免动画卡旧状态 + +### 3.3 生图模型策略收敛 + +按需求收敛为两种用户模型语义: + +- `nanobanana-pro` +- `nanobanana-2` + +并补充 provider 映射与错误细节透出,提升可诊断性。 + +### 3.4 首屏性能与体感优化 + +- 首页 HTML 缓存(后端进程内缓存) +- 非关键初始化延后(先出画面) +- 加入画布骨架屏,减少“黑屏 + 长时间加载中”体感 +- 加速 loading overlay 淡出 + +--- + +## 4. 线上稳定性修复(本轮重点) + +### 4.1 502 根因 + +Cloudflare 正常,但 `18888` 源站进程存在不稳定/启动方式不一致,导致偶发 connection refused。 + +### 4.2 已处理 + +- 修复并统一 `star-office-ui.service` 启动方式(systemd 常驻) +- 清理手工临时启动造成的端口抢占 +- 重启并验证: + - `star-office-ui.service` 运行正常 + - `star-office-push.service` 运行正常 + +--- + +## 5. 当前已知风险 / 待跟进 + +1. **状态策略仍需完全事件化** + - 目前已大幅收敛误判,但建议后续做单一状态控制器(显式事件优先,彻底禁用隐式推断) + +2. **进程模型仍是 Flask 开发服务器** + - 当前可用但不理想,后续建议迁移为 gunicorn/uvicorn 等生产进程模型 + +3. **动画状态同步仍建议增加端到端回归脚本** + - 尤其 writing / syncing / error / idle 切换链路 + +--- + +## 6. 验收建议(人工) + +验收地址:`https://simonoffice.hyacinth.im/` + +建议至少覆盖: + +1. 首页进入速度与骨架屏体验 +2. 状态切换(writing / syncing / error / idle) +3. 回复结束后是否回到待命区 +4. 生图两入口(搬新家 / 找中介) +5. 断网或服务短时波动后是否自动恢复 + +--- + +## 7. 提交范围(摘要) + +本轮主要覆盖: + +- 安全与配置:P0 +- 后端重构:P1 +- 状态同步与动画一致性修复 +- 生图模型策略与错误诊断 +- 加载性能与体验优化 +- systemd 常驻与稳定性修复 + +如需 PR 附件,可直接将本文件作为“更新说明 / Release Notes”。