4.1 KiB
患者会话修复:仅准备,待根线程定稿执行
本目录新增脚本未执行构建、上传、部署、安装、版本修改或真实患者请求。现有 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 对应后端文件有既有差异,不能整文件拿来部署。
定稿后本地准备
- 把 patient-release-plan.template.json 复制为 patient-release-plan.json;核对最终测试名称、服务器文件清单、Windows定向同步和版本;根线程设 finalized=true。模板故意保留 finalized=false,无plan就无法启动。
- 后端agent before-backend 四文件必须与服务器基线一致。运行
python -B C:/kefu/deploy/patient-session-20260918/prepare_patient_payload.py创建只含四生产文件及独立测试目录的 server-bundle 与 tar.gz。目录或归档已存在即拒绝覆盖。 - 根线程审查四文件diff、payload hash和最终新测试通过结果。prepare只本地组包,不上传。
服务器后续命令(根线程执行)
上传准备好的归档到一个全新、0700的 /home/ps/patient-session-20260918 目录并解包;先在本地检查tar只包含 server-bundle 所列文件,不允许绝对路径或 ..。不要使用其他发布包覆盖本目录。
依次执行:
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防并发变化,输出目录必须不存在。
& 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。不要用尚在修改的代码执行脚本。