From 07b5ffed0cceda65b97365537b121c99032b4dcb Mon Sep 17 00:00:00 2001 From: nav Date: Wed, 8 Apr 2026 22:39:52 +0000 Subject: [PATCH] chore: record yonexus runtime progress --- TASKLIST.md | 30 ++++++++++++++++++++++++++++++ Yonexus.Client | 2 +- Yonexus.Server | 2 +- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/TASKLIST.md b/TASKLIST.md index bbd01ab..034613e 100644 --- a/TASKLIST.md +++ b/TASKLIST.md @@ -752,6 +752,9 @@ --- ### YNX-0803 实现 Server liveness sweep +**状态** +- [x] 已完成(2026-04-08) + **目标** - Server 能周期性评估 online / unstable / offline @@ -764,11 +767,21 @@ **验收标准** - 状态转移符合文档定义 +**已完成内容** +- 已在 `Yonexus.Server/plugin/core/runtime.ts` 增加可配置的 liveness sweep timer(默认 30s) +- 已实现基于 `lastHeartbeatAt` 的 `online -> unstable -> offline` 状态判定 +- 已在进入 `unstable` 时下发 `status_update(heartbeat_timeout_7m)` +- 已在进入 `offline` 时下发 `disconnect_notice(heartbeat_timeout_11m)`、关闭连接并清理 session +- 状态变化后会持久化,避免 sweep 结果只停留在内存中 + --- ## Phase 9 — 规则消息与 API ### YNX-0901 实现 Client rule registry +**状态** +- [x] 已完成(2026-04-08) + **目标** - Client 侧支持应用层规则分发 @@ -782,9 +795,19 @@ - 命中规则时正确调用处理器 - 非法注册被拒绝 +**已完成内容** +- 已新增 `Yonexus.Client/plugin/core/rules.ts` +- 已实现 `registerRule()` / `hasRule()` / `dispatch()` / `getRules()` +- 已复用协议 codec 校验 rule identifier,拒绝空值、非法标识符与保留字 `builtin` +- 已通过 `ClientRuleRegistryError` 固化重复注册与非法注册错误语义 +- 已从 `Yonexus.Client/plugin/index.ts` 导出 rule registry 相关类型与工厂 + --- ### YNX-0902 实现 Server rule registry +**状态** +- [x] 已完成(2026-04-08) + **目标** - Server 侧支持应用层规则分发 @@ -797,6 +820,13 @@ **验收标准** - 规则注册与调用行为一致 +**已完成内容** +- 已新增 `Yonexus.Server/plugin/core/rules.ts` +- 已实现面向服务端重写消息格式的 `registerRule()` / `hasRule()` / `dispatch()` / `getRules()` +- 已通过 `parseRewrittenRuleMessage()` 强制 server dispatch 处理 `${rule}::${sender}::${content}` 形态 +- 已通过 `ServerRuleRegistryError` 固化保留字与重复注册的拒绝行为 +- 已从 `Yonexus.Server/plugin/index.ts` 导出 rule registry 相关类型与工厂 + --- ### YNX-0903 实现 `sendMessageToServer(message)` diff --git a/Yonexus.Client b/Yonexus.Client index 58818e1..07c2438 160000 --- a/Yonexus.Client +++ b/Yonexus.Client @@ -1 +1 @@ -Subproject commit 58818e11d13d1ebbadea380398aa399bc61a5c47 +Subproject commit 07c2438fb87e9fe8dbb41e1401e0053f20911c4a diff --git a/Yonexus.Server b/Yonexus.Server index ba007eb..075fcb7 160000 --- a/Yonexus.Server +++ b/Yonexus.Server @@ -1 +1 @@ -Subproject commit ba007ebd59997bd39f5b28dcb2b2229556ae39d4 +Subproject commit 075fcb7974207e6c463225859728ac3ad78c9e19