A composed message carries its meeting, and calendar edits ask before telling guests
- /api/email/send takes meetingInvite: the event is filed on the sender's calendar in the same transaction, its ics rides on the composed message with an X-...
Composer meetings ride on the email, edits ask before emailing guests, mail links to its event
- The composer sends its meeting with the message instead of a second invite. - Saving an edit to an event with invited guests asks whether to send them an up...
Branded meeting invitation and update letters for calendar guests
Adds calendar.meeting_invite and calendar.meeting_updated canonical templates and MeetingInviteEmail, the variable builder EmailService fills them from.
Tell TranslateService to stop before this client does
The careers client reads for 60 seconds, and TranslateService worked to its own default of 100, holding a LibreTranslate worker for 40 seconds after nobody was ...
A translation with a failed field is a failure, and long articles get time to finish
TranslateService leaves a field it could not translate out of its reply and names it in failedKeys. This client returned the reply as it was, so the article was...
One deadline per request, never retry a timeout, and queue for LibreTranslate here
LibreTranslate keeps translating a request after its client stops waiting, so every timeout was work done for no one. Measured over six hours on 2026-10-07: 46 ...
A meeting invite from the composer actually sends
Two things kept it from ever reaching anyone. The request posted the meeting's fields flat, but EmailService reads them from a nested `meetingInvite` and refuse...
Team-member assignment in lead mappings; automated imports on the mapping canvas
Assignment. Manual and automated imports get an "Assigned Team Member" target (replacing "Assigned User", which no importer ever honoured). Its dialog sets a sp...
Intake job maps through the shared engine, with team-member assignment
LeadIntakeProcessingJob builds each lead with kamo-shared-library's LeadRequestMapper instead of its own field switch and transform copy, so automated imports a...
Manual imports and the intake backlog through the shared mapping engine
LeadImportController maps every row with kamo-shared-library's LeadRequestMapper instead of its own switch, so manual and template imports get the full field se...
One mapping engine for lead imports, with team-member assignment
Manual imports, automated (intake) imports and the backlog each carried their own copy of the mapping code, and they disagreed: date, regex and split transforma...
Rename Artificial Intelligence / AI to Super Intelligence / SI across marketing copy.
Updates hardcoded English in app content, SEO metadata, integrations, industries, and public llms files to match the Super Intelligence rebrand.
An AI hire no longer waits forever on an email provider that was never connected
An org that chose Google Workspace (or another third-party provider) but left it at PENDING_SETUP, or switched it off, can never produce the AI's mailbox, so th...
Webinar registrants' leads are indexed, so their calls, texts and emails link to them
PublicWebinarService creates a lead per public webinar registrant through LeadService.createLead, which indexes the lead's phones and addresses (LEAD_CONTACT_PO...
Intake makes a lead only of a person, once per person, with no placeholder names, assigned as mapped
Harmony Home Loans pointed every JustCall webhook at its "Justcall" intake endpoint, and the job made every event a lead: 287 in three days. 247 have no name, c...
The JustCall contact import finishes — paced, resumable, and no longer skipping pages
Harmony Home Loans' import had never once completed (no JustCall book or integration exists for any member). Three defects: 1. One burst per tick: it read ever...
The caller lookup is V13, not V7 (SP13 already names a V7) (completes 3fab95d)
Call and meeting options on an AI member's voice card (SP92 calls)
Under the AI member's voices in the profile's Identity room: "Transfer callers to a person when they ask for an agent or a human" (on), "Keep full call and meet...
V7 — which colleague is calling from an internal extension (SP92 calls)
GET **************** (KAMOAI_INTERNAL_SECRET) answers the active member of the phone server's org that the extension is ACTIVE-ly assigned to, or 404 NO_MEMBER....
An AI member's call and meeting options, beside its voices (SP92 calls)
keywordTransfer (default on), keepFullTranscript (default off) and meetingMode COMPANION | CONVERSATION (default COMPANION), in ai_member_call_options (hand-app...
MEETING_COMPLETED run trigger, for a conversation meeting's follow-up (SP92 calls)
A meeting an AI member took part in as a conversation partner wakes it once it ends, with its transcript note, the way a phone call's CALL_COMPLETED does. STRIN...
Leads created by the intake job are indexed, so their calls, texts and emails link to them
LeadIntakeProcessingJob creates every lead that arrives through the intake endpoint, via LeadService.createLead, which indexes the lead's phones and addresses (...
JustCall calls are credited to the agent who took them, and Sales Dialer calls sync
Checked against Harmony Home Loans' JustCall account (read-only GETs): the newest 100 of its 1,058 /calls match PHONE_CALL_LOG one for one, so the ordinary log ...
The lead page names its Vendor and Product
Lead.vendorProduct is @Transient — only VENDOR_PRODUCT_ID is a column — so nothing loads it unless someone asks, and LeadDTO.fromLead then leaves vendorProduct,...
CP02 VERIFIED — Task 25 verification in sp00verify, rulings CP02-T25-1..4
CP01 VERIFIED — Task 27 verification in sp00verify, the cast team "Red team cast", rulings CP01-T27-1..4
CP02 final fix ruling CP02-FINAL-1 — the heads' names query is pinned onto users_pkey
CP01 final fix rulings CP01-FINAL-1..3 — team membership changes on the security access log
A change to a member's teams is on the security access log — one SECURITY_SETTING_CHANGE/MEDIUM row per member who joined or left, from the team, the member's profile, a deleted team or creation (KamoCollab CP01 final review I1)
A team is a level of the rights waterfall, so joining one is a grant (CP01-T14-1). The department and job-title change on the same Position card writes an acces...
Pin the heads' names query onto users_pkey — /*+ IndexScan(u users_pkey) */ first in the statement, as loadMembers and the org chart's people query; without it the legacy planner seq-scans all of users per head row (KamoCollab CP02 final fix)
Production EXPLAIN (sp00verify, read-only): the unhinted literal plan was a nested loop over Seq Scan on users (106 rows) for 1 and 2 ids; with the hint every p...
The Org Chart tab on Essential Setup, in the settings menu, on the Settings landing page and on the home admin bar (KamoCollab CP02 T24)
**************** mounts OrgChartPanel after Teams: who reports to whom across the organization, read-only, from GET /api/security/org-chart (new BFF relay, forw...
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.
