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...
LOAN_ADVERSE_ACTION_CLOCK — the ECOA notice clock for person-made denials is the lender's switch
Owner 2026-10-28: tracking the 30-day adverse-action notice for a loan a person denies in Kamo is one of the automation settings, off by default.
Bring a terminated SI back by setting its status to Active (TPSIREHIRE)
- A terminated SI's status is editable again; Active ('Brings this SI back') is confirmed first: the same SI, its history, personality, job description, mem...
SI, not AI, and the brand colour, not a fixed blue, in two mortgage views
The lead scenario insights card said "AI summary", pointed at a settings path that does not exist, and drew its info dots and summary box in a fixed blue; the d...
People and loans read as people and loans in the mortgage consoles
- Capital & Risk's closing forecast shows the full loan number (the application id) as a link to the loan, never "#<loan file id>" - the governance feed and d...
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 ...
Bounded loan-file queries — the working pipeline and a per-status count
**************** (unarchived, in the given statuses) and countByStatusForOrganization (GROUP BY in the database), for callers that used findByOrganizationId to ...
Google Home section beside Alexa, and Google links on the profile card
Settings -> Devices (IoT) -> Connections gains a Google Home section (GET /api/iot/voice/google; not enabled or missing = a calm coming-soon card with the test-...
The on-behalf log flags patient information only for patient-record tools
Live: every notifications read was flagged as patient information (notifications_list is phiSensitive in general). The member-facing flag now follows the tool's...
A final outcome set in Kamo obeys "push stage from Kamo" too
With the setting off, a person marking a loan denied or withdrawn in Kamo still sent ADVERSE_LOAN to Arive. Off now means nothing a person does to the status in...
A re-hired SI gets its old extension back when it is still free (TPSIREHIRE)
Re-provisioning a RETIRED line on the same phone server prefers the line's previous extension when nobody has taken it since; otherwise the next free one in the...
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...
MLOS tool writes carry the approval they run on
So SecurityService can tell a person's approval or order from an SI's own initiative, which the lender may have switched off (LOAN_SI_CHANGES).
"What Kamo does on its own" — the lender's automation switches on the Automation tab
One switch per message and loan change Kamo can make by itself, in three groups (messages to borrowers, messages to your team, changes to loans), each off until...
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...
Automation switches — every action Kamo takes on its own is the lender's choice, off by default
MlosAutomationAction lists each message and loan change the MLOS makes without a person choosing it (borrower emails, team alerts, checklist building, document ...
Wake-up list carries ids, cancel one by id, never ask for a confirmation (TPWAKEUP)
Owner live test 2026-10-28: the SI asked him to approve before removing a duplicate wake-up. The tools say anyone may list and cancel for any number with no con...
Today:true answers only today's figures
Live (sp00verify 07:58Z): with today:true the answer carried receivedToday 0 beside the all-time total 12, and the SI reported 12. A today answer now holds rece...
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 ...
AI_REHIRED access-log event for a terminated SI set back to Active (TPSIREHIRE)
Appended last: event_type is VARCHAR(30), STRING-persisted, with no CHECK, so no DDL.
IoT copy check lets the two spoken Alexa invocation phrases quote the skill names
Run 2121 (and every kamo-internal build since 884f36c2c) failed check-iot-copy: the Voice assistants card quotes "Alexa, ask Kamo Universe …" and "Alexa, ask Ka...
Consent for Google Home — every sentence names the assistant being linked
The iot.google client (purpose IOT_GOOGLE) gets its own wording: "Link Kamo to Google Home", "What can Google Home use?", default link names "Google Home" / "<F...
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 ...
Notifications_list today:true counts what arrived today in the owner's zone
TPONBEHALF live check (sp00verify 2026-10-28 07:27Z): asked "how many notifications did I get today?", the SI read the member's own account correctly (on behalf...
One voice-link model for Alexa and Google Home (assistant column, IOT_GOOGLE OAuth client purpose)
iot_alexa_links.assistant = ALEXA | GOOGLE (applied by hand from iot-service **************** default ALEXA) and the OAuth client purpose IOT_GOOGLE for "Works ...
Done on your behalf — what SI teammates did through your own account
TPONBEHALF (owner 2026-10-28): when someone an SI reports to asks it for something of their own ("How many notifications did I get today?"), the SI works on the...
Voice assistants card explains the two Alexa skills and how a shared Echo learns your voice
"Which Alexa skill?": KamoUniverse (devices + your SI Assistant on your own Echo, "Alexa, ask Kamo Universe …") beside KamoUniverse Assistant (your own assistan...
Consent for the KamoUniverse Assistant skill, and the decision route forwards whose link it is
Client iot.alexa.assistant (the second, assistant-only Alexa skill) always links "Just me": no owner cards, no place, no "What can Alexa use?", no routines; a d...
The fallback Alexa phrase is 'kamo universe' — Amazon will not rename the live skill
Easter eggs settings tab, wake-up calls first (TPWAKEUP)
Owner order 2026-10-28: /settings/ai?tab=easter-eggs (menu entry + landing card; SI workforce + VIEW/MANAGE_AI_WORKFORCE): every easter egg of the registry with...
OnBehalfOf — an SI acts through its higher-up's own account on their authenticated request
TPONBEHALF (owner 2026-10-28): Sage asked Luna how many notifications HE got today and she could only read her own. On an authenticated request from anyone up t...
Invocation name 'kamo' on Alexa, and what Google allows for the name [skip ci]
V1.13.10, a room reaper and leak watchdog, metrics and alerts, no roll under live calls
livekit-server v1.13.7 kept 202 closed participants of 176 closed rooms alive (their publisher transport's StreamAllocator polled a closed ICE agent every 15 s,...
Voice quiet hours are a partial update and switching them off keeps the member's hours
PUT **************** wrote quietEnd = quietStart to mean 'off', so turning quiet hours off, or saving without quietEnd, lost the member's end, and turning them ...
Serve /api/ai/assistant/** — the settings window could never load
The SI Assistant's client called /api/ai/assistant/... but kamo-internal had no route there, so every call (settings, held actions, memory, tool areas, the org ...
Voice quiet hours have their own on/off flag
**************** (applied by hand, nullable, null = on), so switching voice quiet hours off and on keeps the member's own start and end.
Adapted notes, Phase 5 application packages and the Google Home build plan [skip ci]
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...
SiOnBehalfAction, the append-only log of what an SI did through a member's own account
TPONBEHALF (owner 2026-10-28): on an authenticated direct order from anyone up its chain of command, an SI may act through the ordering member's own account; ev...
The voice screens speak the live contracts — grant-options and grant-choice with the password re-check, /api/iot/voice/settings, /api/iot/me/voice (voice profiles, four-digit PIN, Remove PIN), per-switch notification channels with voice quiet hours; SI Assistant replies open their conversation on a cold arrival
Verified against iot-service b1d52a01 and emailservice f3f2213 in sp00verify. @kamo/iot-core 0.13.0.
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...
Status tabs with counts, Terminate/Activate instead of Delete, and an SI terminated like anyone
- /account?tab=team-members: tabs by employment status with counts (All Statuses first, Active the default), from SecurityService's grouped count, narrowed ...
A Speaches sentence is said clause by clause, so its first audio comes after its first clause
Luna), but Speaches' Kokoro/Piper make each request whole before the first byte (~0.6 s + 25 ms a character on k3m1), so an SI with an in-cluster voice (sp00ver...
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.
