v1.4.0fossic2026-06-21

Phase 8 — ProjectRegistered + RelayHeartbeat event-sourced project discovery primitives

Two new system event types (ProjectRegistered, RelayHeartbeat) emitted to _fossic/system via a new registry.rs module. Substrate-side emit only — consumer coordination (fossic-coordinator) is future work. Python relay.py updated with startup emit and daemon heartbeat thread.

v1.4.02026-06-21
  • ·registry.rs: substrate-side emit-only helpers; receives &mut SystemStreamWriter, no Store/StoreInner dependency
  • ·Both events carry indexed_tags={"source_store":"<name>"} (required for future coordinator filtering — enforced by test)
  • ·project_registry_writer: lazy Mutex<Option<SystemStreamWriter>> — same pattern as reducer_system_writer; dedicated connection, relay threads never contend with dispatcher or reducer writers
  • ·fossic-py: PyO3 bindings + typed Store wrappers; RelayAgent emits ProjectRegistered on startup, spawns daemon heartbeat thread (default 5s interval)
  • ·Heartbeat CCE uniqueness confirmed by test: distinct uptime_us values → distinct CCE hashes → distinct events