| name | electron-api-and-ipc |
| description | Use when changing massCode API routes, DTOs, IPC handlers, Electron bridges, or any renderer-to-main communication and storage-access boundaries. |
Electron API And IPC
Overview
Все backend-возможности massCode живут в main process. Renderer получает доступ к данным и системным операциям только через Elysia API или IPC channels.
Renderer Access Rules
- В renderer для данных используй
import { api } from '~/renderer/services/api'.
- В renderer для системных операций используй
ipc.invoke('channel:action', payload).
- Electron API из renderer доступен только через
src/renderer/electron.ts.
- Никогда не импортируй storage internals или backend-модули напрямую в renderer.
New API Endpoints
При добавлении нового endpoint:
- создай DTO в
src/main/api/dto/;
- добавь route в
src/main/api/routes/;
- запусти
pnpm api:generate, чтобы обновить клиент.
Не оставляй API-клиент рассинхронизированным с route/DTO изменениями.
IPC Conventions
- Для filesystem и system ops используй
ipc.invoke(...).
- Каналы должны укладываться в семейства:
fs:*
system:*
db:* — legacy или migration flows, не основной путь для новой функциональности
main-menu:*
prettier:*
spaces:*
theme:*
Good Boundaries
- Renderer формирует intent и payload.