Deepgram, ElevenLabs, AssemblyAI, Cartesia families and the per-type adapter registry
Beyond the plan: the Perplexity chat check classifies failures as every other check does (spec 4.7.3); ElevenLabs and Cartesia refuse a missing voice and a voic...
Provider detail — connection, models and health rooms
The provider page: a hero (state, PHI, switch, sync, verify, remove), a catalog-driven Connection room that saves only what changed, a Models room (filters, sea...
Platform Configuration KamoAI kill switch tab
Stopping takes a 12-500 character reason and the word STOP; starting again takes START. AI_PLATFORM_KILL_SWITCH now gates the KamoAI tab and its menu link, whic...
The task API — mine, search, create into an Inbox, change, finish, link
A status list with no status in it (status=,) reads as the default instead of reaching the query builder as an empty filter; blank linkKind/linkRef are absent l...
AI settings Workforce controls tab — pause and resume every AI member
Tasks across lists — create, reassign and move, status, delete, links
A move re-seals the task's words under its own label, since the fallback key is the list owner's and the move changes the owner. A due time sent again unchanged...
Real model discovery for OpenAI-style, Anthropic, Google, Hugging Face, Ollama and catalogue-only vendors
The 29 header layouts as Handlebars templates, held to the legacy goldens
Registry home — providers grid, Add provider, Provided by Kamo, coverage
The grid's switch and order arrows own their clicks (gridOwnClick): ag-Grid fires rowClicked from a native listener, so stopPropagation could not keep them from...
Find a time — colleagues' busy time, working hours and suggested slots
The event dialog's GUESTS section gains the scheduling assistant: the event's day from 06:00 to 22:00 in its own zone, one track per person (you and up to 20 ch...
Mention rows
MediaObjMsgMention maps media_obj_msg_mentions (composite key obj_id + member_id). deleteByObjId is a derived delete, not a JPQL bulk DELETE, so an edit that ke...
Tasks carry status, priority, due, assignee and links; the Inbox keeps its rules
AI status and hiring checklist on the member profile; Person-or-AI is one-way
Known-model catalogue (hints + unchanged prices) and name-hint classifier
The 29 signature layouts as Handlebars templates, held to the legacy goldens
My tasks — scope, filters, a grid, and a composer that assigns
The grid ticks a task off without opening it, keeps each column's sort and width across renders, sorts due time, priority and status by meaning, says when a fil...
Announce new voicemails — live panel, phone push and a card
A voicemail the sweep writes for the first time, on an extension with an assigned member and received in the last 24 hours (spec D17), now publishes voip.voicem...
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.
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...
Task notifications after commit, and the org-change signal for internal writes
Repeat events, choose which instances an edit is for, text reminders
Compose template engine, view models, helpers, partials and wrapper
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.
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 realti...
Who a task can be given to, who supervises whom, and the names tasks show
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 "[e...
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 unsave...
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...
Live task lists, task chips with zone-correct due times, record link chips
Bound AI members by their supervisor's applied rights and the never-grantable floor
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.
