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
BFF passes AIService answers through unchanged and publishes registry changes
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 dig...
Repeat, window, free/busy and reminder-method logic; a 204 is not a 500
Hire an AI member from Add Team Member, with seat checks and a hiring checklist
Kamo Speech on k3m1 — pinned Speaches, read-only models, DNS-only egress
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 aut...
ARTIFICIAL template resolution and the rights-change listener seam
Task types, the session and lead clients, and due times in the member's zone
Task columns, links, comments, Inbox kind, note links and authorship
Pinned, hash-verified model fetch and a warm-up that holds the pod until every model is resident
The warm-up also drops a model whose load failed: Speaches 0.9.0-rc.3 keeps the entry of a failed load, so the next startupProbe would get 409 and /api/ps would...
Never-grantable AI rights, ARTIFICIAL template type, AI access-log events
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.
