# misipenghidupan/obmap-misi architecture

> Architecture diagram of the GitHub repository misipenghidupan/obmap-misi, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-23). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/misipenghidupan/obmap-misi
- Repository: https://github.com/misipenghidupan/obmap-misi

## Overview

The README describes only a blank page, but the source tree contains a substantial Markdown-vault and graph-workspace application. The map summarizes its apparent user workflow—open a vault, edit notes and metadata, explore relationships, and manage persistence/sync—while keeping links conservative. Source excerpts directly support the graph layout dispatch, graph-settings updates, and parts of cloud-sync behavior; wiring among other subsystems is inferred from names and paths, so uncertain connections are omitted.

Main entry points: [`src/core/system/sync/SyncEngine.ts`](https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/system/sync/SyncEngine.ts) (Sync engine), [`src/core/shell/workspace/views`](https://github.com/misipenghidupan/obmap-misi/tree/main/src/core/shell/workspace/views) (Workspace views), [`src/core/shell/workspace/WorkspaceRoot.tsx`](https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/shell/workspace/WorkspaceRoot.tsx) (Workspace shell), [`src/core/editor/MarkdownView.tsx`](https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/editor/MarkdownView.tsx) (Markdown editor)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workspace["Workspace"]
  node_workspace_root["Workspace shell<br/>[WorkspaceRoot.tsx]"]
  node_workspace_views["Workspace views"]
  node_settings["Settings hub<br/>[SettingsHub.tsx]"]
end

subgraph group_notes["Notes"]
  node_markdown_editor["Markdown editor<br/>[MarkdownView.tsx]"]
  node_metadata["Metadata and mentions<br/>[MetadataCache.ts]"]
  node_file_manager["File manager<br/>[FileManager.ts]"]
end

subgraph group_graph["Graph exploration"]
  node_graph_view["Graph workspace<br/>[GraphCanvas.tsx]"]
  node_graph_links["Dynamic links"]
  node_graph_layout["Layout engine<br/>[useLayoutEngine.ts]"]
  node_graph_strategies["Layout strategies"]
  node_graph_settings["Graph settings"]
  node_graph_config["Layout settings"]
end

subgraph group_vault["Vault services"]
  node_vault_session["Vault session"]
  node_vault_manager["Vault manager<br/>[VaultManager.ts]"]
  node_vault_storage[("Vault storage<br/>[VaultStorage.ts]")]
  node_sync_engine["Sync engine<br/>[SyncEngine.ts]"]
  node_sync_queue["Offline sync queue<br/>[sync-queue.ts]"]
  node_cloud_vault["Cloud vault service"]
  node_import_export["Import and export"]
end

node_user(("User"))
node_supabase[("Supabase")]

node_user -->|"uses"| node_workspace_root
node_workspace_root -->|"hosts views"| node_workspace_views
node_workspace_views -->|"opens notes"| node_markdown_editor
node_markdown_editor -->|"note metadata"| node_metadata
node_vault_session -->|"vault access"| node_vault_manager
node_vault_manager -->|"persists vault"| node_vault_storage
node_sync_engine -->|"pushes snapshots"| node_cloud_vault
node_sync_engine -->|"checks account"| node_supabase
node_sync_engine -->|"queues pushes"| node_sync_queue
node_workspace_views -->|"opens graph"| node_graph_view
node_graph_settings -->|"shows layout controls"| node_graph_config
node_graph_config -->|"sets layout options"| node_graph_layout
node_graph_layout -->|"dispatches layout"| node_graph_strategies
node_user -->|"imports or exports"| node_import_export

click node_workspace_root "https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/shell/workspace/WorkspaceRoot.tsx"
click node_workspace_views "https://github.com/misipenghidupan/obmap-misi/tree/main/src/core/shell/workspace/views"
click node_settings "https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/shell/settings/SettingsHub.tsx"
click node_vault_session "https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/shell/workspace/VaultSessionContext.tsx"
click node_vault_manager "https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/system/vault/VaultManager.ts"
click node_vault_storage "https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/system/vault/VaultStorage.ts"
click node_sync_engine "https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/system/sync/SyncEngine.ts"
click node_sync_queue "https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/system/sync/sync-queue.ts"
click node_cloud_vault "https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/system/vault/CloudVaultService.ts"
click node_markdown_editor "https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/editor/MarkdownView.tsx"
click node_metadata "https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/system/metadata/MetadataCache.ts"
click node_file_manager "https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/system/file-manager/FileManager.ts"
click node_graph_view "https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/graph/GraphCanvas.tsx"
click node_graph_links "https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/graph/DynamicLinkManager.tsx"
click node_graph_layout "https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/graph/layout/useLayoutEngine.ts"
click node_graph_strategies "https://github.com/misipenghidupan/obmap-misi/tree/main/src/core/graph/layout"
click node_graph_settings "https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/shell/settings/sections/GraphEngineSettings.tsx"
click node_graph_config "https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/graph/config-panel/LayoutEngineTab.tsx"
click node_import_export "https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/system/import-export/services/ImportExportService.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_workspace_root,node_workspace_views,node_settings,node_user toneBlue
class node_markdown_editor,node_metadata,node_file_manager,node_supabase toneAmber
class node_graph_view,node_graph_links,node_graph_layout,node_graph_strategies,node_graph_settings,node_graph_config toneMint
class node_vault_session,node_vault_manager,node_vault_storage,node_sync_engine,node_sync_queue,node_cloud_vault,node_import_export toneRose
```

## Components

### Workspace

- [Workspace shell](https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/shell/workspace/WorkspaceRoot.tsx): `src/core/shell/workspace/WorkspaceRoot.tsx`
- [Workspace views](https://github.com/misipenghidupan/obmap-misi/tree/main/src/core/shell/workspace/views): `src/core/shell/workspace/views`
- [Settings hub](https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/shell/settings/SettingsHub.tsx): `src/core/shell/settings/SettingsHub.tsx`

### Notes

- [Markdown editor](https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/editor/MarkdownView.tsx): `src/core/editor/MarkdownView.tsx`
- [Metadata and mentions](https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/system/metadata/MetadataCache.ts): `src/core/system/metadata/MetadataCache.ts`
- [File manager](https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/system/file-manager/FileManager.ts): `src/core/system/file-manager/FileManager.ts`

### Graph exploration

- [Graph workspace](https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/graph/GraphCanvas.tsx): `src/core/graph/GraphCanvas.tsx`
- [Dynamic links](https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/graph/DynamicLinkManager.tsx): `src/core/graph/DynamicLinkManager.tsx`
- [Layout engine](https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/graph/layout/useLayoutEngine.ts): `src/core/graph/layout/useLayoutEngine.ts`
- [Layout strategies](https://github.com/misipenghidupan/obmap-misi/tree/main/src/core/graph/layout): `src/core/graph/layout`
- [Graph settings](https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/shell/settings/sections/GraphEngineSettings.tsx): `src/core/shell/settings/sections/GraphEngineSettings.tsx`
- [Layout settings](https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/graph/config-panel/LayoutEngineTab.tsx): `src/core/graph/config-panel/LayoutEngineTab.tsx`

### Vault services

- [Vault session](https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/shell/workspace/VaultSessionContext.tsx): `src/core/shell/workspace/VaultSessionContext.tsx`
- [Vault manager](https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/system/vault/VaultManager.ts): `src/core/system/vault/VaultManager.ts`
- [Vault storage](https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/system/vault/VaultStorage.ts): `src/core/system/vault/VaultStorage.ts`
- [Sync engine](https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/system/sync/SyncEngine.ts): `src/core/system/sync/SyncEngine.ts`
- [Offline sync queue](https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/system/sync/sync-queue.ts): `src/core/system/sync/sync-queue.ts`
- [Cloud vault service](https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/system/vault/CloudVaultService.ts): `src/core/system/vault/CloudVaultService.ts`
- [Import and export](https://github.com/misipenghidupan/obmap-misi/blob/main/src/core/system/import-export/services/ImportExportService.ts): `src/core/system/import-export/services/ImportExportService.ts`

### Other components

- **User**
- **Supabase**

## Connections

- User → Workspace shell: uses
- Workspace shell → Workspace views: hosts views
- Workspace views → Markdown editor: opens notes
- Markdown editor → Metadata and mentions: note metadata
- Vault session → Vault manager: vault access
- Vault manager → Vault storage: persists vault
- Sync engine → Cloud vault service: pushes snapshots
- Sync engine → Supabase: checks account
- Sync engine → Offline sync queue: queues pushes
- Workspace views → Graph workspace: opens graph
- Graph settings → Layout settings: shows layout controls
- Layout settings → Layout engine: sets layout options
- Layout engine → Layout strategies: dispatches layout
- User → Import and export: imports or exports
