# 接续包 · 手机操作 DSH 会话(Agents Anywhere 复用线) 来源会话 | `session-0ed72449…` 结束原因 | 水位三级 ⇒ 按纪律落包交接;任务本身**只剩用户侧两步** 原目标(用户原话,不翻译)|「把"手机操作 DSH 会话"做成**可安装的底层插件能力**:任何人装上这个插件,就能在手机上看到自己电脑的 DSH 会话并回复。做法以复用开源项目 Agents Anywhere(MIT,server/ + web-next/ + connector/ + dsh-bridge-next)为先,⛔ 不重复造轮子」 基线 | 47.77.182.89(= `ai1net.com`)compose 项目 `agents-anywhere`;本机 HEAD `77b9f73`;占用者 = 无 产物(绝对路径,接手方逐一确认存在) 1. `E:\ProgramDSH\.dsh\temp\aa-service\deploy\`(交付源:说明 / 安装 / 检查 / 备份 / 状态 / 二维码) 2. `https://desk.ai1net.com/`(说明、整包 `?v=20260928v`、安装脚本、检查脚本、二维码) 3. 插件包 `agents-anywhere-dsh-bridge-next-…-ai1net.tgz`(762,042 B,sha256 `f04204a1…`) 4. 本机 profile `…\.dsh\profiles\desktop\package.json`(bundles + dependencies 双登记) 校验命令 → 期望输出 `ssh bt-server "curl -fsSL https://desk.ai1net.com/status-phone-access.sh | sh"` → `accounts=0 connectors=0 sessions=0 pairing=0 online=0` `curl -s -o NUL -w "%{http_code}" https://desk.ai1net.com/phone-access-bundle.zip?v=20260928v` → `200` 未完成 1. **用户侧**:手机打开 `https://desk.ai1net.com` → 首次安装页点「使用 DSH 账号 登录」→ 门户口令登录(账号自动创建) 2. **用户侧**:**重启桌面客户端** → 插件面板点「连接」→ 手机扫面板的码 → 手机首屏点「Add device / 添加设备」 3. 未验证的一半:DSH 会话内容能否穿到手机(需插件加载后才可测) 下一步(第 1 条 = 可直接执行) 1. `python E:\ProgramDSH\.dsh\scripts\dsh-state.py --ws E:\ProgramData\AIProject\ai1net-dsh-server` 2. 读 `.dsh\temp\joint\手机看桌面会话与回复_接续包_20260927.md`(sha256 `93f9cb9b…`,含机制结论) 3. 用户做完两步后:跑 `check-phone-access.ps1`(A–E 段),再测会话内容穿手机 关键决定(已定项 + 为什么) · 复用 AA 实例自托管 + 插件 bundle/dependencies 双登记 + 普通 `uv sync`(详见附录) 回滚点 · profile:删 `dependencies` 里 `@agents-anywhere/dsh-bridge-next` 一行 · 实例:`docker restart agents-anywhere-server-next-1`;安装脚本带 `-Uninstall` ⛔ 不要重做 · 不重装/重打包插件(762,042 B 已验;重打包会踩 `prepack` 与 `lib/bundled-connector`) · 不给 `uv sync` 加 `--frozen`;不用 `& uv … 2>&1` 取退出码(必假绿,用 `Start-Process`) · 不改发布顺序(备份 → 语法检查 → 干净环境实跑 → 才发布) · 不碰旧 home `C:\Users\Administrator\.dsh`;不动平台 nginx;不改官方 dsh 主程序 · 不把「关掉再打开插件」写回文档(面板无此开关,只能重启客户端) ## 附录(跨宿主接手方需要的内联状态) - 台账:`E:\ProgramDSH\.dsh\temp\joint\手机看桌面会话与回复_路线_20260927.md`(逐轮留痕,含每轮读数与报错原文) - 关键决定全文:① 复用 AA 自托管(⛔ 不造轮子 ② ⛔ 不建第二套中继)③ 插件以 bundle + `dependencies`(`link:`)双登记 ⇒ 面板可见可开关 ④ 安装脚本用普通 `uv sync`(自带连接器**无 lockfile**,加 `--frozen` 必失败)⑤ `UV_CACHE_DIR` 指向 `stateRoot\uv-cache`(绕开本机 `os error 5`)⑥ 采 uv 退出码必须 `Start-Process -Wait -PassThru` - 目标四段现状:① 实例已托管 ✅ ② 插件已打包并安装 ✅(待重启生效)③ 交付面齐 ✅ ④ 端到端**未完成**(卡用户两动作) - 已验证证据:SSO 往返;真实连接器上线(`wss://desk.ai1net.com/api/v2/connector/ws` + `connector.heartbeat`,服务端 `online=1`);配对/领取;安装脚本装/卸/幂等;校验和被篡改拒绝;多用户 201/200/403;备份 29 表 ~41 KB;整包双校验和;全部链接 200 - 安装脚本干净环境实测(临时 USERPROFILE):自带 uv `rc=0`、`Installed 54 packages`、`connector venv ready : True` - 客户端本地面:`9333` = CDP(node 直连 `http://127.0.0.1:9333/json` 可取证/操作界面);`9329/9330` 非 HTTP;`19387` 需令牌 - 插件加载机制:管理器只列 `dependencies`;纯 bundle 只在实例启动时装配 ⇒ 生效途径 = **重启客户端** - 约束:⛔ 不改官方 dsh;⛔ 不建第二中继;⛔ 不影响既有配对/登录;本线未 commit / 未 push;凭据不落文件