Repository navigation
01 Conversation
Source: docs/design/01-conversation.md
The left sidebar lists Bots like a contacts book. Each Bot has an avatar, display name, and optional status.
Deleting a Bot is like removing a WeChat contact:
- Messages remain; the display name falls back to the Bot id
- The Bot cannot be
@-mentioned in projects; DMs become read-only - All related loops abort; the id is never reused
- Memory, wiki, skills, and workspace are cleared
- Confirm dialog before delete
One user ↔ one Bot. Right panel shows Bot detail (profile, skills, watches, etc.).
conversations.type = 'project'. A project must have a lead Bot (lead_bot_id, enforced by CHECK). Communication is the first module; project wiki ships; boards/OKRs later. See 41-Project-Team.
Member/lead changes: remove is immediate; new members can read full history. Deleting a Bot that leads projects requires reassignment first.
Stable id; for projects the root conversation id is the project id.
The visible message list is communication. Work happens in tasks (02-Execution, 30-Supervisor-and-Tasks). Progress may stream into the list; final results are consumed by a reply turn.
Send (button / Enter / Cmd-Enter) calls messages.send immediately — no pending-send queue. One message = one trigger batch (project @ mentions still merge for routing). Composer draft cache (unsaved text) is unrelated and kept. Send gates (18-Inline-Setup) leave text in the composer until the user sends again.
A conversation may bind a shared working directory. See 08-Workdir, 19-Work-Path-and-Group-Setup.
Messages carry role, text parts, attachments, system events (approvals, setting cards, task cards, etc.). Bot internal affairs (tool traces, private task timeline) do not enter the shared conversation view — only what should be spoken to the user.
Bots should not narrate skill creation completion into chat (discovery is the skills panel). Internal task events use owner_bot_id private timeline filtering.
Streaming status line at the end of the stream; interim tool narrations with per-run caps; proactive messages and watches under guardrails (02-Execution).
Remove from list (archive) vs hard delete. Delete voids promises in that chat; wiki materials remain (D20). Long-term memory remains (D3).
KepCup
Core
- 01-Conversation
- 02-Execution
- 03-Bot
- 04-Memory
- 05-Wiki-and-Skills
- 30-Supervisor-and-Tasks
- 40-Capability-Mounting
- 43-Task-Loop-Harness
Runtime
- 06-Isolation-and-Storage
- 07-Local-Runtime
- 08-Workdir
- 09-Tech-Stack
- 10-Sandbox
- 11-Storage
- 13-Permissions
- 24-Durable-Execution
Product
- 12-UI-Layout
- 33-Narrow-Layout
- 39-Workbench
- 41-Project-Team
- 42-Task-Run-View
- 45-Bot-File-Cards
- 47-File-WebApp-Viewer
Capabilities
- 14-Models-and-Browser
- 15-Interactive-Execution
- 16-Capability-Models
- 17-MinerU-Document-Parsing
- 18-Inline-Setup
- 19-Work-Path-and-Group-Setup
- 20-Conversation-Media
- 21-Web-Search
- 22-File-Skill-Routing
- 23-MCP-and-SubAgent
- 25-Capability-Tools
- 26-Voice-Input
- 31-Sensors
- 32-Bot-Widgets
- 35-Mail-Channel
- 36-Wiki-Multimodal-Ingest
- 38-Conversational-Settings
Team & agents
- 27-Butler-and-Delegation
- 28-External-Agents-ACP
- 37-Bot-Asset-Handover
- 41-InkCop-Local-Collab
- 48-Bot-Template-Export
Cloud & remote