Files
kefu/deploy/patient-session-20260918/PREPARED-PATIENT-FLOW.md
T
2026-09-21 10:34:06 +08:00

43 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 患者会话修复:仅准备,待根线程定稿执行
本目录新增脚本未执行构建、上传、部署、安装、版本修改或真实患者请求。现有 baseline、fix_backend.py、edit_gui.py 均未覆盖。
服务器只读核验:192.168.110.111,当前镜像 `sha256:5e30dbfc1c57e3b00392bf1c2d80839c66a6f624253d09df516f8706d42d3cd8`;api/gateway/knowledge-worker 均使用它。五项代码hash见 server-baseline-patient.json,宿主与运行容器一致。
后端agent确认只修改 zyt_patient_client.py、archive_api.py、archive_store.py、admin_api.py,无schema迁移。数据库类位于 admin_backend.py,此次不改;更新逻辑位于 ArchiveStore.refresh_zyt_session,复用 Database.connect。backend_client.py 和 Qt改动仅属于Windows客户端,不放入服务器overlay。C:/kefu/wechat_rpa 后端基线与服务器一致;C:/wechat_rpa 对应后端文件有既有差异,不能整文件拿来部署。
## 定稿后本地准备
1. 把 patient-release-plan.template.json 复制为 patient-release-plan.json;核对最终测试名称、服务器文件清单、Windows定向同步和版本;根线程设 finalized=true。模板故意保留 finalized=false,无plan就无法启动。
2. 后端agent before-backend 四文件必须与服务器基线一致。运行 `python -B C:/kefu/deploy/patient-session-20260918/prepare_patient_payload.py` 创建只含四生产文件及独立测试目录的 server-bundle 与 tar.gz。目录或归档已存在即拒绝覆盖。
3. 根线程审查四文件diff、payload hash和最终新测试通过结果。prepare只本地组包,不上传。
## 服务器后续命令(根线程执行)
上传准备好的归档到一个全新、0700的 `/home/ps/patient-session-20260918` 目录并解包;先在本地检查tar只包含 server-bundle 所列文件,不允许绝对路径或 `..`。不要使用其他发布包覆盖本目录。
依次执行:
```bash
PATIENT_RELEASE_APPROVED=patient-session-20260918 bash /home/ps/patient-session-20260918/01-patient-preflight.sh
PATIENT_RELEASE_APPROVED=patient-session-20260918 bash /home/ps/patient-session-20260918/02-patient-backup-build.sh
PATIENT_RELEASE_APPROVED=patient-session-20260918 bash /home/ps/patient-session-20260918/03-patient-deploy.sh
```
每次变更前校验旧镜像和宿主/容器hash;任何漂移均停止。overlay FROM旧镜像,仅COPY四个明确文件,保留其他镜像内容。candidate容器无网络、只读根文件系统,测试只挂载合成测试代码,/data为tmpfs。在线SQLite backup + quick_check及密钥备份位于 `/data/backups/patient-session-20260918`,权限0700/0600。部署失败自动调用 rollback-patient.sh,恢复四文件与旧镜像;不回滚实时数据库,因为没有schema迁移,避免丢弃部署后的业务写入。数据库备份仅作额外恢复保障。
健康验证只读health、匿名鉴权拒绝、运行镜像/文件hash及PRAGMA quick_check,不输出用户、患者或密钥数据。不要把生产日志回显到聊天。
## Windows 1.4.25(根线程定稿后执行)
先完成 C:/wechat_rpa 客户端定向同步和新增测试同步,由根线程更新 APP_VERSION。脚本不会修改版本。旧1.4.24安装包hash固定验证,所有输入前后hash防并发变化,输出目录必须不存在。
```powershell
& C:/kefu/deploy/patient-session-20260918/build_patient_v1_4_25.ps1 -Finalized
& C:/kefu/deploy/patient-session-20260918/validate_patient_v1_4_25.ps1 -Finalized
```
复用1.4.24已验证的cached build和完整NSIS CRC/deflate/全部文件hash验证。冻结验证比较实际PYZ中的backend_client/wechat_gui_qt/app_version与源码;专用测试通过隔离runner跑冻结代码,阻断真实网络、桌面和剪贴板。没有自动发布/安装/客户端重启步骤;输出仍位于dist,根线程评审验证报告后再决定交付。
尚需根线程确认:最终测试模块名及依赖(当前计划列出 test_patient_session_client、test_patient_session_dialog、test_zyt_session_recovery 等),最终Windows同步,APP_VERSION 1.4.25。不要用尚在修改的代码执行脚本。