Decisions, lessons, blockers. Append-only. Update as we go.
Decided
git3.techno-world.net/lrosales/broad-announce (private).companies.fcm_shared).info | warning | critical | inminent_colapse.
Only inminent_colapse bypasses quiet hours.(source_id, dedupe_key), attach
dedupe_count so user sees "×N in 60s" not N pushes.Open
/start <email_or_phone> and we match against
individuals.email / phone_e164. Open question: do we let
unknown users self-register via the bot, or do we require an
admin to create the individuals row first? Toward stricter
is better (admin invites, bot confirms).title_key / body_key model, or
accept pre-localized strings per-recipient from the source.
Starting simple: source sends a single title/body; we
do not localize in v1. If a customer needs localization, they
send the alert multiple times (one per locale) keyed on
subscriptions.locale. Re-evaluate at v2.Lessons (already)
alerts.<company_id> is fine; alerts.<company_id>.<source_id>
would let us scale router consumer groups per source. Locked
in §5 of ARCHITECTURE.md.