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
This commit is contained in:
nav
2026-04-08 22:52:00 +00:00
parent 07b5ffed0c
commit 9c72c93b8b

View File

@@ -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 会被断开连接
---