threadnote 0.6.3 → 0.7.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.
@@ -118,8 +118,9 @@ The MCP tool `share_publish` runs the same scrubber as the CLI and refuses to pu
118
118
  patterns (PEM private keys, `sk-...`, `gh[pousr]_...`, `Bearer ...`, `AKIA...`, `xox[abprs]-...`). It is a destructive
119
119
  operation: it removes the personal copy after the shared copy is committed.
120
120
 
121
- When a teammate's memory needs to come into your own working set, run `threadnote share sync` (no MCP equivalent yet) to
122
- pull and reindex.
121
+ Incoming shared memories are normally fetched and synced automatically before MCP `recall_context` / `read_context` and
122
+ CLI `threadnote recall` / `threadnote read` return. If automatic sync reports a dirty worktree, a conflict, or another
123
+ git issue, run `threadnote share sync` after resolving the local state to pull, reindex, and push explicitly.
123
124
 
124
125
  ```
125
126
  # MCP call shape
package/docs/index.html CHANGED
@@ -1346,17 +1346,19 @@ threadnote remember \
1346
1346
  </div>
1347
1347
 
1348
1348
  <div class="reveal">
1349
- <h3>Pull teammates' updates</h3>
1349
+ <h3>Teammates' updates auto-sync</h3>
1350
1350
  <div class="terminal">
1351
1351
  <div class="terminal-bar"><span></span><span></span><span></span></div>
1352
- <pre><span class="cmd">$ threadnote share sync</span>
1353
- <span class="out">git pull --rebase</span>
1354
- <span class="out">Reindexed 3 file change(s) into OpenViking.</span>
1352
+ <pre><span class="cmd">$ recall_context({query: "shared feature memory"})</span>
1353
+ <span class="out">→ viking://user/you/memories/shared/default/durable/projects/&lt;p&gt;/&lt;t&gt;.md</span>
1354
+ <span class="out">Auto-synced shared memories: default</span>
1355
1355
  <span class="out-strong">Recall now finds new shared memories alongside personal.</span></pre>
1356
1356
  </div>
1357
1357
  <p class="muted" style="font-size: 0.9rem; margin-top: 0.6rem">
1358
- Recall sees the shared subtree by default. Both semantic search and exact-token grep cover
1359
- <code>viking://user/&lt;you&gt;/memories/shared/&lt;team&gt;/...</code> alongside your personal memories.
1358
+ The MCP server periodically fetches share repos and syncs clean incoming updates before
1359
+ <code>recall_context</code> or <code>read_context</code> returns. Manual
1360
+ <code>threadnote share sync</code> is still there for dirty worktrees, conflicts, explicit pushes, or
1361
+ immediate operator control.
1360
1362
  </p>
1361
1363
  </div>
1362
1364
 
@@ -1430,8 +1432,8 @@ threadnote remember \
1430
1432
  <pre class="v-response">Published → shared/&lt;team&gt;/durable/projects/&lt;repo&gt;/&lt;feature&gt;.md
1431
1433
  git push: ok</pre>
1432
1434
  <div class="v-answer">
1433
- The memory lands in the team git repo. A teammate's next <code>share sync</code> pulls it; their
1434
- recall surfaces it alongside their own memories — no DM forwarding, no PDF dumping.
1435
+ The memory lands in the team git repo. Their agent's next recall/read auto-syncs clean incoming changes
1436
+ and surfaces it alongside their own memories — no DM forwarding, no PDF dumping.
1435
1437
  </div>
1436
1438
  </div>
1437
1439
 
package/docs/share.md CHANGED
@@ -71,7 +71,18 @@ lines from the memory's header block. Those pointers only resolve on the
71
71
  publisher's machine — teammates pull via git and cannot dereference them — so
72
72
  keeping them would just leak local-only provenance into team git history.
73
73
 
74
- ### Pull teammates' updates
74
+ ### Keep teammates' updates current
75
+
76
+ Threadnote does a periodic background `git fetch` for configured share teams.
77
+ When an agent calls MCP `recall_context` / `read_context`, or the CLI
78
+ `threadnote recall` / `threadnote read`, Threadnote checks whether a shared
79
+ repo is behind. If it is, Threadnote rebases the clean worktree, reindexes the
80
+ pulled markdown files into OpenViking, and then returns the requested
81
+ recall/read result. Sync errors degrade to warnings so memory access still
82
+ works with the best local data available.
83
+
84
+ Manual sync remains useful when you want to publish local edits, clear a dirty
85
+ shared worktree, resolve git conflicts, or force a sync immediately:
75
86
 
76
87
  ```bash
77
88
  threadnote share sync # default team
@@ -82,7 +93,9 @@ threadnote share sync --no-push # pull only
82
93
  `share sync` will auto-commit any uncommitted edits in the worktree, fetch and
83
94
  rebase from the remote, reindex pulled markdown files into OpenViking (so
84
95
  `recall` finds them immediately), and push. Pass `--no-auto-commit` to refuse
85
- syncing when the worktree is dirty.
96
+ syncing when the worktree is dirty. Automatic recall/read sync never commits a
97
+ dirty shared worktree; it warns and leaves that case for explicit
98
+ `threadnote share sync`.
86
99
 
87
100
  ### Take a memory back
88
101
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "threadnote",
3
- "version": "0.6.3",
3
+ "version": "0.7.1",
4
4
  "type": "commonjs",
5
5
  "main": "dist/threadnote.cjs",
6
6
  "description": "Shared local context and handoffs for development agents",