Skip to content

entity-executor answers RevisionConflict before an input-guarded refusal #50

Description

@b10x-bot

ESS (since 0.41.0, beyond10x/ess#209 and #227) answers an input-guarded refusal before the existence of the addressed row: a command sent a refused input for an identity no row carries, or a creating command sent a refused input for an identity a row already carries, answers the declared refusal.

entity-core agrees: decide_before_load (crates/entity-core/src/runtime.rs) decides input refusals before any row is loaded. entity-executor does not: every write goes batch → decide_and_append, which loads the row first (crates/entity-executor/src/lib.rs, around the load in decide_and_append and decide at 432-470), so creating over a stored row, or operating on a missing row, answers RevisionConflict before any branch or input refusal is evaluated.

Expected: the executor evaluates input-guarded refusals (the kernel's decide_before_load) before the existence check, so a refused input answers its declared refusal whether or not the row exists, matching ESS and entity-core.

Found while writing the single precedence order for ESS (beyond10x/ess#227).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions