dsh-mobile 0.6.14 → 0.6.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -0
- package/CONTRIBUTORS.md +22 -2
- package/README.en.md +8 -6
- package/README.md +8 -6
- package/SECURITY.md +5 -1
- package/THIRD_PARTY_NOTICES.md +30 -2
- package/apps/mobile/README.md +35 -5
- package/apps/mobile/README.zh-CN.md +35 -5
- package/apps/mobile/release.json +3 -3
- package/docs/ATTACH_EXISTING_FRPS.en.md +8 -0
- package/docs/ATTACH_EXISTING_FRPS.md +8 -0
- package/docs/SLOW_CONNECTIONS.en.md +11 -1
- package/docs/SLOW_CONNECTIONS.md +11 -1
- package/lib/client.js +846 -60
- package/lib/client.js.map +1 -1
- package/lib/extension-worker-runtime.mjs.map +1 -1
- package/lib/index.d.mts +28 -2
- package/lib/index.mjs +499 -50
- package/lib/index.mjs.map +1 -1
- package/lib/mobile-compat.js +1 -1
- package/lib/mobile-compat.js.map +1 -1
- package/package.json +9 -2
- package/packages/question-fixes/package.json +1 -1
package/docs/SLOW_CONNECTIONS.md
CHANGED
|
@@ -20,6 +20,12 @@
|
|
|
20
20
|
|
|
21
21
|
插件 0.6.11 起会在插件日志(`$DSH_HOME/mobile-access/logs/dsh-mobile.log`)记录有限的 `auth failure` HTTP 诊断:区分授权与 CSRF 拒绝,包含状态、方法、安全路径或路径类别、相关 Cookie/请求头是否存在及计数、规范化 Origin 和受支持的 fetch-site 值,不记录令牌、Cookie 值、查询参数或任意原始路径。每个网关的两类诊断分别限频,首条立即记录,30 秒窗口内同类拒绝聚合;`suppressed` 表示此前被抑制的同类记录数量,不是全部请求数,也不限定于当前路径。它帮助排查凭据未携带或 CSRF 校验失败,不会自动修复 401/403。没有日志也不代表认证成功:更早的 Host/Origin 拒绝、WebSocket 升级和原生配对/续期不在这两处记录范围内。分享前仍应检查日志。
|
|
22
22
|
|
|
23
|
+
### 内部认证交换诊断(插件 0.6.15 起)
|
|
24
|
+
|
|
25
|
+
`upstream auth` 单独记录网关向本机 DSH 交换内部认证 Cookie 的结果,不是手机请求的 `auth failure`。每条只包含该网关内的交换序号 `sequence`、阶段 `stage`、固定结果 `outcome`、耗时 `durationMs`,以及收到响应头后才有的上游 HTTP `status`;这个状态不是手机最终收到的状态。`accepted` 表示严格通过 303、Cookie 和有效期检查;其他结果区分目标配置无效、状态不符、Cookie 无效、超时或传输失败。不记录内部启动地址、Token、Cookie 名称或值、响应正文及原始错误。
|
|
26
|
+
|
|
27
|
+
成功与失败分别最多每 30 秒记录一条,首条立即记录,`suppressed` 计入此前同类被抑制的交换。并发请求共用一次交换时只记录一次,使用缓存 Cookie 时不新增记录;序号仅在同一个网关实例内关联,不是设备标识。没有记录不能证明该次请求认证或页面启动成功,也不能用这类日志判断会话数据是否损坏。
|
|
28
|
+
|
|
23
29
|
## HTTP 400、408 与 431 的区别(插件 0.6.13 起)
|
|
24
30
|
|
|
25
31
|
插件 0.6.13 起把请求接收超时区分为 `408 request_timeout`,请求头过大区分为 `431 headers_too_large`;其他非法 HTTP 请求仍为 `400 bad_request`。旧版可能把这几类情况都返回成 400 和相同的短 JSON,因此状态码与“24 字节”不足以定位原因。
|
|
@@ -32,6 +38,10 @@
|
|
|
32
38
|
|
|
33
39
|
在 DSH 0.2.0-rc.2 中,`/plugins/events` 是插件模块图和构建更新的 SSE,不是对话消息投递通道。它返回 `200`、传输很少字节或反复重连,不能单独证明消息发送成功、失败或处理中动画丢失;同时检查 `/api/remote.mux` WebSocket 与那次操作实际发出的 HTTP 请求。
|
|
34
40
|
|
|
41
|
+
插件 0.6.15 起为支持认证传输的新专用移动页面修复该通知流的静默超时和 gzip 缓冲:页面以绑定当前授权的标识请求模块事件,网关只在无请求体的 `GET /plugins/events` 收到 `200 text/event-stream` 后按 `upstreamApiTimeoutMs` 等待后续帧。通知中的模块图使用与初始移动页面相同的布局、依赖与模块选择投影,不能用桌面原始模块图替换正在运行的移动布局;保存的新选择仍在下一次加载页面时应用。建连和首响应期限、鉴权、撤销、取消及并发限制不变,标识失效时终止通知,不退回原始模块图或自动刷新会话。旧页面与 `frontend=stock` 不启用这套投影;升级后重新加载专用页面才能使用新通知流。这项修复不代表 [#243](https://github.com/saya-ch/dsh-mobile/issues/243) 的所有启动和重载现象已定位。
|
|
42
|
+
|
|
43
|
+
页面标识不会迁移到新的认证 Session:原生续期即使保留了当前 WebView 和草稿,也不代表旧模块通知流已恢复。新 Session 使用旧标识会收到 `409 mobile_document_view_invalid`;重新加载专用页面会取得新标识。这个限制不要求删除配对,也不会主动刷新当前会话。
|
|
44
|
+
|
|
35
45
|
普通消息的气泡和清空草稿可能先于 `POST /api/session/prompt`,属于本地乐观回显,不是 Host 受理确认。若找不到对应请求,请保留脱敏后的请求时序、状态码及 DSH 日志,区分浏览器未发起、代理拒绝与 Host 已受理。插件不会自动重放消息、审批或其他写请求;结果不明时先确认会话,避免重复副作用。
|
|
36
46
|
|
|
37
47
|
## 慢速传输可能超过默认等待时间
|
|
@@ -106,7 +116,7 @@ websocketCompression:
|
|
|
106
116
|
|
|
107
117
|
手机发出的 `/compact` 等命令要通过移动网关的 HTTP API;DSH 内部触发的自动压缩不经过这次网关请求。旧版网关对所有上游代理请求都使用默认 30 秒的 `upstreamTimeoutMs`,因此模型仍在生成摘要时,手动压缩可能先收到 `502 upstream_unavailable`。[#171](https://github.com/saya-ch/dsh-mobile/issues/171) 记录了这一情况。
|
|
108
118
|
|
|
109
|
-
当前网关区分传输等待和已鉴权 API 的响应等待。`upstreamTimeoutMs` 仍默认 30000 毫秒(1000–300000),用于上传、静态资源、启动资源和 WebSocket 握手的等待;请求头另有既有的 10
|
|
119
|
+
当前网关区分传输等待和已鉴权 API 的响应等待。`upstreamTimeoutMs` 仍默认 30000 毫秒(1000–300000),用于上传、静态资源、启动资源和 WebSocket 握手的等待;请求头另有既有的 10 秒接收期限。完成设备鉴权、Host/Origin 与必要 CSRF 检查的 `/api` 和 `/api/…` HTTP 请求,在请求体发往 DSH 后切换到 `upstreamApiTimeoutMs`。该字段默认 `0`,表示不对这些响应施加空闲超时;需要限制时,可配置为 `1–2147483647` 的整数毫秒,范围上限来自 Node 定时器的表示范围。插件 0.6.15 起,专用模块事件流在收到有效响应头后也使用此字段,适用条件见上面的通知流说明。这不是整个操作的总执行期限:持续到达的响应数据会重置空闲计时。
|
|
110
120
|
|
|
111
121
|
以下属性放进现有 `mobile-access` 条目的 `config`,并保留其他配置;这是配置片段,不是完整的 profile 补丁。`0` 是默认值,示例为 API 响应设置 10 分钟的空闲等待期限:
|
|
112
122
|
|