Skip to content

Commit 46a000e

Browse files
lmjabreuclaude
andauthored
feat(conversation): add conversation list command (#35)
* docs(thread): document group IDs in --notify help text `tdc thread reply/create --notify` already accepts custom group IDs (partitioned via resolveNotifyIds → groups), but the help text only mentioned "user IDs". Since Comms group IDs are non-numeric base58 strings that look nothing like user IDs, the capability was effectively undiscoverable from --help. Mention groups in both option descriptions and add a group-notify example to the reply command's existing example block (alongside --close / --file). No behaviour change. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs(skill): sync SKILL_CONTENT --notify examples with group support Per AGENTS.md, src/lib/skills/content.ts must track command-description and example changes. The reply/create --notify examples said "users" only; make them mention groups and add a group-notify example (base58 group ID next to a numeric user ID). Regenerated skills/comms-cli/SKILL.md via `sync:skill`; check:skill-sync passes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(conversation): add conversation list command List DMs and group conversations filtered by participant, name, or kind. Reuses the existing plumbing: getAllConversations becomes getConversationsByState(state), and listConversationsWithUser becomes the shared renderConversationList. Defaults to active conversations; --state opts into archived. SKILL_CONTENT and README updated, SKILL.md regenerated. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * fix(conversation): address list review feedback Three doistbot P2s on the conversation list command: - Resolve --participant against the full roster (includeRemoved) so a participant who has left the workspace still matches; the renderer already shows removed participants, and archived DMs often include them. - Resolve participants and fetch conversations concurrently (Promise.all) rather than sequentially — they're independent once the workspace is known. - Skip the workspace-wide user-map fetch for --json/--ndjson without --full, where participantNames are filtered back out anyway (also speeds up conversation with machine output, which shares the renderer). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 336ed4a commit 46a000e

10 files changed

Lines changed: 608 additions & 12 deletions

File tree

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ tdc thread reply <ref> # reply to a thread
124124
tdc thread rename <ref> "New title" # rename a thread
125125
tdc thread update <ref> "New body" # edit a thread's body (first post)
126126
tdc conversation unread # list unread conversations
127+
tdc conversation list # list conversations (--kind, --participant, --name, --state)
127128
tdc conversation view <ref> # view conversation messages
128129
tdc msg view <ref> # view a conversation message
129130
tdc search "keyword" # search across workspace

skills/comms-cli/SKILL.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,14 @@ tdc comment delete <comment-ref> --yes --json # Delete and return status
154154

155155
```bash
156156
tdc conversation unread # List unread conversations
157+
tdc conversation list # List active conversations (DMs and groups)
158+
tdc conversation list --kind group # Only group conversations (3+ people)
159+
tdc conversation list --kind direct # Only 1:1 conversations (and your self-DM)
160+
tdc conversation list --participant "Jane" # Only conversations including these users (comma-separated)
161+
tdc conversation list --name "release" # Filter by title substring (case-insensitive)
162+
tdc conversation list --state archived # Archived conversations only (active|all|archived; default active)
163+
tdc conversation list --snippet # Include the latest message snippet
164+
tdc conversation list --limit 20 --json # Cap rows and output as JSON
157165
tdc conversation <conversation-ref> # View conversation (shorthand for view)
158166
tdc conversation view <conversation-ref> # View conversation messages
159167
tdc conversation with <user-ref> # Find your 1:1 DM with a user
@@ -430,6 +438,7 @@ tdc thread view <thread-id>
430438
**Check DMs:**
431439
```bash
432440
tdc conversation unread --json
441+
tdc conversation list --kind group --json # find a group DM by participants/name
433442
tdc conversation view <conversation-id>
434443
tdc conversation with "Alice Example"
435444
tdc conversation reply <id> "Got it, thanks!"

0 commit comments

Comments
 (0)