Adds Absent, Symbol, ReadAnchor and read_window_is_bounded, the marker in value_types!, the workspace fixtures and the reads admission test. The golden file and the six published schemas are not regenerated yet, so the golden, schema and wire-schema tests fail at this commit (it builds). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1.3 KiB
Huginn's CultNet contracts
huginn.mind_request.v1 and huginn.mind_response.v1 are the organ's own wire
schemas, published from here because Huginn owns them. huginn-daemon serves
them on a cultnet.schema_catalog_request.v0; nothing else reads them.
Each file is serde_json::to_string_pretty of schemars::schema_for! over the
type of the same name in crates/huginn-mind/src/wire.rs. Regenerate by hand
and the test refuses it:
cargo test -p huginn-mind --lib -- --exact wire::tests::published_wire_schemas_match_derivation
compares file to derivation byte for byte.
The pipeline catalogue
index.json is the publication manifest for every schema here: the fourteen
epiphany.pipeline.*.v2 schemas, gamecult.persona_state.v0 and the two
huginn.mind_* wire schemas. The pipeline
schemas are derived from the value types in crates/eureka-pipeline and checked
byte for byte by its pipeline_published_schemas_match_derivation test. Each
document payload is [value], a one-element MessagePack array whose element is
the named map the schema describes. Text bounds are UTF-8 bytes and enforced by
admission, not by the schema. A new named field marked = absent (defaulted on read, omitted on write when empty) keeps
epiphany.pipeline.epoch.v2; a breaking change bumps the epoch, and the new
binary refuses the old store.