threadnote 0.3.7 → 0.4.0

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.
package/README.md CHANGED
@@ -1,18 +1,23 @@
1
1
  # Threadnote
2
2
 
3
- `threadnote` is a safe local workflow for using OpenViking as shared, agent-neutral context for development work.
3
+ `threadnote` is a safe local workflow for using [OpenViking](https://openviking.ai/) as shared, agent-neutral context for development work.
4
4
  It is intentionally scoped to curated docs, memories, skills, and handoffs. It is not a source-navigation replacement,
5
5
  and it does not index whole repositories by default.
6
6
 
7
7
  ## Real-World Uses
8
8
 
9
9
  **Want to continue work in a fresh agent session?**
10
- `threadnote install` adds user-level Codex, Claude, and Cursor instructions so new agents automatically recall recent handoffs and relevant memories before they start changing code.
10
+ `threadnote install` adds user-level Codex, Claude, Cursor, and Copilot instructions so new agents automatically recall recent handoffs and relevant memories before they start changing code.
11
+
12
+ **Working on a feature branch over several sessions?**
13
+ Agents recall the branch handoff for current status, then recall durable feature memories for the design, decisions,
14
+ interfaces, and gotchas behind the feature. As useful implementation knowledge appears, agents update the durable feature
15
+ memory instead of leaving everything buried in transient handoffs.
11
16
 
12
17
  **Implemented a feature a while ago and need to pick it up again?**
13
18
  Ask the agent to recall the feature, branch, or repo. Threadnote returns auditable `viking://` pointers that the agent can read before deciding what still matters.
14
19
 
15
- **Switching between Codex, Claude, and Cursor?**\
20
+ **Switching between Codex, Claude, Cursor, and Copilot?**\
16
21
  Install the MCP adapter for each agent you use. The user-level instructions tell agents to store a handoff before they pause, so the next agent can search the same local memory layer instead of reconstructing context
17
22
  from chat history.
18
23
 
@@ -49,6 +54,16 @@ Active memories with the same project/topic write to a stable lifecycle path, so
49
54
  version instead of creating another timestamped note. Untagged memories still use timestamped files when you want a
50
55
  historical trail.
51
56
 
57
+ For feature branches, keep a durable feature memory and an active handoff side by side with the same project/topic:
58
+
59
+ ```bash
60
+ threadnote remember --kind durable --project my-repo --topic feature-x --text "Feature knowledge: ..."
61
+ threadnote handoff --project my-repo --topic feature-x --task "Current status for feature X"
62
+ ```
63
+
64
+ Agents should update the durable feature memory when valuable implementation knowledge changes, and update the handoff
65
+ when current status, tests, blockers, or next steps change.
66
+
52
67
  Use `archive` when an old handoff is useful for provenance but should stop being treated as current working context:
53
68
 
54
69
  ```bash
@@ -72,11 +87,12 @@ refactor, what an on-call investigation concluded, which workaround was verified
72
87
  memories should be compacted. Putting that history into instruction files makes them noisy, stale, and expensive to load
73
88
  into every context window.
74
89
 
75
- Threadnote keeps that moving layer local, searchable, and shared across agents. Agents recall only the relevant memories,
76
- handoffs, and skill/resource pointers when they need them, while the source files stay authoritative for project rules.
90
+ Threadnote keeps that moving layer local, searchable, and shared across agents. Agents recall only the relevant durable
91
+ feature memories, handoffs, and skill/resource pointers when they need them, while the source files stay authoritative
92
+ for project rules.
77
93
 
78
- The split is simple: put durable repo policy in `CLAUDE.md`/`AGENTS.md`; put task history, handoffs, personal workflow
79
- facts, and local cross-agent memory in Threadnote.
94
+ The split is simple: put durable repo policy in `CLAUDE.md`/`AGENTS.md`; put feature knowledge, task history, handoffs,
95
+ personal workflow facts, and local cross-agent memory in Threadnote.
80
96
 
81
97
  ## Safety Model
82
98
 
@@ -87,8 +103,9 @@ facts, and local cross-agent memory in Threadnote.
87
103
  - Redaction: known config files such as `.mcp.json`, `config.toml`, and settings JSON are copied through a redactor
88
104
  before import.
89
105
  - Secret scanning: candidate files are skipped if common token or private-key patterns remain after redaction.
90
- - User instructions: `install` upserts a managed Threadnote block in `~/.codex/AGENTS.md`, `~/.claude/CLAUDE.md`, and
91
- `~/.cursor/rules/threadnote.md` without replacing existing personal instructions.
106
+ - User instructions: `install` upserts managed Threadnote guidance in `~/.codex/AGENTS.md`, `~/.claude/CLAUDE.md`,
107
+ `~/.cursor/rules/threadnote.md`, and `~/.copilot/instructions/threadnote.instructions.md` without replacing existing
108
+ personal instructions.
92
109
  - Agent config changes are explicit: `mcp-install` prints commands and snippets by default; use `--apply` to run them.
93
110
 
94
111
  ## Install
@@ -145,7 +162,7 @@ threadnote update --check
145
162
  threadnote update --dry-run
146
163
  ```
147
164
 
148
- After updating, restart Cursor, Codex, Claude, or open a fresh agent session so MCP tools reload.
165
+ After updating, restart Cursor, Copilot, Codex, Claude, or open a fresh agent session so MCP tools reload.
149
166
 
150
167
  Some releases include post-update memory migrations. `threadnote update` runs the new package's migration prompt after
151
168
  repair, explains what will change, and asks before applying it. Use `threadnote update --yes` for unattended local
@@ -167,6 +184,7 @@ Dry-run examples:
167
184
  threadnote mcp-install codex
168
185
  threadnote mcp-install claude
169
186
  threadnote mcp-install cursor
187
+ threadnote mcp-install copilot
170
188
  ```
171
189
 
172
190
  Apply after review:
@@ -175,11 +193,14 @@ Apply after review:
175
193
  threadnote mcp-install codex --apply
176
194
  threadnote mcp-install claude --apply
177
195
  threadnote mcp-install cursor --apply
196
+ threadnote mcp-install copilot --apply
178
197
  ```
179
198
 
180
199
  Claude installs at `user` scope by default so the same OpenViking MCP server is available from any repo or worktree.
181
200
  Use `--scope local` or `--scope project` only when you intentionally want repo-scoped Claude MCP config.
182
201
  Cursor installs by updating the global `~/.cursor/mcp.json` file.
202
+ Copilot installs by updating the VS Code user-profile `mcp.json` file. Set `THREADNOTE_COPILOT_MCP_CONFIG` if you use a
203
+ custom VS Code profile or want to test against a temporary file.
183
204
 
184
205
  If the package or checkout that originally installed `threadnote` has moved, run repair:
185
206
 
@@ -199,6 +220,7 @@ claude mcp add threadnote -- threadnote-mcp-server
199
220
  ```
200
221
 
201
222
  Cursor uses the equivalent entry in `~/.cursor/mcp.json`.
223
+ Copilot uses the VS Code MCP `servers` entry in the user-profile `mcp.json`.
202
224
 
203
225
  If a future OpenViking build exposes a healthy native endpoint, install it explicitly:
204
226
 
@@ -255,8 +277,8 @@ This is it! Start working with your agents as usual. The agent will automaticall
255
277
  `--no-start` to skip the health check.
256
278
  - `update`: updates the published Threadnote package, then runs `repair` so shims and MCP config point at the new
257
279
  version.
258
- - `repair`: fixes install/config/shim/manifest/server health issues and rewrites Codex/Claude/Cursor MCP configs from the
259
- current checkout.
280
+ - `repair`: fixes install/config/shim/manifest/server health issues and rewrites Codex/Claude/Cursor/Copilot MCP configs
281
+ from the current checkout.
260
282
  - `start`: starts `openviking-server` on `127.0.0.1:1933`.
261
283
  - `stop`: stops the detached server pid or macOS LaunchAgent.
262
284
  - `uninstall`: removes Threadnote shims, MCP config, launchd config, and managed user instructions. Memories are
@@ -265,7 +287,8 @@ This is it! Start working with your agents as usual. The agent will automaticall
265
287
  - `seed`: imports curated repo guidance and docs from the manifest.
266
288
  - `seed-skills`: imports global and repo-local `SKILL.md` files as a searchable resource catalog so agents can discover
267
289
  reusable workflow guidance. Use `seed-skills --native` only after configuring a working VLM provider.
268
- - `mcp-install codex|claude|cursor`: installs or prints OpenViking MCP configuration for Codex, Claude, or Cursor.
290
+ - `mcp-install codex|claude|cursor|copilot`: installs or prints OpenViking MCP configuration for Codex, Claude, Cursor,
291
+ or GitHub Copilot in VS Code.
269
292
  - `remember`: stores a durable memory. Use `--replace <uri>` to store an updated memory and remove a superseded one
270
293
  after the new memory succeeds. Use `--kind`, `--project`, and `--topic` to store lifecycle-aware current knowledge.
271
294
  - `migrate-memories`: migrates legacy session-only `MEMORY` and `HANDOFF` records into durable memory files. Run
@@ -283,6 +306,9 @@ This is it! Start working with your agents as usual. The agent will automaticall
283
306
  succeeds.
284
307
  - `forget`: removes a `viking://` URI.
285
308
  - `export-pack` / `import-pack`: moves local context through `.ovpack` files.
309
+ - `share init|status|sync|publish|unpublish|list|remove`: opts a curated subset of durable memories into a team git
310
+ repo so teammates can pull them. Personal handoffs and preferences stay local. See `docs/share.md` for the full
311
+ workflow and the publish-time scrubber rules.
286
312
 
287
313
  ## Source Checkout
288
314
 
@@ -299,8 +325,9 @@ npm run threadnote -- install
299
325
  ```
300
326
 
301
327
  `install` writes a small command shim to `~/.local/bin/threadnote` by default and upserts user-level agent guidance in
302
- `~/.codex/AGENTS.md`, `~/.claude/CLAUDE.md`, and `~/.cursor/rules/threadnote.md`. After that, use the short command from
303
- any repo or working directory:
328
+ `~/.codex/AGENTS.md`, `~/.claude/CLAUDE.md`, `~/.cursor/rules/threadnote.md`, and
329
+ `~/.copilot/instructions/threadnote.instructions.md`. After that, use the short command from any repo or working
330
+ directory:
304
331
 
305
332
  ```bash
306
333
  threadnote doctor --dry-run
@@ -329,6 +356,7 @@ Environment variables:
329
356
  - `THREADNOTE_NPM_REGISTRY`: npm registry used by the installer and updater, default `https://registry.npmjs.org/`.
330
357
  - `THREADNOTE_NO_UPDATE_CHECK`: disables opportunistic update notifications.
331
358
  - `THREADNOTE_BIN_DIR`: directory for the `threadnote` shim, default `~/.local/bin`.
359
+ - `THREADNOTE_COPILOT_MCP_CONFIG`: explicit VS Code/Copilot `mcp.json` path for `mcp-install copilot`.
332
360
  - `THREADNOTE_HOST`: local bind host, default `127.0.0.1`.
333
361
  - `THREADNOTE_PORT`: local bind port, default `1933`.
334
362