[OPS] 建立三项目独立且可选集成的根级部署编排 #154

Closed
opened 2026-08-29 21:04:55 +08:00 by ila · 4 comments
Owner

状态

已完成(用户于 2026-08-31 验收通过;PR #167 已合入 dev)

基本信息

  • 类型:根级部署 / 跨项目协调
  • 主项目:YoVision
  • 主 agent:单一 coordination agent
  • 所属 Epic:#7
  • 所属 MVP:#156
  • 来源:#124 与 NFR-001/NFR-003/NFR-006
  • 前置:#151、#152、#153 均验收
  • 生产者/消费者:编排只组合三个独立交付单元,不成为业务事实源

目标

提供可选的根级部署和 start/stop/status 编排,使 Sense、Brain、Bell 保持独立配置、数据库、身份、版本与发布,同时能按冻结契约组成闭环。

范围

  • 使用各项目已验收构建产物/启动入口,不复制产品实现。
  • 为三个产品配置独立进程、端口、数据目录、数据库角色、机器身份和日志边界。
  • 支持单端启动、组合启动、健康检查、按归属停止和失败诊断;停止任一端不自动终止其他端。
  • 配置示例只列变量名和无敏感占位,不含默认密码、可用 token、客户地址或私钥。
  • 明确版本清单、升级顺序、备份/恢复边界和 connector 安全停用回退。

非目标

不执行生产发布、安装未知系统服务、共享数据库/卷、修改产品业务代码、承诺 16 路性能或替代各产品独立交付脚本。

精确 write_paths

  • deploy/coordination/**
  • scripts/runtime/coordination/**

禁止写入:Sense/**、Brain/**、Bell/**、contracts/**、其他根级文件和 docs/**。

验收标准

  • 三端可分别启动/停止/检查,也可选择性组合启动
  • Sense/Bell 数据库、账户、Cookie、端口、持久化目录和发布包完全独立
  • 每实例机器身份与 secret 只从仓库外注入,包和日志无秘密
  • 任一端失败或停止不破坏其他端核心能力,connector 可安全停用并恢复
  • 版本、升级、回退、日志和健康检查命令可复制
  • 编排不把 16 写成硬上限或声明未验证容量

验证

隔离临时环境部署 smoke、独立与组合启动、任一端停止、端口/目录/数据库隔离、秘密扫描、失败退出码和清理检查。

风险与回退

错误编排可能串用数据库或身份。启动前做隔离断言;回退停止根级编排并恢复各产品独立入口,不删除数据或修改共享事实。

设计与文档影响

非 UI 任务;完成后必须更新 Deployment-and-Operations、Architecture、Local-Development-and-Verification 和 Troubleshooting Wiki。

## 状态 已完成(用户于 2026-08-31 验收通过;PR #167 已合入 `dev`) ## 基本信息 - 类型:根级部署 / 跨项目协调 - 主项目:YoVision - 主 agent:单一 coordination agent - 所属 Epic:#7 - 所属 MVP:#156 - 来源:#124 与 NFR-001/NFR-003/NFR-006 - 前置:#151、#152、#153 均验收 - 生产者/消费者:编排只组合三个独立交付单元,不成为业务事实源 ## 目标 提供可选的根级部署和 start/stop/status 编排,使 Sense、Brain、Bell 保持独立配置、数据库、身份、版本与发布,同时能按冻结契约组成闭环。 ## 范围 - 使用各项目已验收构建产物/启动入口,不复制产品实现。 - 为三个产品配置独立进程、端口、数据目录、数据库角色、机器身份和日志边界。 - 支持单端启动、组合启动、健康检查、按归属停止和失败诊断;停止任一端不自动终止其他端。 - 配置示例只列变量名和无敏感占位,不含默认密码、可用 token、客户地址或私钥。 - 明确版本清单、升级顺序、备份/恢复边界和 connector 安全停用回退。 ## 非目标 不执行生产发布、安装未知系统服务、共享数据库/卷、修改产品业务代码、承诺 16 路性能或替代各产品独立交付脚本。 ## 精确 write_paths - `deploy/coordination/**` - `scripts/runtime/coordination/**` 禁止写入:`Sense/**`、`Brain/**`、`Bell/**`、`contracts/**`、其他根级文件和 `docs/**`。 ## 验收标准 - [x] 三端可分别启动/停止/检查,也可选择性组合启动 - [x] Sense/Bell 数据库、账户、Cookie、端口、持久化目录和发布包完全独立 - [x] 每实例机器身份与 secret 只从仓库外注入,包和日志无秘密 - [x] 任一端失败或停止不破坏其他端核心能力,connector 可安全停用并恢复 - [x] 版本、升级、回退、日志和健康检查命令可复制 - [x] 编排不把 16 写成硬上限或声明未验证容量 ## 验证 隔离临时环境部署 smoke、独立与组合启动、任一端停止、端口/目录/数据库隔离、秘密扫描、失败退出码和清理检查。 ## 风险与回退 错误编排可能串用数据库或身份。启动前做隔离断言;回退停止根级编排并恢复各产品独立入口,不删除数据或修改共享事实。 ## 设计与文档影响 非 UI 任务;完成后必须更新 Deployment-and-Operations、Architecture、Local-Development-and-Verification 和 Troubleshooting Wiki。
Author
Owner

开始实施(2026-08-31):#151、#152、#153 均已验收并合入 dev。单一 coordination agent 从 dev@eb4e1a9ea1d671b942502c2d886d563527569111 建立 feature/154-coordination-deployment;严格只写 deploy/coordination/** 与 scripts/runtime/coordination/**。方案使用声明式清单组合既有产品入口,外部 env/密钥注入、隔离断言、归属 PID、单端/组合 start-stop-status 和失败诊断;不修改产品代码、契约、docs 或生产系统。

开始实施(2026-08-31):#151、#152、#153 均已验收并合入 `dev`。单一 coordination agent 从 `dev@eb4e1a9ea1d671b942502c2d886d563527569111` 建立 `feature/154-coordination-deployment`;严格只写 `deploy/coordination/**` 与 `scripts/runtime/coordination/**`。方案使用声明式清单组合既有产品入口,外部 env/密钥注入、隔离断言、归属 PID、单端/组合 start-stop-status 和失败诊断;不修改产品代码、契约、docs 或生产系统。
Author
Owner

实施完成,等待人工验收(2026-08-31)

最终差异

  • 增加版本化协调清单、JSON Schema 和无秘密示例;三个产品的包、端口、数据/日志目录、数据库角色、账户空间、Cookie、JWT 与机器身份在启动前做隔离断言。
  • 增加单端、选择性组合的 start/stop/status PowerShell 与 BAT 入口;启动顺序 Bell → Sense → Brain,停止顺序反向。
  • 状态文件只保存 PID、版本、清单摘要与命令归属元数据;停止前核对 PID、启动器和命令令牌,拒绝终止无归属进程。
  • 单端启动失败只清理该端新进程;其他端继续运行。升级/回退保留各产品独立入口,并明确先停用 connector。
  • Schema 不设置 16 路或 16 项容量上限;16 仅作为当前交付配额说明。

验证证据

  • pwsh.exe -NoLogo -NoProfile -File deploy/coordination/tests/coordination-smoke.ps1:通过。覆盖 Sense/Brain/Bell 分别启动、健康检查和停止,Brain+Bell 组合启动,停止单端不影响另一端,单端失败隔离,端口占用、重复端口、重复数据库身份拒绝,PID 归属保护、清单漂移诊断、失败退出码与状态清理。
  • PowerShell 5 个脚本语法解析:通过。
  • JSON Schema Draft 2020-12 自检及示例验证:通过。
  • python dev_scripts/harness.py check --strict:通过。
  • python -m unittest discover -s tests -v:48 项通过。
  • git diff --check:通过;凭据/私钥/已知测试密码模式扫描无命中。

Git / PR

  • 实现提交:e2f7183ecf5e408d31c45cfa076236e4d274db7b
  • 独立启动测试补强:504dd1a
  • PR:#167(feature/154-coordination-deployment → dev)

未验证与文档影响

未执行生产发布,未使用真实三端发布包、生产 PostgreSQL、客户 PKI 或客户环境 connector;本次以仓库外临时隔离假包验证编排行为。真实契约闭环与故障恢复属于后续 #155。

本工单会改变长期部署、架构、验证和排错事实。按工作流,待用户验收后再更新 Gitea Wiki 的 Deployment-and-Operations、Architecture、Local-Development-and-Verification、Troubleshooting,并同步核心镜像;当前未直接修改 docs/**。

## 实施完成,等待人工验收(2026-08-31) ### 最终差异 - 增加版本化协调清单、JSON Schema 和无秘密示例;三个产品的包、端口、数据/日志目录、数据库角色、账户空间、Cookie、JWT 与机器身份在启动前做隔离断言。 - 增加单端、选择性组合的 `start/stop/status` PowerShell 与 BAT 入口;启动顺序 Bell → Sense → Brain,停止顺序反向。 - 状态文件只保存 PID、版本、清单摘要与命令归属元数据;停止前核对 PID、启动器和命令令牌,拒绝终止无归属进程。 - 单端启动失败只清理该端新进程;其他端继续运行。升级/回退保留各产品独立入口,并明确先停用 connector。 - Schema 不设置 16 路或 16 项容量上限;16 仅作为当前交付配额说明。 ### 验证证据 - `pwsh.exe -NoLogo -NoProfile -File deploy/coordination/tests/coordination-smoke.ps1`:通过。覆盖 Sense/Brain/Bell 分别启动、健康检查和停止,Brain+Bell 组合启动,停止单端不影响另一端,单端失败隔离,端口占用、重复端口、重复数据库身份拒绝,PID 归属保护、清单漂移诊断、失败退出码与状态清理。 - PowerShell 5 个脚本语法解析:通过。 - JSON Schema Draft 2020-12 自检及示例验证:通过。 - `python dev_scripts/harness.py check --strict`:通过。 - `python -m unittest discover -s tests -v`:48 项通过。 - `git diff --check`:通过;凭据/私钥/已知测试密码模式扫描无命中。 ### Git / PR - 实现提交:`e2f7183ecf5e408d31c45cfa076236e4d274db7b` - 独立启动测试补强:`504dd1a` - PR:#167(`feature/154-coordination-deployment` → `dev`) ### 未验证与文档影响 未执行生产发布,未使用真实三端发布包、生产 PostgreSQL、客户 PKI 或客户环境 connector;本次以仓库外临时隔离假包验证编排行为。真实契约闭环与故障恢复属于后续 #155。 本工单会改变长期部署、架构、验证和排错事实。按工作流,待用户验收后再更新 Gitea Wiki 的 Deployment-and-Operations、Architecture、Local-Development-and-Verification、Troubleshooting,并同步核心镜像;当前未直接修改 `docs/**`。
Author
Owner

用户于 2026-08-31 明确“#154 验收通过”。

  • PR #167 已合入 dev,合并提交:4a2c4aa638fd121ff67070dcf69c308e25437b84。
  • 四个长期 Wiki 页面已更新并在线回读,revision:Deployment f71d21296bc4、Architecture 77af1bb5a71d、Local Verification 7e5ec44eb0af、Troubleshooting 0d4a70626b4a。
  • 因 #154 精确写路径禁止 docs/**,镜像同步由独立文档工单 #168 承接;提交 27d465c、PR #169,当前待验收。
  • 父 MVP #156 已勾选 #154;下一步为 #155 三项目 E2E。
用户于 2026-08-31 明确“#154 验收通过”。 - PR #167 已合入 `dev`,合并提交:`4a2c4aa638fd121ff67070dcf69c308e25437b84`。 - 四个长期 Wiki 页面已更新并在线回读,revision:Deployment `f71d21296bc4`、Architecture `77af1bb5a71d`、Local Verification `7e5ec44eb0af`、Troubleshooting `0d4a70626b4a`。 - 因 #154 精确写路径禁止 `docs/**`,镜像同步由独立文档工单 #168 承接;提交 `27d465c`、PR #169,当前待验收。 - 父 MVP #156 已勾选 #154;下一步为 #155 三项目 E2E。
ila closed this issue 2026-08-31 16:33:53 +08:00
Author
Owner

#168 已于 2026-08-31 验收,PR #169 已合入 dev(55b12df)。#154 的四个长期 Wiki 页面及核心镜像现已全部完成闭环。

#168 已于 2026-08-31 验收,PR #169 已合入 `dev`(`55b12df`)。#154 的四个长期 Wiki 页面及核心镜像现已全部完成闭环。
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ila/yovision#154