Release summaries
communication-os-domain-command-persistence
Persist CommunicationOS domain commands as provider-free approval/draft events.
maintainer
CommunicationOS now has contract-level domain-command classification plus runtime event persistence for reviewable agent commands.
integrator
Integrators can persist reply, handoff, escalation, and evidence-preparation commands as immutable approval/draft packets without provider or database coupling.
communication-os-product-capability
Split CommunicationOS into canonical spec, backend-neutral runtime, thin module composition, standalone examples, and isolated design-system communication blocks.
maintainer
Maintainers get clear package ownership: contracts in a spec lib, deterministic runtime in a runtime lib, examples in an example package, and module shims only for migration.
integrator
Integrators should move new imports to the spec/runtime/example/design-system packages and treat module core subpaths as deprecated shims.
communicationos-production-readiness
Close the CommunicationOS hexagon and make it EU-sovereign and installable — additive sovereignty + three-state GDPR-erasure contracts, governed persistence with actor-aware RLS, four official channel adapters behind a frozen ChannelAdapter port, a fail-closed governed agent (no auto-send) on Mistral, a one-call runtime factory with self-host install and two verticals, and a governed MCP gateway.
maintainer
The build is additive: existing communication-spec contract keys are unchanged. New SovereigntyProfile, an RGPD consent surface, and communication.subject.erase@1.0.0 (three-state outcome) sit in communication-spec (ContractSpec Connect verdict: permit). The adapter half is new packages: communication-os-persistence (governed executeGovernedMutation execution, server-only ./database boundary, EngineAuthPort, actor-aware RLS, identity-rbac PDP, redaction-aware observability), communication-channel-core (frozen ChannelAdapter port + RuntimeChannelType + registry), four channel adapters, communication-os-agent (allowlist registry excluding communication.reply.send + CommunicationInboxApprovalStore + Mistral/Claude), and communication-os-runtime (createCommunicationOsRuntime factory + approve→send orchestrator + install + verticals). communicationos-mcp becomes a governed gateway. The no-agent-send invariant, tenant isolation, and the server-only DB boundary are test-proven.
integrator
Wire CommunicationOS into a vertical with a single createCommunicationOsRuntime({ persistence, channels, model, auth, observability }) call (≤40 LOC, no edits to the underlying packages). Register the channel adapters you license (telegram/email/sms/slack) behind the frozen ChannelAdapter port; provide a tenant-bearing actor context so reads/writes are RLS-scoped (the default self-host read port fails closed without a tenant). Drafting runs through the governed agent; sends are reachable only via the inbox approval transition (executeApprovedSend), never by the agent. Self-host via the install bring-up (migrations + env + MCP). Production PDP-style external sends use real channel credentials you supply; CI exercises mocks/PgLite.
customer
Operators get a governed, sovereign messaging surface — unified threads across Telegram, email, SMS, and Slack; an AI assistant that drafts, summarizes, classifies, and triages but can NEVER send to a customer without an explicit human approval; EU data residency, a sovereign/EU LLM option (Mistral or local), self-host/on-prem, and GDPR right-to-erasure with an honest outcome for channels (like email) that cannot recall a sent message. The managed CompanyOS communication cockpit renders from live data.
cross-platform-communication-spec-commands
Add E1/E2 defineCommand and defineCapability contracts for CommunicationOS AI operations and auditor scope gating.
maintainer
Three new commands: comms.summarizeThread, comms.draftReply, comms.suggestHandoff. Two new capabilities: AI routing scope (ai_operator), auditor read-only scope. All contracts include full meta (key, version, goal, context, owners, tags, stability).
integrator
Wire AI panel slots against the new capability contracts. comms.draftReply and comms.suggestHandoff are gated by the AI routing capability — auditor role will receive boundary: "blocked" for mutation operations.
m2-communication-spec-threadlink-v2
BREAKING: Migrate ThreadLinkModel to V2 rich-reference shape — objectType/objectId replaced by objectRef + kindId/instanceId.
maintainer
ThreadLinkModel V2 migration. The `objectType` and `objectId` fields are removed from `ThreadLinkModel`. A new `objectRef` field (JSONObject, non-optional) carries the serialised RichReference payload. All search/query operations use `linkedKindId` + `linkedInstanceId` instead of `linkedObjectType` + `linkedObjectId`. New exports: `threadLinkedObjectKind` (defineReferenceKind) and `ThreadLinkedObjectPayload` (Zod schema + type) in `contracts/thread-link-kind.ts`.
integrator
BREAKING — update every consumer that reads or writes ThreadLinkModel fields: replace `objectType` with the kindId inside `objectRef`, replace `objectId` with the instanceId inside `objectRef`. Update query parameter names from `linkedObjectType`/`linkedObjectId` to `linkedKindId`/`linkedInstanceId`. Use `threadLinkedObjectKind.id` ('communication.thread-linked-object') as the standard kindId for CommunicationOS thread links.
customer
Thread-to-object links now use a typed rich-reference format that carries domain context alongside the object identifier. No UI behaviour changes.
