ghostguild-org/server
Jennie Robinson Faber b1d8cb1966 feat(slack): autoFlagPreExistingSlackAccess helper
Best-effort lookup of an activating member's email in the Slack
workspace. On a hit, flips slackInvited:true and stamps slackInvitedAt
without sending a fresh invite. Races against a 3s timeout and swallows
all errors so activation never blocks on Slack.

- Promotes SlackService.findUserByEmail from private to public so the
  helper can call it without a wrapper.
- New activity-log action: slack_access_auto_detected (actor = subject).
- Idempotent: short-circuits when slackInvited is already true.

Callers wired in next commit.
2026-04-29 12:13:59 +01:00
..
api fix(helcim): read dateBilling on subscription CREATE to populate next-billing cache 2026-04-27 19:44:35 +01:00
config feat(contributions): rewrite server config as preset-based helpers 2026-04-19 18:12:44 +01:00
emails feat(payments): add upsertPaymentFromHelcim helper with idempotent insert 2026-04-20 13:15:38 +01:00
middleware refactor(rate-limit): delegate auth limiting to handlers, add dev bypass 2026-04-27 19:18:34 +01:00
migrations refactor(community): rename Community Connections → Community Ecology 2026-04-09 09:07:15 +01:00
models refactor(member): replace slackInviteStatus with slackInvitedAt 2026-04-29 12:11:25 +01:00
plugins refactor(env): unify required-env validation through useRuntimeConfig 2026-04-26 14:47:02 +01:00
routes refactor(env): unify required-env validation through useRuntimeConfig 2026-04-26 14:47:02 +01:00
utils feat(slack): autoFlagPreExistingSlackAccess helper 2026-04-29 12:13:59 +01:00