Partial condition PATCH can't silently clear the blocking flag; template blocking default honored; publish after commit

Fixkamo-shared-library
Shipped
July 7, 2026 at 11:42 PM UTC
Author
Kamo
Commit
27e3383

**************** boolean -> Boolean so a PATCH that OMITS the field is distinguishable from an explicit false. LoanConditionService.update now null-guards **************** (a partial update e.g. of just the title no longer wipes them), and a true->false downgrade of a blocking condition requires the underwrite right (new callerCanUnblock arg) — otherwise a processor could flip the flag off and advance/fund past an OPEN underwriting condition with no override and no audit trace. create() now inherits the template's blocksAdvancementDefault when the caller didn't specify one (a "clear title" template no longer instantiates as non-blocking), and defaults to blocking when unspecified. LoanPipelineService.transition now publishes the STATUS_CHANGE event in an afterCommit synchronization, so a rolled-back transition (commit-time serialization failure) never emits a phantom webhook to external subscribers. The milestone payload is scalar-only, safe to convert post-commit.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing