Fold lead_task into tasks — idempotent, encrypted, one row per transaction
AI members take and release a seat on the organization's primary plan
The claim never takes a spare row beyond the paid seat count (SP02-T17).
The composer paints the server's compose template and sends through it
Body formats, email-safe sanitiser and signature stripper for server-side compose
The sanitiser also drops a style attribute that runs code, as it does a style block, and drops <title> and <template> whole: jsoup's Cleaner keeps the text of a...
Capability source precedence, the single capability writer, and the batch capability index
An adapter that denies TEXT_GENERATION speaks for the whole chat family; a switched-off LONG_CONTEXT never overwrites a reported context; remove leaves a tombst...
AI Member security template, never-grantable locks, and the AI access-log events
The member rights tab now picks the template the way SecurityService does, owners included. A locked row can still clear a setting saved before its right joined...
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.
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.
