From 56f62be1843975d86299c210086897043290d569 Mon Sep 17 00:00:00 2001 From: whm <973418690@qq.com> Date: Thu, 6 Aug 2026 17:16:13 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E5=9B=9E=E5=86=99=20Z17=E2=80=93Z19=20?= =?UTF-8?q?=E6=8D=A2=E7=BB=91=E6=8C=89=E9=92=AE=E4=B8=8E=E7=A6=81=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E7=99=BB=E8=AE=B0=EF=BC=88=E5=AE=87=E6=81=92=E5=B7=B2?= =?UTF-8?q?=E6=94=B9=E5=AE=8C=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 鉴权/模块操作换绑、修 components、未绑定先绑定。 --- 联调后修改意见-宇恒松离线.md | 68 +++++++++++++++++++++++++++++++++++- 1 file changed, 67 insertions(+), 1 deletion(-) diff --git a/联调后修改意见-宇恒松离线.md b/联调后修改意见-宇恒松离线.md index 00aa28c..0040a5b 100644 --- a/联调后修改意见-宇恒松离线.md +++ b/联调后修改意见-宇恒松离线.md @@ -1,6 +1,6 @@ # 联调后修改意见 · 宇恒松离线(形态 B) -> 初稿:2026-08-01 · 修订至 **2026-08-06 14:45**(Z16 去掉硬编码联调手机号) +> 初稿:2026-08-01 · 修订至 **2026-08-06 17:15**(Z19 禁默认登记、修表单 components) > 焦点:**§0.2**(按负责方);**改代码前须先写入本意见**(见 §0.0) > 来源:宇恒 `yuhengyihao_client` ↔ 智建(生产 `aisite.yuxindazhineng.com`) > 依据:`松离线-dbsync方案-最终版.md`、`宇恒-松离线数据同步使用文档.md` @@ -21,6 +21,9 @@ | **Z14d 双向补齐** | **宇恒已接** | 误删任一侧 → 心跳/选同步按主键并集 pull↔push(§5.11) | | **Z15 建站配置/绑定优先** | **宇恒已改完;智建无需** | 新机缺 `config.json` 自动生成;无权限先绑定再鉴权(§5.12) | | **Z16 禁硬编码联调手机** | **宇恒已改完;智建无需** | 代码/默认值不得内置 `13531041944`;凭票手机仅来自 env 或用户绑定(§5.14) | +| **Z17 鉴权失败可换绑** | **宇恒已改完;智建无需** | 鉴权/换票失败门闸提供「绑定或更换绑定」:清本机同步落点后重走绑定表单(§5.15) | +| **Z18 模块操作换绑按钮** | **宇恒已改完;智建无需** | 「模块操作」表单底部独立**按钮**「换绑」(非下拉选项);点后强制清落点并弹绑定表单(§5.16) | +| **Z19 禁默认登记先绑定** | **宇恒已改完;智建无需** | 无绑定不得静默 agent/register;登记失败引导绑定;修 sendFrom 漏 components(§5.17) | | **仍关注** | 用法 | 通道断了靠智建自愈;表数据靠宇恒双向指纹 / 数据恢复;不是「再点启动」 | ### 0.0 修改流程(冻结) @@ -54,6 +57,9 @@ | **Z14d** | **双向并集补齐(2026-08-06)**:不一致 → 先 `pull` 灌本机(不进 outbox)再 ensure+full-push;选「同步」同样先 pull 再 push;**默认不做 prune**(`YXD_SYNC_PRUNE_EXTRAS=1` 才清线上多余)。覆盖:线上误删 / 本地误删 / 缺表 | | **Z15** | **建站技能 config 自生成 + 无权限先绑定(2026-08-06 · 宇恒已改完)**:`ai-site-agent-api` 缺 `config.json` 自动写默认模板;绑定优先;门闸含「绑定账号或手机号」。改动:`config_loader.py` / `host_bootstrap.py` / `forms.py` / `forms_ui.py` / `forms_ui.json` / `reference.md`。**智建无需改** | | **Z16** | **去掉凭票硬编码手机号(2026-08-06 · 宇恒已改完)**:`_sync_phone()` 不再回落 `13531041944`;仅读 `YXD_SYNC_LOGIN_PHONE` / `YXD_ZHIJIAN_PHONE`;绑定成功则回写该 env。联调号仍可作**人工验收样例**(§0.1),但**禁止写进产品默认值**。**智建无需改** | +| **Z17** | **鉴权失败门闸:绑定或更换绑定(2026-08-06 · 宇恒已改完)**:`pending_auth` 选项含「绑定或更换绑定」;点选后 `clear_local_sync_bind` + `force_rebind` 再弹绑定表单,避免因 agents/me 已绑而跳过。**智建无需改** | +| **Z18** | **模块操作页底部「换绑」按钮(2026-08-06 · 宇恒已改完)**:sendFrom 增加 `showRebind`/`rebindText`;`ask_module_action` 点按钮 → `FormRebindInterrupt` → `force_rebind`。鉴权门闸同步改为按钮而非下拉选项。**智建无需改** | +| **Z19** | **禁静默默认登记 + 修表单 components(2026-08-06 · 宇恒已改完)**:未绑定先弹绑定;`build_sendfrom_form` 补回 `components`。**智建无需改** | #### A′. 宇恒 · 配合注意(非阻塞新开发) @@ -800,6 +806,66 @@ POST /api/v1/agent/sync/channels/{id}/pull 3. 源码检索无产品路径硬编码 `13531041944`(文档/联调说明除外)。 +### 5.15 【Z17 · 2026-08-06】鉴权失败可绑定或更换绑定 + +**状态**:**宇恒已改完**;**智建无需开发**。 + +**现象** + +- 鉴权/换票失败后只像「重新检查授权」,虽有绑定项,但本机/线上仍判已绑时 `ensure_sync_bound_interactive` 直接 skipped,无法换绑。 + +**诉求** + +1. 鉴权失败门闸选项含 **「绑定或更换绑定」**(优先于仅重新检查)。 +2. 点选后:清空本机 `CHANNEL_ID` / Token / `ONLINE_DB_ID` / `LOGIN_PHONE`,再强制弹出绑定码/手机号表单。 +3. 不要求智建提供解绑 API(本机强制重绑即可联调;线上旧 Binding 由新绑定覆盖/复用)。 + +**验收** + +1. 鉴权失败 → 表单可见「绑定或更换绑定」。 +2. 即使 env 里仍有旧 channel,点选后仍弹出绑定方式表单。 +3. 绑定成功后可再「重新检查授权状态」。 + + +### 5.16 【Z18 · 2026-08-06】模块操作页「换绑」为独立按钮 + +**状态**:**宇恒已改完**;**智建无需开发**。 + +**诉求** + +- 「模块操作」第一屏底部提供独立按钮「换绑」,**不是**操作下拉里的选项。 +- 鉴权失败门闸同样用按钮触发换绑,避免与「重新检查」混在同一枚举里。 +- 点击后:`clear_local_sync_bind` + 强制绑定表单(同 Z17)。 + +**改动面** + +- 前端 `sendFrom.vue`:`showRebind` / `rebindText` +- `yxd_skill_ty_host`:表单载荷 + `FormRebindInterrupt` +- 建站技能:`forms.py` / `host_bootstrap.py` / `forms_ui.json` + +**验收** + +1. 已登录看到「模块操作」时,底部有「换绑」按钮(与退出、提交并列)。 +2. 点击后弹出绑定码/手机号表单,不依赖下拉选「换绑」。 +3. 操作下拉里无「换绑」项。 + + +### 5.17 【Z19 · 2026-08-06】禁止静默默认登记;未绑定先绑;修表单无组件 + +**状态**:**宇恒已改完**;**智建无需开发**。 + +**现象** + +- 「默认登记失败:Expecting value…」→ 旧路径静默 `POST /auth/agent/register`,空响应 JSON 解析失败。 +- 紧接「会话异常:chat form has no components」→ `build_sendfrom_form` 漏写 `components` 字段。 + +**诉求** + +1. 无公司同步绑定时:**先绑定**,禁止把「默认登记」当登录。 +2. 登记/换票失败文案引导绑定,不暴露原始 JSON 解析堆栈给用户为主路径。 +3. sendFrom 表单必须带 `components`。 + + ## 6. 联系与附件 - **待改清单(优先看)**:§0.2(**A′ 宇恒配合 · B′ 智建运维**;开发项已清空);**改代码前先写本意见**(§0.0);配合见 **§0.3**