Conversation Management Plugin
Lets the assistant organize your own conversations: list them by state,
pin or unpin, mark read or unread, and rename them. list_conversations
is read-only; set_conversations applies approval-gated bulk changes, with a
dry_run preview before anything is changed.
The tools
| Tool | Parameters | Returns |
|---|---|---|
list_conversations | Optional pinned, shared, unseen, source_type, workspace, since, until; limit (1–200, default 50) | Linked conversation titles, ids, activity dates, message counts, workspace/source and available state badges |
set_conversations | action (required); conversation_ids or the same state filters; new_title for rename; dry_run (default false) | Preview of the affected set, or counts of applied/skipped changes |
The supported actions are exactly pin, unpin, mark_read, mark_unread
and rename. Rename requires a nonempty new_title and gives that title to
every selected conversation. Sharing/unsharing, deleting/restoring and
folders are not supported actions; shared is only a discovery/selection
filter.
Both tools require an authenticated calling user and only operate on that
user's non-deleted conversations. Explicit ids belonging to another user or to
a deleted conversation are skipped, never modified or disclosed.
Selecting and previewing a change
Use list_conversations(pinned=true) to inspect pinned conversations, then
set_conversations(action="unpin", pinned=true, dry_run=true) to preview an
unpin operation. After checking the preview, repeat with dry_run=false for
the real change, which goes through the user-approval gate. A dry run writes
nothing and requests no approval.
Prefer explicit conversation_ids for a precise set. A nonempty id list takes
precedence over state selectors. **With no ids and no filters, the selector
matches all conversations in the scanned set.** The preview is not a saved
selection: the real call resolves the selector again.
since and until filter last activity, using YYYY-MM-DD; until includes
the whole day. Unlike Personal Recall, these tools do
not default to the current workspace: omit workspace (or use all) to
span the user's workspaces, or pass a workspace id to restrict the set.
Discovery and selector-based changes scan up to 1,000 conversation summaries;
list_conversations.limit only caps how many matches are displayed. Shared
state depends on an available share store; without it, conversations are
treated as not shared. If a summary has no unseen flag, the unseen filter
passes it through rather than determining its read state. Inspect a preview
and use explicit ids when these state fields are unavailable.
Configuration
Enabled in the bundled personal defaults. The plugin depends on
Personal Recall; retain that plugin in your configuration
as well.
plugins:
- module: codumentor.plugins.conversation_management
class: ConversationManagementPlugin
args:
enabled: true
target_agents: all
write_target_agents: main
| Parameter | Type | Default | Description |
|---|---|---|---|
enabled | bool | true | Master switch; false registers neither tool. |
target_agents | kind / role / list | all | Family gate: which agents receive conversation tools, including read-only discovery. |
write_target_agents | kind / role / list | main | Additional gate for set_conversations; an agent must pass both gates to receive it. |
Both target settings accept main, subagent, all, a supported agent role,
or a list of kinds/roles (see agent-specific tools).
target_agents defaults to all and write_target_agents to main, like
every plugin's write tier: nobody reads a subagent's tool calls, so subagents
keep discovery but are not offered set_conversations. write_target_agents
does not inherit a custom target_agents value; set it to all (or a
subagent role) to hand the write tool to subagents. Real writes still require
approval. An unrecognized value is clamped to all for target_agents and to
main for write_target_agents.
An older instance with an explicit plugins: list may shadow the bundled
list added by an upgrade. Add this entry to the maintained list, or use the
configuration layer's plugins_overrides; do not replace the whole list with
this one-entry example. In the Configuration Assistant, check enabled,
target_agents and write_target_agents, not only whether the plugin is
installed, when diagnosing missing tools.
Related plugins
- Personal Recall finds conversations by content and rereads their turns; it is read-only. Conversation Management selects by state and changes conversation properties.
- Conversation Commands is a builtin that supplies
/clear, not pin/list/rename tools. Never addconversation_commandstoplugins:; its settings live in the top-levelconversation_commands:section. Conversation Management is a separate config-listed plugin.
Ships in Community and Enterprise editions. There is no dedicated web bundle;
tool calls render on generic tool cards.