From 3b59e34eb5fbb83c16645701ee594376e1ce80ef Mon Sep 17 00:00:00 2001 From: nav Date: Wed, 8 Apr 2026 20:03:59 +0000 Subject: [PATCH] feat: add protocol types and config schemas --- TASKLIST.md | 26 ++++++++++++++++++++++++++ Yonexus.Client | 2 +- Yonexus.Protocol | 2 +- Yonexus.Server | 2 +- 4 files changed, 29 insertions(+), 3 deletions(-) diff --git a/TASKLIST.md b/TASKLIST.md index 54083c4..6c49465 100644 --- a/TASKLIST.md +++ b/TASKLIST.md @@ -56,6 +56,9 @@ ## Phase 1 — 协议落地与共享契约 ### YNX-0101 固化 builtin 协议信封与类型枚举 +**状态** +- [x] 已完成(2026-04-08) + **目标** - 把 `PROTOCOL.md` 里的 builtin envelope 转成共享 TypeScript 类型 @@ -72,6 +75,11 @@ - Server / Client 都能直接复用类型 - 所有 builtin 消息都可被类型系统约束 +**已完成内容** +- 已在 `Yonexus.Protocol/src/types.ts` 落地 `BuiltinEnvelope`、builtin `type` 联合类型、各类 payload 接口与 `BuiltinPayloadMap` +- 已增加 `Yonexus.Protocol/src/index.ts` 作为导出入口 +- 已同步更新 `Yonexus.Protocol/README.md`,让共享类型入口不再停留在 planned 状态 + --- ### YNX-0102 实现协议编解码工具 @@ -144,6 +152,9 @@ --- ### YNX-0202 定义 Yonexus.Server 配置 schema +**状态** +- [x] 已完成(2026-04-08) + **目标** - 让 Server 配置在启动前就能被校验 @@ -159,6 +170,12 @@ - 缺字段和非法字段会 fail fast - 错误信息足够定位问题 +**已完成内容** +- 已新增 `Yonexus.Server/plugin/core/config.ts` +- 已实现 `validateYonexusServerConfig()` 与 `YonexusServerConfigError` +- 已覆盖 `followerIdentifiers`、`notifyBotToken`、`adminUserId`、`listenPort`、`listenHost`、`publicWsUrl` 的基础约束与默认值处理 +- 已从 `plugin/index.ts` 导出配置类型与校验入口,方便后续 lifecycle wiring 复用 + --- ### YNX-0203 实现 Server 生命周期 wiring @@ -200,6 +217,9 @@ --- ### YNX-0302 定义 Yonexus.Client 配置 schema +**状态** +- [x] 已完成(2026-04-08) + **目标** - 保证 Client 配置可启动前校验 @@ -213,6 +233,12 @@ **验收标准** - 配置错误可在启动时直接发现 +**已完成内容** +- 已新增 `Yonexus.Client/plugin/core/config.ts` +- 已实现 `validateYonexusClientConfig()` 与 `YonexusClientConfigError` +- 已覆盖 `mainHost`、`identifier`、`notifyBotToken`、`adminUserId` 的必填校验,并限定 `mainHost` 为 `ws://` / `wss://` +- 已从 `plugin/index.ts` 导出配置类型与校验入口,方便后续 lifecycle wiring 直接接入 + --- ### YNX-0303 实现 Client 生命周期 wiring diff --git a/Yonexus.Client b/Yonexus.Client index c2bdb2e..1d751b7 160000 --- a/Yonexus.Client +++ b/Yonexus.Client @@ -1 +1 @@ -Subproject commit c2bdb2efb67c1060262117a07c6fca799200485b +Subproject commit 1d751b7c55c83fbe4a667b0d4d68b95f14d88fff diff --git a/Yonexus.Protocol b/Yonexus.Protocol index 9232aa7..de9c41f 160000 --- a/Yonexus.Protocol +++ b/Yonexus.Protocol @@ -1 +1 @@ -Subproject commit 9232aa7c1755adda6990a5a2f6c7c1a114285a73 +Subproject commit de9c41fc88006a9fdbba07882e2e1d116ac4fc3a diff --git a/Yonexus.Server b/Yonexus.Server index ac128d3..3ec57ce 160000 --- a/Yonexus.Server +++ b/Yonexus.Server @@ -1 +1 @@ -Subproject commit ac128d3827c42c88adf5f97e7ea7002423c5b30f +Subproject commit 3ec57ce19910aefcf04531912c11fc0d20887a5a