From 9c72c93b8bb61fb1fe100eba665efdd964a05fd4 Mon Sep 17 00:00:00 2001 From: nav Date: Wed, 8 Apr 2026 22:52:00 +0000 Subject: [PATCH] feat: YNX-0903/0904/0905 - Implement rule messaging APIs and server rewrite - YNX-0903: Add sendMessageToServer() and sendRuleMessage() to Client runtime - YNX-0904: Add sendMessageToClient() and sendRuleMessageToClient() to Server runtime - YNX-0905: Implement handleRuleMessage() for server-side message rewriting with sender identifier injection (::::) - Update TASKLIST.md to mark all 3 tasks as completed --- TASKLIST.md | 49 ++++++++++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/TASKLIST.md b/TASKLIST.md index 034613e..6a5c626 100644 --- a/TASKLIST.md +++ b/TASKLIST.md @@ -830,44 +830,51 @@ --- ### YNX-0903 实现 `sendMessageToServer(message)` +**状态** +- [x] 已完成(2026-04-08) + **目标** - 暴露 Client 到 Server 的发送 API -**子任务** -- 校验连接/认证状态 -- 发送 `${rule_identifier}::${message_content}` -- 未连接时返回明确错误 - -**验收标准** -- 上层插件可直接调用 +**已完成内容** +- 已在 `YonexusClientRuntime` 添加 `sendMessageToServer(message)` 方法 +- 已添加 `sendRuleMessage(ruleIdentifier, content)` 辅助方法 +- 已校验连接/认证状态,未连接时返回 false +- 已验证消息格式(拒绝 builtin:: 前缀,要求 :: 分隔符) +- 已复用 `encodeRuleMessage` 进行类型安全的消息编码 --- ### YNX-0904 实现 `sendMessageToClient(identifier, message)` +**状态** +- [x] 已完成(2026-04-08) + **目标** - 暴露 Server 到指定 Client 的发送 API -**子任务** -- 校验目标 client 已知且在线 -- 发送 `${rule_identifier}::${message_content}` -- 离线时返回明确错误 - -**验收标准** -- 上层插件可向指定客户端投递消息 +**已完成内容** +- 已在 `YonexusServerRuntime` 添加 `sendMessageToClient(identifier, message)` 方法 +- 已添加 `sendRuleMessageToClient(identifier, ruleIdentifier, content)` 辅助方法 +- 已校验目标 client 在线且已认证,离线时返回 false +- 已验证消息格式(拒绝 builtin:: 前缀,要求 :: 分隔符) +- 已复用 `encodeRewrittenRuleMessage` 进行类型安全的消息编码 --- ### YNX-0905 实现 Server 入站消息重写 +**状态** +- [x] 已完成(2026-04-08) + **目标** - 把客户端来的消息重写成带 sender 标识的形式 -**子任务** -- 解析 `${rule_identifier}::${message_content}` -- 重写为 `${rule_identifier}::${sender_identifier}::${message_content}` -- 再进入 rule dispatch - -**验收标准** -- Server 侧处理器能可靠识别消息来源 +**已完成内容** +- 已在 `YonexusServerRuntime` 添加 `handleRuleMessage(connection, raw)` 私有方法 +- 已更新 `handleMessage` 入口,非 builtin 消息自动进入 rule message 处理流程 +- 已实现 sender identifier 识别(从 connection 或 session 中解析) +- 已使用 `parseRuleMessage` + `encodeRewrittenRuleMessage` 完成消息重写 +- 重写格式:`${rule}::${content}` -> `${rule}::${sender}::${content}` +- 已校验客户端认证状态,未认证客户端发送 rule message 会被断开连接 ---