SP13 Task 7 — ruling SP13-T7 (aiVoice verdict guarded in the capabilities answer)
The roster, participants, history and send survive a database conflict too
Completes 279a389. After it shipped, production logged the same YugabyteDB 40001 "Restart read required" on Exec2Exec's roster (09-27 16:00Z, and three times ea...
SP10 Task 40 — ruling SP10-T40b (approval changes filtered before the org-change debounce)
Filter approval changes before the org-change debounce (SP10)
useOrgChanges coalesces a burst and hands onChange only its last frame, so testing isApprovalChange on that frame lost an APPROVAL followed within 400 ms by the...
Text helpers, id-safe projections and the fake Kamo services harness for packs
HtmlText lays mail HTML out the way a browser shows it (one jsoup walk: collapsed source whitespace, br, block and paragraph breaks, cells, pre); ThreadIds repr...
Catalogue and resolve endpoints for the charter editor
S1 GET /api/security/charter/catalog and S3 POST /api/security/charter/resolve (spec 4.8). A member draft refused by S6's edit rule answers with S6's bodies (re...
SP04 Task 16 — ruling SP04-T16 (transient-DB retry around member facts and policy reads; added tests)
SP10 Task 8 — ruling SP10-T8 (SecurityService client acts only on SecurityService's own verdicts)
SP14 Task 9 — ruling SP14-T9 (PIN lost race left to the unique index; window, anchor and bridge-off tests)
SP13 Task 5 — ruling SP13-T5 (read-only AiCallStatus.LIVE; mapping, finder and query tests)
AI call telemetry entities
AI_CALL and AI_CALL_EVENT (spec §4.2/§4.3): direction, status, outcome and event-type enums (STRING), the two entities and their repositories. AiCallStatus.LIVE...
Approvals — decision form, list, Interaction Center tab and deep-link page (SP10)
The approval form (A3/A4) with wording-only edits, the Workforce hub list, the Interaction Center Approvals tab with its A2 badge, and /workforce/approvals/<id>...
SP03 Task 25 — ruling SP03-T25 (unambiguous brief input hash, version-checked race winner, cache never throws)
SP05 Task 16 — ruling SP05-T16-build (legacy tool endpoints removed; controller-scan test; step 3 grep fixed)
Remove the execute-as-org tool endpoints now that AIService uses /mcp
/api/mcp/tools/list and /api/mcp/tools/execute answered for a whole org, which the Tool Plane forbids (D28). No deployed client could reach them (AIService call...
SP03-T15 ruling — charter write checks leave a caller's transaction committable; markers cannot hide markers
Meeting minutes contract — prompt, JSON parse, markdown and HTML rendering
Mirrors kamoai-voice's minutes.py exactly: caps and chunks count code points (no split emoji), Unicode white space is stripped, only JSON arrays are lists, text...
Write-time checks for hide markers and escalation targets
A refusal leaves a caller's transaction committable, so the member charter PUT still answers 400; a hide marker cannot target another hide marker; a malformed e...
Org MCP servers as ext_* tools over Streamable HTTP and legacy SSE; STDIO retired
A server's own words reach a caller only inside the untrusted wrap; nothing sent is definitive (D45); the URL guard runs on every use; one session and one tool ...
Svc_kamoai_voice follows the org pause and the kill switch (KamoAI SP13)
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.
