Skip to main content

Module vocabulary

Module vocabulary 

Source
Expand description

GAP-SG-202 / GAP-SG-203: resolving the caller’s keys against the envelope BEFORE any predicate runs.

Until v1.2.6 a key the envelope never carried was indistinguishable from a key whose value happened to be absent. --select body_length read answered with an envelope missing the field, --filter chave_errada=x list answered count: 0 over 1892 memories, and both exited 0. The caller read its own typo as “the data is not there”.

The cure is to ask, once, where each requested key actually lives:

  • KeyOrigin::Element — the predicate has something to work on.
  • KeyOrigin::EnvelopeOnly — the key names a member of the envelope, not a field of the elements. --filter integrity_ok=false health is this case: integrity_ok is a top-level scalar, the predicate was redirected onto the checks array, and all eight checks were deleted while integrity_ok: true survived in the payload contradicting the very predicate.
  • KeyOrigin::Absent — the key exists nowhere the surface can see.

§Cost

Resolution scans EVERY element and allocates nothing: filter::resolve is a pointer walk over borrowed data. Sampling here would be the wrong economy — a key present only in an unsampled element would be reported absent, and the gate would refuse a legitimate request. Sampling belongs to the suggestion path alone, which runs only after a key has already failed.

Serial by decision, not by omission: the parallelism rules forbid paying coordination overhead for work smaller than it, and this is a handful of pointer walks per requested key.

Structs§

Scope
The vocabulary one request is resolved against.

Enums§

KeyOrigin
Where a requested key was found.