Skip to content

Commit 544bffe

Browse files
committed
Memory bank: component index
1 parent 1d99028 commit 544bffe

File tree

2 files changed

+265
-14
lines changed

2 files changed

+265
-14
lines changed

.clinerules/memory-bank.md

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,12 @@ flowchart TD
1111
PB[projectbrief.md] --> PC[productContext.md]
1212
PB --> SP[systemPatterns.md]
1313
PB --> TC[techContext.md]
14+
PB --> CI[components/_index.md]
1415
1516
PC --> AC[activeContext.md]
1617
SP --> AC
1718
TC --> AC
19+
CI --> AC
1820
1921
AC --> P[progress.md]
2022
```
@@ -56,11 +58,18 @@ flowchart TD
5658
- Current status
5759
- Known issues
5860

59-
### Per-component documentation (optional, decide per on per-task basis)
60-
- The `memory-bank/components` directory contains detailed documentation about each component in this project.
61-
- Read those when working on them.
62-
- Use list all files and directories in `memory-bank/components/` for a list of all available documentation.
63-
- With regards to maintaining and updating it, treat it just like any other part of the memory-bank.
61+
7. `components/_index.md`
62+
- Comprehensive index of all components
63+
- Brief descriptions of component functionality
64+
- Key relationships between components
65+
- Entry point for exploring component-specific documentation
66+
67+
### Per-component Documentation
68+
- The `memory-bank/components/_index.md` file provides a comprehensive index of all components with brief descriptions
69+
- The `memory-bank/components` directory contains detailed documentation about each component
70+
- **Always read the components/_index.md file** at the start of every task to understand the component landscape
71+
- Use the index as a starting point to identify which component documentation files to read in depth
72+
- With regards to maintaining and updating it, treat it just like any other part of the memory-bank
6473

6574
### Additional Context
6675
Create additional files/folders within memory-bank/ when they help organize:
@@ -75,8 +84,9 @@ Create additional files/folders within memory-bank/ when they help organize:
7584
### Plan Mode
7685
```mermaid
7786
flowchart TD
78-
Start[Start] --> ReadFiles[Read Memory Bank]
79-
ReadFiles --> CheckFiles{Files Complete?}
87+
Start[Start] --> ReadFiles[Read Core Memory Bank Files]
88+
ReadFiles --> ReadIndex[Read Components Index]
89+
ReadIndex --> CheckFiles{Files Complete?}
8090
8191
CheckFiles -->|No| Plan[Create Plan]
8292
Plan --> Document[Document in Chat]
@@ -89,8 +99,9 @@ flowchart TD
8999
### Act Mode
90100
```mermaid
91101
flowchart TD
92-
Start[Start] --> Context[Check Memory Bank]
93-
Context --> Update[Update Documentation]
102+
Start[Start] --> Context[Read Core Memory Bank Files]
103+
Context --> ReadIndex[Read Components Index]
104+
ReadIndex --> Update[Update Documentation]
94105
Update --> Rules[Update .clinerules/learning-journal.md if needed]
95106
Rules --> Execute[Execute Task]
96107
Execute --> Document[Document Changes]
@@ -110,17 +121,18 @@ flowchart TD
110121
111122
subgraph Process
112123
P1[Review ALL Files]
113-
P2[Document Current State]
114-
P3[Clarify Next Steps]
115-
P4[Update .clinerules/learning-journal.md]
124+
P2[Review Components Index]
125+
P3[Document Current State]
126+
P4[Clarify Next Steps]
127+
P5[Update .clinerules/learning-journal.md]
116128
117-
P1 --> P2 --> P3 --> P4
129+
P1 --> P2 --> P3 --> P4 --> P5
118130
end
119131
120132
Start --> Process
121133
```
122134

123-
Note: When triggered by **update memory bank**, I MUST review every memory bank file, even if some don't require updates. Focus particularly on activeContext.md and progress.md as they track current state.
135+
Note: When triggered by **update memory bank**, I MUST review every memory bank file, even if some don't require updates. Focus particularly on activeContext.md, progress.md, and components/_index.md as they track current state and component relationships.
124136

125137
## Memory Management
126138
- Be mindful of space in memory bank files

memory-bank/components/_index.md

Lines changed: 239 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,239 @@
1+
# Gitpod Components Index
2+
3+
This index provides an overview of all Gitpod components with brief descriptions of their functionality and relationships. Use this as a starting point to explore the detailed documentation for each component.
4+
5+
## Core Services
6+
7+
### server
8+
- Primary backend service that handles user sessions, workspaces, and authentication
9+
- Integrates with gitpod-db for persistence and ws-manager for workspace lifecycle
10+
- Exposes REST and gRPC APIs for frontend and other services
11+
12+
### content-service
13+
- Manages workspace content, blobs, and file operations
14+
- Provides APIs for workspace initialization and content access
15+
- Used by workspace manager and IDE components
16+
17+
### ws-manager-mk2
18+
- Manages the lifecycle of workspaces in Kubernetes
19+
- Handles workspace creation, starting, stopping, and deletion
20+
- Communicates with ws-daemon for workspace-specific operations
21+
22+
### ws-daemon
23+
- Runs on each Kubernetes node to manage workspace resources
24+
- Handles workspace filesystem operations and resource constraints
25+
- Communicates with content-service for content management
26+
27+
### image-builder-mk3
28+
- Builds workspace images based on Gitpod configuration
29+
- Manages image caching and layer optimization
30+
- Integrates with registry-facade for image storage
31+
32+
## API Components
33+
34+
### content-service-api
35+
- Defines gRPC interfaces for content service operations
36+
- Provides protocols for workspace content, blobs, logs, and plugins
37+
- Used by multiple components to interact with content-service
38+
39+
### ws-manager-api
40+
- Defines interfaces for workspace management operations
41+
- Provides protocols for workspace creation, control, and monitoring
42+
- Used by server and ws-manager-bridge
43+
44+
### ws-daemon-api
45+
- Defines interfaces for workspace node-level operations
46+
- Provides protocols for filesystem, network, and resource management
47+
- Used by ws-manager and ws-daemon
48+
49+
### image-builder-api
50+
- Defines interfaces for workspace image building
51+
- Provides protocols for build requests and status reporting
52+
- Used by server and image-builder components
53+
54+
### supervisor-api
55+
- Defines interfaces for in-workspace supervision
56+
- Provides protocols for IDE integration and workspace services
57+
- Used by supervisor and IDE components
58+
59+
### registry-facade-api
60+
- Defines interfaces for container registry operations
61+
- Provides protocols for image access and manipulation
62+
- Used by registry-facade and other components
63+
64+
### ide-service-api
65+
- Defines interfaces for IDE service operations
66+
- Provides protocols for IDE instance management
67+
- Used by IDE-related components
68+
69+
### ide-metrics-api
70+
- Defines interfaces for IDE metrics collection
71+
- Provides protocols for reporting and querying metrics
72+
- Used by IDE components and monitoring systems
73+
74+
### ws-manager-bridge-api
75+
- Defines interfaces for workspace manager bridge operations
76+
- Provides protocols for cluster management and workspace routing
77+
- Used by ws-manager-bridge and related components
78+
79+
### usage-api
80+
- Defines interfaces for usage tracking and billing
81+
- Provides protocols for reporting and querying usage data
82+
- Used by server and usage components
83+
84+
### local-app-api
85+
- Defines interfaces for local application integration
86+
- Provides protocols for local environment communication
87+
- Used by local-app and server components
88+
89+
## Frontend Components
90+
91+
### dashboard
92+
- Web-based user interface for Gitpod
93+
- Provides workspace management, settings, and account features
94+
- Communicates with server via REST and WebSocket APIs
95+
96+
### ide
97+
- Integrated development environment components
98+
- Provides code editing, terminal, and development tools
99+
- Integrates with supervisor for workspace interaction
100+
101+
## Infrastructure Components
102+
103+
### proxy
104+
- Handles all external HTTP traffic to Gitpod
105+
- Routes requests to appropriate backend services
106+
- Manages TLS termination and request authentication
107+
108+
### registry-facade
109+
- Provides access to container images
110+
- Handles authentication and caching for image operations
111+
- Integrates with external container registries
112+
113+
### blobserve
114+
- Serves static assets from container images
115+
- Extracts and caches content from image layers
116+
- Provides efficient access to workspace resources
117+
118+
### ipfs
119+
- Distributed file system component for content sharing
120+
- Enables efficient content distribution across nodes
121+
- Used for workspace snapshots and content caching
122+
123+
### openvsx-proxy
124+
- Proxies requests to OpenVSX registry for VS Code extensions
125+
- Caches extensions for improved performance
126+
- Integrates with IDE components
127+
128+
### scheduler-extender
129+
- Extends Kubernetes scheduler for workspace-specific logic
130+
- Optimizes workspace placement on nodes
131+
- Integrates with Kubernetes scheduling system
132+
133+
## Database and Storage
134+
135+
### gitpod-db
136+
- Database access layer for Gitpod services
137+
- Provides typed interfaces for data operations
138+
- Used by server and other components for persistence
139+
140+
### gitpod-protocol
141+
- Defines core data structures and protocols
142+
- Provides TypeScript interfaces for Gitpod entities
143+
- Used by multiple components for consistent data handling
144+
145+
## Workspace Components
146+
147+
### supervisor
148+
- Runs inside each workspace to manage services
149+
- Coordinates IDE components and workspace tools
150+
- Communicates with ws-daemon and content-service
151+
152+
### workspacekit
153+
- Low-level workspace container initialization
154+
- Manages user permissions and environment setup
155+
- First process that runs in workspace containers
156+
157+
### ws-proxy
158+
- Routes traffic to the correct workspace
159+
- Handles authentication and access control
160+
- Integrates with proxy for external access
161+
162+
### ide-proxy
163+
- Routes traffic to the correct IDE instance
164+
- Manages IDE-specific routing and access control
165+
- Integrates with supervisor for IDE coordination
166+
167+
### ide-service
168+
- Manages IDE instances and configurations
169+
- Handles IDE startup, shutdown, and updates
170+
- Communicates with supervisor for workspace integration
171+
172+
### ide-metrics
173+
- Collects and reports metrics from IDE instances
174+
- Provides insights into IDE usage and performance
175+
- Integrates with monitoring systems
176+
177+
### docker-up
178+
- Manages Docker container lifecycle
179+
- Used for local development environments
180+
- Provides consistent Docker operations
181+
182+
## Utility Components
183+
184+
### common-go
185+
- Shared Go libraries used across components
186+
- Provides utilities for logging, configuration, and more
187+
- Used by most Go-based components
188+
189+
### service-waiter
190+
- Utility for waiting for services to be ready
191+
- Used during startup sequences
192+
- Ensures dependencies are available before proceeding
193+
194+
### node-labeler
195+
- Labels Kubernetes nodes based on capabilities
196+
- Used for workspace scheduling optimization
197+
- Integrates with Kubernetes cluster management
198+
199+
### scrubber
200+
- Cleans up unused resources
201+
- Manages garbage collection of workspaces and images
202+
- Ensures efficient resource utilization
203+
204+
### spicedb
205+
- Authorization system component
206+
- Manages fine-grained permissions
207+
- Integrates with server for access control
208+
209+
## Integration Components
210+
211+
### public-api-server
212+
- Provides public API endpoints for external integrations
213+
- Implements the Gitpod API for programmatic access
214+
- Communicates with server for core operations
215+
216+
### gitpod-cli
217+
- Command-line interface for Gitpod
218+
- Provides local development tools and workspace management
219+
- Communicates with server and local-app
220+
221+
### local-app
222+
- Desktop application for local Gitpod integration
223+
- Provides system-level features like SSH key management
224+
- Bridges between local environment and Gitpod services
225+
226+
### ws-manager-bridge
227+
- Bridges between ws-manager instances and DB/server
228+
- Enables multi-cluster workspace management
229+
- Provides basic APIs to register/unregister clusters at runtime
230+
231+
### image-builder-bob
232+
- Alternative image builder implementation
233+
- Specialized for certain build scenarios
234+
- Integrates with image-builder-mk3 and registry-facade
235+
236+
### usage
237+
- Tracks and reports resource usage
238+
- Provides billing and quota management
239+
- Integrates with server for user-specific tracking

0 commit comments

Comments
 (0)