An org that ranks OpenAI transcription first streams STT through it, and every ticket names its session dialect (SP95)
transcription model was dropped as ADAPTER_UNSUPPORTED and every streaming STT ticket went to Kamo Speech on CPU. Each catalogue row now names the session (the ...
Route website contact forms, on the session-creation budget
POST /api/public-chat/contact proxies to MediaService's new contact endpoint through the same site-key, origin and scope checks as every other public-chat call,...
A lender's website contact form files a ticket in their own queue
POST /api/media/public-chat/contact, reached through the gateway's site-key gate like every other public-chat call, so the key names the org and its allowed ori...
SP95 Task 12 ruling SP95-T12-1 (built ahead of Task 34; rag_search has no action class)
Rag_search takes audience PUBLIC, the search the public may read (SP95 T12)
An AI on a phone call answers an anonymous caller, so it searches only the published articles the public may read, never notes (spec D12). The optional audience...
The AI signature disclosure names the company by its spoken name
An AI member's email disclosure filled {organization} with the organization's title (its letterhead), so Luna's mail said "an AI member of the KamoCRM Inc. team...
Nothing in the mail namespace reaches the session store
rspamd now keeps its data in its own Redis, so the platform Redis drops its mail_rspamd user and admits only the kamo namespace; rspamd's ConfigMap drops the ke...
Rspamd keeps its data in its own Redis
local.d/redis.conf is now the redis-own.conf key: rspamd-redis in mail, database 0, the same mail_rspamd login. The subPath change rolls the pod. The old key st...
A Redis of rspamd's own
rspamd parses untrusted mail and logs in to the platform Redis, beside every member's session, and no ACL can keep it from them there: a user cannot be scoped t...
Say that the platform org holds every app whatever its plan rows say
Completes the corrected comment over the platform-only catalog entries: the rows it describes decide nothing for the platform org itself, which ****************...
A charter save reaches the AI runtime at once, and the charter profile names the company (SP95 T6)
**************** now carries a cause. The rights path sends RIGHTS; a committed charter save sends CHARTER for each affected AI member, with the member's curren...
The platform-only catalog comment says what the ladder did to each app
The comment over REPORTS, GAMIFICATION, KAMO_UNIVERSE, CHESS and HOLDEM said all five were placed where their live entitlement already was, on OWNER_UNLIMITED. ...
Approvals_request sends a class a tool performs to that tool; the charter stamp keeps tools fresh (SP95 T10)
approvals_request refuses an action class a catalogue tool performs with INVALID_ARGUMENTS USE_TOOL {tool, tools, actionClass}, or NO_TOOL_FOR_YOU when the call...
Assigning a computer reads the one member, not the whole organization
HostedComputerAccess.isMember loaded every member of the organization to test one id, and emailOf, called right after it on the same assign path, did the same t...
A member's xrdp desktop shows the organization's wallpaper
xfdesktop draws the backdrop stored under the X server's RandR output name. A member works in an xrdp session, whose xorgxrdp server names its output rdp0, but ...
A take-over ends only once its VNC password is sealed
VncAccess cleared the take-over in memory and then wrote the password file. When the write failed, x11vnc kept accepting the take-over password while the agent ...
A blank internal secret answers 503 on /transcribe too
/transcribe answered 403 when **************** is not configured; master §7 item 13 asks 503 of every internal endpoint, which its sibling /transcribe/detailed ...
The AI endpoint writer does nothing until FreePBX has generated its endpoint file
Without pjsip.endpoint.conf nothing is known about which extensions exist, so Apply wrote empty managed AI sections (and reloaded), which would take every AI ex...
SP95 Task 14 ruling SP95-T14-1 (the team line's TRANSFERRED detail; what counts as named)
Open the application with the answers a lender's site already took
A lender's marketing site can now carry its own short "get started" form and send the borrower here with purpose, name, email and phone filled in, so nobody typ...
SP94 DDL for the org's two phonetic name columns, pinned by a contract test
orgs.title_phonetic and orgs.title_short_phonetic, both nullable VARCHAR(255) with no default and no CHECK, the same shape as users.name_phonetic. Hand-applied ...
SP95 Task 25 rulings SP95-T25-1..2 (four keys for Tasks 26–27; the wording left open)
Plan Tasks 26 and 27 name the extra keys: the palette label, captionOther, and the link text beside "Asked for by {name}".
Note why the ulaw mapping is unreachable today
Review (el-format-review-1.md) flagged that AudioController.SPEECH_FORMATS has no "ulaw" entry, so nothing reaches that arm of ElevenLabsFamily's output_format ...
Key the cross-root retry on alias-domain membership, not root-or-not
Round 3 review (email-fix-review-3.md) confirmed round 2's BLOCKER fixed (walked sage@kamouniverse.com through both the app code and Postfix's own platform-alia...
ElevenLabs speaks the format a caller actually asked for
The adapter hard-coded output_format=mp3_44100_128 on every call, so a caller asking E5 for wav (or kamoai-voice asking for pcm, on every phone call) still got ...
SP95 Task 13 rulings SP95-T13-1..2 (which tool calls carry the charter stamp; when a tool list is kept)
Retry every owned domain unconditionally, and drop the +tag fold
Round 2 review (email-fix-review-2.md) found the round 1 fix for MAJOR #3 (multiple root domains) still reopened the original bug: - BLOCKER: kamouniverse.com ...
E5 speaks with an AI member's remembered voice, its preferred model first, and names the voice it sent
For an AI subject (the AI's own session, or the internal twin with ?memberId=) every TTS candidate is sent the voice the SP96 resolver decides, and the answerin...
SP95 Task 11 ruling SP95-T11-1 (RAG audience: exact PUBLIC, null is absent, checked after auth)
Audience PUBLIC narrows a session search to published public articles
A session search may send audience: "PUBLIC" to search as the public widget does (no member, no member type): published articles flagged for the public, never a...
SP95 Task 7 rulings SP95-T7-1..2 (the settings PUT stays a full replacement; the team line's 404 reason)
The phone server's team line for an AI member's unnamed transfer
SP95 D10: the AI voice settings take defaultTransferExtension (digits, like the fallback; blank clears it) and echo it. The new internal route GET *************...
Trim the mirrored-alias check, and stop it forcing a lazy load per member
Review findings on the AI-full-name fix (4ea53c5): - LOW: the mirrored-username comparison didn't trim either side, so an alias saved with stray whitespace (...
The AI-dispatch audit trail names people the same way chat does
**************** hand-duplicated MemberDisplayNames' pre-fix precedence (usernameAlias wins unconditionally over the real name), with its own comment warning th...
SP93 phone outbound policy settings — spec, plan, ledger
Plans the two per-phone-server settings the owner asked for (2026-09-28): a default for whether a new extension, human or AI, starts allowed to dial out (off by...
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.
