Spaces:
Runtime error
Runtime error
| # Project Nodes | |
| A **Project Node** is one isolated workspace inside the panel. Every node has | |
| its own filesystem, run command, env vars, package manager state, and live | |
| runtime stats. The Dashboard renders them as cards | |
| ([`home/ProjectNodeCard.tsx`](../../client/home/ProjectNodeCard.tsx)) and the | |
| manager modal ([`home/FileManager.tsx`](../../client/home/FileManager.tsx)) | |
| lets you create / archive / delete / browse them. | |
| ## Visual | |
| The Dashboard capture below shows where the project grid lives (top of the | |
| "Project Nodes" section). Without an active user account it redirects to | |
| login — sign in to see live cards. | |
| | Desktop | Mobile | | |
| |---------|--------| | |
| |  |  | | |
| ## Card anatomy | |
| ``` | |
| ┌───────────────────────────────┐ | |
| │ ▦ project-name [⋮] │ | |
| │ language · template │ | |
| ├───────────────────────────────┤ | |
| │ status: Running / Idle /… │ | |
| │ CPU 7 % · RAM 142 MB │ | |
| ├───────────────────────────────┤ | |
| │ [ Open ] [ Run ] [ ⋮ ] │ | |
| └───────────────────────────────┘ | |
| ``` | |
| Card actions: | |
| - **Open** → `navigate(/editor?project=${id})` (deep-links into the IDE) | |
| - **Run** → POST `editor/runtime/start` | |
| - **⋮ menu** → Rename · Stop · Restart · Archive · Delete · Duplicate | |
| ## Create wizard | |
| Triggered by the `+ New Project` quick action. Steps: | |
| 1. **Pick a template** — | |
| `editor/templates` provides Node.js, Python, Static HTML, React/Vite, | |
| Express, Flask, Next.js, Vanilla, "Empty". | |
| 2. **Name + slug** — auto-slugged with collision detection. | |
| 3. **Select runtime** — Node 20 / 22, Python 3.10 / 3.11 / 3.12, Bun, Deno. | |
| 4. **Initial files** — preview tree from the template; allow tweaks. | |
| 5. **Confirm + create** → spawns project under `exocore-web/uploads/<id>/`, | |
| records metadata in `editor/projects` and navigates straight into it. | |
| Source: [`home/CreateProjectWizard.tsx`](../../client/home/CreateProjectWizard.tsx). | |
| ## File manager modal | |
| Opened from `Quick Actions → Project Nodes`. Shows: | |
| - All nodes (active + archived) with sort by name / last opened / size. | |
| - Storage quota bar (per plan: free 1 GB, pro 10 GB, owner unlimited). | |
| - Bulk actions: archive, restore, delete, export ZIP. | |
| ## Backend routes used | |
| | Route | Verb | Source | | |
| |-------|------|--------| | |
| | `/exocore/api/editor/projects` | GET | List projects | | |
| | `/exocore/api/editor/projects` | POST | Create project | | |
| | `/exocore/api/editor/projects/:id` | PATCH | Rename / archive | | |
| | `/exocore/api/editor/projects/:id` | DELETE | Delete | | |
| | `/exocore/api/editor/runtime/start` | POST | Spawn process | | |
| | `/exocore/api/editor/runtime/stop` | POST | SIGTERM | | |
| | `/exocore/api/editor/runtime/stats` | GET | CPU / RAM tick | | |
| (Wired in [`routes/editor/projects.ts`](../../routes/editor/projects.ts) and | |
| [`routes/editor/runtime.ts`](../../routes/editor/runtime.ts).) | |