ReplayPlan two-person apply already required digest match; this pins the missing ApprovalRef negative so dry-run tickets cannot skip the ticket field. Co-authored-by: Cursor <cursoragent@cursor.com>
1.3 KiB
1.3 KiB
title, status, created, updated, owner, branch, worktree, mutex
| title | status | created | updated | owner | branch | worktree | mutex |
|---|---|---|---|---|---|---|---|
| E1A notify shadow 与切换 | done | 2026-09-15 | 2026-09-15 | Cursor | fix/event-notify-cutover | - | events |
E1A notify shadow 与切换
目标
notify 消费者具备 shadow 覆盖门、live 唯一可见结果与显式 rollback;生产集群保持 off。
范围
- Goose 00041、
EmitVisibleDocumentEvent、docnotify.EventConsumer、Handler 与 Ack 同事务 - cmd/events 注册 notify(mode=off 时不 claim)
非目标
- 不把共享环境 notify 切 live
- 不删除 OnOutbox 闭包
- 不激活 FAV / workflow advance / projection live
步骤
- 从 E0B 后
dev开fix/event-notify-cutover - additive
source_event_id与可见结果唯一索引 - shadow dry-run + live 同事务 ack
- fixture N=30、quarantine、correlation、rollback
- 隔离库 PG + race + 报告
验收标准
相关链接
- Track E: ./2026-09-15-durable-event-track-e.md
- Report: ../../test-reports/2026-09-15-event-e1a-notify-cutover-test-report.md
证据 / 备注
隔离库 agent_rel_e1a 测完已 DROP。共享 event_consumer_modes.notify=off。