A replan and a foundation. The work was decomposed into sixteen independently verifiable subprojects, and the first five of them landed here.
The seams
@kit/agent-contract is the wire contract every subproject builds against, hand-written, with the conversation engine's shape recorded from its source rather than from its documentation. The core schema follows it: agent definitions, versions, conversation state and backend mapping, with a seventeen-assertion isolation suite of its own.
On top of that, the turn pipeline with four ports and a stub model, the tool registry and policy executor, and a simulated TBP endpoint with one file holding all of the fiction.
The design
The omnichannel gateway, the flow designer on React Flow, the screen specification, and the fork evaluation that established Chatwoot's MIT core as the gateway rather than something to be written.
Changes worth knowing
OTP authorises a subject, not a conversation. conversation_state has one camelCase shape, not two. A live agent version cannot be demoted out from under the pointer that names it.
Verification
pnpm verify — cold machine to verified tree in one command: typecheck, lint, format, unit tests and the pgTAP isolation suite against a real database.
MFA gates were added to every account-scoped product table, and TRUNCATE was revoked from untrusted roles with the member case proved rather than assumed. The CI contract guard, which was failing open, was fixed.