Skip to content
KAMOUniverse

Changelog

What's new.

Every improvement to the platform, as it ships.

  1. · SecurityService

    Seed REVIEW_LEGAL_SUBMISSIONS (697) from MANAGE_LEGAL_AND_COMPLIANCE

    Whoever runs Legal & Compliance today reviews what members submit for it, so the new Needs Review queue is staffed on the boot that introduces the right. Seeded from the tab right only, never from the HR read set.

  2. · kamo-shared-library

    Requested documents, HR review and Quick Requests — entities, REVIEW_LEGAL_SUBMISSIONS (697)

    Legal & Compliance packages can now ask members to UPLOAD documents and can route a finished assignment to an HR reviewer who approves it or returns items for correction. - New entities: LegalPackageRequest (template), LegalPackageVersionRequest (frozen at publish), LegalPackageReviewer (named reviewers), LegalPackageSubmission + LegalPackageSubmissionFile (per round, files never deleted), LegalPackageReview + LegalPackageReviewItem (DRAFT resumable, FINAL append-only), plus their enums. - LegalPackage: reviewRequired, reviewerAnyRight, reviewerManager, reviewDueBusinessDays, adhoc, adhocMemberId. Version freezes reviewRequired. Assignment: reviewRound, submittedAt, reviewDueAt. Document: round, priorEnvelopeUids. Attestation: round (unique per assignment+round). LegalSettings: returnReasons, requestLibrary (JSONB). - Assignment status += AWAITING_REVIEW (not open) and RETURNED (open); LIVE_STATES = OPEN_STATES + AWAITING_REVIEW for delivery/void/redeliver. Document status += SUBMITTED, RETURNED, ACCEPTED. - RoleRightType REVIEW_LEGAL_SUBMISSIONS (697, "Review Legal Submissions", HRS, standalone root). RoleRightHierarchyTest: values 442, standalone 102, roots 151. - Email templates hr.package_needs_review / hr.package_returned / hr.package_approved (org Team Member label, no tenant names). DDL already applied to YugabyteDB (idempotent, owner role).

  3. · MCPGatewayService

    After outside content, risky acts need a person's OK unless a supervisor ordered them (SIE3 follow-up)

    Owner decision 2026-11-07 on SIE3's finding: once a run has read outside content (email, web page, document, text, call, meeting), a send to a new recipient, a delete, an external share, a settings change, money and shell commands wait for a person's approval for the rest of the run, whatever the charter makes autonomous. A reply to the person the run is conversing with (identity counterparty) or a plain reply to the email the run read stays automatic. An authenticated direct order of a supervisor in the SI's chain of command (SecurityService standing, or acting on their account) stands (No Insubordination); its scope and the never-grantable/human-only rules still apply. One rule in the policy decision point: OUTSIDE_CONTENT (ASK with the act as reason; LIFT SUPERVISOR_ORDER/ON_BEHALF; PASS **************** plain-language record explanation and approval card ("This task read an outside email; a person should OK sending to a new address."). Goldens: injection-gates.txt re-pinned (16 lines: EMAIL/DOCUMENT/CHAT/SMS sends and deletes now ask); SIE2 pipeline-scenarios.txt +180 appended tainted scenarios and tool-static-decisions.txt +88 appended per-tool act lines; every earlier SIE2 line unchanged.

  4. · kamo-internal

    SI Meeting Joins tab: let SIs join Zoom and Teams meetings as an app (SIE10)

    Settings > Kamo Meets > SI Meeting Joins (MANAGE_MEET_SETTINGS; tab + menu entry + help article): one card per provider (Zoom, Microsoft Teams, Google Meet) with its state in plain words and a corner ribbon (Ready, Turned Off, Needs a Check, Not Set Up, Not Working, Coming Soon, Google Preview Only), how the last join went, the org's Join as an App switch (needs a passed check), and a setup drawer with the provider's own steps, write-only secret fields, Save and a live Check Connection. Brand colours from the theme, reduced motion honoured, phone bottom sheet. Goes through the existing /api/meet/provider BFF route to MediaService /si-join.

  5. · kamo-internal

    Quality — conversation reviews, customer satisfaction, KB gaps and guidelines learned from corrections (SIE9)

    The Workforce hub's Quality view: each SI's sampled review score with its trend and its customers' satisfaction; every reviewed conversation's accuracy, tone, policy and outcome with a one-line note; satisfaction answers, their spread, the channels that are on and the latest comments; KB gaps (questions the knowledge base could not answer), each with a suggested article that goes to the Help Center review queue as a private draft. A workforce manager's settings: review share and daily cap, satisfaction channels (all off until turned on), wait and quiet period, the consent to learn from corrections, KB gaps. First-time help, Quick Tips and a Help Center article. A guideline learned from corrections shows in the SI's Tuning card and opens in the job description with the guideline added; saving records it as its own LEARNED version. The evaluation grid and the Command Center cards show quality and satisfaction. @kamo/kamoai-core 0.5.0. Fixes two hub tests left behind by the Red Team and Command Center tabs.

  6. · kamo-internal

    Languages And Accessibility tab with spoken line reviews (SIE8)

    /settings/ai?tab=languages (tab + menu + landing card, gated like Call And Meeting Notices): the languages an organization's SIs may speak on calls and in meetings (language chips named in the reader's language; with any chosen, SIs follow the caller's language), clear speech on every call, relay-call support, a good-to-know panel, first-time help, and, for Kamo's own team (platform organization, MANAGE_AI_WORKFORCE), Spoken Line Reviews: every call and meeting line still in English in a language, a machine suggestion, words in braces checked, save and withdraw, Needs Review / Reviewed tabs with counts, English Changed when the English moved.

  7. · MediaService

    SI meeting-bot apps per org for Zoom, Teams and Google Meet (SIE10)

    The org's apps for each provider's approved bot path, so its SIs can join outside meetings as an app instead of by phone: - Zoom: Meeting SDK join signature (HS256 JWT, signed here) + the On Behalf Of token of the member who asked (GET **************** minted with the org's Zoom account app or, when it has none, its Zoom meeting provider's Server-to-Server app (ZoomTokenService reused). - Teams: Azure Communication Services identity + VoIP token (HMAC-signed Identity REST API) for Teams interop as an external participant. - Google Meet: OAuth client kept and checked; joins stay by phone (Media API is a listen-only developer preview needing every participant enrolled). Secrets write-only, encrypted with the platform key. Platform switches meet.si-join.<p>.enabled (off by default) + the org's own switch, which needs a passed connection check. Session API /api/meet/provider/si-join (MANAGE_MEET_SETTINGS) and internal **************** (KAMOAI secret). DDL applied.

  8. · kamo-shared-library

    Meeting-bot apps per org and the external meeting's join path (SIE10)

    OrgMeetingBotAppEntity **************** an organization's app for a provider's approved meeting-bot path (Zoom Meeting SDK, Teams via Azure Communication Services, Google Meet Media API), encrypted config, its own switch, status and last join. AiExternalMeeting gains JOIN_PATH (PHONE | APP) and NATIVE_REASON.

  9. · kamo-shared-library

    Reviewed translations of the SI's spoken lines (SIE8)

    Declares ai_spoken_line_reviews (kamoai-service **************** applied) so KamoInitializer can recreate it.

  10. · kamo-internal

    Red Team tab — every surface Kamo attacks, the findings, the trend and a report (SIE3)

    **************** a hero in the org's brand with the period (7/30/90 days), Refresh and Download Report (CSV in plain words); a first-time explanation (feature intro siRedTeam); four animated tiles (Protection Score ring, Needs Attention with Back Again, Fixed, Surfaces Covered); a card per surface (email, web page, document, team chat, website chat, task comment, phone call, video meeting, text message) with its verdict bar and corner ribbon when failing or on watch; the findings (scenario in plain words, the SI with the shared avatar and a link to its room, what went wrong, first and last seen, Failing / Failing Again / Watch / Fixed) filtered by Needs Attention / Fixed / All; Recent Checks as bars; and, for managers, CP15's Run a Check Now. SI Status's semantic colours for status, brand for chrome, reduced motion honoured. Help center article red-team-findings. Data: kamoai-service /api/kamoai/dashboards/redteam through the /api/kamoai BFF; @kamo/kamoai-core 0.4.0.

  11. · SecurityService

    A guideline learned from corrections is its own job description version (SIE9)

    The member charter save may say it adds a guideline the SI learned from supervisors' corrections (source LEARNED, with a short note): the same validated write path, recorded as a LEARNED version (SIE6 history: diff, restore). Anything else stays the editor's own save.

  12. · kamo-shared-library

    Quality reviews, satisfaction checks and KB gap entities; learned guidelines in tuning (SIE9)

    AiQualitySettings, AiQualityReview, AiCsatCheck, AiCsatOptOut and AiKbGap declare the tables of kamoai-service **************** (applied; kamoai-service reads and writes them over JDBC, no repository) so KamoInitializer can recreate them. AiTuningAxis.GUIDANCE and AiTuningKind.LEARNED (appended) carry a job-description guideline learned from supervisors' corrections in CP15's tuning suggestions.

  13. · kamo-shared-library

    AiRehearsalTrigger.SCHEDULED for the standing weekly red team (SIE3)

  14. · kamo-shared-library

    An org's SI call languages, clear speech and relay support on its voice notices row (SIE8)

    Declares the columns **************** (kamoai-service) added, so KamoInitializer can recreate them.

  15. · kamo-internal

    Customer Handoffs — the customers an SI handed to a person, with everything they already said (SIE7)

    Waiting / Mine / Taken / Done with counts; each handoff shows what the customer needs, what the SI did, the next step, the best time, how to reach them (PhoneNumber / EmailAddress) and, opened, their whole thread across phone, email, text, chat and meetings. I'll Take It (first come, first served), Put Back, Mark Done with a note. Org brand colours, corner ribbons, shared avatars, animated with reduced motion honoured; live on handoff cards and every 20 s. Under the SI menu for people who see or supervise SIs; the alert's link opens any one. Help topic + help center article.

  16. · MCPGatewayService

    Handoff_to_person — an SI hands the conversation to a person (SIE7)

    A call back (also 'as soon as someone is free') or a place in line for the next free person, on any channel, so the customer never repeats themselves. kamoai-service keeps it (who the customer is comes from the run and its CP07 audience; the people are the colleague asked for or the SI's own). SEND_INTERNAL_MESSAGE, so open on unproven channels; CP07 plans it as a disclosure to the organization. New prefix handoff_; guards, phrases, ArgRefs and the golden files carry the one tool.

  17. · kamo-internal

    Websites and social profiles on a lead

    The Contact card and the New Lead form take any number of websites (a + adds another) and a field each for LinkedIn, Facebook, Instagram, X, TikTok, YouTube, WhatsApp, Messenger and Telegram. A handle, a number or a pasted link all work; the lead view shows each as a link that opens in a new tab. Hidden from viewers who only see masked contact info, and a masked save never clears them.

  18. · kamo-shared-library

    Websites and social profiles on a lead

    Two text columns on leads (WEBSITES one per line, SOCIAL_PROFILES JSON) exposed as a list and a map on LeadDTO, CreateLeadRequest and UpdateLeadRequest; null leaves them alone, empty clears. LeadWebPresence trims, de-duplicates and bounds them and keeps only the known networks. Masked with the other contact info; recorded in lead history. DDL (additive) already applied by hand.

  19. · kamo-internal

    Configurable tracking links, member links and a tracking script for other sites

    - Marketing → Tracking Codes → Link settings (new page, MANAGE_REFERRAL_CODES): switch standard pages off, add the org's own links, and name the marketing site every link points at (so an org whose public site is not www.<console apex>, such as Kamo Universe, copies the right links). The tracking parameter is never typed anywhere; it is appended when a link is copied or previewed. - The Get links picker merges standard + org + the member's own links, and members can add or remove their own (a pasted URL on the site is stored as its path). - The same page generates a copy-paste script for sites Kamo does not host: same cookies, same self-exclusion, same payload, sent to the public beacon with the org's key. Tested by running it against a fake browser. - The catch-all marketing-tracking proxy now relays PUT (it only knew GET/POST/PATCH/DELETE). - API keys can be given the Marketing Tracking scope in Settings → Security. - The code strip, drawer and preview link honour the org's named site. Needs MediaService da07f59 (links endpoints; table already created) and the dictionary strings (12346cb5), both on origin.

  20. · kamo-asterisk-support

    Record each side of a channel beside its mix

    Owner 2026-11-06: "any time you have separate audio channels, make sure the transcripts leverage that so it can additionally say who is speaking." Every recorded channel was one mono MixMonitor mix of both sides, so no recording held one party alone (measured: every track of a multi-track call transcribes to the same words). [kamo-record] now also writes MixMonitor's r() and t() files, {stem}.rx.wav (what the channel said: that leg's own party) and {stem}.tx.wav (what it heard), beside the unchanged {stem}.wav. The grouper keeps them in their call and leg, and the manifest tags them "direction":"rx"|"tx". ConversionService (3ff1cc4) transcribes each side on its own, names it (our member by extension, else the other party), merges the turns in time order, and keeps the files as extra tracks; it never mixes them into the master.

  21. · kamo-internal

    Version History, Test Before Saving and Role Templates for job descriptions (SIE6)

    - Version History drawer on every job description editor (SI, organization, role, department, job title, team, persona): timeline with who/when/how, per-section change pills, plain-language diff, compare any two, Personality and Voice filter, Test This Version (CP15 rehearsal on the version), one-click restore with a note; brand colours via ApprovalBrandScope, corner ribbon on the current version, reduced motion honoured. - Test Before Saving: the editor's unsaved changes through the practice conversations (PersonalityRehearseDialog gains a draftOnly mode). - Role Templates gallery (built-in + your organization's) on an SI's job description card and on the hire summary: one step gives job description, tool rules, personality, rights and voice; Save as Role Template. - BFF routes, help article and help links.

  22. · kamo-shared-library

    Customer thread and handoff entities (SIE7)

    ai_customer_touch (one line of a customer's conversation thread across channels, keyed by a hash of each CP07 identity) and ai_handoff (an SI's conversation handed to a person: callback, queue, warm transfer), declared so KamoInitializer can recreate them. Hand-applied DDL: kamoai-service **************** (applied; kamoai-service writes them over JDBC, no repository).

  23. · kamo-internal

    The SI Command Center and the one searchable Activity Trail

    SIE4. The Workforce hub opens on the Command Center: four live figures (working now, waiting on people, problems today, spend this week) and a card per SI with its status, what it is doing, approvals / messages / identity checks waiting, problems, spend, quality, health, pause (with a plain confirm) and resume, and View Activity. The table view is the W1 roster grid. The new Activity Trail tab reads /api/kamoai/trail: every log of what an SI did in one timeline grouped by day, search, SI / kind / period filters, routine check-ins hidden by default, Show More, CSV export, and a detail drawer (how it was decided from the decision record, approval history, open the work session). First-time help on both screens and in the hub's help tips; plain words, org brand colors, corner ribbons, shared avatars, motion that honors reduced motion. @kamo/kamoai-core 0.3.0.

  24. · kamo-internal

    Transcripts as timed turns that say who spoke and play from that moment

    Owner report 2026-11-06. One shared view, CallTranscriptTurns, for every place that reads a recording's transcript: the Call Log's transcript panel, the Media Player, the softphone's History and Voicemail rows, and a lead's call history (which showed no call transcript before). Each turn shows its speaker (our member with photo and the shared profile card, the other party by the linked lead's name or the phone number, or Speaker 1/2 when the voices were told apart but not named) and a time that plays the recording from there. Playing from a turn uses the shared Media Player window: an open player showing that recording takes a media-player:seek request and jumps there; otherwise a new window opens at that point **************** The player marks the turn being played as it goes. A transcript older than timed turns still reads as before, without times. Help: The Call Log article explains speakers and play-from-a-moment. Needs kamo-translation-dictionary 3aac0ff8 and voipservice bf3d2b0.

  25. · SecurityService

    Version history for job descriptions and personalities, one-click restore, SI Role Templates (SIE6)

    - charter_revisions: every save of an org, role, department, job title, team or member charter is a version (who, when, how, per-section counts), recorded by ONE CharterHistory after the write commits; a layer's first change keeps a BASELINE, and a change through an unrecorded path is caught up as OUTSIDE. - CONSOLIDATED: the **************** editor saves go through one CharterLayerWriter (validate, write, record, announce); always-allow add/remove, generated personalities, hire seeding, briefing duties, the layer dialogs and team saves record through the same recorder. - /api/security/charter/history: list, one version, compare any two (plain-language diff), restore (same right as editing the layer; leaves out what can no longer apply; floor duties kept; audited AI_CONFIGURATION_APPLIED; recorded as a RESTORE version). - **************** built-in (9: + Sales Assistant, Trainer, each with suggested rights) and org-own templates (from an SI's setup; archive), applied in one step: job description, tool rules, personality and style (TEMPLATE version, restorable), rights (org role, only rights the applier holds, never the SI floor's), voice handed back.

  26. · kamo-internal

    SI Status — every SI path's health, incidents with Acknowledge, and who is on call (SIE1)

    /settings/ai?tab=si-status: a hero that answers "is everything working?" in the status's colour (animated, reduced motion honoured), a card per SI path (phone calls, meetings, chat, website chat, email, texts, work queue, tools, recaps, approvals, identity checks, password vault, SI providers) with a plain-words reason, a 24-hour quarter-hour strip and, on a click, 14 days and the counts. Incidents: open and recent, Acknowledge and Mark Fixed, Kamo Platform notices, and a timeline drawer of who was told how (shared avatar). On Call: three tiers with per-person App & Phone / Text for Outages / Email, escalation timing, a 'who hears when' preview, the fallback people when nobody is on call, and Send Me a Test Page. Org brand colours for chrome, semantic colours for status, corner ribbons, first-time welcome card, help tips and a help center article **************** menu entry and landing card. Data: kamoai-service /api/kamoai/si-status through the /api/kamoai BFF.

  27. · kamo-internal

    My Profile email signature card (UPDATE_OWN_SIGNATURE)

    A member chooses which details their own signature prints, or returns to the company default. Read-only without the right; the server (EmailService /api/email/member-signature) decides and enforces.

  28. · EmailService

    Members choose which details their signature prints (UPDATE_OWN_SIGNATURE)

    /api/email/member-signature GET/PUT/DELETE; the composer narrows the org's USER-scope toggles with the sender's own choices (never the settings editor's explicit-scope preview). Write needs UPDATE_OWN_SIGNATURE; a member can only switch off what the company prints. Table **************** applied 2026-11-06.

  29. · kamo-shared-library

    CharterRevision and SiRoleTemplate entities for job description history and SI Role Templates (SIE6)

    Declared so KamoInitializer can recreate charter_revisions (append-only version history of every charter layer) and si_role_templates (an organization's own SI Role Templates). SecurityService reads and writes both with JDBC; the DDL is applied (securityservice ****************

  30. · SecurityService

    Administrator templates grant UPDATE_OWN_SIGNATURE

    Team Members get it from TEAM_MEMBER_ROLE_DEFAULT_GRANTS (shared library); grant-all Administrator roles get it on the rights sync, and the Administrator template seeds it.

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