base_state_resolution
Term URI: https://w3id.org/agent-evidence/vocab/v1/base_state_resolution
Section: posture_and_coverage. Criticality: critical.
How the before-state root of an observed interval was obtained, declared per record as one of three: supplied, the base was named in the request and is a full-length lowercase hexadecimal object name; authority_recorded, the base is the one the state authority itself records for the change, which for a version-control authority is the merge-base anchor and is stable across merge and squash rewrites; empty_tree, the interval began from no prior state at all and the base is the empty-tree constant of the declared object format. Resolution is ORDERED. A producer MUST try supplied, then authority_recorded, then empty_tree, and MUST refuse to emit the record where none of the three yields a base. A producer MUST NOT infer a base from the parents of the named state, which are ambiguous for merge and squash rewrites. A guessed base produces a record that verifies cleanly over an interval nobody chose. A before-state root is therefore unconditionally REQUIRED. The empty_tree case is what makes one always available, so a missing before-state root is a refusal and never a permitted omission. The empty-tree constant is a property of the object format and MUST be read from the format the record declares. For git's SHA-1 object format it is 4b825dc642cb6eb9a060e54bf8d69288fbee4904. For git's SHA-256 object format it is 6ef19b41225c5369f1c104d45d8d85efa9b057b53b14b4b9b939dd74decc5321. A record carrying the SHA-1 constant under a SHA-256 object format names an object that does not exist, and a verifier MUST reject it. empty_tree is permitted only where the authority shows the prior state was empty, which for a version-control authority means a parentless commit. It MUST NOT be used to mean that the observer did not enumerate the prior state. A record using it that way satisfies every other rule above and misstates the interval, which is why the permitted condition is normative. The state authority MUST be named in the record, for all three values. And empty_tree MUST NOT be resolved from the observer's own first sight of the state: a first observation establishes that the observer saw nothing earlier, never that nothing was there. A volume pre-populated by an image and mounted fresh is the case this closes, because it presents to a first observation exactly as an empty one does. Where no authority independent of the observed party can show the prior state was empty, the producer MUST refuse the record under the ordered rule above.
Registered values
https://w3id.org/agent-evidence/vocab/v1/base_state_resolution#suppliedhttps://w3id.org/agent-evidence/vocab/v1/base_state_resolution#empty_tree