Files
dsh_ai1net_server/docs/交接单/接续包_手机接入_20260928.md
T
admin c1b5e4d966 chore(工作区): 全量入库 + 补齐 .gitignore(以工作区为准)
- 变更规模:新增 514 / 修改 62 / 重命名 155 / 删除 4(归档重组与文档轮次)
- .gitignore 修:`归档/**/db-cwd归一-备份-*/` —— 原规则写绝对层级(归档/db-cwd归一-…),
  目录搬进 归档/配置与备份/ 后**静默失效**,43 MB 的 DB 备份又变成未跟踪
- .gitignore 补:嵌套 git 内部数据(归档/内嵌git-20261008/、归档/skills-git-旧线-20261007/dotgit-原样移出/)
- .gitignore 补:运行态与部署副本(.workbuddy/collab/、.workbuddy/tools/、.workbuddy/.load-pending、.workbuddy/tmp-*)
- .gitignore 补:备份件(*.bak-*)
- 未跟踪文件从 2190 降到 890(其余为 归档/ 归档件与 .workbuddy/memory/ 知识文件,按口径入库)
2026-10-10 23:13:22 +08:00

44 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 接续包 · 手机操作 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;凭据不落文件