You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[lifecycle-RSK] RSK-05: Add the divergence comparison and a metric #1795
Design doc: docs/architecture/task-lifecycle-target-architecture.md (not yet on main)
Ticket plan: docs/architecture/task-lifecycle-run-state-kernel-tickets.md (not yet on main)
Context
Shadow mode must report disagreement. Before any read flips, the kernel must agree with the fields on real traffic. A rejected event is also a divergence, because after a flip the kernel would drop that write. Some windows in the code are known races. The design doc lists them under "Known code races".
Gate the comparison as described in the Rollout gate section. Do not gate the kernel.
Do not throw on divergence in production. Log only.
Exit criteria: a forced divergence in a test produces one log line and one metric increment. A forced R-3 window (an abort during the checkAutoApproval await, before #1803) produces a tagged mismatch, not an untagged one.
Tracking
docs/architecture/task-lifecycle-target-architecture.md(not yet onmain)docs/architecture/task-lifecycle-run-state-kernel-tickets.md(not yet onmain)Context
Shadow mode must report disagreement. Before any read flips, the kernel must agree with the fields on real traffic. A rejected event is also a divergence, because after a flip the kernel would drop that write. Some windows in the code are known races. The design doc lists them under "Known code races".
Developer Notes
runwith the projection from [lifecycle-RSK] RSK-04: Add the run field, write helpers, and the projection #1794, for the routed fields only. A field whose writes are not routed yet gets no events, so a comparison of it reports a false mismatch. Keep the routed fields in one list that each routing ticket extends: [lifecycle-RSK] RSK-06: Route latch and phase writes through events #1796 adds the latches andphase, and [lifecycle-RSK] RSK-10: Route stream, ask, and turn-field writes through events #1804 adds the stream, ask, and turn regions.taskId.Exit criteria: a forced divergence in a test produces one log line and one metric increment. A forced R-3 window (an abort during the
checkAutoApprovalawait, before #1803) produces a tagged mismatch, not an untagged one.Reversibility: additive observability.