fix(exec): preserve authenticated owners in Cypher property mutations - #1245
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Warning Billing warning: we have not been able to collect payment for this subscription for more than 72 hours. Please update the payment method or pay any pending invoices in Billing to avoid service interruption. 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 |
Ordinary Cypher SET/REMOVE could publish a second property owner for edges created through public construction, causing the immediate query to refuse corruption. Resolve committed edge owners through the same authenticated, bounded resolver used by composite publishing; keep pending creates on their own route and batch replacement-map key reads.
Staging uses current workspace rows and live counts, with pinned semantic declarations for a qualified route's first property write. This preserves mixed MERGE effects without mixing generation authorities. Empty accumulators add no property-admission scan. Typed scans retain the resolved storage route needed for mutations.
Validation:
make pre-push-fastpass. Independent source review found no actionable findings.Frozen-release evidence in docs/development/evidence/cypher-property-ownership-1224.json records nine passing uninstrumented lifecycle processes plus six separate sampling/tracing processes. CPU ranges are 4.20–4.21 / 1.57–1.60 / 1.07–1.16 seconds across the three fixtures, with process RSS, filesystem counters, syscall bytes and inode-deduplicated sampled disk peaks recorded separately. Logical reader budgets are not native-memory bounds; disk sampling excludes unlinked open files. The original baseline refuses corruption, so its incomplete lifecycle is not a valid latency baseline. Failed staging prototypes and supplementary collectors are retained honestly.
Initial CI passed 99/101 Bazel targets and all independent binding/platform/quality lanes. Its two failing targets contained old expectations for the intentional route projection; those assertions and two snapshots are corrected here. Final exact-head CI remains the merge gate.
Closes #1224