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
Problem\n\nThe accepted #360 report still concentrates uncovered behavior in graphforge-exec/src/lib.rs and write_driver.rs, especially emitted CREATE identities, referenced-node validation, SET/REMOVE accumulation, mixed-write frontiers, and structured execution errors.\n\n## Objective\n\nProve reachable executor write and dispatch contracts through real plans and focused Arrow boundary tests.\n\n## Requirements\n\n- Cover emitted CREATE identity/property output, incomplete recorder state, referenced identity shapes, and persisted-node lookup boundaries.\n- Cover SET and REMOVE accumulation for node/edge, null optional rows, exploratory/ontology routing, duplicate rows, and malformed identity/value columns.\n- Cover mixed-write frontier, tally, parameter binding, invalid partition/child, cancellation/resource, and empty-input behavior where reachable.\n- Assert exact results and structured errors; do not change runtime behavior or add test-only branches.\n\n## Acceptance Criteria\n\n- [ ] Each selected executor contract has success, failure, and boundary evidence.\n- [ ] Missing, wrong, partial, and malformed write results fail tests.\n- [ ] graphforge-exec remains above its independent floor and materially reduces the canonical aggregate deficit.\n- [ ] Existing BDD, TCK, persistence/recovery, and concurrency suites remain green.\n\n## BDD Completion Scenarios\n\n### Scenario: Emitted CREATE rows cannot lose identity\n\nGiven minted rows with literal and computed properties\nWhen CREATE emits relational rows\nThen UUID, node id, type ids, labels, and properties align exactly per input row\nAnd incomplete recorder state fails before publication.\n\n### Scenario: Optional and malformed writes remain safe\n\nGiven null optional identities and malformed node or edge columns\nWhen SET or REMOVE accumulation runs\nThen null identities are no-ops\nAnd malformed non-null identities return structured errors without partial publication.\n\n## Testing\n\nUse executor module tests for pure batch boundaries and real execution-session tests for plans, publication, and error behavior. Run standard workspace gates and canonical coverage measurement.\n\n## Documentation\n\nNo public API documentation change expected unless a tested write contract is currently undocumented.\n\n## Non-Goals\n\n- Relational expression internals owned by the rel child.\n- Facade or storage-only coverage gaps.\n- Product fixes discovered by tests; file those separately.\n\n## Related Issues\n\n- Parent and canonical close gate: #360\n- Blocked by the relational-boundary child where executor cases depend on lowering.\n
Problem\n\nThe accepted #360 report still concentrates uncovered behavior in graphforge-exec/src/lib.rs and write_driver.rs, especially emitted CREATE identities, referenced-node validation, SET/REMOVE accumulation, mixed-write frontiers, and structured execution errors.\n\n## Objective\n\nProve reachable executor write and dispatch contracts through real plans and focused Arrow boundary tests.\n\n## Requirements\n\n- Cover emitted CREATE identity/property output, incomplete recorder state, referenced identity shapes, and persisted-node lookup boundaries.\n- Cover SET and REMOVE accumulation for node/edge, null optional rows, exploratory/ontology routing, duplicate rows, and malformed identity/value columns.\n- Cover mixed-write frontier, tally, parameter binding, invalid partition/child, cancellation/resource, and empty-input behavior where reachable.\n- Assert exact results and structured errors; do not change runtime behavior or add test-only branches.\n\n## Acceptance Criteria\n\n- [ ] Each selected executor contract has success, failure, and boundary evidence.\n- [ ] Missing, wrong, partial, and malformed write results fail tests.\n- [ ] graphforge-exec remains above its independent floor and materially reduces the canonical aggregate deficit.\n- [ ] Existing BDD, TCK, persistence/recovery, and concurrency suites remain green.\n\n## BDD Completion Scenarios\n\n### Scenario: Emitted CREATE rows cannot lose identity\n\nGiven minted rows with literal and computed properties\nWhen CREATE emits relational rows\nThen UUID, node id, type ids, labels, and properties align exactly per input row\nAnd incomplete recorder state fails before publication.\n\n### Scenario: Optional and malformed writes remain safe\n\nGiven null optional identities and malformed node or edge columns\nWhen SET or REMOVE accumulation runs\nThen null identities are no-ops\nAnd malformed non-null identities return structured errors without partial publication.\n\n## Testing\n\nUse executor module tests for pure batch boundaries and real execution-session tests for plans, publication, and error behavior. Run standard workspace gates and canonical coverage measurement.\n\n## Documentation\n\nNo public API documentation change expected unless a tested write contract is currently undocumented.\n\n## Non-Goals\n\n- Relational expression internals owned by the rel child.\n- Facade or storage-only coverage gaps.\n- Product fixes discovered by tests; file those separately.\n\n## Related Issues\n\n- Parent and canonical close gate: #360\n- Blocked by the relational-boundary child where executor cases depend on lowering.\n