- Shipped
- November 11, 2026 at 12:30 PM UTC
- Author
- Kamo
- Commit
- a66d196
- Workspace rate lock: when the loan officer recorded an APR on the pricing snapshot behind a loan-desk lock with the SAME rate, the posture carries it as apr (null otherwise, so the portal keeps its honest pending label). - Lead PATCH: clearFields lets a borrower take back a stated fact with "I'm Not Sure" (a null alone means 'not sent'); only claimed-estimate fields are clearable, never names, contact details or consent. - Gift PATCH is a true PATCH (shared-lib patchGift). - Portal text consent keeps up to 2000 characters of the wording the borrower saw (column widened by hand DDL). - Borrower Guide settings carry smsConsentText (lender's own wording), exposed on the portal chat config's guide block. - Loan-team photos are served from theme.<lender's verified domain>, else the platform's, instead of guessing from the request host (the portal calls through its BFF, and a custom portal domain may have no theme record). - Ratchets: the unauthenticated-endpoint scan recognises DomainController's resolveTargetOrgId, CharterHistoryController's access() and the DocuSign Connect HMAC check (and drops a now-guarded baseline line); the org-graph coverage test allow-lists RoleTemplateRoles, whose caller announces ROLES.
