Skip to content

feat: add generation control extension - #717

Closed
SunSi12138 wants to merge 1 commit into
devfrom
issue-691-generation-control
Closed

SunSi12138 wants to merge 1 commit into
devfrom
issue-691-generation-control

Conversation

@SunSi12138

Copy link
Copy Markdown
Owner

Fixes #691

重新提交 #706 的内容。此前 #706 在未经审核确认的情况下被合并,已由 #716 回滚;分支 issue-691-generation-control 已在原提交 5df13e2c1c 上恢复,本 PR 即该分支相对 dev 的完整改动(22 个文件)。

说明

  • 本 PR 不推进合并,等待独立审核给出结论后由人工决定。
  • 审核结论请写在 PR 评论中。

@SunSi12138
SunSi12138 force-pushed the issue-691-generation-control branch from 5df13e2 to 85d0563 Compare September 19, 2026 14:42

Copy link
Copy Markdown
Owner Author

Continuation after #706 was reverted by #716:

  • replacement PR feat: add generation control extension #717 is now rebased directly onto current dev f624d0968a8e65a3bd1356f42f287e25aeae3e93
  • previous head: 5df13e2c1c8dd720c0da2c232fb3dd719127663b
  • new head: 85d05634e13c79d59735634e6aed7bd7f0b2c965
  • the PR still contains the same 22 GenerationControl files/changes as one focused commit
  • no unrelated files were added

CI note:

  • the post-merge Release Gate failure that preceded the revert was isolated to SendPumpTests.TimedBatchShouldExtendBatchForFrameArrivingBeforeDeadline on macOS with a 2s timeout
  • this PR does not modify that test; the test file blob is identical on current dev and this branch
  • the flake has been recorded in [test][ci][tracking] Track newly observed intermittent CI failures #387 and the exact failed Release Gate job has been re-run unchanged for confirmation

Current-head PR CI is rerunning now. No merge action will be taken from this development pass.

Copy link
Copy Markdown
Owner Author

CI follow-up for the post-merge Release Gate failure from the reverted #706 landing:

Failure cause:

  • Release Gate run 35448326880, macOS matrix job initially failed one Unit Test:
    SendPumpTests.TimedBatchShouldExtendBatchForFrameArrivingBeforeDeadline
  • exact failure: TimeoutException: The operation has timed out. at SendPumpTests.cs:174 / :188
  • feat: add generation control extension #717 does not modify that test; the test file has the same blob SHA on current dev and this branch

What changed:

  • no production or test code was changed for this unrelated failure
  • the exact failed macOS job was re-run unchanged

Verification:

Current #717 head remains 85d05634e13c79d59735634e6aed7bd7f0b2c965; its own current-head checks are still running.

@SunSi12138
SunSi12138 marked this pull request as draft September 19, 2026 14:47
@SunSi12138
SunSi12138 marked this pull request as ready for review September 19, 2026 14:47

@SunSi12138 SunSi12138 left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

独立 Review 完成:通过,未发现需要阻塞或明显值得修改的问题。

重点核对:

  • Issue #691 初始范围已覆盖:desired/actual inventory 作为 source of truth、stage/activate 分离、revision-based watch 仅作 invalidation、provider/materialization 边界,以及 NativeAOT 的 process-replacement 明确语义。
  • SharpLink.GenerationControl 的运行时依赖保持为 SharpLink.Abstractions;SharpLink.Generator 仅为 analyzer 引用,Protocol v2 与普通 RPC data path 未被改动。
  • solution、生产项目引用边界、NuGet/package verification、reviewed public API baseline、package smoke 与 release publish 列表均已接入新包。
  • #717 的 22 个 per-file patch 与此前 #706 最终版本一致;当前 base 与 #706 最终审核时的 base 树内容等价(中间仅发生合并及回滚),未发现重新提交造成的内容漂移。
  • 当前 head 85d05634e13c79d59735634e6aed7bd7f0b2c965 触发的 PR Fast、PR Package Smoke、CodeQL、Codec Padding Security Evidence 均已完成并为 success。PR Package Smoke 包含 build/pack、包依赖契约、reviewed public API 与 NuGet consumption smoke。

本审核只给出结论,不执行合并,也不修改 Issue 状态。PR 保持未合并,等待人工决定是否合并。

Copy link
Copy Markdown
Owner Author

Final development verification on current head 85d05634e13c79d59735634e6aed7bd7f0b2c965:

  • PR Fast: success
  • PR Package Smoke: success
  • CodeQL: success
  • Codec Padding Security Evidence: success
  • PR Extended: success
  • Extended covered Debug/Release builds, admission rollback regression, Integration Tests, NativeAOT transport/topology smoke, pack/package-contract verification, NuGet package smoke, Oneway demo, load smoke, and all six desktop codec producer/verification lanes
  • browser lanes were skipped by workflow configuration as expected

Post-merge Release Gate flake follow-up from the reverted #706 landing:

  • TimedBatchShouldExtendBatchForFrameArrivingBeforeDeadline was the sole original macOS Unit Test timeout
  • the exact failed job was rerun unchanged and completed successfully, including Unit/Generator/Load/Integration, Pack, and Package Smoke
  • no unrelated code or timeout threshold was changed
  • tracked in [test][ci][tracking] Track newly observed intermittent CI failures #387

The replacement PR is based directly on current dev, remains one focused commit / 22 files, and no merge action has been taken.

Copy link
Copy Markdown
Owner Author

设计方向已在 Issue #691 进一步收敛:不再采用“远端通过 Stage/Activate 控制对端”的模型,而改为“任一端 generation 变化后声明/通知 peer,peer 根据本地策略自行 reconcile,只更新自己”。

这意味着 #717 当前最核心的 public API(remote Stage/Activate + Desired/Actual control semantics)需要实质性重做,不适合在这个已经完成旧方案 review/CI 的 PR 上继续替换。

因此本 PR 作为旧方案 superseded 关闭,不合并。后续实现继续以 #691 为设计主线,另开新的 focused PR。#717 中可复用的独立包、descriptor/revision、provider boundary、NativeAOT 语义和 package/CI 接入经验仍保留作为参考。

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