iter48 issue-879 runtime-callback-persistent-state-not-proto: Foundation proto contract + typed schedule boundary#880
Conversation
…ion runtime proto contract + typed schedule boundary 按 issue #879 Phase 9 r1 consensus(meta-judge: structural): 1. 新 runtime_callback_scheduler_state.proto:Foundation runtime callback proto contract(actor id / callback id / generation / periodic / due/period / fire index / delivery mode / trigger envelope) 2. 删 RuntimeCallbackSchedulerGrainState.cs(hand-written C# class + Dictionary + byte[] EnvelopeBytes) 3. 替换 IRuntimeCallbackSchedulerGrain / RuntimeCallbackSchedulerGrain 使用 proto-backed state 4. OrleansActorRuntimeDurableCallbackScheduler 改 typed EventEnvelope schedule boundary(无 raw bytes) 5. runtime_callback_guards.sh 更新:阻止非 proto IPersistentState<...State> callback payload 6. 测试:RuntimeCallbackSchedulerStateProtoTests(新) / OrleansActorRuntimeCallbackSchedulerTests / OrleansActorRuntimeForwardingTests / CiTestAuthorityContractTests 更新 不引入新 actor / 新 query surface;保留 actor-scoped Orleans scheduler grain + lease semantics。 Closes #879 ⟦AI:AUTO-LOOP⟧
Phase 8 Tests Review - PR #880 r1Role: tests reviewer Verdict: comment Checks:
Finding:
Validation run:
REVIEW_DONE:880:tests:comment ⟦AI:AUTO-LOOP⟧ |
Phase 8 quality review — PR #880 r1Scope checked:
Findings: none. Quality notes:
Verification run on clean worktree at
Note: REVIEW_DONE:880:quality:approve ⟦AI:AUTO-LOOP⟧ |
Phase 8 Reviewer -
|
Empty commit to retry actions/checkout@v4 transient failure on PR #880(infrastructure issue, not code). ⟦AI:AUTO-LOOP⟧
📊 状态 — r1 architect reject → fix-r1 dispatcharchitect r1 reject。BLOCKER: Required fix:A. 迁移 old slot 同步 generation;或 B. 加 typed epoch/slot 到 lease + envelope proto。 派 fix-r1 with explicit guidance。 ⟦AI:AUTO-LOOP⟧ |
📊 codex 进展 fix-pr880-r1 (⏳ 进行中; 已跑 11 min)
|
…generation fencing across v2 storage upgrade architect r1 BLOCKER:`SchedulerStateName -v2` 重置 generation fencing,旧 persisted lease 可 cancel 升级后新 schedule。 修法 B(typed epoch): - 新 lease/envelope proto 加 `slot_epoch` 字段 - v2 storage 用新 epoch - cancel/cancel-by-generation 校验 (slot_epoch, generation) 一对 - 旧 epoch 的 lease 不能 cancel 新 epoch 的 schedule 加 regression test:old-epoch-lease-vs-new-schedule-fencing。 ⟦AI:AUTO-LOOP⟧
📊 状态 — fix-r1 push + reviewer r2 architectcommit 加 regression test 派 r2 architect reviewer 单审。approve + CI green → merge。 ⟦AI:AUTO-LOOP⟧ |
✅ Phase 8 Reviewer architect r2 APPROVE — fix 成功
r1 时 tests/quality 已 approve(只 architect reject)→ effective 3/3 approve。 CI 当前状态
待 pending 完成 + slow-test-guards 复查;若 slow-test-guards 仍 fail 派 fix。 ⟦AI:AUTO-LOOP⟧ |
📊 codex 进展 review-pr880-architect-r2 (⏳ 进行中; 已跑 12 min)
|
…me-callback-persistent-state-not-proto
Phase 8 Tests Review - PR #880 r2Role: tests reviewer Verdict: approve Scope checked:
Findings: none. Test coverage verified:
Validation run on clean detached PR worktree:
Note: an earlier parallel REVIEW_DONE:880:tests:approve ⟦AI:AUTO-LOOP⟧ |
📊 codex 进展 review-pr880-tests-r2 (⏳ 进行中; 已跑 12 min)
|
…me-callback-persistent-state-not-proto
📊 状态 — fix-r2 push 完成,等 CIcommit ⟦AI:AUTO-LOOP⟧ |
Codecov Report❌ Patch coverage is
@@ Coverage Diff @@
## auto-refact-dev #880 +/- ##
===================================================
+ Coverage 82.83% 82.92% +0.08%
===================================================
Files 998 994 -4
Lines 63092 63055 -37
Branches 8161 8157 -4
===================================================
+ Hits 52261 52286 +25
+ Misses 7304 7244 -60
+ Partials 3527 3525 -2
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 9 files with indirect coverage changes 🚀 New features to boost your workflow:
|
📊 codex 进展 fix-pr880-r3-codecov (⏳ 进行中; 已跑 9 min)
|
📊 codex 进展 fix-pr880-r4-codecov (⏳ 进行中; 已跑 8 min)
|
摘要
iter48 issue-879 cluster-048-runtime-callback-persistent-state-not-proto(high,SERIALIZATION-PROTOBUF + MIDDLE-NO-ID-MAPS + ACTOR-CALLBACK-SIGNAL)。
RuntimeCallbackSchedulerGrainState+Dictionary<string, ReminderScheduledCallbackState>+byte[] EnvelopeBytes。Schema 依赖 .NET 类形状,跨进程/版本恢复脆弱。Phase 9 共识
META_JUDGE_DONE:consensus:structural:keep existing actor-scoped Orleans callback scheduler grain, replace handwritten persistent state and raw envelope bytes with Foundation runtime protobuf state plus typed EventEnvelope schedule boundary, no new actor or query surface改动范围
9 files (+159/-60):
不引入新 actor / 新 query surface。
Closes #879
📢 cc 原作者: @loning @eanzhao
🤖 Auto-loop / codex-refactor-loop iter48
⟦AI:AUTO-LOOP⟧