mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-07-03 12:27:41 +08:00
- data-api-in-main: add Registry Sub-Resource Endpoints section - GET-only for stateless reads, AIP-136 colon notation for derived views, registry packages are main-only (bundle waste + merge already in main) - best-practice-layered-preset-pattern: preset-only static fields must merge in rowToEntity rather than via parallel endpoint; document acceptable exceptions for catalog and specialised surfaces - data-ordering-guide section 2: drop user_provider.isEnabled from the Live partition list - the table is whole-table ordered (already correct in section 7) - database-patterns: flag boolean columns without .notNull() as a common R3 offender, with concrete wrong/right example
Cherry Studio Documentation
Guides
| Document | Description |
|---|---|
| Development Setup | Development environment setup |
| Contributing | How to contribute code |
| Branching Strategy | Git branching workflow |
| Test Plan | Test plan and release channels |
| i18n Guide | Internationalization guide |
| Logging Guide | How to use the logger service |
| Middleware | How to write AI Provider middleware |
References
Architecture
| Document | Description |
|---|---|
| Architecture Overview | System-wide architecture, process model, data flow |
AI Core
| Document | Description |
|---|---|
| AI Core Architecture | Complete data flow and architecture from user input to LLM response |
Data System
| Document | Description |
|---|---|
| Data System Overview | System selection, architecture, and patterns |
| Boot Config Overview | Early boot configuration system |
| Boot Config Schema Guide | Adding new boot config keys |
| Cache Overview | Three-tier caching architecture and design invariants |
| Cache Usage | useCache hooks, direct API, Main-process subscriptions |
| Cache Schema Guide | Adding new cache keys (fixed and template) |
| Preference Overview | User settings management |
| Preference Usage | usePreference hook examples |
| Preference Schema Guide | Adding new preference keys |
| DataApi Overview | Business data API architecture |
| DataApi in Renderer | useQuery/useMutation patterns |
| DataApi in Main | Handlers, Services, Repositories |
| API Design Guidelines | RESTful design rules |
| API Types | API type system, schemas, error handling |
| Database Patterns | DB naming, schema patterns |
| Layered Preset Pattern | Presets with user overrides |
| V2 Migration Guide | Migration system |
Lifecycle System
| Document | Description |
|---|---|
| Lifecycle Overview | Architecture, decision guides, usage |
| Application Overview | Application bootstrap and shutdown |
| Lifecycle Internals | Phases, hooks, states |
| Lifecycle Usage | Full usage guide with examples |
| Lifecycle Decision Guide | Lifecycle vs singleton decision |
| Lifecycle Migration Guide | Migrating old services |
Messaging
| Document | Description |
|---|---|
| Message System | Message lifecycle, state management, operations |
Knowledge
| Document | Description |
|---|---|
| KnowledgeService | Concurrency control and workload management |
CherryClaw (Autonomous Agent)
| Document | Description |
|---|---|
| CherryClaw Overview | Architecture, memory system, API |
| Channel System | IM integration (Telegram, etc.) |
| Claw MCP Server | Built-in MCP tools (cron, notify, skills, memory) |
| Scheduler | Task-based polling scheduler |
Components
| Document | Description |
|---|---|
| CodeBlockView | Code block view component |
| Image Preview | Image preview components |
| Code Execution | Python code execution via Pyodide |
Other
| Document | Description |
|---|---|
| App Upgrade Config | Application upgrade configuration |
| Feishu Notify | Feishu notification integration |
| Fuzzy Search | Fuzzy search implementation |
| LAN Transfer Protocol | LAN file transfer protocol spec |