AI-call consent chips and dialog on lead and contact phone numbers
One load per record (useAiVoiceConsent) feeds a chip beside every phone number on the lead page and the contact panel; the chip opens a dialog that shows the co...
Mail pack — read, search, threads, send, reply, forward, drafts, move, flags
SP04 Task 17 — ruling SP04-T17 (pin is an INSERT, retried reads, best rank wins, canonical model ids)
SP13 Task 7 — ruling SP13-T7 (aiVoice verdict guarded in the capabilities answer)
The roster, participants, history and send survive a database conflict too
Completes 279a389. After it shipped, production logged the same YugabyteDB 40001 "Restart read required" on Exec2Exec's roster (09-27 16:00Z, and three times ea...
SP10 Task 40 — ruling SP10-T40b (approval changes filtered before the org-change debounce)
Filter approval changes before the org-change debounce (SP10)
useOrgChanges coalesces a burst and hands onChange only its last frame, so testing isApprovalChange on that frame lost an APPROVAL followed within 400 ms by the...
Text helpers, id-safe projections and the fake Kamo services harness for packs
HtmlText lays mail HTML out the way a browser shows it (one jsoup walk: collapsed source whitespace, br, block and paragraph breaks, cells, pre); ThreadIds repr...
Catalogue and resolve endpoints for the charter editor
S1 GET /api/security/charter/catalog and S3 POST /api/security/charter/resolve (spec 4.8). A member draft refused by S6's edit rule answers with S6's bodies (re...
SP04 Task 16 — ruling SP04-T16 (transient-DB retry around member facts and policy reads; added tests)
SP10 Task 8 — ruling SP10-T8 (SecurityService client acts only on SecurityService's own verdicts)
SP14 Task 9 — ruling SP14-T9 (PIN lost race left to the unique index; window, anchor and bridge-off tests)
Like what you see shipping?
All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.
