Skip to content

Commit 8f6a960

Browse files
author
StackMemory Bot (CLI)
committed
feat: Obsidian vault adapter for frame serialization
- ObsidianVaultAdapter: writes frames as .md files with YAML frontmatter and [[wiki-links]] into a configured Obsidian vault path - Auto-maintained index.md with frame type counts and recent frame links - Web clipper ingest: watches raw/ for new .md files, parses frontmatter, triggers ingest callback for frame creation - Session summaries with frame backlinks - Config: add optional `obsidian.vaultPath` to StackMemoryConfig - Hooks into frameLifecycleHooks (onFrameCreated/onFrameClosed) - Zero Obsidian plugins required — pure file I/O
1 parent 2ad098d commit 8f6a960

2 files changed

Lines changed: 500 additions & 0 deletions

File tree

src/core/config/types.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,17 @@ export interface ProfileConfig {
6666
performance?: Partial<PerformanceConfig>;
6767
}
6868

69+
export interface ObsidianConfig {
70+
/** Path to Obsidian vault root directory */
71+
vaultPath: string;
72+
/** Subdirectory within vault for StackMemory data (default: "stackmemory") */
73+
subdir?: string;
74+
/** Watch raw/ for web clipper input (default: true) */
75+
watchRaw?: boolean;
76+
/** Auto-update index.md on frame changes (default: true) */
77+
autoIndex?: boolean;
78+
}
79+
6980
export interface StackMemoryConfig {
7081
version: string;
7182
profile?: string; // Active profile name
@@ -77,6 +88,8 @@ export interface StackMemoryConfig {
7788
performance: PerformanceConfig;
7889
enrichment: EnrichmentConfig;
7990
profiles?: Record<string, ProfileConfig>;
91+
/** Optional Obsidian vault integration */
92+
obsidian?: ObsidianConfig;
8093
}
8194

8295
export const DEFAULT_WEIGHTS: ScoringWeights = {

0 commit comments

Comments
 (0)