From 7290f91d3ae5536c726c47c59d2818287f1ccccd Mon Sep 17 00:00:00 2001 From: whm <973418690@qq.com> Date: Fri, 7 Aug 2026 01:56:47 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20Z35=20=E6=84=8F=E8=A7=81=E5=BC=BA?= =?UTF-8?q?=E8=B0=83=E5=AE=87=E6=81=92=E5=8B=BF=E6=94=B9=E3=80=81=E7=94=9F?= =?UTF-8?q?=E4=BA=A7=E9=A1=BB=20pull=EF=BC=88=E5=A9=B7=E5=A9=B7=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=91=98=E5=BA=93=E5=90=8D=20400=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- 联调后修改意见-宇恒松离线.md | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/联调后修改意见-宇恒松离线.md b/联调后修改意见-宇恒松离线.md index c9f00b4..7488397 100644 --- a/联调后修改意见-宇恒松离线.md +++ b/联调后修改意见-宇恒松离线.md @@ -30,7 +30,7 @@ | **Z23 表单推送失败禁止空等** | **宇恒已改完;智建无需** | `ask_fields_via_chat` 推送失败立即抛错;进行中再选中会话给出提示;对齐 ty_host≥1.2.35(§5.21) | | **Z24 已绑定勿 force 清落点** | **宇恒已改完;智建无需** | 启动自动引导绑定时禁止 `force_rebind` 清 CHANNEL;仅用户点「换绑」才清(§5.22) | | **Z34 / Z34b 换机恢复** | **宇恒半程 + 智建已落实** | 有手机静默恢复(Z34);无手机 `POST …/restore-by-host`(Z34b · §5.32) | -| **Z35 库名非法中文** | **智建已改完** | 绑定 DisplayName 不再作 PG 库名;publish 纠正脏数据(§5.33) | +| **Z35 库名非法中文** | **智建 · 意见已写清 · 生产须 pull** | DisplayName 当 PG 库名 → 400「婷婷管理员」;§5.33;**宇恒勿改** | | **仍关注** | 用法 | 通道断了靠智建自愈;表数据靠宇恒双向指纹 / 数据恢复;不是「再点启动」 | ### 0.0 修改流程(冻结) @@ -1086,25 +1086,41 @@ POST /api/v1/agent/sync/channels/{id}/pull ### 5.33 【Z35 · 2026-08-07】绑定勿用中文 DisplayName 作 Postgres 库名 -**状态**:**智建已改完;宇恒无需**(报错来自平台 publish EnsureDatabase)。 +**状态**:**智建负责(须生产 pull)· 宇恒勿改代码**。 +联调复现仍指向生产 `aisite…`:`HTTP 400: ensure database: invalid database name: 婷婷管理员` —— **在生产未 pull 前会继续报错**,不是宇恒终端问题。 #### 现象 -模块发布 `HTTP 400: ensure database: invalid database name: 婷婷管理员`。 +模块发布 / 新建模块失败: + +`HTTP 400: ensure database: invalid database name: 婷婷管理员` + +(`婷婷管理员` 为智建成员 DisplayName / 昵称。) #### 根因 -`bindUserHostSync` 把成员 `DisplayName` 写入智能体 `database_name`;publish Z8c 用该字段 `CREATE DATABASE`,而物理库名须匹配 `^[a-z][a-z0-9_]{1,47}$`。 +1. 绑定路径 `bindUserHostSync` 把成员 **DisplayName(可中文)** 写入智能体 `database_name`。 +2. 发布 Z8c:智能体带 `database_name` 时走 `database_per_app` → `EnsureDatabase` → Postgres `CREATE DATABASE`。 +3. 物理库名校验:`^[a-z][a-z0-9_]{1,47}$` —— 中文昵称非法 → 400。 -#### 智建改 +#### 分工(冻结) -1. 绑定:`DatabaseName=user_{userID}`;`Binding.DisplayName` 仍用昵称。 -2. publish:仅当 `ValidDBName` 才采用智能体库名;非法则 `SanitizeDBName` 并回写纠正。 -3. 已存在非法 `existing.DatabaseName` 不再沿用。 +| 方 | 做什么 | 不做什么 | +|----|--------|----------| +| **智建** | 改绑定落点库名规则 + publish 遇非法名纠正;**生产 `bash ./restart.sh --pull`** | — | +| **宇恒** | **不改**;意见对齐与复测 | 不在终端侧绕过/改写智建 `database_name` | + +#### 智建改法(意见约定 · 实现要点) + +1. **绑定**:`Agents.DatabaseName` / Binding 物理名用 `user_{userID}`(或同等合法 ASCII);`Binding.DisplayName` 仍用昵称「婷婷管理员」。 +2. **publish**:仅当 `ValidDBName(acc.DatabaseName)` 才用于 Ensure;否则回落 `AssignDatabaseName` / `SanitizeDBName`,并**回写纠正**智能体脏 `database_name`,避免反复 400。 +3. 已存在 app 的非法 `existing.DatabaseName` **不得**继续沿用。 #### 验收 -昵称含中文的账号发布模块 → 2xx;智能体 `database_name` 为合法英文/数字下划线。 +1. 生产 pull 后,昵称含中文的已绑账号 → 新建/发布模块 **不再** 400。 +2. 智能体 `database_name` 为合法 `a-z0-9_`;控制台展示名仍可为中文。 +3. 宇恒侧无需发版即可复测通过。 ## 6. 联系与附件