Skip to content

Support identity-backed Slack mentions #1163

Description

@sentry-junior

Junior cannot reliably turn a person reference—name, email, or GitHub username—into a real Slack mention. The durable identity work in #733 provides a foundation, but mention resolution and rendering still need an explicit product/runtime contract.

Gaps

  • Model people separately from provider identities: one canonical user may have Slack, GitHub, and email identities; Slack IDs must be scoped by workspace and provider IDs must have uniqueness constraints.
  • Define trusted association paths. Slack profile email can seed a match, but GitHub email is often private or non-unique; support explicit/verified linking and avoid silently merging users on weak evidence.
  • Ingest and refresh Slack profile state (user ID, email, display name, deleted/deactivated status) and GitHub username/account ID. Preserve aliases so renames do not break resolution.
  • Expose a narrow resolver to the agent: lookup by Slack ID, email, display name, or GitHub username; return canonical identity plus the workspace-specific Slack user ID. Ambiguous or missing matches must fail with candidates/a clarification, not guess.
  • Render mentions as Slack mrkdwn <@SLACK_USER_ID> at delivery time. Do not rely on the model to synthesize IDs or plain-text @name strings.
  • Add authorization/privacy rules around exposing email and cross-provider identity data; resolver results should return only what the task needs.
  • Define behavior for guests, bots, deleted users, users outside the current workspace, and multiple Slack workspaces.
  • Add observability and tests covering exact match, ambiguity, renamed accounts, stale/deactivated identities, cross-workspace collisions, GitHub-to-Slack lookup, and output escaping.

Related

Requested by David Cramer.

--

View Junior Session in Sentry

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions