From f5c935e96baec6e47f57f171e48bd2e35e0f641e Mon Sep 17 00:00:00 2001 From: zh Date: Thu, 24 Sep 2026 14:57:39 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20ADR-0009=20=E4=BA=A4=E4=BB=98=E5=BD=A2?= =?UTF-8?q?=E6=80=81=EF=BC=88=E7=BA=AF=E5=B9=B3=E5=8F=B0=E5=8C=85=20+=20AP?= =?UTF-8?q?S=20=E5=8D=95=E7=8B=AC=E9=83=A8=E7=BD=B2=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 首版只交付纯平台包:桌面端 + 平台服务 + 平台库 + Provider 契约,不含 APS 运行时与 APS 库;APS 单独部署,平台按 Provider 配置指向它;平台在未接入 APS 时要能正常启动并呈现「未接入/不可用」状态。连带影响写进 ADR:A1.5 一键启动不拉 APS、A10.5 本地守护只管平台服务、A10.8 只验收纯平台包、A5 联调需 APS 单独部署环境。 --- docs/adr/0009-delivery-shape.md | 41 +++++++++++++++++++++++++++++++ docs/adr/README.md | 1 + docs/spec/platform-vs-business.md | 3 ++- 3 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 docs/adr/0009-delivery-shape.md diff --git a/docs/adr/0009-delivery-shape.md b/docs/adr/0009-delivery-shape.md new file mode 100644 index 0000000..39b1ada --- /dev/null +++ b/docs/adr/0009-delivery-shape.md @@ -0,0 +1,41 @@ +# ADR-0009:交付形态——纯平台包 + APS 单独部署 + +- **状态**:已接受 +- **日期**:2026-09-24 +- **决策人**:技术负责人 +- **相关**:任务表 A0(决策 D14);ADR-0008;实施设计第 3、7 节 + +## 背景 + +平台把 APS 作为外部业务系统接入。首版交付有两种做法:把 APS 打进桌面安装包(同机一体化交付),或只交付平台、APS 单独部署。这个选择影响安装包内容、本地守护范围、发版节奏与联调方式。 + +## 选项 + +| 选项 | 做法 | 代价 | 不选的理由 | +| --- | --- | --- | --- | +| A 纯平台包,APS 单独部署 | 安装包只含桌面端 + 平台服务;APS 由现场单独部署,平台按 Provider 配置指向它 | 现场要装两套、维护两个地址 | 选定 | +| B 同机一体包 | 安装包里带 APS | 现场只装一次 | APS 是独立系统:独立发版节奏、独立库、独立界面。打进平台包会把两者的升级与回滚绑死,平台安装包还要多背一个 Python 运行时 | +| C 两种都做 | 同时提供 | 灵活 | 首版维护两套打包与两套验收,成本翻倍 | + +## 结论 + +选 A:首版只交付**纯平台包**,APS 单独部署(同机或异地都行)。 + +| 项 | 结论 | +| --- | --- | +| 平台包内容 | 桌面端 + 平台服务 + 平台库(SQLite)+ Provider 契约;**不含 APS 运行时与 APS 库** | +| APS 位置 | 由 Provider 实例配置指向:地址、账号、健康状态都在平台侧配置,不在安装包里 | +| 未接入时的行为 | 平台必须能正常启动,并把「未接入 / 不可用」作为明确状态呈现(健康探测见 A5.5) | +| APS 的运维 | 安装、升级、备份、回滚归 APS 自己(B7 / B-G) | + +## 影响 + +- **对代码**:平台不假设 APS 在同机;Provider 配置里的 APS 地址就是普通外部地址 +- **对任务**:A1.5 一键启动只拉起平台(含本地库),不拉 APS;A10.5 本地守护只管平台服务;A10.8 只验收纯平台包;A5 联调需要 APS 单独部署的环境(依赖 B5) +- **对文档**:术语表已写明「单机版不含 APS」(ADR-0008);本文补齐交付形态这一维 +- **不这么做的后果**:把 APS 塞进平台包,两者升级与回滚被绑死,平台安装包多背一个 Python 运行时,故障面也变大 + +## 遗留 + +- 平台包与 APS 的版本兼容矩阵:A5 联调时按 Provider manifest 的「兼容平台版本」字段落 +- 开发期 APS 用旧网关还是 B5 之后的新接口:A5 开工前定,属 B0 的范围 \ No newline at end of file diff --git a/docs/adr/README.md b/docs/adr/README.md index 3dc86a5..60818ea 100644 --- a/docs/adr/README.md +++ b/docs/adr/README.md @@ -46,5 +46,6 @@ ADR 写完不再修改。要改结论就**新写一份**,并在两份里互相 | [0006](./0006-engine-as-subprocess.md) | 引擎以长驻子进程运行 | 已接受 | 任务表 A3(决策 D10) | | [0007](./0007-storage-and-consistency.md) | 数据存储选型与双形态一致规则 | 已接受 | 任务表 A0(决策 D11) | | [0008](./0008-database-ownership-and-topology.md) | 数据库归属与实例拓扑 | 已接受 | 任务表 A0(决策 D13) | +| [0009](./0009-delivery-shape.md) | 交付形态:纯平台包 + APS 单独部署 | 已接受 | 任务表 A0(决策 D14) | 编号在写之前先在本表登记,避免多人并行时撞号。 diff --git a/docs/spec/platform-vs-business.md b/docs/spec/platform-vs-business.md index 805d872..f852358 100644 --- a/docs/spec/platform-vs-business.md +++ b/docs/spec/platform-vs-business.md @@ -32,4 +32,5 @@ | D8 | 平台 TS 从零重写;APS 保持 Python 搬迁适配 | | D9 | 权限与协作归业务系统;平台不做转派、委托、多人计数、角色策略 | | D12 | **APS 不内置对话智能体**:只保留「智能体接入点」契约,需要对话时由平台驱动 | -| D13 / ADR-0008 | 库各自私有:平台库归平台,APS 库归 APS,平台禁止直连 APS 库 | \ No newline at end of file +| D13 / ADR-0008 | 库各自私有:平台库归平台,APS 库归 APS,平台禁止直连 APS 库 | +| D14 / ADR-0009 | 交付形态:首版只交付纯平台包,APS 单独部署,平台按 Provider 配置指向它 |