Skip to content

iter56 cluster-921: actor-type marker recovery,删 Hosting actorId prefix predicate#924

Merged
loning merged 1 commit into
auto-refact-devfrom
refactor/iter56-cluster-921-runtime-recovery-actor-type-marker
May 23, 2026
Merged

iter56 cluster-921: actor-type marker recovery,删 Hosting actorId prefix predicate#924
loning merged 1 commit into
auto-refact-devfrom
refactor/iter56-cluster-921-runtime-recovery-actor-type-marker

Conversation

@loning
Copy link
Copy Markdown
Contributor

@loning loning commented May 23, 2026

摘要

iter56 cluster-921 — Phase 9 r3 unanimous(3/3 direct actor-type marker):

  • 新增 IEventSourcingVersionDriftRecoverableActor Foundation marker contract
  • ProjectionScopeGAgentBase 实现 marker(per consensus)
  • IEventSourcingBehaviorFactory.CreateactorType
  • DefaultEventSourcingBehaviorFactory 按 marker type 启用 drift recovery
  • 删除 Hosting actorId prefix recovery predicate(违反 "actorId 对调用方不透明" 条款)
  • 删除 ShouldRecoverFromVersionDriftOnReplay

边界

影响范围

LOC +72/-47 net +25(精简 cleanup)

验证

  • dotnet build aevatar.slnx --nologo PASS
  • dotnet test aevatar.slnx --nologo PASS
  • bash tools/ci/test_stability_guards.sh PASS
  • bash tools/ci/architecture_guards.sh PASS
  • bash tools/ci/coverage_quality_guard.sh line 88.7% / branch 72.6%

Closes #921

🤖 Auto-loop / codex-refactor-loop iter56

⟦AI:AUTO-LOOP⟧

…ix predicate

#921 Phase 9 r3 consensus(3/3 direct actor-type marker,无 resolver seam):

- 加 IEventSourcingVersionDriftRecoverableActor Foundation marker
- ProjectionScopeGAgentBase<TContext> 实现 marker(per consensus)
- IEventSourcingBehaviorFactory.Create 接受 actorType
- DefaultEventSourcingBehaviorFactory 按 marker type 启用 drift recovery
- 删 Hosting actorId prefix recovery predicate + ShouldRecoverFromVersionDriftOnReplay
- 加 test:marker recovery + domain fail-fast (projection-shaped actorId) + projection scope marker 继承 + host option

不加 IEventSourcingRecoveryPolicyResolver seam(over-built,per consensus)
preserve #502/#503 projection scope drift recovery + domain fail-fast

LOC +72/-47 net +25
dotnet build aevatar.slnx + dotnet test PASS
test_stability_guards.sh + architecture_guards.sh + coverage_quality_guard.sh(line 88.7%/branch 72.6%)PASS

⟦AI:AUTO-LOOP⟧
@loning
Copy link
Copy Markdown
Contributor Author

loning commented May 23, 2026

📊 状态卡片 — reviewer 派出

维度
阶段 派出 codex(role=reviewer)
codex log review-pr924-omnibus-r1.log
工作目录 /Users/auric/aevatar
timeout 5400s(~90 min 上限)
上下文 omnibus r1 派出(actor-type marker recovery,删 actorId prefix,精简 +72/-47)
下一步自动会做 1. 三 reviewer 完成 verdict marker 2. controller 计算 consensus 3. unanimous → auto-merge / reject → fix r<N+1>
是否需要人介入 ❌ 否(自动推进)

🤖 controller status banner

⟦AI:AUTO-LOOP⟧

@loning
Copy link
Copy Markdown
Contributor Author

loning commented May 23, 2026

📊 codex 进展 review-pr924-omnibus-r1 (⏳ 进行中; 已跑 12 min)

Quality: approve. Naming is clear enough for the contract, and refactor comments document old/new behavior.

Verification:
- `test_stability_guards.sh`: passed
- `architecture_guards.sh`: passed
- `dotnet test aevatar.slnx --nologo`: passed

REVIEW_DONE:924:omnibus:approve
reject verbatim demand: N/A
⟦AI:AUTO-LOOP⟧
tokens used
106,078
No blocking findings.

Architect: approve. Hosting actorId prefix recovery predicate is removed, `ProjectionScopeGAgentBase` implements `IEventSourcingVersionDriftRecoverableActor`, and I found no `IEventSourcingRecoveryPolicyResolver` / resolver seam.

Tests: approve. The four requested cases are covered: marker recovery, projection-shaped actorId fail-fast, projection scope marker inheritance, and host option wiring. Patch coverage reported at 88.7% satisfies ≥80%.

Quality: approve. Naming is clear enough for the contract, and refactor comments document old/new behavior.

Verification:
- `test_stability_guards.sh`: passed
- `architecture_guards.sh`: passed
- `dotnet test aevatar.slnx --nologo`: passed

自动更新每 10 分钟;edit-in-place 不堆评论;codex 完成后此 comment 自动删除(per Auric "完成后删掉就好了 否则太占空间")。
🤖 controller progress reporter

@codecov
Copy link
Copy Markdown

codecov Bot commented May 23, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.21%. Comparing base (43800ab) to head (fa909e5).
⚠️ Report is 1 commits behind head on auto-refact-dev.

@@                 Coverage Diff                 @@
##           auto-refact-dev     #924      +/-   ##
===================================================
- Coverage            83.22%   83.21%   -0.02%     
===================================================
  Files                  990      991       +1     
  Lines                63429    63471      +42     
  Branches              8208     8211       +3     
===================================================
+ Hits                 52791    52818      +27     
- Misses                7097     7107      +10     
- Partials              3541     3546       +5     
Flag Coverage Δ
ci 83.21% <100.00%> (-0.02%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
...on.Core/Orchestration/ProjectionScopeGAgentBase.cs 79.26% <ø> (ø)
...entSourcing/DefaultEventSourcingBehaviorFactory.cs 98.00% <100.00%> (+0.04%) ⬆️
....Core/EventSourcing/EventSourcingRuntimeOptions.cs 100.00% <ø> (ø)
src/Aevatar.Foundation.Core/GAgentBase.TState.cs 90.47% <100.00%> (ø)
...DependencyInjection/ServiceCollectionExtensions.cs 91.48% <ø> (-0.18%) ⬇️

... and 7 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant