Skip to main content

spaces-architecture

Use when working on massCode spaces such as code, notes, math, or tools, especially when changing their state, behavior, synchronization, or spaces IPC channels.

Informações da origem

Repositório
massCodeIO/massCode
Última atividade na origem
27 de abril de 2026 às 07:09
Idioma detectado do SKILL.md
russo
Estrelas
7.064
Forks
277

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
spaces-architecture
description
Use when working on massCode spaces such as code, notes, math, or tools, especially when changing their state, behavior, synchronization, or spaces IPC channels.
# Spaces Architecture ## Overview massCode использует систему Spaces для разделения функциональных областей. Это не просто UI tabs: у каждого space есть собственное состояние, свои правила обновления и свой способ синхронизации с данными в vault. ## Space Model - `code` — snippets, folders, tags - `notes` — notes, folders, tags, markdown-based flows - `math` — calculation sheets и состояние math notebook - `tools` — developer utilities Основные определения живут в `src/renderer/spaceDefinitions.ts`. ## Space State Storage - Состояние каждого space хранится в `__spaces__/{spaceId}/.state.yaml` внутри vault. - Runtime helpers: - `src/main/storage/providers/markdown/runtime/spaces.ts` - `src/main/storage/providers/markdown/runtime/spaceState.ts` - Директория `__spaces__/` — служебная часть vault для состояния spaces. ## Persistence Rules - Запись состояния spaces использует ту же debounce/flush инфраструктуру, что и `state.json`. - Не ломай совместимость с `pendingStateWriteByPath` и flush-on-exit поведением. - Если меняешь способ записи, учитывай сценарий завершения приложения до явного ручного flush. ## IPC Rules - Space-specific IPC handlers живут в `src/main/ipc/handlers/spaces.ts`. - Текущие math handlers: - `spaces:math:read` - `spaces:math:write` - Если добавляется новый `spaces:*` flow, он должен работать через общую модель состояния spaces, а не в обход неё. ## Space-Aware Sync - `system:storage-synced` обновляет активное пространство через `getActiveSpaceId()`. - Ожидаемое поведение: - `code` → refresh folders + snippets - `notes` → refresh notes + note folders - `math` → `reloadFromDisk()` через `useMathNotebook()` - `tools` → no-op - Изменения, которые уже сохранены в vault, должны вызывать `markPersistedStorageMutation()`, чтобы не создавать sync loops. ## Common Mistakes - Считать spaces только UI-концепцией и забывать, что у них есть собственное состояние и правила синхронизации. - Писать состояние space в обход общих markdown runtime helpers. - Добавлять mutation без `markPersistedStorageMutation()`. - Ломать согласованность между состоянием space, helpers и sync behavior.
Ver no GitHub