Skip to content
KAMOUniverse

Changelog

What's new.

Every improvement to the platform, as it ships.

  1. · MCPGatewayService

    Documents, translation and OCR packs

    docs_search, docs_read, translate_text and ocr_document (spec 4.20). A document is routed by DocsService's description before any byte is fetched: text is decoded here (a Markdown or YAML file stored as octet-stream by its extension), the PDFs and images Kamo OCR reads go to AIService F2, a document of more than five pages is refused before its download, and anything else is not readable without one. Document ids are canonical longs; language codes are checked as F1 checks them.

  2. · kamo-internal

    Meeting page — dial-in, invite or remove AI members, transcripts and summaries

  3. · AIService

    Embeddings on the pinned model and rerank façades

    Inputs and documents reach the model in batches it accepts (TEI refuses more than its client batch of 32 with 422; a reranker's maxDocuments); malformed fields are refused, never read as absent.

  4. · MCPGatewayService

    The AI's workstation — computer_* tools with auto-wake and lease, workstation pack

  5. · kamo-internal

    Meeting history page

  6. · MCPGatewayService

    Approvals pack — decision-only approvals and approval status

    approvals_request asks the AI's approver through kamoai-service K3 with toolName null (nothing is re-executed on APPROVE); a class the charter forbids is refused in the planner, before any approver is asked (SP05-T30). approvals_status answers only the requester or the approver.

  7. · AIService

    POST /api/ai/agent/step with tool use, thinking replay, cache breakpoints and SSE

  8. · MCPGatewayService

    Phone and SMS packs — consent-checked calls, call history, texting

    phone_call posts K6 with the caller's run and key; a reason-less 404 is not deployed, a reasoned one (NOT_ENROLLED) is the endpoint's answer. sms_send opens the conversation as a definitive step, maps VOIPService's retryable PROVIDER_ERROR to OUTCOME_UNKNOWN and every other code to REJECTED. Threads and messages are projected with UTC times and no attachment URLs.

  9. · AIService

    OpenAI-compatible chat completions with tools, images, structured output and SSE

  10. · MCPGatewayService

    Knowledge base, sales scripts, RAG, directory and notifications packs

  11. · AIService

    Internal router resolve endpoint

    E1 POST **************** the ordered candidates and exclusions for a capability, 424 no_capability when none, 404 org_not_found for an org that is not live (read retried through the Yugabyte DDL window), and 400 invalid_request for any malformed field, never a silently ignored one. A list-valued required attribute reads as the router's comma form.

  12. · AIService

    Legacy routing, /internal/text and /internal/vision on the router, with provenance

  13. · MCPGatewayService

    Contacts, leads and accounts packs — search, read, create, update, notes, status, claim, history

    The 12 CRM tools of spec §4.20 against EmailService and SecurityService as they are on main (SP05-T27): a status without a sub-status clears the old one; a contact update writes back everything it was not given and sets company and title on the primary organisation; new emails and phones get a primary and the editor's labels; ids are read as longs (canonical paths and lead:<uid> targets, overflow refused before any call); the status filter is an enum of the stored words; a claim answers the credit spent and the accept gate is a CONFLICT; accounts read SecurityService's envelopes; times are UTC instants.

  14. · AIService

    The gate's AI-member path; retire the persona outreach engine

    Quiet hours convert the service clock into the contact's zone instead of relabelling it (ruling SP03-T32).

  15. · AIService

    Session/internal caller context, app gate, provenance and the gateway call runtime

  16. · MCPGatewayService

    Calendar and meetings packs — events, availability, scheduled work, dial-in, invites

    Beyond the brief (spec SP05-T26-build): no guessed zone (EmailService applies the member's effective zone); reminders only when asked on a create and never re-sent on an update; an update sends back only typed-in guests; an occurrence id defaults to scope THIS; a start alone keeps the event's length; exact 62-day windows; a meeting's hostUrl never reaches the model.

  17. · VOIPService

    PBX policy feed and AI voice admin endpoints

    V7 GET /internal/voip/pbx-config (cluster secret) answers kamo-asterisk-support's policy pull through APIService and records the helper's heartbeat; a Redis failure costs the heartbeat, never the outside-calls list. V8-V12 give an admin the phone server's AI voice verdict and settings and the per-extension outside-calls flag (MANAGE_VOIP_SETTINGS; V11/V12 also MANAGE_EXTENSIONS). V8 names the server that answered, V9 reports no blank helper version, and V10 refuses a source address with a leading zero, which LiveKit would never match.

  18. · kamo-internal

    AI calls console — listen, whisper, barge, take over, hang up

    /ai-calls polls S1 every five seconds (D27) and opens the call SP10's deep link names (D36). The supervised call is pinned above the list, so a tab switch or a refresh never drops the supervisor's room; it closes, saying so, once the call leaves the live list. Every LiveKit join is numbered, so an overtaken join, a leave or an unmount drops its own room; talking takes the microphone before the listening room is left. livekit-client 2.22.3 (exact).

  19. · AIService

    Web chat answered by an AI member's brief, then the persona's

  20. · SecurityService

    List the org's active AI members

  21. · AIService

    Per-AI-member budgets from the charter with one AI_ALERT per threshold

  22. · MediaService

    Encrypted meeting transcripts and summaries, companion upload, downloads, retention

    M6-M9 answer JSON whatever the client accepts and ignore unknown body fields (MediaService's bare ObjectMapper fails on them); M6 is NOT_READY while a transcript is being written, M9 answers the view without segments, M8 requires a meeting of the caller's organization. Every transcript write survives a Yugabyte conflict; expired transcripts are swept on their own. Ruling SP14-T10.

  23. · kamo-internal

    Meetings API client and proxy routes; meetings carry a title

  24. · VOIPService

    Internal AI line endpoints for KamoAI

  25. · AIService

    Personas point at a job title; Studio compile and drafting retired

  26. · MCPGatewayService

    Tasks pack — lists, create, update, status, assignment, comments, links

    Beyond the brief (SP05-T25): an assignee is read as the member id KBService reads (beyond a long is INVALID_ARGUMENTS), an update that changes nothing or both sets and clears the due time is refused by the planner, and link references are canonical, so what KBService would refuse never reaches an approver. A write KBService answers 204 (the task left the caller's sight) answers {id, visible:false}. Planners name the task and the change. The projection adds assignedAt, permissions and openPrerequisiteCount, and gives createdAt/doneAt as UTC instants (SP10's rehearsal parses them).

  27. · SecurityService

    Internal resolve for KamoAI and the charter source behind SP02's routes

    I2 POST **************** answers S3's resolution for the org it is given, behind the KamoAI secret, with S3's draft reader and S3's org-checked department walk (CharterController.parentOf, now package-visible). The org id follows SP02's rule: digits that fit a long, never a truncated number. CharterSourceBean implements SP02's KamoaiCharterSource: the I1 body in one read-only transaction, and the roster's stamps one member at a time outside any transaction (preflight ruling SP03-T20).

  28. · AIService

    Candidate walk with failover, one-shot parameter fallback and metered streaming

    Provider credentials never reach the log, the usage row or the rethrown error; a failed provider-health write never costs an answer; an interrupt stops the walk.

  29. · AIService

    Fold every sales agent into a job-title persona on startup

  30. · VOIPService

    Provision, retire and resolve AI voice lines

    Retire deletes the PBX extension only when it is still there, and a phone server in use that refuses the delete keeps the line and answers 502, so the minute SIP sync retries instead of orphaning the extension. A re-provisioned line forgets the extension id of the line it replaces, an extension given by hand is released when the AI line is assigned, and the work extension goes with the line on retire.

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