@imunitic/synapse 0.2.13 → 0.3.1

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.
@@ -33,7 +33,7 @@ Requires the `synapse` CLI on `PATH`, resolving a vault with a working `LinkGrap
33
33
  `sb — Obsidian CLI as ObsidianStore's transport` and `sb — DiskStore's own index, Obsidian becomes
34
34
  optional`). Both real coding-vault backends have one now — `obsidian` reaching the CLI when
35
35
  reachable and falling back to `disk`'s own implementation otherwise, `disk` always local. If
36
- `SYNAPSE_VAULT_STORE` ever resolves to a backend with no `LinkGraph` at all, these commands exit 1
36
+ `SYNAPSE_VAULT_INTEGRATIONS` ever resolves to a backend with no `LinkGraph` at all, these commands exit 1
37
37
  saying so; stop and report that rather than falling back to anything else.
38
38
 
39
39
  This command reaches the vault store only through the `synapse` CLI's `vault-*` subcommands, the
@@ -101,7 +101,7 @@ findings for the Step 6 proposal instead of a silent edit:
101
101
 
102
102
  - **Broken links** — every `vault-unresolved` row whose `source` is in scope. Before writing the
103
103
  finding, check the vault's own local git history to say *why* it's broken instead of leaving that
104
- to guesswork — a `SYNAPSE_VAULT_STORE=git` vault has one, since every agent-driven edit commits
104
+ to guesswork — a `SYNAPSE_VAULT_INTEGRATIONS=git` vault has one, since every agent-driven edit commits
105
105
  into it automatically. Resolve the vault's filesystem path the same way `synapse.conf` already does
106
106
  (`SYNAPSE_VAULT_DIR`), skip this sub-step entirely if `{vault}/.git` doesn't exist, and never let a
107
107
  missing/unreachable git repo block the rest of the finding — worst case it's reported with no
@@ -33,7 +33,7 @@ Requires the `synapse` CLI on `PATH`, resolving a vault with a working link grap
33
33
  (`synapse vault-backlinks`/`vault-links`/`vault-unresolved`/`vault-orphans`/`vault-deadends`). Both
34
34
  real coding-vault backends have one — `disk` (the default) always local, `obsidian` reaching a
35
35
  running app when reachable and falling back to `disk`'s own implementation otherwise. If
36
- `SYNAPSE_VAULT_STORE` ever resolves to a backend with no link graph at all, these commands exit 1
36
+ `SYNAPSE_VAULT_INTEGRATIONS` ever resolves to a backend with no link graph at all, these commands exit 1
37
37
  saying so; stop and report that rather than falling back to anything else.
38
38
 
39
39
  This skill reaches the vault store only through the `synapse` CLI's `vault-*` subcommands, the same
@@ -101,7 +101,7 @@ findings for the Step 6 proposal instead of a silent edit:
101
101
 
102
102
  - **Broken links** — every `vault-unresolved` row whose `source` is in scope. Before writing the
103
103
  finding, check the vault's own local git history to say *why* it's broken instead of leaving that
104
- to guesswork — a `SYNAPSE_VAULT_STORE=git` vault has one, since every agent-driven edit commits
104
+ to guesswork — a `SYNAPSE_VAULT_INTEGRATIONS=git` vault has one, since every agent-driven edit commits
105
105
  into it automatically. Resolve the vault's filesystem path the same way its own conf file already
106
106
  does (`SYNAPSE_VAULT_DIR`), skip this sub-step entirely if `{vault}/.git` doesn't exist, and never
107
107
  let a missing/unreachable git repo block the rest of the finding — worst case it's reported with no
@@ -20,7 +20,7 @@
20
20
  // `args.oldString`, `args.newString`) -- both share `filePath`, matching
21
21
  // Claude Code's `Write`/`Edit` sharing `tool_input.file_path`. Fired on
22
22
  // write/edit tools for `staleness` -- the vault's own version control
23
- // (`SYNAPSE_VAULT_STORE=git`) commits from inside `synapse`'s own CLI
23
+ // (`SYNAPSE_VAULT_INTEGRATIONS=git`) commits from inside `synapse`'s own CLI
24
24
  // (`vault-write`/`vault-patch`) itself now, needing no `PostToolUse`-style
25
25
  // hook here or on any other harness.
26
26
  //
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@imunitic/synapse",
3
- "version": "0.2.13",
3
+ "version": "0.3.1",
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.13",
26
- "@imunitic/synapse-linux-x64": "0.2.13",
27
- "@imunitic/synapse-linux-arm64": "0.2.13"
25
+ "@imunitic/synapse-darwin-arm64": "0.3.1",
26
+ "@imunitic/synapse-linux-x64": "0.3.1",
27
+ "@imunitic/synapse-linux-arm64": "0.3.1"
28
28
  },
29
29
  "license": "SEE LICENSE IN LICENSE"
30
30
  }
@@ -90,7 +90,7 @@ verification that cannot fail in the direction you are worried about is not a ve
90
90
 
91
91
  ## If you do destroy something
92
92
 
93
- On a `SYNAPSE_VAULT_STORE=git` vault, every edit commits automatically, so the intact version is one
93
+ On a `SYNAPSE_VAULT_INTEGRATIONS=git` vault, every edit commits automatically, so the intact version is one
94
94
  `git show <sha>:<path>` away in the vault's own git history -- a vault-wide undo for destructive tool
95
95
  calls, not merely a record of intentional edits. The default `disk` backend keeps no history at all,
96
96
  so this safety net only exists once that backend is chosen.
package/synapse-claude.md CHANGED
@@ -101,11 +101,11 @@ The vault is reached through the `synapse` CLI — `synapse vault-read`/`vault-w
101
101
  `vault-search`/`vault-search-text`/`vault-doc-map`/`vault-patch`/`vault-backlinks`/`vault-links`/
102
102
  `vault-unresolved`/`vault-orphans`/`vault-deadends`/`vault-ambiguous`/`vault-rename` — for reads
103
103
  *and* for writes, never by resolving a vault path or calling an `mcp__obsidian__*` tool directly.
104
- Which concrete store the CLI talks to (`SYNAPSE_VAULT_STORE=disk`, the default; `obsidian`, opted
104
+ Which concrete store the CLI talks to (`SYNAPSE_VAULT_INTEGRATIONS unset`, the default; `obsidian`, opted
105
105
  into for a running Obsidian app's own live search relevance and graph data; or `git`, opted into for
106
106
  the vault to own its own version control -- commit on every write, push/pull in the background) is
107
107
  resolved once,
108
- inside the compiled binary, from `SYNAPSE_VAULT_STORE`/`SYNAPSE_VAULT_DIR` — never something a skill
108
+ inside the compiled binary, from `SYNAPSE_VAULT_INTEGRATIONS`/`SYNAPSE_VAULT_DIR` — never something a skill
109
109
  or an agent turn needs to know or branch on. By default that means no Obsidian dependency
110
110
  whatsoever: `read`/`write`/`list`/`search`/the link graph/rename are all plain disk I/O and direct
111
111
  computation against the vault folder. Under the opted-in `obsidian` backend, `search`/the link
@@ -2,23 +2,28 @@
2
2
  # synapse.conf anywhere. Edit the path below for this machine.
3
3
  SYNAPSE_VAULT_DIR="$HOME/Vault/YourVault"
4
4
 
5
- # Default "disk" if unset: reads/writes the vault folder directly, no
6
- # external dependency at all -- search and the link graph
5
+ # Unset by default: reads/writes the vault folder directly, no external
6
+ # 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 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
- #SYNAPSE_VAULT_STORE="obsidian"
8
+ # DiskStore's own scan. A comma-separated, outer-to-inner list of
9
+ # integrations layers extra behavior on top instead: "obsidian" prefers a
10
+ # running external app's own live search relevance and graph data, falling
11
+ # back to the same disk-backed behavior automatically whenever that app
12
+ # isn't reachable (see docs/synapse/synapse-extended-store.md); "git" owns
13
+ # the vault's own git lifecycle (commit on write, push once enough pile up).
14
+ # "git,obsidian" combines both. The disk store itself is never named -- it's
15
+ # always the implicit innermost element.
16
+ #SYNAPSE_VAULT_INTEGRATIONS="obsidian"
13
17
 
14
18
  # Where Synapse clones/builds tree-sitter grammars (shared across every
15
19
  # project -- not per-repo). Safe to leave at the default.
16
20
  SYNAPSE_GRAMMARS_DIR="$HOME/.cache/synapse/grammars"
17
21
 
18
- # How often the Stop hook pushes the vault's auto-commits to its remote,
19
- # counted in turns. Only acts when the vault actually has an upstream and is
20
- # genuinely ahead of it, so a remote-less vault (local versioned undo only) is
21
- # unaffected either way. Set to 0 to never push. Default 5 if unset.
22
+ # When "git" is one of the configured integrations, how many local commits
23
+ # pile up before a detached push runs, counted in commits. Only acts when the
24
+ # vault actually has an upstream and is genuinely ahead of it, so a
25
+ # remote-less vault (local versioned undo only) is unaffected either way. Set
26
+ # to 0 to never push. Default 5 if unset.
22
27
  #SYNAPSE_VAULT_PUSH_EVERY=5
23
28
 
24
29
  # How many nodes /synapse-init authors concurrently in its final step, via the