Repository navigation
mountsync: checkpoint event-cursor pattern rejects non-evt_ ids (upstream:v1:...), breaking checkpoint flows once the event ledger lands - #532
Conversation
|
Important Review skippedBot user detected. To trigger a single review, invoke the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
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 |
There was a problem hiding this comment.
🔍 Devin Review: 1 flag
Not posted on this PR by your GitHub settings — view it in Devin Review. (Configure)
Relayfile Eval ReviewRun: Passed: 4 | Needs human: 0 | Reviewable: 0 | Missing output: 0 | Failed: 0 | Skipped: 0 Human Review CasesNo reviewable human-review cases captured Relayfile output. |
|
Relayflow: the adversarial review did not pass. This branch is not approved: the flow stopped here and did not mark it ready to merge. Review: PR #532 — mountsync checkpoint event-cursor pattern accepts
|
PR summary
What changed
upstream:v1:...event cursors in mountsync checkpoint validation while retaining support for0andevt_<n>cursors.:Nsuffixes, the 400-character payload boundary, malformed/control/whitespace inputs, mixedevt_/upstream:feeds, and destination checkpoint verification with an upstream cursor.Verification
go test ./internal/mountsync ./internal/relayfile ./cmd/relayfile-cliscripts/check-contract-surface.shgit diff --checkRollout note
This compatibility change must be released before AgentWorkforce/relayfile-cloud#293 begins emitting canonical upstream event IDs. If that ordering cannot be guaranteed, #293 should gate the new IDs behind a rollout flag until compatible Relayfile clients are deployed.
Checks
Relayflow ran this repository's checks (.relayflow/check.sh) and they passed.
What ran (.relayflow/check.sh)
What the repair agent found
Repair notes
an uncommitted Go 1.22.12 bootstrap to
.relayflow/check.sh, matching therepository's CI Go 1.22 toolchain line.
unrelated TypeScript SDK test
delivers the WS error event to handlers without throwing when ErrorEvent is undefined (Node): this runner exposesglobalThis.ErrorEvent, so the test'stypeof ErrorEvent === "undefined"environment assertion fails. No SDK production or test files were changed.
Fixes #531
Note
Medium Risk
Changes checkpoint cursor validation on migration-critical seal/verify/handback paths; behavior is additive for valid upstream IDs but stricter on whitespace-padded cursors, so ordering with cloud emission matters.
Overview
Extends checkpoint event cursor validation so mountsync checkpoints accept bounded
upstream:v1:...cursors alongside0andevt_<n>, unblocking checkpoint seal/verify/handback once the event ledger emits provider-namespaced IDs.The same regex is applied in CLI lifecycle, mountsync, relayfile store verification, and all three OpenAPI checkpoint cursor schemas. Event cursors are now matched without
TrimSpace, so padded or control-character cursors fail locally instead of being normalized into valid forms.Regression tests cover upstream and legacy cursors, length limits, whitespace/control rejection, mixed
evt_/upstreamcursor advancement, and destination verification with an upstream cursor. Completed trajectory index entries document the repair work but are not runtime behavior.Reviewed by Cursor Bugbot for commit c33fa50. Bugbot is set up for automated code reviews on this repo. Configure here.