116 lines
5.8 KiB
Markdown
116 lines
5.8 KiB
Markdown
# 联调后修改意见 · 宇恒松离线(形态 B)· 现行摘要
|
||
|
||
> 修订至 **2026-08-06 22:15**(Z30 同步按宇恒账号隔离)(Z29 绑定回传密钥必须落盘)(Z28 智建已落实;**全文已归档**)
|
||
> **归档全文(§1–§5.26 历史增量与验收)**:[docs/archive/联调后修改意见-宇恒松离线-2026-08-06.md](docs/archive/联调后修改意见-宇恒松离线-2026-08-06.md)
|
||
> 焦点:**§0.2**;**改代码前须先写入本意见或归档续篇**(见 §0.0)
|
||
> 来源:宇恒 `yuhengyihao_client` ↔ 智建(生产 `aisite.yuxindazhineng.com`)
|
||
|
||
---
|
||
|
||
## 0. 当前结论
|
||
|
||
| 级别 | 状态 | 说明 |
|
||
|------|------|------|
|
||
| **硬改(阻塞接口)** | **无** | 契约不变;剩生产 pull + 配号/Secret |
|
||
| **Z1–Z27** | **已落实 / 宇恒已改完** | 详见[归档](docs/archive/联调后修改意见-宇恒松离线-2026-08-06.md) §5 |
|
||
| **Z12h / 数据恢复** | **智建已落实** | 通道自愈;SyncPage「数据恢复」 |
|
||
| **Z28** | **双方已落实** | 绑定回传密钥;register 复用 active+sync_bound |
|
||
| **Z29 绑定回传密钥必须落盘** | **宇恒已改完;智建已回传** | `apply_bind_success` 写入 client_id/secret/host_key;pending 提示带具体 id(§5.27) |
|
||
| **Z30 同步按宇恒账号隔离** | **宇恒已改完;智建无需** | 换宇恒登录后检测归属,清上一账号 CHANNEL/凭证并重绑;模块列表跟账号走(§5.28) |
|
||
| **仍关注** | 运维 | 生产 `bash ./restart.sh --pull`;成员 `13531041944`;凭票 Secret;通道勿测表白名单 |
|
||
|
||
### 0.0 修改流程(冻结)
|
||
|
||
1. **先写意见**(本摘要 §0.2 或归档续篇 §5)→ 双方对齐。
|
||
2. **再改代码**:宇恒只改 `yuhengyihao_client`;智建只改 `ai建站`;**互不代改**。
|
||
3. 接口/产品有变 → 回写契约与验收;禁止口头改完再补意见。
|
||
4. 一轮联调闭环后 → **归档**到 `docs/archive/`,本文件只保留现行摘要。
|
||
|
||
### 0.1 绑定产品冻结(Z13 · 试运行)
|
||
|
||
| 约定 | 内容 |
|
||
|------|------|
|
||
| 联调号 | **`13531041944`**(宇信达);**禁止**超管 `13531041945`(验收样例,禁止写进产品默认值) |
|
||
| 换票 | 凭票 Secret + `YXD_HOST_KEY` + 手机;绑定成功用回传的 `client_id`/`client_secret` |
|
||
| 短信 | `RequireForBind=false`;`Provider: "off"`(**YAML 必须加引号**) |
|
||
| 同号 | 命中成员 → 必须弹窗;`confirm=true` 才绑 |
|
||
| 通道 | 默认同步通道 **默认运行中** |
|
||
|
||
### 0.2 待改清单(按负责方)
|
||
|
||
#### 开发 · 双方
|
||
|
||
| 方 | 状态 |
|
||
|----|------|
|
||
| 宇恒 | **无阻塞新开发**(Z10c–Z28 已改完,见归档) |
|
||
| 智建 | **无阻塞新开发**(Z12h / 数据恢复 / Z28 已合入) |
|
||
|
||
#### 智建 · 仅运维
|
||
|
||
| 优先级 | 项 |
|
||
|--------|----|
|
||
| **P0** | 生产 `bash ./restart.sh --pull`(含 Z28) |
|
||
| **P0** | 宇信达成员绑 **`13531041944`**;通道表白名单勿「填入测试默认」 |
|
||
| **P1** | `YuhengTicket.Secret` ≡ 宇恒;`DefaultRemoteDSN` 生产 Postgres |
|
||
|
||
### 0.3 开通 → 看到线上表(摘要)
|
||
|
||
```text
|
||
智建运维:pull → 绑 13531041944 → 启用智能体(通道运行中)→ 可选绑定码
|
||
宇恒:policy / redeem / phone-confirm / ticket-exchange(保存回传密钥)
|
||
→ 库选「同步」→ Binding + pull + ensure + drain
|
||
智建验收:查看线上表;误删通道自愈;误删数据「数据恢复」
|
||
```
|
||
|
||
---
|
||
|
||
## 1. 契约入口(勿破坏)
|
||
|
||
完整已验证契约与 API 表见归档 §1–§4。常用:
|
||
|
||
- `POST /api/v1/auth/bind-code/redeem`、`…/phone/confirm`、`…/yuheng/ticket-exchange` → 含 `client_id`/`client_secret`(Z28)
|
||
- `POST /api/v1/auth/agent/register` → 已 sync_bound 则复用并轮换密钥
|
||
- `GET/POST …/admin/sync/channels/{id}/checkpoint|restore` → 数据恢复
|
||
|
||
---
|
||
|
||
|
||
### 5.27 【Z29 · 2026-08-06】绑定回传的 client 密钥必须落盘
|
||
|
||
**状态**:**宇恒已改完**(智建 Z28 已回传密钥)。
|
||
|
||
现象:`keep host_key=6a45b9c1…` + CHANNEL=`b9345197…` 仍 `401 pending`——同步落点与换票账号凭证不一致;智建绑定已回传 `client_id/client_secret`,宇恒未写入技能 config。
|
||
|
||
宇恒:`apply_bind_success` 固化凭证;pending 文案打印本机 host/client_id。他机救急:管理员启用提示中的那条,或「换绑」一次写入新密钥。
|
||
|
||
|
||
### 5.28 【Z30 · 2026-08-06】同步/模块绑定按宇恒账号隔离(非仅绑电脑)
|
||
|
||
**状态**:**宇恒已改完;智建无需**。
|
||
|
||
#### 现象
|
||
|
||
换宇恒账号(如 whm123 → tingting)后,编辑模块仍列出上一账号的 `whmtest` 等。用户期望「和账号绑定,不是和电脑绑定」。
|
||
|
||
#### 根因
|
||
|
||
本机 `yuheng_sync.env` 的 CHANNEL/Token 与技能 `config.json` 的 `client_id/secret/host_key` 是**机器级单槽**,不随宇恒 `user_id` 切换。换票后 `list_apps` 仍是上一智能体可见模块。
|
||
|
||
#### 宇恒改
|
||
|
||
1. 落盘 `YXD_SYNC_BOUND_YUHENG_USER_ID`(绑定成功时写入)。
|
||
2. 启动时若当前 `YXD_USER_ID` ≠ 已绑定归属:提示账号已切换 → `clear_local_sync_bind` + 清空 client 凭证 → 强制重绑。
|
||
3. 旧环境无归属标记时,首次记为当前账号,避免误清。
|
||
|
||
#### 验收
|
||
|
||
同一电脑 A 账号绑定并看到模块后,退出改登 B:应提示切换并弹出绑定,不应再直接列出 A 的模块。
|
||
|
||
## 6. 联系与附件
|
||
|
||
- **归档全文**:[docs/archive/联调后修改意见-宇恒松离线-2026-08-06.md](docs/archive/联调后修改意见-宇恒松离线-2026-08-06.md)
|
||
- 方案:`松离线-dbsync方案-最终版.md`
|
||
- 宇恒使用说明:`宇恒-松离线数据同步使用文档.md`
|
||
- 开通说明:`docs/数据同步-开通说明.md`
|
||
- **分工**:宇恒只改宇恒仓;智建只改智建仓;互不代改。
|