diff --git a/TASKLIST.md b/TASKLIST.md index 6120613..bbd01ab 100644 --- a/TASKLIST.md +++ b/TASKLIST.md @@ -683,6 +683,9 @@ --- ### YNX-0704 实现 re_pair_required 机制 +**状态** +- [x] 已完成(2026-04-08) + **目标** - 在不安全条件下强制重新配对 @@ -696,11 +699,18 @@ **验收标准** - 不安全状态下不会继续接受旧信任材料 +**已完成内容** +- Server 端在 nonce collision / rate limit 时触发 `re_pair_required` 并清空 secret 与安全窗口 +- Client 收到 `re_pair_required` 或 `auth_failed(re_pair_required)` 后清除本地 secret 并回退到 `pair_required` + --- ## Phase 8 — Heartbeat 与在线状态 ### YNX-0801 实现 Client heartbeat loop +**状态** +- [x] 已完成(2026-04-08) + **目标** - Client 在认证后按周期发心跳 @@ -713,9 +723,16 @@ - 默认每 5 分钟发送一次 - 状态切换时 timer 无泄漏 +**已完成内容** +- Client transport 在认证后启动 5 分钟 heartbeat 定时器 +- Runtime 处理 heartbeat tick,构造并发送 `heartbeat` builtin + --- ### YNX-0802 实现 Server heartbeat 接收与记录 +**状态** +- [x] 已完成(2026-04-08) + **目标** - Server 能更新客户端最近存活时间 @@ -728,6 +745,10 @@ **验收标准** - 收到心跳后客户端状态可维持在线 +**已完成内容** +- Server runtime 已接入 `heartbeat` 处理,校验 allowlist 与认证状态 +- 记录 `lastHeartbeatAt` 并回发 `heartbeat_ack`(online 状态) + --- ### YNX-0803 实现 Server liveness sweep diff --git a/Yonexus.Client b/Yonexus.Client index 5ca6ec0..58818e1 160000 --- a/Yonexus.Client +++ b/Yonexus.Client @@ -1 +1 @@ -Subproject commit 5ca6ec0952dde015823dc0a9661767b16e292008 +Subproject commit 58818e11d13d1ebbadea380398aa399bc61a5c47 diff --git a/Yonexus.Server b/Yonexus.Server index 83f6195..ba007eb 160000 --- a/Yonexus.Server +++ b/Yonexus.Server @@ -1 +1 @@ -Subproject commit 83f6195c1f1520ff5c96953375bd9d3d01ab2440 +Subproject commit ba007ebd59997bd39f5b28dcb2b2229556ae39d4