WIP: Patch 4 #5

Closed
SerinaNya wants to merge 4 commits from SerinaNya/KLALB:patch-4 into master
Contributor

Note

已包含了 #4 的更改

  • 添加了 NodeInfoUpdate 机制
  • 现在 Web Dashboard 和 Swing UI 的设置页面配置项同步了,不会再出现改了网页但 Swing UI 没有刷新的情况
> [!NOTE] > 已包含了 https://git.code.cq.cn/KNEMC/KLALB/pulls/4 的更改 - 添加了 NodeInfoUpdate 机制 - 现在 Web Dashboard 和 Swing UI 的设置页面配置项同步了,不会再出现改了网页但 Swing UI 没有刷新的情况
SerinaNya added 5 commits 2026-08-29 00:27:05 +08:00
Publish node metadata through Tiny and Full queries, synchronize Swing and
web topology details, and document the updated protocol workflow.

BREAKING CHANGE: RouterInfo no longer carries device names; peers must use
Tiny node-info queries.
Add revisioned configuration events and detached commits so Web changes
refresh clean Swing forms without overwriting unsaved local edits. Preserve
configuration formatting and document the synchronized update workflow.
SerinaNya requested review from KNEMC 2026-08-29 00:27:05 +08:00
SerinaNya added 1 commit 2026-08-31 01:13:53 +08:00
Replace the combined node-info protocol with independent profile,
external-endpoint, and extra-route requests. Aggregate consumers use
NodeInfoQueryCoordinator and validate response source addresses.

BREAKING CHANGE: nodeinfotinyreq/resp and nodeinfofullreq/resp are
removed. Peers must use the profile, external-endpoint, and extra-route
request pairs.
Author
Contributor

概要 (3dae7dd876)

将 peer 节点信息查询拆分为独立的 profile、ExternalEndpoints 和 ExtraRoutes 请求,移除原有的 Tiny/Full 聚合查询协议。需要聚合详情的调用方统一通过协调器处理。

技术细节

  • 新增 NodeProfileExternalEndpointsResultExtraRoutesResultNodeInfoQueryStatus
  • requestNodeProfilerequestExternalEndpointsrequestExtraRoutes 替代旧查询 API。
  • 新增 NodeInfoQueryCoordinator,并行发送三类请求,使用统一超时并显式保留部分结果。
  • 客户端在回调前校验请求 UUID、预期响应类型及响应来源地址。
  • 客户端关闭后拒绝继续创建查询请求。
  • 远端线路发现仅查询 ExternalEndpoints。
  • Web 和 Swing 改为使用协调器;/api/node-info 保留原有详情字段。
  • 局部刷新失败时,Swing 保留此前已展示的数据;仅在收到明确空列表或端点拒绝结果时清空对应区块。
  • 任一节点信息区块响应即将远端节点标记为可达。
  • dashboard 将节点详情版本字段改为 nodeInfoRevision,移除 epoch 机制。
  • 更新 AGENTS.md,记录当前拆分协议及已验证的仓库工作流。

破坏性变更

  • 移除 nodeinfotinyreq/respnodeinfofullreq/resp
  • 所有 peer 节点必须升级为 profile、ExternalEndpoints、ExtraRoutes 三组独立请求。
  • /api/nodes 移除 nodeInfoFullRevisionnodeInfoFullRevisionEpoch,改为返回 nodeInfoRevision
## 概要 (https://git.code.cq.cn/KNEMC/KLALB/commit/3dae7dd876c6b2a4063aea5fd9e5515d2983069e) 将 peer 节点信息查询拆分为独立的 profile、ExternalEndpoints 和 ExtraRoutes 请求,移除原有的 Tiny/Full 聚合查询协议。需要聚合详情的调用方统一通过协调器处理。 ## 技术细节 - 新增 `NodeProfile`、`ExternalEndpointsResult`、`ExtraRoutesResult` 和 `NodeInfoQueryStatus`。 - 以 `requestNodeProfile`、`requestExternalEndpoints`、`requestExtraRoutes` 替代旧查询 API。 - 新增 `NodeInfoQueryCoordinator`,并行发送三类请求,使用统一超时并显式保留部分结果。 - 客户端在回调前校验请求 UUID、预期响应类型及响应来源地址。 - 客户端关闭后拒绝继续创建查询请求。 - 远端线路发现仅查询 ExternalEndpoints。 - Web 和 Swing 改为使用协调器;`/api/node-info` 保留原有详情字段。 - 局部刷新失败时,Swing 保留此前已展示的数据;仅在收到明确空列表或端点拒绝结果时清空对应区块。 - 任一节点信息区块响应即将远端节点标记为可达。 - dashboard 将节点详情版本字段改为 `nodeInfoRevision`,移除 epoch 机制。 - 更新 `AGENTS.md`,记录当前拆分协议及已验证的仓库工作流。 ## 破坏性变更 - 移除 `nodeinfotinyreq/resp` 与 `nodeinfofullreq/resp`。 - 所有 peer 节点必须升级为 profile、ExternalEndpoints、ExtraRoutes 三组独立请求。 - `/api/nodes` 移除 `nodeInfoFullRevision`、`nodeInfoFullRevisionEpoch`,改为返回 `nodeInfoRevision`。
SerinaNya added 1 commit 2026-08-31 13:28:01 +08:00
Author
Contributor

由于 commit b6acc6d509 (fix(config): sync Swing settings after Web updates) 过于💩💩💩💩,已撤回。

已验证不影响其他功能。

由于 commit b6acc6d50999480ad78e07beaac5dc33871c2ec3 (fix(config): sync Swing settings after Web updates) 过于💩💩💩💩,已撤回。 已验证不影响其他功能。
Author
Contributor

寻找其他实现方案。

寻找其他实现方案。
SerinaNya closed this pull request 2026-08-31 13:47:28 +08:00

Pull request closed

Please reopen this pull request to perform a merge.
This pull request is marked as a work in progress.
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: KNEMC/KLALB#5