Skip to content

v2.0.0

Choose a tag to compare

@github-actions github-actions released this 22 Apr 22:54
· 1072 commits to main since this release
feat(topic)!: ownership-tier rewrite — v2.0.0

Replace single fact/5+hope/5 builder with three ownership-tier builders: realm_fact/realm_hope, org_fact/org_hope, app_fact/app_hope. Sentinel literals _realm and _org fill elided publisher slots while keeping fixed 5-token arity.

Why: the old single-builder API forced realm-owned facts (membership, identity) into per-app namespaces, making the realm authority masquerade as each app and silently breaking cross-app subscribers. Real-world consequence: hecate-daemon listened on io.macula/beam-campus/hecate/membership/revoked_v1 while macula-realm published io.macula.membership.revoked — never matched. Most of the realm/daemon membership lifecycle has been silently dead.

Breaking: removes fact/5, hope/5, build/5, app_id/0 type. Greenfield migration — no production users, no deprecation window. parse/1 now returns tier inference; mismatched sentinel combinations rejected at both build and parse time. is_system_topic/1 tightened to _mesh. prefix only.

46 new eunit tests cover all three tiers, sentinel rejection, parse-tier inference, segment validation, system-topic exemption, per-tier roundtrip. Doc guides (TOPIC_NAMING_GUIDE, PUBSUB_GUIDE, RPC_GUIDE) updated to canonical builder usage; old dot-form recommendations removed.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>