Skip to content

plugin-auth: auth SMS (OTP / invite texts) and request-less auth mail keep the deployment locale — sys_user.locale exists now and is not read #14762

Description

@os-sam

Blocked-by: #13881

Observation (found while implementing #13881; not fixed there — scope fence)

#13881 lands sys_user.locale as a first-class column and moves the notification locale (service-messaging: email / inbox / SMS channels) to a per-recipient resolution: sys_user.locale → deployment default. It deliberately does NOT touch plugin-auth's own sends, which keep their existing ladders:

Why it is its own card

The 2026-09-01 ruling on #13881 names the messaging seam (email-channel.ts) as the insertion point and the triage fence says the messaging path ends with exactly one per-recipient read point. Adding rungs to plugin-auth's ladders is a second surface with its own precedence question (does the user's stored locale outrank the request's Accept-Language for a signed-in user's own sends?) that the ruling did not decide.

Suggested shape (for triage, not a ruling)

  • OTP SMS: the recipient IS the user; read sys_user.locale off the row sendPhoneOtp already has, fall to the deployment default (same normalizer as @objectstack/service-messaging's normalizeRecipientLocale — refuse the literal undefined shape).
  • Request-less mail to an existing user: same rung, between request and deployment.
  • Both keep the documented en-US floor; nothing dead-letters.

Refs: #13881 (column + messaging chain) · #14641 (invitation rung) · #14319 (request rung) · #2815 (closed; original SMS locale card).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions