Skip to main content

Crate blotter

Crate blotter 

Source
Expand description

Implementation of the blotter binary.

This library is not a supported API. Blotter’s compatibility promise is the CLI, the JSON envelopes, the stored JSONL record format, the exit codes, and blotter schema (see meta.contract). Every item here is public to structure the binary and may change in any release without notice. Integrate through the CLI.

Modules§

cli
commands
error
output
store

Structs§

Artifact
What a promotion says these experiences became.
Evidence
ListItem
Origin
Structured provenance (r49). A typed three-member struct, never flattened and never an opaque Value: a null published member reads as absent, a non-string one fails the line, and an unknown member survives in the log’s bytes without reaching any envelope.
PromotionItem
The promotion arm of list’s tagged union (r48). It carries no status, resolution, text, tags, impact, or evidence: a promotion has no lifecycle to filter and no friction text of its own.
Resolution

Enums§

ArtifactType
The closed promotion artifact vocabulary (r48). An unrecognized --artifact-type is rejected by clap as invalid_argument.
Disposition
How a cut’s resolution classifies it (r48). Cuts always carry one; dogears never do.
Impact
ItemStatus
LogEvent
Pattern
The two retrospect candidate patterns (r48/r51). Pattern detection and suggested intervention are separate axes: a pattern names what was observed, suggested names what kind of artifact might answer it.

Functions§

compute_dogear_id
compute_id
compute_promotion_id
The bl2 promotion identity (r48, r51): note stays outside the hash for r34’s reason — it is authored commentary, and a promotion whose note is reworded is the same promotion. sources are normalized exactly as tags are: ascending raw UTF-8 byte order, exact-byte deduplication, case-sensitive.
effective_now
format_timestamp
normalized
Ascending raw UTF-8 byte order with exact-byte deduplication (r48). The one normalization every hashed list — tags and promotion sources — runs through.
parse_before
parse_since
resolve_agent