Huginn/schemas/cultnet/README.md
Meta Vens 44c010c9da Leaf: CodeLocation.symbol and CutSpec.reads, additive at epoch v2 through the value_types! = absent marker
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>
2026-10-09 20:29:53 +02:00

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.