-
-
Notifications
You must be signed in to change notification settings - Fork 2
Contribution Playbooks
itsmylab edited this page Aug 4, 2026
·
1 revision
Generated from
docs/contributions/README.md. Edit the canonical source through a pull request.
Each page describes one supported contribution path from idea to pull request. Start with the narrowest playbook that matches the change. For system context, read Canopy Architecture. For bus selection and shared integration rules, read the Contributor Integration Guide.
| Contribution | Playbook | Main extension seam |
|---|---|---|
| Theme or skin | Theme | src/skins/registry.ts |
| Shared or application component | Component |
shared/ or src/components/
|
| Desktop feature | Desktop feature | Domain module plus existing project composition |
| Project tab or side panel | Project surface |
SubTab / SideTab and ProjectView
|
| Native capability | Native capability | Rust owner plus Tauri IPC |
| Agent-visible tool | Agent tool | Context bridge and canopy-hook MCP |
| SpotSearch source | Search source | registerSpotSource |
| Issue tracker | Tracker | TrackerProvider |
| Coding-agent CLI | Agent CLI | CLI registry and integration healing |
| Automated micro-task | Micro-task | MicroTaskDef |
| Durable Canopy data | Durable store | Rust store and invalidation bus |
| Canopy Remote feature | Remote feature | Manifest, Rust grant, generic RPC, panel |
| File renderer | File viewer |
ViewerKind and byte renderer |
| Keyboard shortcut | Shortcut | shared/shortcuts.json |
| Team collaboration message | Relay message | Encrypted relay and RelayHandle
|
Every contribution should follow the same ownership path.
flowchart LR
Idea[Contribution idea]
Owner[Choose one authority]
Contract[Extend typed contract or registry]
Bus[Reuse existing bus or adapter]
View[Project into UI]
Tests[Add behavior and parity tests]
PR[Focused pull request]
Idea --> Owner --> Contract --> Bus --> View --> Tests --> PR
Answer these for any contribution that crosses a boundary:
- Which module owns the new state or resource?
- Which existing registry, adapter, or bus carries it?
- What bounds memory, payload size, retries, and lifetime?
- What cleanup runs when its owner closes?
- Which test proves every side of the integration agrees?
- Which duplicate implementation did the contribution avoid?
Generated from FluidWorksApp/canopy-ide. Canonical documentation changes belong in the main repository.
Canopy Architecture
- Home
- Architecture
- Core Rust System
- LLM Context
- Integration Guide
- Contribution Playbooks
- Testing and Coverage
- Publish the Wiki
Playbooks