- Shipped
- August 3, 2026 at 1:28 AM UTC
- Author
- Kamo
- Commit
- a811ebb
Signing dates were rendered in whatever zone the client defaulted to, so an envelope expiring 2026-08-03T05:00Z could read "Aug 3" to a Pacific signer for whom the link is already dead on the evening of Aug 2. SigningSession now carries a server-resolved IANA timeZone: the recipient's own Member.timezone when they are a member and have set one, else the sending Organization.timezone, else UTC. SignerZone is a pure resolver with tests, including one that asserts every TimezoneType maps to its own zoneId so a new enum value cannot ship a client-side RangeError. Also fixes SigningSession.locale, which emitted the enum name ("SPANISH") rather than the BCP-47 code ("es") used in the signing URL's locale segment.