Skip to main content

Module capture

Module capture 

Source
Expand description

ev decide — walk the trailing args left-to-right into a draft, validate, append a child.

Structs§

Decision
An assembled, validated decision ready to be appended to the ledger — the single shape both ev decide (capture.rs) and ev migrate (migrate.rs) hand to append. It carries exactly the hashed payload (observe, decision, grounds) plus the bookkeeping fields; append owns the one compute_id / write_tick / R3-lint path so neither caller can fork the hashing.

Functions§

append
THE one place a decision becomes a tick: R3-lint the free text, read HEAD as the parent, stamp held_since, build the Tick, compute its content-addressed id, and write+advance HEAD. ev decide and ev migrate BOTH funnel through here so there is a single hashing path — a golden id can only move if this function moves (guarded by golden_vectors + the capture/migrate tests). The caller is responsible for having already resolved blame and validated the grounds.
harvested_test_check
The migrate-only harvested-binding constructor: build a Check::Test carrying NO counter-test (counter_test: None), as used when backfilling an existing test_invariant_*/test_br_* test whose falsifiability was never proven. You cannot half-harvest: the FULL 3-key liveness (≥1 platform, triggered-by, surface) stays MANDATORY — only the counter-test is dropped. There is no --counter-test flag on this path; the decide (capture.rs) and ev guard (guard.rs) paths stay byte-for-byte strict and still reject a vacuous binding. The honesty debt (the missing falsifiability proof) is surfaced later at ev check, never hidden.
run