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.

소스 정보

저장소
massCodeIO/massCode
최근 소스 활동
2026년 4월 27일 07:09
감지된 SKILL.md 언어
러시아어
스타
7,075
포크
279

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
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.
GitHub에서 보기