Changelog
What's new.
Every improvement to the platform, as it ships.
· kamo-internal
The streams list and the canvas panels fill their room, in the org's colours
· kamo-internal
A full-width page frame, and the call floor and scoreboard on it
· kamo-internal
The send queue, briefing, captures, triage and review as full-width workspaces
· kamo-internal
The Tasks tab is the lead's action plan, and SI calling picks a real SI
SI calling lists the org's own SIs with the voice set on each, where it asked for a voice in a text box, and each SI call and text step on the canvas can name one. A lead's Tasks tab shows its streams, what happened and why, and what comes next, beside everything a person owes it in one list, from the stores that already hold each. An org with no streams keeps a plain task list.
· kamo-internal
The sales floor lives under the apps that own it
One nav item per app, paired with one group in Settings. Five floor options left the top level: Call floor, Scoreboard and Send queue are rows under Leads, Email triage under Mail, Today's briefing and Capture inbox under the SI Assistant. Leads and the SI Assistant stay plain doors for a member with nothing else under them. Settings follow: contact rules, call floor and goals move to CRM settings, triage setup to Email settings, SI briefings and captures to SI settings, and loan money to Commerce beside Mortgage Programs. Automation Streams stays at **************** Each page opens for any of its audiences and every tab and link keeps its own gate. Old addresses are 307 redirects.
· MCPGatewayService
An SI's own call to a lead answers to the outreach gate
· SecurityService
The lead page's gate and the lead's loans, for its action plan
· kamo-shared-library
Read a lead's runs, and a loan's
· VOIPService
A provider's voice agent answers to the SI's call gate, by the SI's own name
A stream no longer reaches JustCall's voice agent directly. kamoai-service decides a call, and only an SI with no line of its own takes this path, to the voice agent carrying its exact name.
· AIService
The outreach gate answers for an SI's own call to a lead
· kamo-shared-library
A stream's SI, a voice channel for the outreach gate, and a stream step as a run
The org chooses an SI for its stream calls, where it used to type a provider's voice name. The voice is the SI's.
· kamo-internal
A lead's stream on every screen, and the canvas's new steps
The lead page, board cards and grid show a lead's stream, with a filter. A person sets a return date on the lead. The canvas offers starting and leaving a stream, org fields in conditions and triggers, a wait from the lead's date, a role on a lead's deal, with the lender's notice on each. The review queue lets a person choose a deal. readCatalog never carried dealRoles, so the role picker was empty.
· SecurityService
A lead's stream, a reactivation date, and a role through its deals
Reads a lead's live stream from its run, for the grid, board, lead page and a filter. A reactivation date is a LeadCallback, moved in place and cancelled quietly. An org field's change reaches the outbox. A stream assigns a role through the lead's open deals: none is nothing to do, one lands, several go to a person.
· kamo-shared-library
Stream state, org fields, reactivation dates and a role on a lead's deal
Neutral pieces the engine needs: three trigger events, a reactivation purpose on LeadCallback with its time as an org setting, a lead filter on live runs, a deal-role review item, and LOAN_OFFICER_ASSISTANT appended to LoanPartyRole as a deal role any org can use.
· InitializerService
Reports and Gamification are included in Business and up
Owner, 2026-11-01. They were on Enterprise alone.
· InitializerService
Reports and Gamification are included in Enterprise
· kamo-internal
A new callback reaches Waiting on Me at once, and the panes' contract joins the brief
· kamo-internal
Ten live panes for the sales floor
Five for someone on the phones: Next Best Lead, Speed-to-Lead Clock, Waiting on Me, Today's Streak and Best Time to Call. Five for whoever runs the floor: Floor Pulse, Speed-to-Lead Report, Funnel by Lead Source, Coaching Flags and Stuck Automation. They sit on the cockpit's rights and its switch, so nothing shows until an organization turns it on. Each pane is told only that something changed, over the shared socket, and re-reads through its own authorized endpoint. A read every minute takes over only while the socket is down, and the board's 45-second poll now does too. A press of Call reaches the call session through a one-shot, tab-only record, so a link can never start a call.
· SecurityService
A landed call, text or email tells open screens
The contact tracker now announces each communication on the floor's domains, so a call the phone system reports reaches the board at once instead of on the next 45-second read. The frame names only the domain.
· EmailService
A landed call, text or email tells open screens
The contact tracker now announces each communication on the floor's domains, so a call the phone system reports reaches the board at once instead of on the next 45-second read. The frame names only the domain.
· VOIPService
A landed call, text or email tells open screens
The contact tracker now announces each communication on the floor's domains, so a call the phone system reports reaches the board at once instead of on the next 45-second read. The frame names only the domain.
· kamo-internal
Text consent per lead source, and the canvas shows a step its switch holds back
A lead source's settings can count its consent field as text consent, and a file import can do the same for one file. Off by default. A step card and the side panel say when a lender's switch is off, and a test run marks a step that would skip. LeadPipelineManager's switch names itself.
· DaemonService
Intake records text consent where a source counts its field, and a rollup back-fill job
The back-fill has no schedule. It reads leads from lead_communications, calls the same hydrate a lead's page does, and writes only the rollup. hydrated_at is its resume mark. It runs off-peak and stops as soon as the database looks busy.
· SecurityService
A lead source's text consent setting, and borrower messages stay off a linked loan
The setting needs a consent field mapped on that source, and each change goes in the access log. A file import keeps its consent proof and can count a column as text consent. BORROWER_MEET_LOAN_OFFICER and BORROWER_APPLICATION_RECEIVED now answer to LOS_LINKED_LOAN_WORK, and a linked loan's refusal stops promising a lead that a review item doesn't have.
· InitializerService
A rebuilt database gets what entities can't declare
Expression indexes on borrowers, the borrower pairs index, and each restricted table's privileges as they stand in production: 16 tables, dial_ledger among them, that default privileges would otherwise leave editable. KI ships nothing on its own; this is for a rebuild.
· kamo-shared-library
A lead import can name its text consent column, and a source's setting can be saved
· kamo-shared-library
The ledger's one tally answers by lead, by hour and by day, and the floor can signal live
DialTally gains what the sales floor's panes need, so none of them count for themselves: a breakdown over a set of leads, hours and days, conversations resting on length alone, short calls, slow first texts, a member's last dial and a read of one member's history by the new member index. FloorSignals sends one frame per org and domain every two seconds, naming only the domain. The contact tracker takes a listener, and a new lead or a change of hands says so. The three indexes behind these reads are declared here and were created by hand on near-empty tables.
· KlusterServices
Live sales floor events reach open screens
svc_voip and svc_daemon may publish rt.org.>, so a call the phone system reports and a lead a job creates reach the board at once. New svc_automation login, core NATS only, for the stream engine's events.
· SecurityService
Read every deal role, loan officer included, from the one store
Backfilled and counted per org first. MortgageLoanOwnership and DealRoleService now read only mlos_deal_role_assignment. The column stays a mirror for the originator, chat routing and reports.
· kamo-shared-library
Reports' own-loans scope reads the one role store
The loan officer is backfilled, so every role is a row and the deal's column is a mirror.

Your universe is waiting.
Start free in minutes. Add products whenever you are ready — no migration, no new logins.
Free forever — no credit card required