Repository navigation
Validate assignees before atomic Calendar batch creation - #860
NewWorldVenture wants to merge 1 commit into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
|
Finding: incomplete keyed batch replay is reported as success. In createEvents, any nonempty findByKeys result returns ok(seen.data), even when fewer saved rows match than the requested batch. The PR test “preserves existing partial keyed settlement without rewriting the batch” codifies that behavior. Batch idempotency keys are derived by input index, so a replay with the same key and a longer batch can match the old prefix and silently omit the new rows. Synthetic repro: create two events with family A and key K, then call createEvents again with the same family/key and three inputs. The probe finds the two existing indexed keys; this branch returns {ok:true, data:[two rows]} without inserting the third. Please reject/reconcile an incomplete key vector rather than treating it as a complete replay, and add a longer-same-key regression test. |
Bulk Calendar creation now checks that every supplied assignee has a positive member receipt in the server-selected family before its single atomic insert. It deduplicates the lookup while preserving row order, normalized composition, null/omitted assignees, index-derived keys, settled keyed retries and losing-insert winner recovery. Only createEvents changes; this draft is stacked on #859.
Validation: the same 35-case actual SDK synthetic suite passes on the candidate and ordinary root configuration with private source/observer variables absent. The exact parent has 19 semantic refusal failures, four new physical lookup-contract failures whose healthy output/payload remain preserved, and 12 passing original controls. All original16 assertions are retained. All70 paired finite request/payload/activity vectors are checked; full8GB nonincremental types and scoped two-file lint pass.
The tests use inert .invalid transport with SDK Auth bypassed. No live database, RLS, Auth/context, provider or full workflow was exercised. The preflight does not establish an atomic SQL family-reference invariant or close member reassignment between lookup and write. Existing collection-receipt and partial-settlement behavior remain separate obligations.