Changelog
What's new.
Every improvement to the platform, as it ships.
· MCPGatewayService
An offered SI's send says what it was in the result's _meta["kamo.collab"] — purpose, urgency, regarding, intent source, outcome (SEND, or DEFER with deliverAfter), the colleagues reached with kind and person flag (the gate's own recipients when it judged them, else the plan's with CollabCallFacts.kindOf and the org graph), the thread and a consult's id; written before the key is DONE so a replay carries it, on delivered and deferred INTENT calls of SIs IntentOffer offers; content and structured...
· MCPGatewayService
Tasks_list_comments shows a comment's kind and stance when it is not a plain comment — a POSITION, HANDOFF or ESCALATION row adds kind (and stance when it has one) for the disagreement protocol and the runtime; a COMMENT row, or one KBService gives no kind, is byte-identical to before (KamoCollab CP13 Task 9, D30)
· kamo-shared-library
Land KamoCameras — app 39, rights 334-337, entities in com.kamo.z.shared.cameras
Merges feat/kamo-cameras (16f184ad, 6fd4e3fd, 1dfeb3b4). Main took 333 for RELEASE_TO_ORGANIZATION (a3630977) after the branch was cut, so the four camera rights move up one: VIEW_CAMERAS 334 (root), MANAGE_CAMERAS 335, MANAGE_CAMERA_SITES 336, ACCESS_ALL_CAMERAS 337. Next free right is 338. Nothing persisted the old numbers: org_role_rights holds 333 only (RELEASE_TO_ORGANIZATION, 140 rows) and nothing at 334-340. RoleRightHierarchyTest: 323 rights, 235 children, 42 roots with children, 46 standalone, 88 roots. The camera schema (9 tables) was created by KamoInitializerService on 2026-10-11 from these same entities. Full suite: 2835 tests, one failure **************** which fails identically on origin/main.
· InitializerService
Scan com.kamo.z.shared.cameras (merge feat/kamo-cameras)
The KamoCameras entities' package joins KamoInitializerApp's @EnableJpaRepositories list. The run that created schema camera (9 tables) was made from this on 2026-10-11 and kamo_app was granted the schema; no new run is needed.
· SecurityService
/api/security/cameras/** — the KamoCameras relay (merge feat/kamo-cameras)
CameraController is the trust boundary for KamoCameraService: it resolves the session, checks VIEW_CAMERAS / MANAGE_CAMERAS / MANAGE_CAMERA_SITES (now 334-336; ACCESS_ALL_CAMERAS 337 is sent as the viewer's accessAll), and stamps the caller's org and member id onto every relayed path. CameraPrincipals resolves the viewer's departments (with ancestors), job titles and teams; SiteRoutes allowlists what may be relayed under a site. AppAvailabilityInterceptor gates the prefix on ServiceType.KAMO_CAMERAS; camera.service.url in the configmap. Suite: 5302 tests, 3 failures, all also failing on origin/main and unrelated (OrgGraphPublisherCoverageTest on DisclosureLedgerQueryService; two charter-stamp goldens).
· KlusterServices
Svc_camera, KamoCameraService's own login
Publishes rt.org.> (the Cameras screens' live refresh) and cameras.site.> (a site RPC routed to the pod holding that site's connector socket), subscribes cameras.site.> and its inboxes, and answers requests it receives (allow_responses) — the reply goes to the requester's _INBOX, which no other allow-list entry grants. Plaintext only in kamo/nats-user-camera (created 2026-10-13; SECRETS.md). Config checked with nats-server -t in the live pod.
· kamo-internal
The Evaluation tab in the SI workforce hub — per SI over the period: contacts started, deferred and refused, approvals asked, approved and rejected, what it shared, needed a release for, released, was blocked from and would have been blocked from, escalations, helpful and critical feedback, beside its archetype, key traits and latest graded rehearsals (each linking to its room); the totals as the grid's last row, the incomplete notice and the as-of time; the disclosure red team for MANAGE_AI_WOR...
· MCPGatewayService
An SI whose PERSONALITY is configured is offered the intent arguments — IntentOffer = CP12's CollabOffer, or an SI with a configured personality; tools/list adds purpose, urgency and regarding to its INTENT tools, IntentResolver resolves its calls as an offered SI's (MISSING, never NOT_OFFERED) and its stated record joins the communication-policy question; the collab_* tools and the ENFORCE rejection of a missing purpose keep CP12's offer; an SI with neither section keeps the golden schemas byte...
· kamo-internal
Tuning suggestions in the SI room and the charter — the Tuning card (open suggestions with their evidence, Open in the charter, one-click Dismiss), and ?tuning= on the member's charter putting the change into the unsaved draft on Personality, marked applied only after a save that landed (KamoCollab CP15 Task 20)
· kamo-internal
Feedback reactions on SI replies in chat and on run reports — useAiFeedback (F1 through a 60 s cache, F2 in pages of 100), AiFeedbackPicker, the bubble's menu item and rater-only line, and the run list's button (KamoCollab CP15 Task 19)
· kamo-internal
Goals and watches in the SI room — the last, full-width card reads GET **************** and reloads on a kamoai change: each metric goal with its target per period, a bar with 7 of 10 and Goal met, met or not met where lower is better, or why there is no figure (Not measured yet, No access, Not available, Restricted, Unavailable); each watch with what it acts on, Looks into it or Notes it in its journal (and why), the last check's status and previous → current (change%) and the n...
· kamo-internal
Rehearse with graded suites, unsaved settings and grades — the Rehearse dialog's suite choice and draft switch, RehearsalResults, the SI room's suite rows and Run a suite (KamoCollab CP15 Task 18)
The Rehearse dialog offers the four suites with their descriptions (COLLAB_ETIQUETTE off when the settings it would use have no Docstion settings) and "Use the settings on screen", on by default when the effective stamps differ from the saved resolve's and the viewer holds the draft right (MEMBER: MANAGE_MEMBER_SECURITY + MANAGE_AI_WORKFORCE; else CONFIGURE_SYSTEM). Start sends {level, layerId (ROLE, DEPARTMENT, JOB_TITLE, TEAM), items}. A refused draft says why (CHARTER_INVALID in the charter vocabulary's words, DRAFT_LAYER_NOT_HELD and the CP15 reasons in the room's) and starts nothing. RehearsalResults shows each scenario's title, verdict, score, criteria met and missed, the reply or why it is withheld, the suite's result and score, and the costs. The SI room reads graded suites with their result and score, offers Run a suite on the saved settings, and opens a suite's report through RehearsalResults. rehearsalErrorKey words DocsTION_NOT_CONFIGURED, EVALUATION_DAILY_LIMIT, DRAFT_UNAVAILABLE, DRAFT_LAYER_NOT_HELD and MISSING_RIGHT. Needs @kamo/kamoai-core 0.1.3 (CP15 Task 16): package.json and the four lock-file lines are bumped at ship, once the registry has it.
· MCPGatewayService
An SI hands its task to a colleague and states its position on a task — collab_handoff and collab_position (pack collab, AI_ONLY, EDIT_NOTES, opened by CP11's charterSwitch DocsTION, offered in ENFORCE too): a hand-off names an active colleague other than the SI (else INVALID_ARGUMENTS NOT_A_COLLEAGUE) and a task the SI can read and is the assignee or creator of (a task without a recorded creator is its list owner's; else, or unreadable, INVALID_ARGUMENTS NOT_YOUR_TASK); it is ASSIGN_WORK j...
· MCPGatewayService
An SI asks a colleague and answers an SI that asked — collab_consult and collab_answer (pack collab, AI_ONLY, opened by CP11's charterSwitch DocsTION, offered in ENFORCE too): a consult to an SI colleague that takes consults (its org in ENFORCE or its own DocsTION switched on, else COLLAB_DENIED NOT_DocsTING) is recorded in kamoai-service's POST /api/kamoai/internal/consults with the asking run as parentRunId and the run's onBehalfOf chain plus the SI (more than five, or back alon...
· kamo-internal
Settings landing cards for the organization charter and Personalities — the Super Intelligence section now opens for either of its audiences (SI Support with MANAGE_AI_SETTINGS, or an SI-workforce organization's CONFIGURE_SYSTEM holder), each card keeps its own: the five SI Support cards for the first, Organization Charter and Personality Archetypes for the second, exactly as their tabs and menu entries are gated; no admin-bar entry (KamoCollab CP09 final fix, master R1-37)
· MCPGatewayService
The Tool Plane's build identity and an SI's daily Docstion counts — GET /api/tool-plane/internal/build answers {service:"mcpgatewayservice", version, time} from Spring Boot's BuildProperties (pom.xml runs build-info; both null without it); GET **************** answers {orgId, memberId, day, contacts:{started, replies, deferred, rerouted, denied, approvalRequired}, escalationSends} for one SI and UTC day from its real, gate-stamped calls in its org...
· MCPGatewayService
An SI's first contact with an outside person needs CONTACT_NEW_PERSON (defect 7) — mail_send and mail_forward list each outside address (email:<lower>), sms_send and an outside phone_call the number (phone:<E.164>), as ToolPlan.FIRST_CONTACT for an SI, and each declares CONTACT_NEW_PERSON; the Docstion gate, for every SI and not on an approved re-execution, drops the people the run already speaks with and asks AIService's POST **************** (FirstContactClient: 20 ...
· MCPGatewayService
Rehearsal run contexts on the Tool Plane — a run whose context carries CP15's rehearsal block takes dry-run calls only (a call or tools/list without X-Kamo-Dry-Run answers UNAVAILABLE REHEARSAL_RUN_DRY_ONLY before anything runs); simulateEnforce judges that run in ENFORCE (EffectiveDisclosureMode) in the audience filter, the read audience, the disclosure gate and disclosure-check, and the tool list (disclosure_request, basis, sourceRef); a non-blank privateContext is recorded as the run's Confid...
· kamo-internal
Describe a change — the job-title, department, team and organization charter editors and an SI member's charter card offer "Describe a change" (to a viewer who may save the layer, and only while the editor holds no unsaved changes): the setup assistant drafts against what is saved, the validated draft shows as a diff by section (Added, Changed with before → after, Removed, Kept inside the limits with why, Not possible with why), and "Use these changes" puts the proposed own layer into the editor...
· MCPGatewayService
SI loop guards in the Tool Plane — an SI's tasks_comment sends aiTurnLimit and its mail_reply the multipart field aiTurnLimit, both its charter's maxAiOnlyChatTurns (6 by default), so KBService's and EmailService's thread turn guards hold it to its own limit (their 429 AI_TURN_LIMIT answers WAIT_FOR_HUMAN, as in chat; a person's comment or reply is unchanged); and the SI pair budget (AiPairBudget): beside the charter's limit counters, an SI's disclosing send takes one unit on kamo:collab:pair:<o...
· MCPGatewayService
A deferred SI message goes through the disclosure gate to the outbox — when the Docstion gate DEFERs an SI's chat_send in a direct chat or its mail_send to one colleague, the call still meets CP07's disclosure gate (an ENFORCE refusal stops it, nothing queued), the charter's outcome, the limits and the outreach gate, and OutboxDefer then replaces the handler: the gate's snapshot (with the run's sealed excerpts of its sources) is kept 73 h as kamo:tool:held:outbox:<itemId>, the item is poste...
· kamo-internal
The archetype dialog — New, Copy and Edit on the Personalities tab open an editable dialog: the name, the description and the optional text (40 to 220 words, at most 1,500 characters, counted as you type, with "Insert the organization's name" at the caret), and every setting through the values panel in archetype mode, resolved in the browser; Preview opens the preview over the dialog on the archetype, and "Use the preview as the text" copies a written text in; Save creates or fully replaces the ...
· MCPGatewayService
The Docstion gate — an SI's call of an INTENT tool is judged where CP04's interaction gate stood: its intent (ToolPlan.INTENT; an offered SI of an ENFORCE org that starts a contact without a purpose is refused INVALID_ARGUMENTS INTENT_REQUIRED), CP04's communication policy as step 1 (a refusal stamps COLLAB_DENY interaction:<ruleId>, an approval it asks for COLLAB_REQUIRE_APPROVAL), then, for an SI whose DocsTION charter is configured only, CollabCallFacts and DocstionPolicy per r...
· MCPGatewayService
The reports pack — reports_list, reports_run and metrics_get under the caller's own report rights (KamoCollab CP14 Task 12)
reports_list reads SecurityService's report library on the caller's session: the reports they may run, the measurable metrics of those reports and, for an SI caller, its measurable activity metrics; with a key, the report's definition read with recordRecent=false (parameters with at most 50 options, columns, views, its metrics); reporting switched off is an empty library with "Reports are not switched on in your organization." reports_run maps params by the definition's types (a date range is a preset or YYYY-MM-DD/YYYY-MM-DD, a multi-select comma-separated, anything else text; an undeclared, repeated or unreadable parameter and a column the report does not group by are INVALID_ARGUMENTS before anything runs), runs the report and answers its totals, KPIs, at most 50 groups and limit rows (no _href, ids as strings, offset-less UTC times as instants), the whole result one source **************** a run 400 is INVALID_ARGUMENTS with its message, and a report the caller may not run answers as one that does not exist. metrics_get asks kamoai-service's metric facade (MetricsClient: X-Internal-Auth, 2 s connect, 10 s read) for the caller in their zone: OK is one source, its sourceRef; any other status its sentence and no figures; a failure UNAVAILABLE. All three are READ, audience ALL, charterSwitch("WATCH", true): an AUDIT org's SI without a watch keeps a byte-identical tool list. ContentReadTools: reports_run and metrics_get LABELED (root), reports_list NOT_CONTENT. ToolRegistry: prefix reports_, and metrics_get named outside its pack.
· MCPGatewayService
The SI intent arguments — purpose, urgency and regarding on an offered SI's INTENT tools (CollabTools: INTENT and NO_INTENT with reasons, every disclosing tool ruled), injected by tools/list only for an SI whose Docstion is configured or whose org is in ENFORCE (an unconfigured SI of an AUDIT org keeps byte-identical schemas), taken out of an SI's arguments beside onRequestOf before the schema check, the planner and the args hash and checked (INVALID_ARGUMENTS with field); IntentResolver: v...
· MCPGatewayService
Seed an SI run's source ledger, and the WATCH charter switch — POST **************** (X-Internal-Auth) takes {orgId, memberId, items:[{ref, excerpt}]}: 1-5 canonical refs with excerpts of at most 4,000 characters (else 400 items), labels them through LabelService and records each in the run's source ledger as a read of tool runtime:signal, its excerpt sealed (204); a run with no registered context of this SI is 404 RUN_CONTEXT_MISSING; an AUDIT org whose calls go une...
· kamo-internal
The Personalities tab — /settings/ai?tab=personalities lists the seven built-in archetypes (title, description, text, and the four dimensions each sets furthest from the default) with Copy and customize, and the organization's own with their settings count, when they were last updated (a server time read as UTC, shown in the member's zone), Edit and Delete; New archetype stops at the organization's limit and says so; a delete is confirmed first, and a refusal because the archetype is still chose...
· MCPGatewayService
Knowledge_context — an SI's standing knowledge through kbservice's GET /api/notes/ai/context, passed through: Our Master Note, the knowledge notes (the charter's, then its teams' and departments' pinned notes) and the decisions in force, each entry its NOTE at /orgMaster/i, /knowledge/i and /decisions/i; pack memory (AI_ONLY, NOTES, READ, VIEW_NOTES), offered only when the SI's charter sets maxContextKnowledgeChars to 1 or more (ENFORCE alone never offers it); at most 8 noteIds; a strict read, s...
· MCPGatewayService
The SI memory tools, the charter switch and strict reads — memory_record, memory_search and memory_forget (pack memory, AI_ONLY) over kbservice's /api/notes/memory; ToolDescriptor.charterSwitch, the program's one opt-in rule (R1-5): a tool naming a switch is offered to an SI only when its charter sets that LIMIT key to 1 or more, or its org is in ENFORCE and the switch lets ENFORCE offer it, else hidden as CHARTER_SWITCH_OFF; the memory tools' switch is maxMemoryCards with ENFORCE offering nothi...
· kamo-internal
Hire an SI from the wizard — the create page's SI branch is now Describe → Review → Hire (a stepper with aria-current, its state in kamo.aiHire.v1); the Hire step sums up the hire, says saving is the approval and shows the paragraph written for exactly the settings hired (one resolve for the stamp, one preview only when the text shown was written for others, Open the full preview); runHire creates the new department, job title and teams one at a time, persisting each before the next, then the me...

Your universe is waiting.
Start free in minutes. Add products whenever you are ready — no migration, no new logins.
Free forever — no credit card required