v0.10.0vfossic2026-06-12

Spec clarification for purge semantics and branches

Clarified purge semantics in spec to read-path removal language, added canonical BranchInfo field documentation, documented the default branch convention, and added the register_upcaster docstring.

v0.10.0v2026-06-12
  • ·FOSSIC_V1_SPEC.md §9.3 and §16.8 rewritten: purge removes events from the read path entirely; the Purged audit event is in _fossic/system, not the original stream
  • ·BranchInfo canonical field table added to §8 — .id and .lifecycle confirmed as correct field names (not .branch_id or .status)
  • ·Default branch convention documented in §8: list_branches returns empty for streams with no forked branches; the implicit main trunk is always accessible
  • ·Tilde expansion paragraphs added to §4.2 and §4.3: Store.open uses shellexpand at the binding boundary; os.path.expanduser() is redundant
  • ·register_upcaster docstring added to fossic-py: (payload: dict) → dict signature, fires at read time, UpcasterChainGapError on chain gap