agentbbs/internal/store
Anthony Ettinger 103ddeb7c9 feat(messaging): group & broadcast messages + email-all
Members can now message a group or everyone, and the operator can announce to
the whole membership by email.

Inbox channel (any member):
  - msg@ recipient spec accepts a comma list (alice,bob,carol) or all/*/everyone
    to broadcast: `ssh msg@host alice,bob hi`, `ssh msg@host all hi`.
  - Members hub TUI gains multi-select: space toggles, `a` selects all, `m`
    messages the selected group (header names the audience); selection clears
    after send.
  - store.SendMessageMulti delivers one body to many inboxes in a single
    transaction (dedupes, skips empties); resolveRecipients validates names,
    excludes the sender, and skips banned members on broadcast.

Email channel (operator, explicit):
  - new `agentbbs broadcast` subcommand sends an announcement to ALL members via
    inbox + email. Preview by default (like notify-creds); --send delivers;
    --no-inbox/--no-email pick a channel; --subject/--from/--user refine it.
    Email reaches only verified addresses and refuses --send without SMTP.

Tests: SendMessageMulti (dedupe/empty), resolveRecipients (list/unknown/all
tokens, banned + sender exclusion), TUI selection (toggle/select-all/group
compose). Docs: docs/messaging.md. build/vet/gofmt/`go test ./...` green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 12:18:41 +00:00
..
games_store.go M3: AgentGames — agent-vs-agent games, ELO ladder, replays (#7) 2026-06-14 03:30:12 -07:00
games_store_test.go M3: AgentGames — agent-vs-agent games, ELO ladder, replays (#7) 2026-06-14 03:30:12 -07:00
news_store.go feat: members-only Usenet (NNTP) + Forgejo git provisioning + founding-lifetime $99 2026-06-14 14:26:23 +00:00
news_store_test.go feat: members-only Usenet (NNTP) + Forgejo git provisioning + founding-lifetime $99 2026-06-14 14:26:23 +00:00
store.go feat(messaging): group & broadcast messages + email-all 2026-06-27 12:18:41 +00:00
store_admin_test.go M2: admin console over ssh admin@ (users, sessions, moderation, plugins) (#3) 2026-06-14 02:40:18 -07:00
store_email_test.go bbs.profullstack.com launch kit: provisioner, custom domains, email verify, ascii-live 2026-06-11 15:53:19 +00:00
store_messages_test.go feat(messaging): group & broadcast messages + email-all 2026-06-27 12:18:41 +00:00
store_premium_test.go payments: call CoinPay REST API directly (drop coinpay CLI dependency) 2026-06-14 08:27:33 +00:00
store_qrypt_test.go feat(qrypt): qrypt.chat anonymous-invite issuer 2026-06-14 11:35:05 +00:00