docs: 回写 Z17–Z19 换绑按钮与禁默认登记(宇恒已改完)
鉴权/模块操作换绑、修 components、未绑定先绑定。
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
# 联调后修改意见 · 宇恒松离线(形态 B)
|
# 联调后修改意见 · 宇恒松离线(形态 B)
|
||||||
|
|
||||||
> 初稿:2026-08-01 · 修订至 **2026-08-06 14:45**(Z16 去掉硬编码联调手机号)
|
> 初稿:2026-08-01 · 修订至 **2026-08-06 17:15**(Z19 禁默认登记、修表单 components)
|
||||||
> 焦点:**§0.2**(按负责方);**改代码前须先写入本意见**(见 §0.0)
|
> 焦点:**§0.2**(按负责方);**改代码前须先写入本意见**(见 §0.0)
|
||||||
> 来源:宇恒 `yuhengyihao_client` ↔ 智建(生产 `aisite.yuxindazhineng.com`)
|
> 来源:宇恒 `yuhengyihao_client` ↔ 智建(生产 `aisite.yuxindazhineng.com`)
|
||||||
> 依据:`松离线-dbsync方案-最终版.md`、`宇恒-松离线数据同步使用文档.md`
|
> 依据:`松离线-dbsync方案-最终版.md`、`宇恒-松离线数据同步使用文档.md`
|
||||||
@@ -21,6 +21,9 @@
|
|||||||
| **Z14d 双向补齐** | **宇恒已接** | 误删任一侧 → 心跳/选同步按主键并集 pull↔push(§5.11) |
|
| **Z14d 双向补齐** | **宇恒已接** | 误删任一侧 → 心跳/选同步按主键并集 pull↔push(§5.11) |
|
||||||
| **Z15 建站配置/绑定优先** | **宇恒已改完;智建无需** | 新机缺 `config.json` 自动生成;无权限先绑定再鉴权(§5.12) |
|
| **Z15 建站配置/绑定优先** | **宇恒已改完;智建无需** | 新机缺 `config.json` 自动生成;无权限先绑定再鉴权(§5.12) |
|
||||||
| **Z16 禁硬编码联调手机** | **宇恒已改完;智建无需** | 代码/默认值不得内置 `13531041944`;凭票手机仅来自 env 或用户绑定(§5.14) |
|
| **Z16 禁硬编码联调手机** | **宇恒已改完;智建无需** | 代码/默认值不得内置 `13531041944`;凭票手机仅来自 env 或用户绑定(§5.14) |
|
||||||
|
| **Z17 鉴权失败可换绑** | **宇恒已改完;智建无需** | 鉴权/换票失败门闸提供「绑定或更换绑定」:清本机同步落点后重走绑定表单(§5.15) |
|
||||||
|
| **Z18 模块操作换绑按钮** | **宇恒已改完;智建无需** | 「模块操作」表单底部独立**按钮**「换绑」(非下拉选项);点后强制清落点并弹绑定表单(§5.16) |
|
||||||
|
| **Z19 禁默认登记先绑定** | **宇恒已改完;智建无需** | 无绑定不得静默 agent/register;登记失败引导绑定;修 sendFrom 漏 components(§5.17) |
|
||||||
| **仍关注** | 用法 | 通道断了靠智建自愈;表数据靠宇恒双向指纹 / 数据恢复;不是「再点启动」 |
|
| **仍关注** | 用法 | 通道断了靠智建自愈;表数据靠宇恒双向指纹 / 数据恢复;不是「再点启动」 |
|
||||||
|
|
||||||
### 0.0 修改流程(冻结)
|
### 0.0 修改流程(冻结)
|
||||||
@@ -54,6 +57,9 @@
|
|||||||
| **Z14d** | **双向并集补齐(2026-08-06)**:不一致 → 先 `pull` 灌本机(不进 outbox)再 ensure+full-push;选「同步」同样先 pull 再 push;**默认不做 prune**(`YXD_SYNC_PRUNE_EXTRAS=1` 才清线上多余)。覆盖:线上误删 / 本地误删 / 缺表 |
|
| **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`。**智建无需改** |
|
| **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),但**禁止写进产品默认值**。**智建无需改** |
|
| **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′. 宇恒 · 配合注意(非阻塞新开发)
|
#### A′. 宇恒 · 配合注意(非阻塞新开发)
|
||||||
|
|
||||||
@@ -800,6 +806,66 @@ POST /api/v1/agent/sync/channels/{id}/pull
|
|||||||
3. 源码检索无产品路径硬编码 `13531041944`(文档/联调说明除外)。
|
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. 联系与附件
|
## 6. 联系与附件
|
||||||
|
|
||||||
- **待改清单(优先看)**:§0.2(**A′ 宇恒配合 · B′ 智建运维**;开发项已清空);**改代码前先写本意见**(§0.0);配合见 **§0.3**
|
- **待改清单(优先看)**:§0.2(**A′ 宇恒配合 · B′ 智建运维**;开发项已清空);**改代码前先写本意见**(§0.0);配合见 **§0.3**
|
||||||
|
|||||||
Reference in New Issue
Block a user