Skip to content

iter56 cluster-910: 删 command-path projection activation,改 Studio committed-state provider#916

Merged
loning merged 2 commits into
auto-refact-devfrom
refactor/iter56-cluster-910-projection-activation-cleanup
May 23, 2026
Merged

iter56 cluster-910: 删 command-path projection activation,改 Studio committed-state provider#916
loning merged 2 commits into
auto-refact-devfrom
refactor/iter56-cluster-910-projection-activation-cleanup

Conversation

@loning
Copy link
Copy Markdown
Contributor

@loning loning commented May 23, 2026

摘要

iter56 cluster-910 — Phase 9 r1 unanimous(3/3 一轮达成):

核心:删除 command-path projection activation,改 Studio committed-state activation plan provider(同 #909 引入的模式)

  • 删除 Scripting / Studio 写命令路径 `EnsureActorProjectionAsync` / `ActivateAsync` 同步调用
  • 删除 Scripting / Workflow 老的 activation port interface + wrapper facade
  • 删除未用的 `StudioProjectionPort`
  • 新增 `StudioCommittedStateProjectionActivationPlanProvider`(覆盖 Studio projected actors)
  • 移除 Studio projector exemption(provider guard 覆盖后无需 exempt)

边界

  • 不新增 Core types / pipeline phase / docs/canon vocabulary
  • 不动 actor 自身实现
  • 写命令路径只 dispatch + 返回 accepted command id;readmodel 可见性由 committed-state activation 自动 trigger

影响范围

LOC +227/-593 net -366(大 cleanup,删旧 surface)

  • 删 Scripting Core/Projection 老 port + 实现
  • 删 Studio Projection 老 port
  • 改 Studio Projection CommandServices + Bootstrap(不再 activate before dispatch)
  • 新 StudioCommittedStateProjectionActivationPlanProvider + test

验证

Closes #910

🤖 Auto-loop / codex-refactor-loop iter56

⟦AI:AUTO-LOOP⟧

@loning
Copy link
Copy Markdown
Contributor Author

loning commented May 23, 2026

📊 状态卡片 — reviewer 派出

维度
阶段 派出 codex(role=reviewer)
codex log review-pr916-omnibus-r1.log
工作目录 /Users/auric/aevatar
timeout 5400s(~90 min 上限)
上下文 omnibus r1 派出(architect+tests+quality;-366 LOC cleanup,Studio 新 provider)
下一步自动会做 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

📊 状态卡片 — fix 派出

维度
阶段 派出 codex(role=fix)
codex log fix-pr916-r2-coverage.log
工作目录 /Users/auric/aevatar-wt-iter56-cluster-910-projection-activation-cleanup
timeout 5400s(~90 min 上限)
上下文 r1 APPROVE 但 coverage-quality CI fail(80.0% rounding 越线)→ fix r2 补 patch coverage
下一步自动会做 1. fix r 完成 marker FIX_DONE:... 2. controller commit + push 3. 派 reviewer r<N+1>
是否需要人介入 ❌ 否(自动推进)

🤖 controller status banner

⟦AI:AUTO-LOOP⟧

@loning
Copy link
Copy Markdown
Contributor Author

loning commented May 23, 2026

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

Tests/quality: deleted port tests were removed with the deleted ports. New provider tests cover supported actors plus unsupported/missing-payload cases. Net `-366 LOC` looks like real cleanup, with refactor comments on the changed command/bootstrap paths.

Verification passed:
- `bash tools/ci/test_stability_guards.sh`
- `bash tools/ci/projection_activation_provider_coverage_guard.sh`
- `bash tools/ci/architecture_guards.sh`
- `dotnet test test/Aevatar.Studio.Tests/Aevatar.Studio.Tests.csproj --nologo` → 603 passed
- Coverage collection for Studio tests passed; computed coverable added-line patch coverage is exactly `80.0%`, and the new Studio provider itself is 100% covered.

REVIEW_DONE:916:omnibus:approve
⟦AI:AUTO-LOOP⟧
tokens used
172,469
Findings: none blocking.

Architect review: command paths no longer synchronously ensure projection activation; Studio activation is now registered through `CommittedStateProjectionActivationHook` + `ProjectionActivationPlanDispatcher` + `StudioCommittedStateProjectionActivationPlanProvider`. The provider covers the 11 registered Studio current-state projected actors, and activation is triggered from the committed-state publication path. No replay/query-time priming regression found in the touched Studio paths.

Tests/quality: deleted port tests were removed with the deleted ports. New provider tests cover supported actors plus unsupported/missing-payload cases. Net `-366 LOC` looks like real cleanup, with refactor comments on the changed command/bootstrap paths.

Verification passed:
- `bash tools/ci/test_stability_guards.sh`
- `bash tools/ci/projection_activation_provider_coverage_guard.sh`
- `bash tools/ci/architecture_guards.sh`
- `dotnet test test/Aevatar.Studio.Tests/Aevatar.Studio.Tests.csproj --nologo` → 603 passed
- Coverage collection for Studio tests passed; computed coverable added-line patch coverage is exactly `80.0%`, and the new Studio provider itself is 100% covered.

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

loning added 2 commits May 24, 2026 02:12
…mmitted-state provider

#910 Phase 9 r1 consensus(3/3 一轮达成 minimal/structural/delete):

- 删除 Scripting / Studio 写命令路径 EnsureActorProjectionAsync / ActivateAsync 同步调用
- 删除 Scripting/Workflow 老的 activation port interface + wrapper facade + 未用的 StudioProjectionPort
- 新增 StudioCommittedStateProjectionActivationPlanProvider(覆盖 Studio projected actors)
- 移除 Studio projector exemption(provider guard 覆盖后无需 exempt)
- 不新增 Core types / pipeline phase / docs/canon vocabulary

LOC +227/-593 net -366(大 cleanup)
test_stability_guards.sh + projection_activation_provider_coverage_guard.sh + architecture_guards.sh PASS
Scripting Core + Studio + Workflow Host API tests PASS

⟦AI:AUTO-LOOP⟧
…ort 引用 + 补 Studio hook 覆盖

omnibus r1 APPROVE 但 coverage-quality CI 因 build break + patch coverage 边界失败:

- InspectorApplication.cs:用新 StudioCurrentStateProjectionPort 替代被删的 StudioProjectionPort(build break 修复)
- Studio 委托 committed-state hook 路径补 unit test 覆盖
- UserConfigProjectionAndControllerTests:更新 assert "no command-path projection priming"

local PASS:
- restore_and_build.sh + test_stability_guards.sh + coverage_quality_guard.sh
- StudioCommittedStateProjectionActivationPlanProvider line/branch = 1.0/1.0
- 过滤 line 88.7% / branch 72.6%

⟦AI:AUTO-LOOP⟧
@loning loning force-pushed the refactor/iter56-cluster-910-projection-activation-cleanup branch from e57b3f0 to 9f3b71c Compare May 23, 2026 18:12
@loning
Copy link
Copy Markdown
Contributor Author

loning commented May 23, 2026

📊 状态卡片 — fix 派出

维度
阶段 派出 codex(role=fix)
codex log fix-pr916-r2-coverage.log
工作目录 /Users/auric/aevatar
timeout 5400s(~90 min 上限)
上下文 r2 fix done(+3 files,Inspector build break + Studio hook coverage)+ rebased on trunk → CI re-run
下一步自动会做 1. fix r 完成 marker FIX_DONE:... 2. controller commit + push 3. 派 reviewer r<N+1>
是否需要人介入 ❌ 否(自动推进)

🤖 controller status banner

⟦AI:AUTO-LOOP⟧

@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.23%. Comparing base (f3e59aa) to head (9f3b71c).
⚠️ Report is 1 commits behind head on auto-refact-dev.

@@                 Coverage Diff                 @@
##           auto-refact-dev     #916      +/-   ##
===================================================
+ Coverage            83.19%   83.23%   +0.03%     
===================================================
  Files                  995      990       -5     
  Lines                63513    63419      -94     
  Branches              8216     8207       -9     
===================================================
- Hits                 52840    52787      -53     
+ Misses                7133     7098      -35     
+ Partials              3540     3534       -6     
Flag Coverage Δ
ci 83.23% <100.00%> (+0.03%) ⬆️

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

Files with missing lines Coverage Δ
...nfrastructure/Ports/RuntimeScriptCommandService.cs 92.68% <100.00%> (+1.77%) ⬆️
...DependencyInjection/ServiceCollectionExtensions.cs 100.00% <ø> (ø)
...ervices/ActorDispatchStudioMemberCommandService.cs 92.65% <ø> (ø)
...dServices/ActorDispatchStudioTeamCommandService.cs 97.19% <ø> (ø)
...dServices/ActorDispatchUserConfigCommandService.cs 90.19% <ø> (ø)
...DependencyInjection/ServiceCollectionExtensions.cs 95.19% <100.00%> (-4.81%) ⬇️
...o.Projection/Orchestration/StudioActorBootstrap.cs 90.00% <100.00%> (+6.66%) ⬆️
...oCommittedStateProjectionActivationPlanProvider.cs 100.00% <100.00%> (ø)
...rojectors/ChatConversationCurrentStateProjector.cs 0.00% <ø> (ø)
...rojectors/ChatHistoryIndexCurrentStateProjector.cs 0.00% <ø> (ø)
... and 10 more

... and 2 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.

@loning
Copy link
Copy Markdown
Contributor Author

loning commented May 23, 2026

📊 codex 进展 resolve-pr919-rebase-conflict (⏳ 进行中; 已跑 13 min)

 using Aevatar.CQRS.Projection.Stores.Abstractions;
-<<<<<<< HEAD
-using Aevatar.Foundation.Core.EventSourcing;
-=======
 using Aevatar.CQRS.Core.DependencyInjection;
->>>>>>> 19af2808 (iter56 cluster-911: Studio Store → query-command ports + CQRS Core dispatch)
+using Aevatar.Foundation.Core.EventSourcing;
 using Aevatar.Studio.Application.Studio.Abstractions;
 using Aevatar.Studio.Projection.CommandServices;
 using Aevatar.Studio.Projection.Metadata;

tokens used
70,640
Resolved PR #919 rebase conflict in [ServiceCollectionExtensions.cs](/Users/auric/aevatar-wt-iter56-cluster-911-studio-store-query-command/src/Aevatar.Studio.Projection/DependencyInjection/ServiceCollectionExtensions.cs).

Merged result keeps both sides:
- PR #919: `AddCqrsCore()` + `AddStudioProjectionActorCommandDispatch()` for query/command port split and new CQRS dispatch path.
- Trunk/#916: committed-state projection activation via `ProjectionActivationPlanDispatcher`, `CommittedStateProjectionActivationHook`, and `StudioCommittedStateProjectionActivationPlanProvider`; no command-path `StudioProjectionPort` registration restored.

Rebase completed. No push performed. Worktree is clean, no rebase state remains. Branch is now `ahead 5, behind 2` versus its remote, as expected after local rebase.

Validation passed:
- `bash $REPO_ROOT/tools/ci/test_stability_guards.sh`
- `bash $REPO_ROOT/tools/ci/architecture_guards.sh`
- `dotnet test test/Aevatar.Studio.Tests/Aevatar.Studio.Tests.csproj --nologo` (`604` passed)

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

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant