threadnote 0.7.4 → 0.7.6

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
@@ -37,8 +37,9 @@ Ask the agent to remember it. Threadnote keeps that memory local and searchable
37
37
  Run `threadnote seed-skills` to make local `SKILL.md` guidance discoverable through recall. Agents can find relevant testing, release, on-call, debugging, or plugin-provided workflows without you reopening the same skill files by hand.
38
38
 
39
39
  **Recall returned several overlapping memories?**
40
- Agents are instructed to compact them into one concise replacement memory and forget only the clearly redundant originals,
41
- keeping future recall sharper without losing useful detail.
40
+ Run `threadnote compact --project <repo> --topic <issue> --dry-run` or ask the agent to use
41
+ `compact_context({"project":"<repo>","topic":"<issue>","dryRun":true})`. Threadnote produces a scoped plan first:
42
+ which memory to keep/update, which old handoffs to archive, and which exact duplicates are safe to forget.
42
43
 
43
44
  **Still working on the same issue?**
44
45
  Use `threadnote remember --replace <uri>` or `threadnote handoff --replace <uri>` to keep one current-state memory fresh
@@ -70,6 +71,20 @@ threadnote handoff --project my-repo --topic feature-x --task "Current status fo
70
71
  Agents should update the durable feature memory when valuable implementation knowledge changes, and update the handoff
71
72
  when current status, tests, blockers, or next steps change.
72
73
 
74
+ Bare `threadnote handoff` defaults to the current repo and current git branch as its stable project/topic, so routine
75
+ handoffs update one active branch record. Use `threadnote handoff --timestamped` only when you intentionally want a
76
+ historical note.
77
+
78
+ Use `compact` when active memories for a project/topic start to overlap:
79
+
80
+ ```bash
81
+ threadnote compact --project my-repo --topic feature-x --dry-run
82
+ threadnote compact --project my-repo --topic feature-x --apply
83
+ ```
84
+
85
+ The dry-run plan is the default. Applying archives stale handoffs, forgets only exact duplicates, and preserves source
86
+ `viking://` URIs in the kept memory. Ambiguous durable or incident memories are left for manual review.
87
+
73
88
  Use `archive` when an old handoff is useful for provenance but should stop being treated as current working context:
74
89
 
75
90
  ```bash
@@ -339,12 +354,17 @@ This is it! Start working with your agents as usual. The agent will automaticall
339
354
  - `migrate-lifecycle`: moves clear legacy handoff memories from the old events path into archived lifecycle handoff
340
355
  paths. It dry-runs by default; use `--apply` after reviewing the output.
341
356
  - `recall`: searches shared OpenViking context. It infers repo or skill scope from queries like
342
- `skills for api service`; use `--uri` or `--no-infer-scope` to override. Exact durable-memory matches skip archived
343
- lifecycle paths unless `--include-archived` is passed.
357
+ `skills for api service`; use `--uri` or `--no-infer-scope` to override. Queries that mention `this branch` or
358
+ `current branch` are enriched with local git/workspace terms when available. Exact memory/resource matches skip
359
+ archived lifecycle paths unless `--include-archived` is passed. Recall also nudges scoped cleanup when many active
360
+ handoffs or overlapping returned memories surface.
361
+ - `compact`: prints or applies scoped memory hygiene for active personal memories. It dry-runs by default; use `--apply`
362
+ after reviewing the plan. It archives stale handoffs, forgets exact duplicates, and leaves ambiguous durable memories
363
+ for manual review.
344
364
  - `read`: reads a `viking://` URI returned by `recall` or `list`.
345
365
  - `list` / `ls`: lists a `viking://` directory.
346
- - `handoff`: stores current git state and next-step notes as a durable handoff. Use `--replace <uri>` to update the
347
- current handoff for the same active issue, or `--project` and `--topic` to keep one active handoff file updated.
366
+ - `handoff`: stores current git state and next-step notes as a durable handoff. Bare handoffs use the current repo and
367
+ current branch as stable project/topic; use `--timestamped` for historical notes or `--project` / `--topic` to override.
348
368
  - `archive`: copies a memory into the archived lifecycle tree, then removes the original after the archive write
349
369
  succeeds.
350
370
  - `forget`: removes a `viking://` URI.
@@ -428,7 +448,10 @@ threadnote list viking://agent/threadnote/memories --all --recursive
428
448
  ```
429
449
 
430
450
  When MCP is installed, the agent should use Threadnote MCP `recall_context`, then `read_context` or `list_context`.
431
- Agents must pass JSON arguments, for example `recall_context({"query":"agent context"})`. Older adapters expose
432
- `search`, `read`, and `list` aliases. Before recall/read returns, Threadnote automatically syncs clean incoming shared
433
- memory updates when a configured share repo is behind; failures are reported as warnings and the local read still
434
- continues. The CLI commands are the fallback path.
451
+ Agents must pass JSON arguments, for example `recall_context({"query":"agent context"})`. For MCP recall queries that
452
+ say "current repo" or "this branch", pass the current workspace path as `callerCwd` so Threadnote can resolve branch and
453
+ workspace terms without guessing from the MCP server's launch directory. Use `compact_context` for scoped memory hygiene
454
+ dry-runs before applying cleanup. Older adapters expose `search`, `read`, and `list` aliases. Before recall/read returns,
455
+ Threadnote automatically syncs clean incoming shared memory updates when a
456
+ configured share repo is behind; failures are reported as warnings and the local read still continues. The CLI commands
457
+ are the fallback path.
@@ -6,7 +6,7 @@
6
6
  <string>io.threadnote.openviking</string>
7
7
  <key>ProgramArguments</key>
8
8
  <array>
9
- <string>openviking-server</string>
9
+ <string>{{OPENVIKING_SERVER_PATH}}</string>
10
10
  <string>--config</string>
11
11
  <string>{{THREADNOTE_HOME}}/ov.conf</string>
12
12
  <string>--host</string>