threadnote 0.7.5 → 0.7.7

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,12 +37,14 @@ 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
45
- instead of accumulating near-duplicate progress notes.
46
+ instead of accumulating near-duplicate progress notes. Replacing a shared `durable/` URI updates that shared memory in
47
+ place and pushes the shared repo, so you do not need a separate `share publish` step.
46
48
 
47
49
  ## Memory Lifecycle
48
50
 
@@ -70,6 +72,20 @@ threadnote handoff --project my-repo --topic feature-x --task "Current status fo
70
72
  Agents should update the durable feature memory when valuable implementation knowledge changes, and update the handoff
71
73
  when current status, tests, blockers, or next steps change.
72
74
 
75
+ Bare `threadnote handoff` defaults to the current repo and current git branch as its stable project/topic, so routine
76
+ handoffs update one active branch record. Use `threadnote handoff --timestamped` only when you intentionally want a
77
+ historical note.
78
+
79
+ Use `compact` when active memories for a project/topic start to overlap:
80
+
81
+ ```bash
82
+ threadnote compact --project my-repo --topic feature-x --dry-run
83
+ threadnote compact --project my-repo --topic feature-x --apply
84
+ ```
85
+
86
+ The dry-run plan is the default. Applying archives stale handoffs, forgets only exact duplicates, and preserves source
87
+ `viking://` URIs in the kept memory. Ambiguous durable or incident memories are left for manual review.
88
+
73
89
  Use `archive` when an old handoff is useful for provenance but should stop being treated as current working context:
74
90
 
75
91
  ```bash
@@ -332,19 +348,25 @@ This is it! Start working with your agents as usual. The agent will automaticall
332
348
  reusable workflow guidance. Use `seed-skills --native` only after configuring a working VLM provider.
333
349
  - `mcp-install codex|claude|cursor|copilot`: installs or prints OpenViking MCP configuration for Codex, Claude, Cursor,
334
350
  or GitHub Copilot in VS Code.
335
- - `remember`: stores a durable memory. Use `--replace <uri>` to store an updated memory and remove a superseded one
336
- after the new memory succeeds. Use `--kind`, `--project`, and `--topic` to store lifecycle-aware current knowledge.
351
+ - `remember`: stores a durable memory. Use `--replace <uri>` to store an updated memory and remove a superseded personal
352
+ memory after the new memory succeeds; if `<uri>` is shared, Threadnote updates that shared memory in place and pushes
353
+ the shared repo. Use `--kind`, `--project`, and `--topic` to store lifecycle-aware current knowledge.
337
354
  - `migrate-memories`: migrates legacy session-only `MEMORY` and `HANDOFF` records into durable memory files. Run
338
355
  `migrate-memories --dry-run` first; use `--all-accounts` when importing from older local OpenViking accounts.
339
356
  - `migrate-lifecycle`: moves clear legacy handoff memories from the old events path into archived lifecycle handoff
340
357
  paths. It dry-runs by default; use `--apply` after reviewing the output.
341
358
  - `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.
359
+ `skills for api service`; use `--uri` or `--no-infer-scope` to override. Queries that mention `this branch` or
360
+ `current branch` are enriched with local git/workspace terms when available. Exact memory/resource matches skip
361
+ archived lifecycle paths unless `--include-archived` is passed. Recall also nudges scoped cleanup when many active
362
+ handoffs or overlapping returned memories surface.
363
+ - `compact`: prints or applies scoped memory hygiene for active personal memories. It dry-runs by default; use `--apply`
364
+ after reviewing the plan. It archives stale handoffs, forgets exact duplicates, and leaves ambiguous durable memories
365
+ for manual review.
344
366
  - `read`: reads a `viking://` URI returned by `recall` or `list`.
345
367
  - `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.
368
+ - `handoff`: stores current git state and next-step notes as a durable handoff. Bare handoffs use the current repo and
369
+ current branch as stable project/topic; use `--timestamped` for historical notes or `--project` / `--topic` to override.
348
370
  - `archive`: copies a memory into the archived lifecycle tree, then removes the original after the archive write
349
371
  succeeds.
350
372
  - `forget`: removes a `viking://` URI.
@@ -428,7 +450,10 @@ threadnote list viking://agent/threadnote/memories --all --recursive
428
450
  ```
429
451
 
430
452
  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.
453
+ Agents must pass JSON arguments, for example `recall_context({"query":"agent context"})`. For MCP recall queries that
454
+ say "current repo" or "this branch", pass the current workspace path as `callerCwd` so Threadnote can resolve branch and
455
+ workspace terms without guessing from the MCP server's launch directory. Use `compact_context` for scoped memory hygiene
456
+ dry-runs before applying cleanup. Older adapters expose `search`, `read`, and `list` aliases. Before recall/read returns,
457
+ Threadnote automatically syncs clean incoming shared memory updates when a
458
+ configured share repo is behind; failures are reported as warnings and the local read still continues. The CLI commands
459
+ are the fallback path.