Advance transport hardening tasks

This commit is contained in:
nav
2026-04-08 23:03:59 +00:00
parent 9c72c93b8b
commit cb0fb097de
3 changed files with 29 additions and 2 deletions

View File

@@ -463,6 +463,9 @@
---
### YNX-0504 实现基础重连策略
**状态**
- [x] 已完成2026-04-08
**目标**
- Client 断线后可恢复连接
@@ -475,6 +478,12 @@
- 断线可自动恢复
- 不会形成高频重连风暴
**已完成内容**
- 已将 Client transport 重连逻辑改为覆盖所有非主动异常断线,而不再仅限“已认证后掉线”场景
- 已增加 `shouldReconnect` 标志,确保手动 `disconnect()` 不会误触发自动重连
- 已在每次 `connect()` 前清理旧的 reconnect timer避免并发重连尝试叠加
- 已在成功连接后移除首个 `error` 监听并重置退避计数,避免首次建连阶段的错误监听残留
---
## Phase 6 — Pairing 主流程
@@ -881,6 +890,9 @@
## Phase 10 — 安全与鲁棒性
### YNX-1001 实现敏感信息脱敏日志
**状态**
- [x] 已完成2026-04-08
**目标**
- 避免 secret、私钥、proof 原文进入日志
@@ -892,9 +904,18 @@
**验收标准**
- 关键敏感值不会明文打印
**已完成内容**
- 已新增 `Yonexus.Server/plugin/core/logging.ts`,提供 `redactSecret()``redactPairingCode()``redactKey()` 与通用 `safeErrorMessage()`
- 已将 Server 侧 Discord pairing notification stub 改为输出结构化日志,并对 pairing code 做脱敏显示
- 已将 Server transport 的 WebSocket error 日志统一改为经 `safeErrorMessage()` 处理后的安全错误信息
- 当前仍未覆盖所有未来 auth/persistence 日志点,但 v1 现有显式日志路径已不再直接打印配对码原文
---
### YNX-1002 实现 malformed / unsupported / unauthorized 防御
**状态**
- [x] 已完成2026-04-08
**目标**
- 所有非法输入都能被可控拒绝
@@ -909,6 +930,12 @@
- 错误不会导致进程崩溃
- 客户端能收到明确错误反馈或断开
**已完成内容**
- Server runtime 已为 builtin 解码增加 `CodecError` 捕获malformed builtin message 会返回 `error(MALFORMED_MESSAGE)` 而不是直接抛出
- Server runtime 已为未支持的 builtin `type` 返回显式错误响应,避免静默吞掉非法协议帧
- Client runtime 已为 builtin 解码增加容错,不再因为坏帧直接抛出;当前会记录最近一次失败原因供上层状态观察
- Client / Server 的 rule message 发送校验已收敛到共享 codec而不再依赖脆弱的本地正则片段判断
---
### YNX-1003 实现单 identifier 单活跃连接策略