@imunitic/synapse 0.2.8 → 0.2.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -51,6 +51,12 @@ reading the same file:
51
51
  4. If nothing confidently matches, ask the user for a short project tag — plain free-text, not a
52
52
  multiple-choice list, never hinting at any other project's tag as an example — then append the
53
53
  resolved pair to the conf file.
54
+ 5. Once the prefix is known, mint the note's `note_id` the same shared-counter way `/synapse-note`'s
55
+ "Resolving a missing task ID" step 6 does: `task_id` and `note_id` share one counter per prefix, so
56
+ check both fields (`synapse vault-search --fields frontmatter.task_id,frontmatter.note_id`, filter
57
+ both for `{prefix}-\d+`, take the highest number found across both, add 1; start at 1 if none exist
58
+ yet). This is frontmatter only — unlike a task note, a design note's title and filename stay
59
+ exactly `{PROJECT} — {Topic}`, with no id prepended.
54
60
 
55
61
  Never hardcode a specific project/prefix pair in this command's own instructions — the conf file is
56
62
  machine-local and deliberately outside the portable Synapse package, so projects from
@@ -174,6 +180,7 @@ so the `## Status` line is the only lifecycle marker that matters. It simply sta
174
180
  title: "{PROJECT} — {Topic}"
175
181
  project: {prefix}
176
182
  created: "{now}"
183
+ note_id: {id}
177
184
  ---
178
185
 
179
186
  # {PROJECT} — {Topic}
@@ -205,7 +212,7 @@ edit history here worth tracking separately.
205
212
  ## Filename
206
213
 
207
214
  `designs/{PROJECT} — {Topic}.md` — sanitize filesystem-illegal characters (`/ : * ? " < > |`). No
208
- slug, no numbering — Obsidian filenames are the title itself.
215
+ slug, no numbering — vault filenames are the title itself.
209
216
 
210
217
  ---
211
218
 
@@ -87,18 +87,18 @@ unchanged for anyone who has never touched an XDG config directory.
87
87
  5. Whenever step 3 or step 4 resolves a pair not already in the conf file (including a fresh
88
88
  `project-name=prefix` line matching what was just deduced or asked), append it — so the next task
89
89
  for this project resolves from step 2 without a search or a question.
90
- 6. Once the prefix is known, find the next number: run `synapse vault-search --fields
91
- frontmatter.task_id` with `{"var": "frontmatter.task_id"}` on stdin, filter the returned values
92
- client-side for ones matching `{prefix}-\d+`, take the highest number found, add 1. If none exist
93
- yet for that prefix, start at 1.
90
+ 6. Once the prefix is known, find the next number. `task_id` and `note_id` (the id every note gets —
91
+ see "Assigning a note_id" below) share one counter per prefix, so this has to check both fields,
92
+ not just `task_id` alone: run `synapse vault-search --fields frontmatter.task_id,frontmatter.note_id`
93
+ with `{"or": [{"!=": [{"var": "frontmatter.task_id"}, null]}, {"!=": [{"var": "frontmatter.note_id"}, null]}]}`
94
+ on stdin, filter both returned columns client-side for values matching `{prefix}-\d+`, take the
95
+ highest number found across both, add 1. If none exist yet for that prefix, start at 1.
94
96
  7. Format the new task ID **zero-padded to 3 digits** (`{prefix}-001`, `{prefix}-030`,
95
97
  `{prefix}-037`, ...), matching the org-roam-era convention — widening
96
98
  naturally past 3 digits if a prefix ever needs it.
97
- 8. **Prepend the resolved task ID to the title itself** the final title
98
- becomes `{task-id} {original title}` (em dash). Use this same final
99
- title for both the `title` frontmatter field and the `# ` heading, and
100
- use the resolved task ID for `task_id`. Don't let the frontmatter task
101
- ID and the visible title disagree.
99
+ 8. **The title itself is never prefixed with the task ID.** `task_id` lives in frontmatter only —
100
+ the same convention `note_id` already uses for bare and design notes, now consistent across all
101
+ three kinds. `title`, the `# ` heading, and the filename all stay exactly the given topic.
102
102
 
103
103
  `/synapse-design-note`/`/synapse-task-note` read the same conf file directly for the same reason —
104
104
  they don't duplicate this resolution logic, just this file.
@@ -120,7 +120,7 @@ offered.
120
120
 
121
121
  Resolve this to a `category` matching the folder name exactly as
122
122
  `Index.md` currently spells it, before moving on to the creation steps
123
- below. No project-slug question is needed here — Obsidian filenames are
123
+ below. No project-slug question is needed here — vault filenames are
124
124
  the title itself, not a slug-prefixed timestamp, so there's no separate
125
125
  namespacing concern to resolve. The note always lands flat at
126
126
  `{category}/{filename}.md` — never inferred into a subfolder such as a
@@ -129,6 +129,25 @@ triage/priority one a vault owner might maintain by hand (e.g.
129
129
  sorting a note into one of those, if a category has one, is never an
130
130
  agent's call to make.
131
131
 
132
+ ## Assigning a note_id (bare mode only)
133
+
134
+ Task mode already gets its id via "Resolving a missing task ID" above. Bare mode needs one too —
135
+ every note gets a `note_id`, not just tasks — but unlike task mode, this step never blocks with a
136
+ question: a quick bare note shouldn't require an interrupt just to get an id.
137
+
138
+ 1. Try steps 1-3 of "Resolving a missing task ID" above (repo context, the resolved
139
+ `synapse-projects.conf`, then deducing from the vault itself) to resolve a project prefix. Skip
140
+ step 4 entirely — if none of the first three resolve one, fall through to step 2 below instead of
141
+ asking.
142
+ 2. If a prefix resolved: mint the next number the same shared-counter way as that section's step 6
143
+ (checking both `task_id` and `note_id` across the vault for that prefix). If no prefix resolved:
144
+ mint `note-NNN` instead — its own flat, project-less counter, found the same way (`synapse
145
+ vault-search --fields frontmatter.note_id`, filter for `note-\d+`, take the highest, add 1; start
146
+ at 1 if none exist yet).
147
+ 3. Carry the resolved `{id}` into "Creating the note" below as `note_id`. Unlike task mode, the title
148
+ itself is untouched — no id prefix on the visible title or the `title` frontmatter field for a bare
149
+ note.
150
+
132
151
  ## Resolving the project folder (task mode only)
133
152
 
134
153
  Task notes are grouped one level deeper by project, `tasks/{project}/{filename}.md` — see
@@ -161,6 +180,7 @@ or supplied directly by a caller like `/synapse-task-note`):
161
180
  ---
162
181
  title: "{title}"
163
182
  created: "{now}"
183
+ note_id: {id}
164
184
  ---
165
185
 
166
186
  ```
@@ -27,7 +27,7 @@ periodic look on their own schedule -- this report doesn't cover it.
27
27
  ## Prerequisites
28
28
 
29
29
  Requires the `synapse` CLI on `PATH`. Backend-agnostic -- every query below goes through `synapse
30
- vault-search`, so it works the same whether the vault is Obsidian-backed or plain-disk-backed. If the
30
+ vault-search`, so it works the same regardless of which `Store` backend is configured. If the
31
31
  CLI errors (no vault configured), say so and stop -- there is no other fallback.
32
32
 
33
33
  ## Producing the report
@@ -37,10 +37,11 @@ Run each query below via `synapse vault-search --fields <fields>`, with the Json
37
37
  since a matched row already carries them.
38
38
 
39
39
  **1. Design notes still `Discussing`.** Design notes carry status in-body under `## Status`, not in
40
- frontmatter (unlike task notes) -- a content match, scoped to `designs/`. Needs only the title:
40
+ frontmatter (unlike task notes) -- a content match, scoped to `designs/`. Needs the title and the
41
+ note's own `note_id` (every design note gets one, minted by `/synapse-design-note` itself):
41
42
 
42
43
  ```
43
- synapse vault-search --fields frontmatter.title <<'EOF'
44
+ synapse vault-search --fields frontmatter.title,frontmatter.note_id <<'EOF'
44
45
  {"and": [
45
46
  {"glob": ["designs/*", {"var": "path"}]},
46
47
  {"regexp": ["## Status\nDiscussing", {"var": "content"}]}
@@ -51,10 +52,10 @@ EOF
51
52
  **2. `Ready` design notes with no compiled task yet.** `/synapse-task-note`'s own "Linking back"
52
53
  step patches a compiled design note with a `> Compiled task: [[...]]` line right after its title --
53
54
  "`Ready` and missing that line" is a direct signal, not fuzzy title-matching against `tasks/`. Needs
54
- only the title:
55
+ the title and `note_id`:
55
56
 
56
57
  ```
57
- synapse vault-search --fields frontmatter.title <<'EOF'
58
+ synapse vault-search --fields frontmatter.title,frontmatter.note_id <<'EOF'
58
59
  {"and": [
59
60
  {"glob": ["designs/*", {"var": "path"}]},
60
61
  {"regexp": ["## Status\nReady", {"var": "content"}]},
@@ -67,11 +68,11 @@ EOF
67
68
  at least one bullet -- a heading with nothing under it (fully pruned, per the Ready-gate convention
68
69
  `/synapse-design-note` now follows) doesn't count as open. Since this section spans every status,
69
70
  each line in the composed report also shows *which* status the note is currently in, and whether it
70
- has a compiled task note -- request `content` too, and pull both directly out of the returned text
71
- rather than reading the note again:
71
+ has a compiled task note -- request `content` and `note_id` too, and pull the status/compiled-task
72
+ target directly out of the returned text rather than reading the note again:
72
73
 
73
74
  ```
74
- synapse vault-search --fields frontmatter.title,content <<'EOF'
75
+ synapse vault-search --fields frontmatter.title,frontmatter.note_id,content <<'EOF'
75
76
  {"and": [
76
77
  {"glob": ["designs/*", {"var": "path"}]},
77
78
  {"regexp": ["## Open Questions\n- ", {"var": "content"}]}
@@ -95,10 +96,11 @@ silently stop finding anything under a multi-line pattern.
95
96
 
96
97
  **4. Open task notes with at least one unchecked item.** Task notes carry `status:` in frontmatter,
97
98
  unlike design notes -- filter there first, and request `content` to count `- [ ]` lines directly from
98
- the row rather than reading each match again:
99
+ the row rather than reading each match again. `task_id` is already frontmatter on every task note, no
100
+ extra minting step needed:
99
101
 
100
102
  ```
101
- synapse vault-search --fields frontmatter.title,content <<'EOF'
103
+ synapse vault-search --fields frontmatter.title,frontmatter.task_id,content <<'EOF'
102
104
  {"in": [{"var": "frontmatter.status"}, ["TODO", "IN-PROGRESS"]]}
103
105
  EOF
104
106
  ```
@@ -112,36 +114,40 @@ waiting specifically on human sign-off, since `synapse-task` deliberately never
112
114
  `REVIEW` on its own:
113
115
 
114
116
  ```
115
- synapse vault-search --fields frontmatter.title <<'EOF'
117
+ synapse vault-search --fields frontmatter.title,frontmatter.task_id <<'EOF'
116
118
  {"==": [{"var": "frontmatter.status"}, "REVIEW"]}
117
119
  EOF
118
120
  ```
119
121
 
120
122
  ## Composing the report
121
123
 
122
- One section per category, in the order above. Each line names the note (title, or filename if no
123
- `title` frontmatter) plus the one identifying detail that category needs. The Open Questions section
124
- is the one place a note's status and compiled-task link also belong on the line -- every other
125
- section's heading already implies status (the "Discussing" section only ever holds `Discussing`
126
- notes) and compiled-task-ness (the "Ready, not yet compiled" section only ever holds notes without
127
- one), but Open Questions spans every status and both compiled and uncompiled notes, so put the status
128
- first, before the title, so it's the first thing scanned:
124
+ One section per category, in the order above. Each line leads with the note's own id in brackets
125
+ (`note_id` for a design note, `task_id` for a task note) the whole point of every note now carrying
126
+ one is that a human can act on a line directly ("open sb-068") without the title as an intermediate
127
+ step followed by the title, plus whatever other identifying detail that category needs. A note
128
+ somehow missing its id (pre-dates the field, or the backfill hasn't reached it yet) drops the bracket
129
+ entirely rather than printing an empty one, the same graceful-degradation the title-less case already
130
+ gets. The Open Questions section is the one place a note's status and compiled-task link also belong
131
+ on the line -- every other section's heading already implies status (the "Discussing" section only
132
+ ever holds `Discussing` notes) and compiled-task-ness (the "Ready, not yet compiled" section only ever
133
+ holds notes without one), but Open Questions spans every status and both compiled and uncompiled
134
+ notes, so put the status first, before the id, so it's the first thing scanned:
129
135
 
130
136
  ```
131
137
  ## Discussing
132
- - {title}
138
+ - [{note_id}] {title}
133
139
 
134
140
  ## Ready, not yet compiled
135
- - {title}
141
+ - [{note_id}] {title}
136
142
 
137
143
  ## Open questions
138
- - **{status}** — {title} — {compiled task title, or "not compiled"}
144
+ - **{status}** — [{note_id}] {title} — {compiled task title, or "not compiled"}
139
145
 
140
146
  ## In progress (unchecked items)
141
- - {title} ({N} unchecked)
147
+ - [{task_id}] {title} ({N} unchecked)
142
148
 
143
149
  ## Awaiting review
144
- - {title}
150
+ - [{task_id}] {title}
145
151
  ```
146
152
 
147
153
  Omit a section entirely when it has zero matches -- matching `/synapse-note --list`'s own convention
@@ -68,8 +68,8 @@ Follow `/synapse-note`'s task-mode procedure exactly (its "Creating the note" se
68
68
  duplicate that scaffolding here, just supply its inputs:
69
69
 
70
70
  - **Title:** a short, plain description of the compiled plan (e.g. "Rollup direct storage
71
- implementation") — `/synapse-note --task` resolves the project prefix and `task_id` and prepends
72
- them itself.
71
+ implementation") — stays exactly this, never prefixed with the resolved `task_id`; `/synapse-note
72
+ --task` resolves the project prefix and `task_id` itself and puts them in frontmatter only.
73
73
  - **Project:** derive from the source design note's `project:` frontmatter — that prefix is already
74
74
  resolved (the design note went through `/synapse-design-note`'s resolution when it was created,
75
75
  which reads/appends the resolved `synapse-projects.conf`, per `/synapse-note`'s tiered lookup),
@@ -133,7 +133,7 @@ Claude: [reads designs/{PROJECT} — Rollup direct storage.md, Status: Ready]
133
133
 
134
134
  Project already known: {PROJECT} → {prefix}-005.
135
135
 
136
- Created: tasks/{PROJECT}/{prefix}-005 — Rollup direct storage implementation.md
136
+ Created: tasks/{PROJECT}/Rollup direct storage implementation.md (task_id: {prefix}-005)
137
137
  Linked back from designs/{PROJECT} — Rollup direct storage.md.
138
138
 
139
139
  Status transitions happen automatically via the synapse-task skill once you start work.
@@ -29,7 +29,7 @@ produces the same five-category sweep.
29
29
  ## Prerequisites
30
30
 
31
31
  Requires the `synapse` CLI on `PATH`. Backend-agnostic -- every query below goes through `synapse
32
- vault-search`, so it works the same whether the vault is Obsidian-backed or plain-disk-backed. If the
32
+ vault-search`, so it works the same regardless of which `Store` backend is configured. If the
33
33
  CLI errors (no vault configured), say so and stop -- there is no other fallback.
34
34
 
35
35
  ## Producing the report
@@ -39,10 +39,11 @@ Run each query below via `synapse vault-search --fields <fields>`, with the Json
39
39
  since a matched row already carries them.
40
40
 
41
41
  **1. Design notes still `Discussing`.** Design notes carry status in-body under `## Status`, not in
42
- frontmatter (unlike task notes) -- a content match, scoped to `designs/`. Needs only the title:
42
+ frontmatter (unlike task notes) -- a content match, scoped to `designs/`. Needs the title and the
43
+ note's own `note_id` (every design note gets one, minted at creation time):
43
44
 
44
45
  ```
45
- synapse vault-search --fields frontmatter.title <<'EOF'
46
+ synapse vault-search --fields frontmatter.title,frontmatter.note_id <<'EOF'
46
47
  {"and": [
47
48
  {"glob": ["designs/*", {"var": "path"}]},
48
49
  {"regexp": ["## Status\nDiscussing", {"var": "content"}]}
@@ -53,10 +54,10 @@ EOF
53
54
  **2. `Ready` design notes with no compiled task yet.** The design-compilation skill's own "Linking
54
55
  back" step patches a compiled design note with a `> Compiled task: [[...]]` line right after its
55
56
  title -- "`Ready` and missing that line" is a direct signal, not fuzzy title-matching against
56
- `tasks/`. Needs only the title:
57
+ `tasks/`. Needs the title and `note_id`:
57
58
 
58
59
  ```
59
- synapse vault-search --fields frontmatter.title <<'EOF'
60
+ synapse vault-search --fields frontmatter.title,frontmatter.note_id <<'EOF'
60
61
  {"and": [
61
62
  {"glob": ["designs/*", {"var": "path"}]},
62
63
  {"regexp": ["## Status\nReady", {"var": "content"}]},
@@ -68,11 +69,12 @@ EOF
68
69
  **3. Design notes (any status) with a non-empty `## Open Questions`.** Match the heading followed by
69
70
  at least one bullet -- a heading with nothing under it (fully pruned, per the design-note skill's own
70
71
  Ready-gate convention) doesn't count as open. Since this section spans every status, each line in the
71
- composed report also shows *which* status the note is currently in -- request `content` too, and pull
72
- the status directly out of the returned text rather than reading the note again:
72
+ composed report also shows *which* status the note is currently in, and whether it has a compiled task
73
+ note -- request `content` and `note_id` too, and pull both directly out of the returned text rather
74
+ than reading the note again:
73
75
 
74
76
  ```
75
- synapse vault-search --fields frontmatter.title,content <<'EOF'
77
+ synapse vault-search --fields frontmatter.title,frontmatter.note_id,content <<'EOF'
76
78
  {"and": [
77
79
  {"glob": ["designs/*", {"var": "path"}]},
78
80
  {"regexp": ["## Open Questions\n- ", {"var": "content"}]}
@@ -80,12 +82,14 @@ synapse vault-search --fields frontmatter.title,content <<'EOF'
80
82
  EOF
81
83
  ```
82
84
 
83
- This spans every status, so take the line following `## Status` directly out of each row's `content`
84
- column instead of chaining further status-specific `regexp` branches onto the query -- normally
85
- `Discussing`/`Ready`/`Reference`, but a design note written before that three-word convention was
86
- standardized can carry free text there instead (e.g. `Superseded by [[...]]`); report that verbatim
87
- rather than forcing it into a bucket, surfacing an odd note beats losing it, the same reasoning behind
88
- reporting a 0-unchecked task instead of hiding it (see Query 4 below).
85
+ This spans every status, so take two things from each row's `content` column directly instead of
86
+ chaining further status-specific `regexp` branches onto the query: the line following `## Status`
87
+ (normally `Discussing`/`Ready`/`Reference`, but a design note written before that three-word convention
88
+ was standardized can carry free text there instead, e.g. `Superseded by [[...]]` -- report that
89
+ verbatim rather than forcing it into a bucket, surfacing an odd note beats losing it, the same
90
+ reasoning behind reporting a 0-unchecked task instead of hiding it, see Query 4 below) and the target
91
+ of a `> Compiled task: [[...]]` line, if present -- that's the compiled task, parsed straight out of
92
+ the wikilink text rather than resolved through any vault-wide link index.
89
93
 
90
94
  A `regexp` pattern containing a literal newline (`\n`) must be written with a single backslash, byte-
91
95
  for-byte, in the JSON text piped to `vault-search` -- the heredocs above are unquoted-delimiter
@@ -95,10 +99,11 @@ silently stop finding anything under a multi-line pattern.
95
99
 
96
100
  **4. Open task notes with at least one unchecked item.** Task notes carry `status:` in frontmatter,
97
101
  unlike design notes -- filter there first, and request `content` to count `- [ ]` lines directly from
98
- the row rather than reading each match again:
102
+ the row rather than reading each match again. `task_id` is already frontmatter on every task note, no
103
+ extra minting step needed:
99
104
 
100
105
  ```
101
- synapse vault-search --fields frontmatter.title,content <<'EOF'
106
+ synapse vault-search --fields frontmatter.title,frontmatter.task_id,content <<'EOF'
102
107
  {"in": [{"var": "frontmatter.status"}, ["TODO", "IN-PROGRESS"]]}
103
108
  EOF
104
109
  ```
@@ -112,34 +117,39 @@ waiting specifically on human sign-off, since the task-status skill deliberately
112
117
  note past `REVIEW` on its own:
113
118
 
114
119
  ```
115
- synapse vault-search --fields frontmatter.title <<'EOF'
120
+ synapse vault-search --fields frontmatter.title,frontmatter.task_id <<'EOF'
116
121
  {"==": [{"var": "frontmatter.status"}, "REVIEW"]}
117
122
  EOF
118
123
  ```
119
124
 
120
125
  ## Composing the report
121
126
 
122
- One section per category, in the order above. Each line names the note (title, or filename if no
123
- `title` frontmatter) plus the one identifying detail that category needs. The Open Questions section
124
- is the one place a note's status also belongs on the line -- every other section's heading already
125
- implies it (the "Discussing" section only ever holds `Discussing` notes), but Open Questions spans
126
- every status, so put the status first, before the title, so it's the first thing scanned:
127
+ One section per category, in the order above. Each line leads with the note's own id in brackets
128
+ (`note_id` for a design note, `task_id` for a task note) the whole point of every note now carrying
129
+ one is that a human can act on a line directly ("open sb-068") without the title as an intermediate
130
+ step followed by the title. A note somehow missing its id (pre-dates the field) drops the bracket
131
+ entirely rather than printing an empty one, the same graceful-degradation the title-less case already
132
+ gets. The Open Questions section is the one place a note's status and compiled-task link also belong
133
+ on the line -- every other section's heading already implies status (the "Discussing" section only
134
+ ever holds `Discussing` notes) and compiled-task-ness (the "Ready, not yet compiled" section only ever
135
+ holds notes without one), but Open Questions spans every status and both compiled and uncompiled
136
+ notes, so put the status first, before the id, so it's the first thing scanned:
127
137
 
128
138
  ```
129
139
  ## Discussing
130
- - {title}
140
+ - [{note_id}] {title}
131
141
 
132
142
  ## Ready, not yet compiled
133
- - {title}
143
+ - [{note_id}] {title}
134
144
 
135
145
  ## Open questions
136
- - **{status}** — {title}
146
+ - **{status}** — [{note_id}] {title} — {compiled task title, or "not compiled"}
137
147
 
138
148
  ## In progress (unchecked items)
139
- - {title} ({N} unchecked)
149
+ - [{task_id}] {title} ({N} unchecked)
140
150
 
141
151
  ## Awaiting review
142
- - {title}
152
+ - [{task_id}] {title}
143
153
  ```
144
154
 
145
155
  Omit a section entirely when it has zero matches -- matching the note-listing skill's own convention
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@imunitic/synapse",
3
- "version": "0.2.8",
3
+ "version": "0.2.10",
4
4
  "description": "Memory for Claude Code, Codex CLI, and OpenCode: a durable Obsidian vault plus a per-repo code graph.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -22,9 +22,9 @@
22
22
  "*.conf.template"
23
23
  ],
24
24
  "optionalDependencies": {
25
- "@imunitic/synapse-darwin-arm64": "0.2.8",
26
- "@imunitic/synapse-linux-x64": "0.2.8",
27
- "@imunitic/synapse-linux-arm64": "0.2.8"
25
+ "@imunitic/synapse-darwin-arm64": "0.2.10",
26
+ "@imunitic/synapse-linux-x64": "0.2.10",
27
+ "@imunitic/synapse-linux-arm64": "0.2.10"
28
28
  },
29
29
  "license": "SEE LICENSE IN LICENSE"
30
30
  }
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: synapse-task
3
- description: Update Obsidian task notes' status frontmatter and Notes sections, enforcing status transitions so active work is IN-PROGRESS and completed checklists move only to REVIEW (not DONE).
3
+ description: Update vault task notes' status frontmatter and Notes sections, enforcing status transitions so active work is IN-PROGRESS and completed checklists move only to REVIEW (not DONE).
4
4
  ---
5
5
 
6
6
  # Synapse Task Status Skill
@@ -1,14 +1,14 @@
1
1
  # synapse-setup configure copies this file in automatically when it finds no
2
2
  # synapse.conf anywhere. Edit the path below for this machine.
3
- SYNAPSE_VAULT_DIR="$HOME/Obsidian/YourVault"
3
+ SYNAPSE_VAULT_DIR="$HOME/Vault/YourVault"
4
4
 
5
5
  # Default "disk" if unset: reads/writes the vault folder directly, no
6
- # dependency on Obsidian being open at all -- search and the link graph
6
+ # external dependency at all -- search and the link graph
7
7
  # (backlinks/links/unresolved/orphans/deadends/ambiguous) are computed by
8
- # DiskStore's own scan. Set to "obsidian" to prefer a running Obsidian
9
- # app's own live search relevance and graph data instead, falling back to
10
- # the same disk-backed behavior automatically whenever Obsidian isn't
11
- # reachable.
8
+ # DiskStore's own scan. Set to the name of an extended store instead to
9
+ # prefer a running external app's own live search relevance and graph data,
10
+ # falling back to the same disk-backed behavior automatically whenever that
11
+ # app isn't reachable -- see docs/synapse/synapse-extended-store.md.
12
12
  #SYNAPSE_VAULT_STORE="obsidian"
13
13
 
14
14
  # Where Synapse clones/builds tree-sitter grammars (shared across every