zodia-circles needs p2panda-encryption for real group encryption, which
only ships at 0.7.0 and requires p2panda-core ^0.7.0 — the original
Phase D PRD's premise that this "wraps p2panda 0.6's group-encryption
primitives" was wrong, that crate doesn't exist at 0.6.x.
Header::timestamp was dropped upstream; replaced with zodia-ops's
OpExtensions carrying a Timestamp via the Extension trait, matching
p2panda-core's own documented extensions pattern. OperationStore lost
its log-id generic parameter, SyncHandle::publish became sync, SeqNum
narrowed to u32. The operations_v1.timestamp column was also dropped
from p2panda-store's schema, which broke prune_older_than at runtime
(caught by the existing pruning.feature cucumber scenarios, not by
compilation) — fixed by decoding the still-present header CBOR blob
per candidate row instead of filtering by a now-nonexistent column.
Full workspace test suite + the 16-scenario zodia-sdk cucumber suite
pass unchanged. Details in docs/prd/p2panda-0.7-migration.md.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>