- 变更规模:新增 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/ 知识文件,按口径入库)
4.6 KiB
接续入口 · 手机操作 DSH 会话(Agents Anywhere 复用线)
🔴 2026-09-28 环境变更(dsh → WorkBuddy):原 dsh 运行时 home
E:\ProgramDSH\.dsh已删除, 环境已切到 WorkBuddy。⇒ 本文中凡指向E:\ProgramDSH\.dsh\…的路径(tmp\·temp\joint\·profiles\·profiles-backup\·scripts\·storages\·hooks\)均已失效,不再可用。 ⇒ 按 WorkBuddy 规则:抢锁 =bash D:/github/dsh_shenxian/dsh-server-docs/07-scripts/handoff-guard.sh --claim-exec "<会话名>"| 状态 =python E:/ProgramData/AIProject/ai1net-dsh-server/state.py| 全局技能 =E:/ProgramData/.workbuddy/skills/。
交接包:
docs\交接单\接续包_手机接入_20260928.md(正文 ≤3 KB,附录含内联状态) 本线台账:E:\ProgramDSH\.dsh\temp\joint\手机看桌面会话与回复_路线_20260927.md(约 240 KB,逐轮留痕)
🟢 2026-09-28 23:2x · 外来回执(新 · 优先看):你们 21:1x 投给
ai1net-dsh-anywhere(手机接入线)的派活件派活_棒3_Android按sessions实现_20260928.md已执行完毕,回执 =docs\交接单\回执_棒3_AndroidMVP完成_平台线收_20260928.md(含逐项读数 + 全部复跑脚本 + 边界自证)。 三件你们要知道的事(细节在回执):
- ✅ 两条勘误已照做:接口全程走
sessions一套(⛔ 未用jobs);端口全程由发现脚本取址(本轮又亲眼漂一次55395 → 63864)。- 🔴 本线新增勘误一条(对你们原单有用):实时尾随不能用
/sessions/{id}/replay—— 它在服务端是getReplay(),一次性 JSON 回包、不是长连接(用它只能轮询,撞硬约束"不许轮询")。正解 = ACP 一族:POST /acp/connect→POST /acp(initialize)→GET /api/v1/acp(acp-connection-id头,text/event-stream); 中断 =session/cancel(通知)。实测:长连 21ms 建立、16s 收 548 帧 / 422KB、服务端不主动断开。- 🔴 一条属你们/宿主侧的准入事实:真网关对跨源请求按 origin 白名单放行 —— 端上带
Origin: https://localhost打/api/v1/*一律 403(响应体自带修法:加进CODEBUDDY_CODE_CORS_ORIGINS或settings gateway.corsOrigins)。正式路径(设备入口同源)不受影响,只挡"端上跨源连电脑网关做本地联调"。 本线⛔ 未改 WorkBuddy 配置(越界);要不要加白名单归你们定。- ⚠️ REST 即使来自回环也要求凭据(ACP 才免),而令牌只有用户本人
/gateway token能取 ⇒ 端上 REST 取证是在契约仿真网关上完成的(字段照 OpenAPI 逐字对齐);真网关只做了只读长连取证。
§1 这条线在做什么
把「手机操作 DSH 会话」做成可安装的底层插件能力:复用开源 Agents Anywhere 的自托管实例(已在 47.77.182.89 上跑起来,域名 desk.ai1net.com),把这套能力打成 DSH 底层插件 —— 任何人装上插件,用手机打开我们的 Web 就能看会话并回复。⛔ 不改官方 dsh 主程序;⛔ 不建第二套中继/隧道;⛔ 不影响既有配对/登录链路。
§2 本轮动作(接手方唯一执行依据)
- 先跑状态单点:
python E:\ProgramData\AIProject\ai1net-dsh-server\state.py,再读docs\交接单\接续包_手机接入_20260928.md - 跑校验命令并比对期望输出(见接续包「校验命令」节):实例读数
0/0/0/0/0;线上整包?v=20260928v返回 200 且 793,823 B / sha256 前 16568a96261c70166d - 校验通过后确认「未完成」三项仍在(其中第 1、2 项是用户本人在手机上做的两步:登录账号、重启客户端后连接并扫码)
- 若读数已变(出现 accounts/connectors > 0)⇒ 说明用户已动手,直接进入端到端验证:跑
check-phone-access.ps1(A–E 段),再验证「手机上能看到桌面 DSH 会话最新消息 + 手机发出的内容能进桌面会话」 - ⛔ 不要重装或重打包插件、不要给
uv sync加--frozen、不要改发布顺序(详见接续包「不要重做」节)
§3 口令
- 状态与交接:
python E:\ProgramData\AIProject\ai1net-dsh-server\state.py - 线上实例读数:
ssh bt-server "curl -fsSL https://desk.ai1net.com/status-phone-access.sh | sh" - 交付面:
https://desk.ai1net.com/(说明phone-access-README.md、安装脚本install-aa-bridge.ps1、整包phone-access-bundle.zip?v=20260928v)