feat(durable): define generation-fenced cancellation race record - #370
feat(durable): define generation-fenced cancellation race record#370seonghobae wants to merge 3 commits into
Conversation
|
Warning Review limit reached
Next review available in: 39 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Objective
Advance issue #312's versioned cancellation semantics with one path-disjoint durable-domain state machine. A cancellation request must bind server-authoritative tenant/job/generation identity, and the cancellation-vs-completion race must resolve monotonically so a terminal winner cannot later be rewritten by a stale opposite outcome.
Test-first state
This Draft starts intentionally RED at exact test-only head
a4312bf3b0305dc92bafc0b1efcc3f29e4cd50d9on protectedmain55d7ae8647208e301f282350f076eeddaba61d11.ConversionCancellationRecordTestrequires tenant/job/generation/request identity, normalized bounded tenant authority, exact generation fencing, monotonic cancellation-vs-completion winner semantics, idempotent repeated terminal acknowledgement, and fail-closed timestamps/inputs. The production types do not exist at this head, so Maven test compilation is expected to fail at that exact boundary.Scope
New durable-domain cancellation state/record plus focused tests only. This does not yet persist cancellation requests, expose an HTTP endpoint, terminate a converter process, wire worker lease fencing, change the current job status model, or claim issue #312 completion. It does not overlap the active viewer/pdf.js resource-cancellation PR.
Acceptance
Observe exact-head RED -> smallest immutable production implementation -> exact-head
mvn -B --no-transfer-progress verifywith zero missed owned production coverage/public Javadocs -> CI/Security Scan/SAST/fuzz -> current reviews/threads/live-base refetch. Keep Draft until GREEN exact-head evidence exists. Independent write-authorized approval remains a separate protected-merge gate.