Skip to content
KAMOUniverse

Changelog

What's new.

Every improvement to the platform, as it ships.

  1. · kamo-shared-library

    Grant-all session rights honour member NUKEs and model FORCE rules

    An ARTIFICIAL member is refused with the same IllegalStateException, so a caller's fallback applies the supervisor ceiling and never-grantable floor.

  2. · KlusterServices

    Kamo Speech's registry facts and its registration through AIService's internal registry

    The last wait needs VERIFIED to hold for 120 s. An attestation itself writes VERIFIED and #36 carries no probe time, so a first VERIFIED read cannot tell SP01's own re-verify (STT_CLIP, TTS_TEST) from the attestation it follows.

  3. · kamo-internal

    AI status, pause and hiring checklist for the member profile

  4. · KBService

    Task notifications after commit, and the org-change signal for internal writes

  5. · VOIPService

    An inbound text raises an SMS_RECEIVED card

  6. · kamo-internal

    Repeat events, choose which instances an edit is for, text reminders

  7. · kamo-shared-library

    Compose template engine, view models, helpers, partials and wrapper

  8. · kamo-internal

    One task drawer — status, priority, due, assignee, links, comments

  9. · kamo-shared-library

    Empty ineligible members on every write path and notify rights-change listeners

    A chunk notifies its AI members before its humans, so a supervisor cascade's fresher recalculation of an AI is that AI's last notification.

  10. · EmailService

    DDL guard for the nine appended notification kinds

  11. · kamo-shared-library

    The nine KamoAI notification kinds

  12. · KlusterServices

    A live probe of every Kamo Speech capability, with a four-stream load check

    The probe runs inside the pod and prints one JSON document for register.py: a TTS round trip per voice and language (recall >= 0.8), the batch STT row, a realtime transcription session, and with --concurrency N that many sessions beside a ~60 s batch (p95 end-of-speech to transcript <= 4 s). Against a local Speaches 0.9.0-rc.3 (same lock, pinned models) three things differ from the plan and are fixed here: - the phrases drop the brand name: Whisper hears "Kamo" as Commo, Carmo, Camus or TAML, which failed Spanish on every run (recall 0.77) and left Piper one word from failing; brand-free phrases scored 1.00 in 16/16 runs; - the realtime session streams 100 ms frames at real-time pace: a burst made the server close the same turn ten times (duplicate commits, "item already exists" error events, the turn transcribed again for each); - the session joins every completed turn, keeps server error events for the detail instead of failing on the first, and commits the buffer itself only when all audio is sent and nothing is being transcribed. p95 is a true nearest rank (ceil), and the load block reports the batch detail.

  13. · kamo-internal

    AI rows in Bulk Add Team Members take a seat and no emails

  14. · KBService

    Who a task can be given to, who supervises whom, and the names tasks show

  15. · kamo-shared-library

    Capability and provider-type catalogs, typed attribute codec

    The codec also refuses, as invalid_attribute, a null list item (a bare NullPointerException before), a list or object where text belongs (stored as the text "[en, de]" before), and a number NUMERIC(20,6) cannot hold (a 500 at flush before).

  16. · kamo-internal

    Catalog-driven connection form, status chips, rail, draft and error helpers

    A test verdict shows only while the form still holds the values it tested, and a refusal that names a visible field sits under that field. The rail flags unsaved work on a phone too, and marks the open room for assistive tech.

  17. · kamo-shared-library

    Compose manifest, JavaScript text semantics and icon URIs

    ComposeText also ports logoVariants.ts (PNG logo rungs, SizedLogo) and badges.ts (uploaded-badge ?h= scaling), and follows JavaScript exactly where Java differs: Number::toString exponents, Math.round, Number(string) and String.prototype.trim.

  18. · kamo-internal

    Live task lists, task chips with zone-correct due times, record link chips

  19. · kamo-shared-library

    Bound AI members by their supervisor's applied rights and the never-grantable floor

  20. · kamo-internal

    The Repeat field, the series scope dialog and the recurring glyph

  21. · kamo-internal

    BFF passes AIService answers through unchanged and publishes registry changes

  22. · kamo-shared-library

    Registry entities, capability/value/price/opt-out rows, repositories

    AiProvider and AiModel gain the registry columns (scope, hosting, auth, facts, platform key, lifecycle, origin); provider type and cost tier map through the digit-tolerant converters. New entities and repositories for capabilities, typed capability values, modalities, prices and org opt-outs, plus the existence checks retire/delete needs. AiProvider.credentialEnv (an env-var NAME) is listed as a non-credential, and **************** parses every query and derived finder of the touched repositories without a database, so a bad name fails here instead of at service startup.

  23. · kamo-shared-library

    Task, comment, link, journal and handoff wire shapes

  24. · kamo-internal

    Repeat, window, free/busy and reminder-method logic; a 204 is not a 500

  25. · kamo-shared-library

    Recurrence-aware calendar queries; widgets page singles only

  26. · kamo-internal

    Hire an AI member from Add Team Member, with seat checks and a hiring checklist

  27. · KlusterServices

    Kamo Speech on k3m1 — pinned Speaches, read-only models, DNS-only egress

  28. · KlusterServices

    Keys and NetworkPolicies on in-cluster inference; Kamo reranker and Kamo Local LLM

    TEI embeddings and the new cross-encoder reranker require TEI_API_KEY; bergamot, LibreTranslate and the new Kamo-owned Ollama (qwen3:4b) sit behind the Kamo auth proxy; ocrservice, TEI, the proxies and the LLM accept only their callers. Services switch to proxy ports only after each rollout completes. The proxy template sets map_hash_bucket_size 128: the 71-byte "Bearer <64 hex>" key does not fit nginx's default 64-byte bucket and nginx refuses to start. The reranker runs TEI cpu-1.9.4: 1.5's hf-hub 0.3.2 cannot follow the Hub's rename and resolve-cache redirects for this model. Each deploy step checks its server Secret and key exist before applying (the servers' references are required).

  29. · kamo-shared-library

    ARTIFICIAL template resolution and the rights-change listener seam

  30. · kamo-internal

    Registry wire client and pure form rules

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