diff --git a/联调后修改意见-宇恒松离线.md b/联调后修改意见-宇恒松离线.md index 0040a5b..94f7b56 100644 --- a/联调后修改意见-宇恒松离线.md +++ b/联调后修改意见-宇恒松离线.md @@ -1,6 +1,6 @@ # 联调后修改意见 · 宇恒松离线(形态 B) -> 初稿:2026-08-01 · 修订至 **2026-08-06 17:15**(Z19 禁默认登记、修表单 components) +> 初稿:2026-08-01 · 修订至 **2026-08-06 17:45**(Z21 绑定接口空体不抛 JSON) > 焦点:**§0.2**(按负责方);**改代码前须先写入本意见**(见 §0.0) > 来源:宇恒 `yuhengyihao_client` ↔ 智建(生产 `aisite.yuxindazhineng.com`) > 依据:`松离线-dbsync方案-最终版.md`、`宇恒-松离线数据同步使用文档.md` @@ -24,6 +24,8 @@ | **Z17 鉴权失败可换绑** | **宇恒已改完;智建无需** | 鉴权/换票失败门闸提供「绑定或更换绑定」:清本机同步落点后重走绑定表单(§5.15) | | **Z18 模块操作换绑按钮** | **宇恒已改完;智建无需** | 「模块操作」表单底部独立**按钮**「换绑」(非下拉选项);点后强制清落点并弹绑定表单(§5.16) | | **Z19 禁默认登记先绑定** | **宇恒已改完;智建无需** | 无绑定不得静默 agent/register;登记失败引导绑定;修 sendFrom 漏 components(§5.17) | +| **Z20 失败即弹绑表单** | **宇恒已改完;智建无需** | 启动失败不只发文字,直接 force_rebind 弹绑定/换绑表单(§5.18) | +| **Z21 绑定接口空体安全解析** | **宇恒已改完;智建无需** | `sync_bind_flow` 空响应/`Expecting value` 不再打断 prepare;配合 Z19/Z20(§5.19) | | **仍关注** | 用法 | 通道断了靠智建自愈;表数据靠宇恒双向指纹 / 数据恢复;不是「再点启动」 | ### 0.0 修改流程(冻结) @@ -60,6 +62,8 @@ | **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`。**智建无需改** | +| **Z20** | **启动失败直接弹绑定/换绑表单(2026-08-06 · 宇恒已改完)**。**智建无需改** | +| **Z21** | **绑定 HTTP 空体安全 JSON(2026-08-06 · 宇恒已改完)**:`_safe_http_json` 替代裸 `r.json()`,避免 `Expecting value` 打断启动。**智建无需改** | #### A′. 宇恒 · 配合注意(非阻塞新开发) @@ -866,6 +870,26 @@ POST /api/v1/agent/sync/channels/{id}/pull 3. sendFrom 表单必须带 `components`。 +### 5.18 【Z20 · 2026-08-06】启动失败直接弹绑定表单 + +**状态**:**宇恒已改完**。启动未完成时禁止只 notify 文字;立即 force_rebind 推绑定表单(底部换绑同源)。门闸异常时同样回落弹表。 + +另:`ty_host`≥1.2.33 禁止用 DONE 永久跳过 bootstrap(旧日志「已自动登记过,跳过」会导致选中会话再也不弹表)。失败后 ACTIVE 清掉,可再拉起。 + + +### 5.19 【Z21 · 2026-08-06】绑定接口空体安全解析 + +**状态**:**宇恒已改完**;**智建无需开发**。 + +**现象** + +- 日志 `prepare_runtime failed: Expecting value: line 1 column 1` → 某绑定/鉴权 HTTP 返回空体,裸 `r.json()` 抛错,启动被打断;再选会话若被旧 DONE 跳过则只剩文字。 + +**诉求 / 改动** + +1. `yxd/app_fastapi/sync_bind_flow.py`:`_safe_http_json`,空体/非 JSON 返回 `{}`,不抛。 +2. 与 Z19/Z20 配合:解析失败不阻断 → 走「未绑定」→ 直接弹绑定表单。 + ## 6. 联系与附件 - **待改清单(优先看)**:§0.2(**A′ 宇恒配合 · B′ 智建运维**;开发项已清空);**改代码前先写本意见**(§0.0);配合见 **§0.3**