Goals read the shared dial count, and each-member goals
A call figure now comes from DialTally, so Home and the scoreboard agree: opening the dialer alone is no longer a call, and first-text time is the middle time r...
The cockpit, goals and per-loan money
A member's call list and pipeline counts, an organization's goals measured from the permanent records, and a loan's revenue and cost in the organization's own c...
An SI's scheduled floor duty, a person's lead from a capture, and the owner's call on SI loan access
The duty and its tool scope commit together. Only the org owner, in their own session, may change SI_LOAN_ACCESS.
Rebuild for the two-systems guard finding a borrower by phone and email
The outreach check applies the lender's mortgage switches to stream sends
Automated and approved loan moves answer to the linked-loan rule
One LinkedLoanRule now decides for stage moves and for loan milestones. With no person a loan linked to an external LOS does not move. A review approval moves o...
Keep DKIM verified on a sweep, as SPF is
dkim_verified only moved when an owner reopened the DKIM card. It now decides whose name an org's mail carries, so a published record has to count by itself.
Rebuild for a stream's email keeping the org's text hours
OutreachCheck lives in the shared library, and this service answers it.
Prove the pipeline controllers refuse a caller with no session
The ratchet could not see their guard, so it now recognizes pipelineAccess.orgId, and a new test calls all 21 handlers with no session and requires a 401 before...
A lead's stage and its loans follow each other, switch by switch
Both directions are off until a lender turns them on, and the map is org data on the stage. Loan to lead: a stage follows the least advanced loan, heard off th...
Streams move leads through the pipeline's system move and ask OutreachCheck
The lead outbox bean and the internal actions automation-service calls
Lead changes reach the outbox on the lead's own transaction, inside a savepoint, and cost nothing for an org with no published stream. Lead writes and loan move...
Pipelines, board, stage moves, dropdown fields and saved views
Rights 661-664. Dark by default: nothing changes for an org with no pipeline or fields. The board shares the grid's permission floor and filters, and each colum...
The lead's contact facts, Stop all outreach, and an organization's contact rules
GET **************** and its outcome, stop, resume, consent and check actions, under the same read gate as the Communications tab; /api/security/contact-rules f...
A lead's loan rollup, and corrections to deals and leads
A lead holds many loans, so stop treating one as the lead's. - The legacy Arive path took the lead's newest application, which could already speak for anothe...
A mail-only domain, exempt from the one-domain rule
An organization that already has a domain could not add an alias domain: POST /domains refuses a second root (ONE_DOMAIN_PER_ORG), and that is every organizatio...
Forget an invoice's expired card payment page
An abandoned Stripe Checkout page (it expires unpaid after 24 hours) stayed on the invoice for good, so the invoice looked mid-payment: it could not be updated ...
Send an updated invoice, and show the customer everything they owe
- Sending an invoice updated since it last went out uses the new commerce.invoice_updated email: what changed, the old and new amounts, the new due date, an...
An added member's welcome lets them set their first password
A member an administrator adds has no password, so the plain WELCOME's Sign in button led nowhere. Send WELCOME_SET_PASSWORD instead when the account has no pas...
My Bill — an organization owner's own bill from the seller's ledger
GET /api/security/pos/my-billing answers the owner's state (current, due, overdue), open invoices, the estimated next renewal, past invoices, the seller's remit...
Mark the adverse-action clock's Spring constructor, so SecurityService boots
With a second (test) constructor and neither marked, Spring looked for a no-argument one and the new pods crashlooped; the older pods kept serving.
Pricing, capital and servicing policy tabs load before a first version is published
GET **************** built its body with Map.of("active", <active or null>, "history", ...). Map.of refuses null, so for any organization that had not published...
Read one SI decision for its review trail
GET **************** what the SI decided, why, how sure it was, the stage and function, the gate's result, and the loan it is on — only for a decision on one of...
Name loans by borrower and loan number from their loan-file ids
GET **************** (at most 200): borrower name and loan number (the application id) for each, staff only, own-loans aware. For the consoles that only hold lo...
Find a loan by borrower name or loan number
GET **************** — up to 20 (max 50) of the org's applications whose loan number starts with the digits typed or whose borrower's first, last or preferred n...
A person's denial starts the ECOA notice clock, when the lender tracks it
Only an automated-underwriting decoder armed the 30-day adverse-action clock, so a loan a person denied in Kamo never showed a notice owed on the Adverse Action...
An edit never creates an older loan in the external MLOS
Any successful write under /mortgage-apps/{uid} queues an outbound sync, and a loan with no link was then created in the provider whatever its age — so editing ...
The KamoUniverse Assistant skill's client always makes a personal Alexa link
A second Alexa skill (custom only, so Alexa voice profiles work) links through Kamo OAuth client iot.alexa.assistant (same IOT_ALEXA purpose, same vendor redire...
Every automatic MLOS email and loan change waits for the lender's switch
A lender running its loans in another loan origination system (Harmony with Arive) must not have Kamo writing to its borrowers or changing its loans on top of t...
A terminated SI set back to Active is re-hired as the same SI (TPSIREHIRE)
Owner 2026-10-28: terminated SIs are re-activatable like people. Active on a terminated SI's status now runs AiLifecycleService.rehire after the rest of the sav...
An empty PKCE pair is no PKCE, so Google Home can link without it
kamo-login forwards parameters the client did not send as empty strings; the authorize check took "" as a challenge and told Google (require_pkce off, sends no ...
Google Home account linking — an IOT_GOOGLE principal provider and Google's redirect URIs
IOT_GOOGLE is the Alexa voice-link provider with assistant GOOGLE on I-A1/I-A2 (one link table in IoTService). The client admin takes a Google Cloud project id ...
An SI may act through its higher-up's own account on their authenticated order
TPONBEHALF (owner 2026-10-28), the NO INSUBORDINATION RULE extended: on an authenticated direct order, the SI may use everything the requester can do under thei...
A short member session for the member speaking on an Alexa link, and voice turns as order references
Voice Assistant R3: POST **************** {orgId, memberId, linkId, grantId} -> {***, expiresAt} (X-Internal-Auth = IOT_INTERNAL_AUTH_SECRET). Minted only for a...
Enforce own-loan access; Team Members default to their own loans
MLOS endpoints now tell apart members who see all of the organization's loans (View Mortgage Pipeline, or god mode) from members who hold only View Own Mortgage...
The Alexa consent carries whose link it is, the place and "What can Alexa use?" to IoTService
Voice Assistant program (P1-6, P2-8, P5-3): LinkChoice gains ownerKind (ORG | MEMBER), siteId and grantChoice, shape-checked here and judged by IoTService; the ...
Owner and administrator changes follow one set of rules; another member's avatars are theirs
Leadership (OrgLeadershipService): - GET/PATCH **************** for the profile page. - PATCH .../access owner changes go through the same rules (an administrat...
Name the status endpoints' caller lookup so the endpoint ratchet sees it
Terminate an SI from its status, status counts, no deletes on /account
- An SI's Terminated status runs the SI retire lifecycle after the rest of the save (runs stopped, phone line, seat and licence released, credential and ses...
The endpoint ratchet sees the patient-SMS relay's internal-auth guard
**************** flagged **************** and .receipt (29e22ca7) as endpoints that resolve no session. They are server-to-server (VOIPService -> SecurityServic...
Members holding the Administrator role can edit its rights
PUT /api/security/roles/{id} routes the Administrator role's rights through **************** BEFORE any other write so a refused save writes nothing. Only a cal...
Loan officer and investor pickers for the Mortgage Lending reports, proven on the fleet's Hibernate
- mortgageLoanOfficers: members assigned as loan officer on at least one of the organization's deals (narrower than every member, so the picker lists names th...
Seed the ten Mortgage calculator rights from CALC_SIMPLE
Whoever can open the calculator today finds Calculator -> Mortgage on the boot that adds CALC_MORTGAGE_* (shared-lib 1ae01ae8); each is then granted or withdraw...
A meeting line a signed-in supervisor said is an order the Tool Plane may lend on (meet:<turn id>)
TPMEETAUTH (owner order 2026-10-26): in Kamo Meet a signed-in supervisor's request is their direct order (No Insubordination union). The Tool Plane verifies the...
An order may be a teammate's proven email or a request they confirmed in Kamo
The Tool Plane now verifies orders given by a teammate's own email (email:<folder>/<uid> or the wake's email:<mailbox>|<folder>|<uid>) and by a request the memb...
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.
