Repository navigation
Closed
Labels
agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDsOne or more coding-agent tasks currently claim this issue; see claim comments for task IDsarea:fullstackEnd-to-end Host and Client implementationEnd-to-end Host and Client implementationscope:tracerHuman-testable implementation sliceHuman-testable implementation slice
Description
Parent: #1107 · ADR-0142 · after slice 1
What to build
- Host:
- Mute: the conversation's wake becomes
silent, using the existing source and group policy revisions. - Rules: reuse the existing group collection, thread follow and wake editors, keyed to the conversation entry.
- Block: revoke the entry (revision bump, unstarted Outbox Intents become
grant-revoked, lease fenced). It also writes a durable block keyed by Bot, account fingerprint, conversation kind and conversation ID. - While a block exists, messages are acknowledged without admission and never recreate an implicit entry.
- Allow again: a revision-checked command that removes the block and creates a fresh entry for future messages.
- Held entries (
askmode or past the bounds): store metadata only (kind, ID, first and last seen, bounded count, presentation names). No Source Event or content. Allow makes the entry active for future messages. - Bounds: 20 automatic new entries per app per hour, 500 active per app, 200 held per app with the oldest pruned.
- Each app gets an Admit automatically / Ask me first setting, revision-checked.
- Mute: the conversation's wake becomes
- Client: the app modal's Conversations section with Active / Muted / Waiting / Blocked groups, row actions and a confirmation for Block.
Acceptance criteria
- Block a group → the next mention is not admitted and no entry is recreated, including in Admit automatically mode, after Host restart, and after unbinding and rebinding the same app to the same Bot.
- Allow again → the next message is admitted. Messages sent while blocked are not backfilled. Old policies are not revived.
- Mute → messages are admitted silently, readable in the Inbox, and a reply is still possible.
- Ask me first → a new conversation shows as Waiting with no stored message text. Allow → the next message is admitted.
- Past the bounds, new conversations wait instead of being admitted, and the UI says why.
- Stale-revision edits refuse. Unstarted replies to a blocked conversation end as
grant-revoked. - Screenshots zh/en, light/dark.
Blocked by
Slice 1.
Metadata
Metadata
Assignees
Labels
agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDsOne or more coding-agent tasks currently claim this issue; see claim comments for task IDsarea:fullstackEnd-to-end Host and Client implementationEnd-to-end Host and Client implementationscope:tracerHuman-testable implementation sliceHuman-testable implementation slice
Type
Projects
- StatusShow more project fieldsDone
- StatusShow more project fieldsDone
Activity
DoodleBears commentedon Oct 7, 2026
Agent work trace: Claude Code (cloud, for Vain) opened #1120 from branch
claude/1109-conversation-list. It covers the Host side (mute, block, allow again, held/ask, bounds, gen-62 migration), the client conversation groups, the docs and zh/en light/dark screenshots, verified on a real Host with the real model.Generated by Claude Code
feat(messaging): manage an app's conversations: mute, rules, block, a…
feat(messaging): several apps per platform, Bind app shows every app'…
feat(messaging): compact conversation rows and relabel External conne…
fix(messaging): show apps the IM plugin can't serve as greyed out in …
fix(messaging): leave this Bot's own apps out of Bind app (#1127) (#1130