Skip to content

build(ci): 新增拓扑等价门禁工作流 - #488

Merged
AlianBlank merged 5 commits into
mainfrom
feature/auto-server-source-worker-run-7754-20260922T0330
Sep 22, 2026
Merged

AlianBlank merged 5 commits into
mainfrom
feature/auto-server-source-worker-run-7754-20260922T0330

Conversation

@AlianBlank

@AlianBlank AlianBlank commented Sep 22, 2026

Copy link
Copy Markdown
Collaborator

Linear: GFX-850

Summary by CodeRabbit

  • 新功能

    • 新增跨角色消息路由能力,支持本地投递与跨进程转发。
    • 新增消息信封、路由结果及路由失败异常,便于识别投递状态和处理路由错误。
    • 应用启动时支持初始化全局角色路由配置。
  • 测试

    • 新增多种跨角色消息链路测试,验证不同部署拓扑下的消息顺序、状态一致性及超时行为。
  • 持续集成

    • 新增自动化检查,在合并前验证跨角色消息链路语义等价性。

落地 D3 三步判定的进程内实现:MessageEnvelope 路由信封、
IRoleRouter / ILocalRoleMessageDispatcher / IRemoteRoleRouter 三条缝、
InProcessRoleRouter 本地直投与 RouteNotFoundException 显式失败、
RemoteRoleRouter 占位(case 2/3 待 C143d 可达表)、
RoleRouterHolder 进程级持有者。

Linear: GFX-850
StartUp 引用 RemoteMessaging(ProjectReference,依赖图无环),
GameApp 在 RoleSet 快照发布后、AppEnter.Entry 之前初始化
RoleRouterHolder;本地投递器随 C143e 接入,过早路由在缝上显式
抛异常不静默丢消息,单 Role 启动零行为变化。

Linear: GFX-850
4 条代表性跨 Role 链路 × 2 拓扑(All-in-One 单进程与三进程)
语义等价用例集:固定断言消息到达序、最终状态快照与 D3 投递
分支,另含紧超时等价对与路由器单元测试,为 CI 门禁提供目标集。

Linear: GFX-850
PR 触发运行拓扑语义等价套件(过滤 GameFrameX.Tests.Topology.
Equivalence),构建失败或任一用例失败即阻塞合并,守护
DynamicPhase-0 核心契约。

Linear: GFX-850
@coderabbitai

coderabbitai Bot commented Sep 22, 2026

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: f69ecff4-4225-49ee-90df-d9bc6c15264e

📥 Commits

Reviewing files that changed from the base of the PR and between 301e391 and d924aa8.

📒 Files selected for processing (23)
  • .github/workflows/topology-equivalence.yml
  • Directory.Build.props
  • GameFrameX.NetWork.RemoteMessaging/GlobalUsings.cs
  • GameFrameX.NetWork.RemoteMessaging/Routing/ILocalRoleMessageDispatcher.cs
  • GameFrameX.NetWork.RemoteMessaging/Routing/IRemoteRoleRouter.cs
  • GameFrameX.NetWork.RemoteMessaging/Routing/IRoleRouter.cs
  • GameFrameX.NetWork.RemoteMessaging/Routing/InProcessRoleRouter.cs
  • GameFrameX.NetWork.RemoteMessaging/Routing/MessageEnvelope.cs
  • GameFrameX.NetWork.RemoteMessaging/Routing/RemoteRoleRouter.cs
  • GameFrameX.NetWork.RemoteMessaging/Routing/RoleRouteDelivery.cs
  • GameFrameX.NetWork.RemoteMessaging/Routing/RoleRouterHolder.cs
  • GameFrameX.NetWork.RemoteMessaging/Routing/RouteNotFoundException.cs
  • GameFrameX.StartUp/GameApp.cs
  • GameFrameX.StartUp/GameFrameX.StartUp.csproj
  • Tests/GameFrameX.Tests/GameFrameX.Tests.csproj
  • Tests/GameFrameX.Tests/Topology/Equivalence/ChainExecutionResult.cs
  • Tests/GameFrameX.Tests/Topology/Equivalence/CrossRoleChains.cs
  • Tests/GameFrameX.Tests/Topology/Equivalence/EquivalenceTestMessages.cs
  • Tests/GameFrameX.Tests/Topology/Equivalence/InProcessRoleRouterTests.cs
  • Tests/GameFrameX.Tests/Topology/Equivalence/LoopbackRemoteRoleRouter.cs
  • Tests/GameFrameX.Tests/Topology/Equivalence/RoleMailbox.cs
  • Tests/GameFrameX.Tests/Topology/Equivalence/TopologyEquivalenceTests.cs
  • Tests/GameFrameX.Tests/Topology/Equivalence/TopologyWorld.cs
 ________________________________
< Goodbye, diff induced despair. >
 --------------------------------
  \
   \   \
        \ /\
        ( )
      .( o ).
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

- Directory.Build.props 显式落 Configuration/Platform 默认值:直接对 csproj
  求值(dotnet test --no-build)时 Platform 为空导致 OutputPath 条件组被跳过,
  vstest 找不到 bin/Debug 下的测试容器而报 argument is invalid
- 测试工程补 GitHubActionsTestLogger 3.0.5(PrivateAssets=all),
  vstest 的 github logger 并非 SDK 内置,需包引用提供
- workflow logger 参数改为 v3 语法 GitHubActions(summary=true 为 v2 残留)
@sonarqubecloud

Copy link
Copy Markdown

@AlianBlank
AlianBlank merged commit 1bec58f into main Sep 22, 2026
2 of 3 checks passed
@AlianBlank
AlianBlank deleted the feature/auto-server-source-worker-run-7754-20260922T0330 branch September 22, 2026 04:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant