Files
zeekay e9634a77dd Base sends no auth mail, because it has no auth flow to send it for
The verification and email-change templates were the last of local auth. Their
endpoints went in the IAM-native rip — bindRecordAuthApi keeps auth-methods and
auth-refresh and nothing else — so both answered 404 for every deployment, not
only IAM ones, and their buttons addressed a route in an admin SPA that no
longer exists. Re-pathing them last commit made them honest; this removes them,
along with everything that existed only to serve them.

That turned out to be a lot, and each piece was already dead on its own terms:

  core.EmailTemplate and the two collection fields — no other user
  the mails package entire — its two functions were the only callers of its
    own template resolver and its own html layout
  the $mails JSVM namespace — an empty object once the two binds went, and its
    type declarations advertised FIVE helpers, three of which (password reset,
    OTP, auth alert) were removed in that same rip and never bound at all, so
    hook authors have been reading a contract for functions that do not exist
  OnMailerRecordVerificationSend / OnMailerRecordEmailChangeSend — nothing has
    been able to fire either since the mails package was their only caller
  core.MailerRecordEvent — the type those two hooks carried

Nothing loses a capability. $app.newMailClient().send() is the general sender,
and it is what an app binding its own confirm route would have used anyway; the
two removed binds were convenience wrappers over it.

POST /v1/settings/test/email stays and gets better. It rendered a template
against a throwaway record, so "can this deployment deliver mail" was answerable
only through a flow that no longer exists. It sends a plain message now — no
template, no collection, no record, no token — which is the question an operator
has after editing SMTP settings.

The collection fields are DEFAULTS applied at creation; a collection stores its
own copy, and an options key the struct no longer declares is ignored on read,
so nothing already deployed changes shape. types.d.ts is regenerated by its own
generator rather than hand-edited (the generator still listed the deleted
package, which is why it had to be fixed first).
2026-08-10 21:14:46 -07:00
..
2025-02-10 11:58:49 -06:00
2025-02-10 11:58:49 -06:00
2025-02-10 11:58:49 -06:00
2025-02-10 11:58:49 -06:00