An SI reads the checklists of a member it manages (SITP TP20)
Owner decision 2 (2026-10-18): an SI may see the work of the members it manages, SIs and people alike, read-only. GET **************** now answers an SI session...
Internal task endpoint for IoT automations
POST /internal/checklists/iot/tasks: one task on behalf of an automation's owner, into the assignee's Inbox (SP06 CREATE_TASK). Notes must be on, the assignee e...
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...
The org graph in KBService and every note read through the one widened predicate β shared notes reach their audience read-only; create and update refuse a shared scope (USE_RELEASE) and the reserved categories (RESERVED_CATEGORY) (KamoCollab CP05 Task 15)
- orggraph/OrgGraphBeanConfig + OrgGraphEventListener: the loader, the 60 s cache, and a core subscription to security.orggraph.changed.* that evicts the or...
Work links for tasks β POST **************** answers who has an open task on which records (KamoCollab CP04 Task 9)
TaskWorkLinkService implements WorkLinkResolver: an open task (not DONE, on a live checklist, in the org) links its assignee and creator to the task itself (TAS...
Declare the disclosure ledger recorder, paired with its repository scan (KamoCollab CP08 Task 12)
DisclosureLedgerConfig declares DisclosureRecorder; KBServiceApplication's @EnableJpaRepositories gains **************** in the same commit. DisclosureLedgerWir...
The DDL for checklist_items.blocked_at, pinned by a contract test (KamoCollab CP13 Task 1)
When an SI's task became BLOCKED, for the stuck-work check. Re-runnable, additive, nullable, no CHECK, no backfill; applied by hand before the shared-lib entity...
The CP05 DDL for knowledge scopes, NAMED audiences, decisions and link provenance (KamoCollab CP05 T2)
A supervisor's read of an AI member's notes is written to phi_access_log (KamoCollab CP00 T8)
GET /api/notes/members/{memberId}, .../{noteId} and .../{noteId}/versions now record the read after it succeeds, through the shared PhiAccessRecorder: one LIST ...
Record links, who wrote each version, readable history, supervisor reads, app gate
A restored version now comes back deciphered, with its links and editor: the editor saves that answer straight back as the note's body, so the ciphertext it use...
Hand a retiring AI member's open tasks to its supervisor (SP02 TASK_HANDOFF)
POST **************** behind the KamoAI secret (KamoaiInternalAuthFilter: 503 unset, 403 mismatch, constant-time). One transaction per task; Inbox tasks move to...
Fold lead_task into tasks β idempotent, encrypted, one row per transaction
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...
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...
Tasks carry status, priority, due, assignee and links; the Inbox keeps its rules
Task notifications after commit, and the org-change signal for internal writes
Who a task can be given to, who supervises whom, and the names tasks show
The SP06 schema β tasks, links, comments, Inbox, note links and authorship
The checklist API, with prerequisites the server enforces
/api/checklists: list, get, create, update, delete, duplicate, reset, clear-done, sequence ("do in order"), clear links, and per task add, edit, tick/untick, se...
Count the marketing site's page views, on the article or on the page
KBService now answers the view counter kamo-marketing shows at the foot of every page. Two endpoints, both {"views": n} with the view just counted included: ...
Say which locales each public article is really translated into
The marketing site's sitemap now lists every language version of every help-center, documentation and API-reference article, and each article page names the oth...
Lock the shared sweeps, and run two pods
Every @Scheduled sweep here whose effect is shared now takes a named distributed lease through SingletonTaskRunner before it does anything, so it runs once acro...
Serve the scripts an agent reads on a call
/api/kb/sales-scripts, gated on the two new rights. Reads take VIEW_SALES_SCRIPTS or MANAGE_SALES_SCRIPTS, writes take MANAGE. SessionHelper.hasRight fails clos...
Related articles, and a public path that keeps the tree
Three things, all reaching the same page. Related articles. KbArticleRelationService owns the symmetric "see also" links: list, set, suggest, and a clear that ...
Enforce the audience chips on every human read
The composer has always offered an author three chips under "Visible to" β Members, Team Members, Public. They were written to the row and indexed into Qdrant s...
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.
