From a6867bc9cba078dd0167647a5c761b076ec273c5 Mon Sep 17 00:00:00 2001 From: chick Date: Wed, 16 Sep 2026 11:43:52 +0800 Subject: [PATCH] =?UTF-8?q?docs(ios):=20=C2=A77=20=E9=85=8D=E5=AF=B9?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E4=BF=AE=E8=AE=A2=E2=80=94=E2=80=94--pair=20?= =?UTF-8?q?=E7=AA=97=E5=8F=A3=E3=80=81agent=20=E7=94=9F=E6=88=90=20bearer?= =?UTF-8?q?=E3=80=81=E6=8F=A1=E6=89=8B=E5=90=8E=E5=85=A8=E9=87=8F=E4=B8=8A?= =?UTF-8?q?=E6=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ios-relay-architecture.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/ios-relay-architecture.md b/docs/ios-relay-architecture.md index 8cfb23c..8e65cb5 100644 --- a/docs/ios-relay-architecture.md +++ b/docs/ios-relay-architecture.md @@ -251,6 +251,14 @@ public protocol NodeTransport: Sendable { 第 4 步是必须的:管理端口长期开着就等于在本方案之外又开了一个能注入受信设备的洞。 +> **实现修订(2026-09)**:窗口由 `msa-agent --pair` 显式开启(默认 `:3001`),且第 4 步由三个 +> 独立关闭条件保证——首次成功配对即关、失败尝试达 10 次即关、10 分钟无人配对即关。`appKxPub` +> 仍按原样接收(线上格式不变),但响应方向改用手机请求临时 `ek` 后 agent 并不使用它。设备的中继 +> bearer 由 agent 在配对时生成并持久化于配置文件(0600 原子写),中继侧设备注册改为 agent 握手后 +> POST `/v1/agent/devices` 全量上报:中继重启可自愈,节点 destroy 设备列表后的下一次握手即吊销 +> 该节点上报的全部 bearer。操作员手写的 `MSA_DEVICES` 条目为 static,任何 agent 上报不得覆盖。 +> 代码:`agent/internal/pair/`、`relay/src/auth.js#registerDevices`。 + ## 8. 策略文件必须共享,不能各自实现 `server/proxy/policy.js` 的 `DEFAULT_READ_PATHS` / `DEFAULT_WRITE_PATHS` 是本项目里最有价值的