Headline: registry/manifest/wire-shape schema migration. Apps now use
auki-session as the declarative entry point; auki-domain is internal.
Breaking changes:
- Protocols bumped to /auki/resources/0.2.0, /auki/registries/0.2.0,
/auki/stream/0.2.0. Old clients cannot speak the new format.
- Registry entries gain peer_id; disk paths include a peer_id segment.
- SensorBody::PointCloud renamed to Rangefinder; point_cloud is now a
sensor.type. New SensorBody::Rf variant. Every body has a type field.
- Manifests gain source_peer_id + writer_peer_id (data origin vs file
writer split, required by materialization).
- Catalog row reshaped: variant + sensor/pose blocks + manifest pointer.
SensorStreamResource / TransformEdgeResource / PoseStreamResource
deleted. Static transforms are now sealed one-sample pose logs.
New:
- crates/auki-session — declarative app API. Session, register_*,
register_*_log, catalog(), join_domain. materialize_remote_log and
resolve_static_transform stubs (full impl pending).
- bindings/python/auki-session-py — Python mirror of auki-session.
- /auki/resources/0.2.0 catalog rows carry source_peer_id +
writer_peer_id so materialized re-serving works.
Known issues:
- bindings/python/auki-session-py: with_storage_root regenerates the
session_id ULID instead of mutating in place (the wrapper calls
Session::new under the hood). Workaround: call with_storage_root
before any register_* work. Fix tracked separately.