---
title: PM + Team Chat Integration (item mentions, task creation, status updates)
---

# PM + Team Chat Integration (item mentions, task creation, status updates)

## What it is

**PM + Team Chat Integration** is an in-development bridge between PM (Mission Control) and Team
Chat. Four capabilities connect PM items with Team Chat conversations:

- **#item mentions** -- type `#` in the Team Chat composer to open a PM item typeahead; selecting
  inserts a reference that renders as a rich inline chip (title + status dot) in sent messages.
- **Create Task from chat** -- right-click a chat message, choose "Create Task", pick a board, and a
  new PM item is created pre-filled with the message text. Bidirectional link rows are inserted
  (message-to-item + channel-to-item).
- **Status updates in channels** -- when a PM item linked to a channel changes status (via sync), a
  system-style message appears in that channel showing the old-to-new status transition. Deduped by
  a deterministic client message ID.
- **Chat links on PM items** -- the PM item detail drawer shows a "Chat Messages" section listing
  linked messages with preview text and timestamps.

## Where to find it

All of this lives inside **Team Chat**, with one surface on the board side. The `#` typeahead is in
the Team Chat composer, "Create Task" is on the right-click menu of a chat message, status
messages arrive as system-style messages in the channel they belong to, and the linked-message list
is the "Chat Messages" section of the PM item detail drawer.

The whole feature is in development, gated behind an unreleased feature flag, so none of these
surfaces appear in a normal build until it ships.

## How it behaves

- A mention renders as a rich inline chip carrying the item's title and status dot, so a reference
  reads as part of the sentence rather than as a bare link.
- Creating a task from a message inserts the link from both ends at once -- message-to-item and
  channel-to-item -- so the connection is visible whichever side you look from.
- Channel status messages are deduped by a deterministic client message ID, so the same transition
  never appears twice.
- Nothing appears until the feature is enabled: every renderer surface requires the feature to be
  visible in the renderer and Mission Control to be enabled.

## For agents

- PM fields on Team Chat messages use schema EXTENSION (`merge()`), never modifying the frozen base
  schema -- legacy messages stay byte-identical.
- Title matching for `#` mentions uses ref-driven scanning (longest first), not regex.
- Chat messages stored in Firestore; only link metadata in local SQLite (`pm_item_links`).
- 5 IPC channels under `pm:chat:*` namespace.
- Source files across `src/renderer/src/features/team-chat/` (composer, chip, dialog, hook) and
  `src/main/services/pm/pm-chat-status-bridge.ts`.
- Renderer surfaces gate on `isUnreleasedFeatureVisibleInRenderer('pm-team-chat')` AND
  `missionControlEnabled`.
- Contract: `pm-team-chat-integration-contract.md`.

## Related

Both halves of this bridge have their own page: [team-chat.md](team-chat.md) covers the built-in
channels and DMs the mentions and tasks appear in, and [mission-control.md](mission-control.md)
covers the boards the items come from. [pm-session-link.md](pm-session-link.md) is the sibling that
links a board item to a working session rather than to a conversation. The full behavioural
contract is recorded in
[pm-team-chat-integration-contract.md](../../.claude/memory/contracts/pm-team-chat-integration-contract.md),
and every other page in this library is listed in [INDEX.md](INDEX.md).
