Skip to content

Decision Log

KepCup 开发助理 edited this page Oct 24, 2026 · 1 revision

Decision Log (condensed)

Source: docs/design/README.md (full D1–D102 table)

English summary of product-critical decisions. Numbers match the Chinese design README.

Identity & deletion

ID Decision
D1 Single-user app; Bots are private to that user
D3 Delete conversation → keep long-term memory; chat history gone
D18 Delete Bot ≈ remove contact: messages remain (name→id), loops abort, id never reused; memory/wiki/skills/workspace cleared
D20 Delete conversation voids promises in that chat; wiki materials kept

Dual loops & routing

ID Decision
D2 / D75 New message → next reply turn; Bot chooses inject_task / cancel_task / start_task
D5 / D92 Project teams: no @ → previous speaker continue-check → lead gateway (self / silent route / none); not all-members broadcast
D4 / D92 Bot↔Bot chaining → collaboration episode + circuit breakers (12 hops / 8 ping-pong), not token budget
D48 Final reply auto-sends; mid-turn send_message; silence via skip_reply; @ only via structured params
D86 Send is immediate (no pending-send queue); one message = one trigger batch

Memory, wiki, skills

ID Decision
D8 Private chat facts default into shared user profile; sensitive / “only tell you” excluded
D9 / D92 Bot wikis fully isolated; project wiki is the only shared knowledge channel
D7 / D100 User-intent authored skills auto-enable after sandbox trial; reflection suggestions stay disabled until user enables
D97 Skill suggestions need verifiable evidenceRefs (≥2 completed runs)
D101 Lessons/self-notes inject date + up to 2 evidence message ids

Runtime & safety

ID Decision
D11–D12 Local client; macOS / Windows / Linux
D21–D23 pi loop; Electron; Svelte 5 + shadcn-svelte
D24–D26 Encrypted SQLite stack; data dir ~/.kepcup/
D27 / D15 Sandbox: srt (macOS/Linux), private WSL2 (Windows); enhanced tiers Lima/Podman
D28–D30 Workdir bound to conversation; write lease; shadow-git checkpoints
D35–D41 Soft path gateway + sandbox; revoke interrupts; per-command confirm fallback; unattended mode with audit; fail-closed for unsandboxed commands that touch app data
D49 / D67 / D78 Ephemeral runs: mark interrupted, no auto-resume; durable journal not implemented; tool_effects ledger is implemented
D99 Unattended never auto-approves profile changes

Capabilities & platforms

ID Decision
D58 / D89 Missing config → inline setup / conversational settings cards
D65 / D73 / D74 MCP + Connected Apps (OAuth); open platform = standards, not invented protocols — Connected Apps largely not implemented
D70 / D71 Butler + A→B delegation (not SubAgent); Butler never joins project teams
D72 External ACP agents as task engines; reply turns stay built-in — not implemented
D75 / D91 / D93 Supervisor+tasks implemented; capability mounting implemented; task harness P0–P4 implemented
D83 / D34 Optional KepCup supplier overlay — designed, not implemented
D84 Mail channel P0 implemented (device acceptance pending)
D92 Project teams implemented (2026-10-18)
D94 macOS Share Extension P0 implemented
D96 Remote control — designed, not implemented
D102 Headless server — designed (auth revised to password for direct mode)

For the complete table and wording, see docs/design/README.md in the repository.

Clone this wiki locally