Changelog
What's new.
Every improvement to the platform, as it ships.
· SecurityService
The catalog exposes the personality and Docstion blocks — the 60-key trait registry, group choices and defaults, the seven tendency links and built-in archetypes, and each DocsTION kind's merge, fields, required fields, choices and default with the escalation bounds, all from the shared-lib registry and enums; enums gain relationship and collabKind (KamoCollab CP03 T18)
· SecurityService
The item_origin DDL on the six charter owner tables, with its contract test (KamoCollab CP10 Task 1)
Records who drafted a charter item (NULL = a person, AI_DRAFT = the SI configure assistant). Hand-applied by CP10 Task 2, before shared-lib CP10 Task 3 is pushed.
· KBService
Task comment kinds and the SI turn guard on task threads, and the assignees list — an SI may post a POSITION (stance + rationale, stored as the joined body) and send **************** a person sending any is 400 FIELD_NOT_ALLOWED, HANDOFF/ESCALATION are KBService's own; an SI's comment is 429 AI_TURN_LIMIT when the newest aiTurnLimit (else 6) comments are all SIs'; GET/POST carry kind and stance; GET **************** (<=100 ids, exclusive with assignee) in VISIBL...
· kamo-shared-library
BlockedAt on the task entity and its DTO — checklist_items.blocked_at (TIMESTAMPTZ, nullable), and TaskDTO.blockedAt, omitted when null so every other task's JSON is unchanged (KamoCollab CP13 Task 3)
· EmailService
The email-thread turn guard and the primary address — an SI's reply carrying aiTurnLimit (1-100) is refused 429 AI_TURN_LIMIT when the thread's newest limit messages in its mailbox are all by SI members (AiReplyTurnGuard; a person's field ignored, fails open with a WARN), and GET **************** answers the member's primary mailbox in the org, with the member_mailboxes(member_id) index DDL (KamoCollab CP12 Task 15)
· kamo-shared-library
DigestSchedule and DigestComposer, when an SI's held messages are delivered and the digest text (header, purpose words, oldest first, packed within maxItems and maxChars, an over-long item split into its own messages) (KamoCollab CP12 Task 10)
· MediaService
An SI's NOTIFY raises the chat card at HIGH at once — POST **************** honours notifyPriority HIGH from an SI sender in a CHAT only, and the fan-out raises each person's CHAT_MESSAGE at HIGH without the grace (KamoCollab CP12 Task 16)
· kamo-shared-library
DocstionPolicy, the pure per-recipient Docstion decision (mode ceiling, delegation or proactive contact, then etiquette, caps, the SI attention budget and channels), its combine, and EscalationTargets (KamoCollab CP12 Task 9)
· MCPGatewayService
Tool Plane Docstion foundations: SI charter views (Docstion, personality, escalation route members), recipient preferences client, attention and delegation counters, the offer rule, the DEFERRED and REROUTED statuses and the six audit columns (KamoCollab CP12 Task 23)
· SecurityService
Recipient preferences, GET|PUT **************** and POST **************** (KamoCollab CP12 Task 11)
How a person wants SI colleagues to reach them (spec §5.5, D36): a JDBC store over member_collab_preferences and member_collab_channel_order (keyed reads, at most 50 members), a writer bean that replaces row and channel order in one retried transaction, whole-body validation with a field on every 400, the view with effective values (org defaults from OrgDisclosureSettingsReader, zone from MemberZoneResolver), the session controller (self edits; MANAGE_MEMBERS and MANAGE_MEMBER_SECURITY read only; 409 NOT_A_PERSON for SI members) and the internal endpoint for the Tool Plane and digest delivery.
· kamo-shared-library
Structured task comments (kind, stance) and the disagreement columns on tasks, with the two bounded reads for the SI turn guard and the disagreement streak (KamoCollab CP12 Task 8)
· kamo-shared-library
The INHERITED label — AudienceScope.INHERITED (the intersection of what an SI learned from), scopeCovers false for it, DisclosurePolicy step 4b (cleared like an ORGANIZATION record, then narrowed by inheritance; none without inherited sources), and LabelSetters.higher, the narrower Confidential setter (KamoCollab CP11 Task 5)
· kamo-shared-library
The Docstion runtime's vocabulary, the CONSULT and DIGEST triggers and the SI pair budget key (KamoCollab CP12 Task 7)
CollabPurpose (contact level, delegation), CollabOutcome (severity), CollabReason, CollabIntentSource, CollabIntent (missing = INFORM/5), CollabToolKind (deferrable, etiquette), DigestChannel, RecipientPreferences, TaskCommentKind, PositionStance and InterruptWindow (08:00-21:00). AiRunTrigger appends CONSULT and DIGEST; CharterLimitKey appends maxAiPairMessagesPerDay (MIN, COUNT, 1-1000, default 40); LIMIT maxItems is the key count (R1-8).
· MCPGatewayService
The audience filter on an SI's reads — ToolOutcome.items and ContentItem, ContentReadTools (every READ tool labeled or not content, pre-checks and counts), the pre-check before the handler and the filter after it (ENFORCE removes what the run's audience may not know and answers a withheld record as "Not found."; AUDIT changes nothing and records WOULD_WITHHOLD), the source ledger and withheld store, read stamps through CallLedger.readOutcome, and cached work links (KamoCollab CP07 Task 17)
· AIService
"# How you work and sound" in the brief — the personality render for the subject's stamp with {orgShortName} filled, the stamp and text in the input hash, a version only when the text, stamp or triggers change, renders recompiled into briefs, and A5 showing the stored render or the outline (KamoCollab CP06 Task 9)
· kamo-shared-library
The memory vocabulary — the charter switches maxMemoryCards and maxContextKnowledgeChars (no default: unset is off), LIMIT's cap follows the key count, MemoryCardKind, MemoryCards, MemoryTopics, the three AI_MEMORY_* access-log events, and NOT_MEMORY in every generic visible note finder plus findOwnExcludingMemory (KamoCollab CP11 Task 4)
· AIService
The personality preview — POST /api/ai/personality/preview with A5's rights (now CharterSubjectAccess, shared), charter subjects through I2 and archetypes resolved here, the outline and the model's prose kept as the stamp's preview copy, the creator's prose validated, 30 renders per member per hour, and no row written (KamoCollab CP06 Task 8)
· KBService
The release — POST /api/notes/{id}/release (?dryRun) for a person: the owner's note, its audience validated against the org graph, a narrowing applied with no check; otherwise its provenance labels (503 LABELS_UNAVAILABLE with nothing written or recorded when an owner cannot be asked), ReleaseAuthority for the caller and its grant handed to the HumanShareGate (NOTE/RELEASE), the event written first (OWNER_CONTENT when the note has no source), 409/403 refusals in ENFORCE, then NoteReleaseWriter m...
· DocsService
Declare the disclosure ledger recorder, paired with its repository scan (KamoCollab CP08 Task 13)
DisclosureLedgerConfig declares DisclosureRecorder; DocsServiceApplication's @EnableJpaRepositories gains **************** in the same commit. DisclosureLedgerWiringTest drives Spring Data's registrar over the application's own annotation and fails when the scan entry is missing.
· MCPGatewayService
The DDL file for the tool audit's six Docstion columns (KamoCollab CP12 Task 4)
· KBService
The task-Docstion DDL, comment kind/stance and the disagreement columns, with its contract test (KamoCollab CP12 Task 3)
· SecurityService
The recipient-preferences DDL, member_collab_preferences and member_collab_channel_order, with its contract test (KamoCollab CP12 Task 1)
· KBService
The CP11 memory-card DDL file and its contract test (KamoCollab CP11 Task 1)
note_memory_cards (eleven columns, keyed by the note, cascading its delete) and its three per-SI indexes, plus ix_notes_member_updated for the supervisor review's per-member page; spec §5.1 verbatim, applied by hand by Task 2.
· kamo-shared-library
RelationshipFor — an SI's relationship to a member from the org graph (first matching rule: itself, manager or supervisor, owner, outranks the supervisor, another SI, a report, junior, peer) and to an outsider from CounterpartKind (KamoCollab CP03 T13)
· kamo-shared-library
Adaptation sentences, output budgets, channel fragments and voice style (KamoCollab CP06 Task 5)
AdaptationPhrases.sentence (spec §5.2.3): the three heaviest differences between a relationship and channel lookup and the base, comparatives then clauses. OutputBudgets (§5.2.4): target words per channel and a step token budget that only shrinks (never under 2048, never above the global). ChannelFragments (§5.2.5): the six length lines, then the adaptation. VoiceStyle and VoiceStyles (§5.2.6): stability, style, speed, instructions and the call re-prompt, exact decimals rounded half up. TraitPhrases gains hasChoiceClause. Pure; no bean.
· AIService
The leak check, one fail-closed SI review of a draft against withheld excerpts (KamoCollab CP07 Task 14)
POST **************** (KamoAI secret only) answers {verdict: CLEAN|LEAKS|UNSURE, reason}. LeakCheckService builds a fixed, provider- and tenant-neutral prompt and makes one TEXT_GENERATION call through **************** (MEDIUM, one attempt, 20 s, PHI-eligible for PHI orgs), metered as usage kind DISCLOSURE_CHECK. Anything but one strict JSON verdict, a timeout, no route or the PHI boundary is UNSURE.
· MCPGatewayService
The disclosure ledger completeness check, GET **************** every gate-stamped SI call has exactly one matching event, no SI send skipped the gate, no SI event lost its audit row (KamoCollab CP08 Task 11)
· AIService
The render service, background renders and the preview copy — a brief's personality text from the subject's row, the kept preview, the stamp's prose or the outline, never waiting on a model; one render per stamp across pods (KamoCollab CP06 Task 7)
· MCPGatewayService
Every channel's planner writes its interaction plan — an SI's team-chat line and new DM, internal mail (members its recipients reach, the original's sender as a reply), colleague call, meeting invitation, calendar invitation and work given to a colleague carry the communication policy's answer for each colleague, through emailservice's member mailboxes (KamoCollab CP04 Task 22)
· KBService
Decisions and summaries — GET/POST /api/notes/decisions and POST **************** a person records a decision or summary PERSONAL on its own note-<id> key with a note_decisions row and a DERIVED_FROM link per source, every source resolved and structurally clearing its creator (one 400 SOURCE_NOT_AVAILABLE for missing and uncleared, 503 LABELS_UNAVAILABLE with nothing written when an owner cannot be asked); the list is keyset-paged through the one predicate and the provenance gat...

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