@jarkkojs/goosedump 0.12.10 → 0.12.12

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.
Files changed (2) hide show
  1. package/README.md +55 -45
  2. package/package.json +5 -5
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # goosedump
2
2
 
3
3
  `goosedump` browses, searches, converts, and compacts saved coding-agent
4
- conversations. It supports Claude Code, Codex, Crush, Gemini CLI, Goose,
5
- OpenCode, and Pi.
4
+ conversations, and keeps project-scoped durable memory. It supports Claude Code,
5
+ Codex, Crush, Gemini CLI, Goose, OpenCode, and Pi.
6
6
 
7
7
  It builds on ideas from [`lllyasviel/VCC`](https://github.com/lllyasviel/VCC).
8
8
 
@@ -46,71 +46,80 @@ session list [--query QUERY] [--json]
46
46
  session show PROVIDER:ID [--entry ID] [--all] [--from ID] [--before ID] [--as PROVIDER]
47
47
  session find PROVIDER:ID GLOB [range options] [--as PROVIDER]
48
48
  session search PROVIDER:ID QUERY [range options] [--page NUMBER] [--as PROVIDER]
49
- session compact PROVIDER:ID [range options] [--previous-summary SUMMARY] [--summary-max-tokens NUMBER] [--plain] [--remember] [--as PROVIDER]
49
+ session compact PROVIDER:ID [range options] [--previous-summary SUMMARY] [--summary-max-tokens NUMBER] [--plain] [--as PROVIDER]
50
50
  session copy PROVIDER:ID --to PROVIDER [--yes]
51
51
  session remove PROVIDER:ID [--yes]
52
52
 
53
- memory search QUERY [--provider PROVIDER] [--path PATH] [--type TYPE] [--limit NUMBER]
54
- memory status
55
- memory forget HASH|PROVIDER:ID
53
+ memory remember PROVIDER:ID [--all] [--json]
54
+ memory recall QUERY [--project PATH | --all-projects] [--type TYPE] [--limit NUMBER] [--max-tokens NUMBER] [--history] [--json]
55
+ memory list [--project PATH | --all-projects] [--type TYPE] [--limit NUMBER] [--history] [--json]
56
+ memory show MEM_ID [--json]
57
+ memory forget MEM_ID|PROVIDER:ID [--yes] [--json]
58
+ memory status [--json]
56
59
 
57
- model pull
60
+ model pull [all|embedding|text]
58
61
  ```
59
62
 
60
- `session copy` and `session remove` print their plan by default. Pass `--yes`
61
- to carry out the change. This makes destructive and cross-provider operations
62
- safe to inspect without a separate dry-run mode.
63
+ `session copy`, `session remove`, and `memory forget` print their plan by default.
64
+ Pass `--yes` to carry out the change.
63
65
 
64
- ## Persistent memory
66
+ ## Compaction
65
67
 
66
- `session compact` emits a summary without retaining the selected range. Add
67
- `--remember` only when the selected content may become durable memory.
68
- Summary output is bounded to an estimated 4096 tokens by default. Set
69
- `--summary-max-tokens NUMBER` to choose another budget, or use `0` for no limit.
70
- The bound is best-effort when preserved goals, blockers, decisions, and preferences
71
- alone exceed it.
68
+ `session compact` creates a summary; it never changes durable memory. Summaries are
69
+ bounded to an estimated 4,096 tokens by default. Use `--summary-max-tokens` to
70
+ change the budget or `0` to disable it. The bound is best-effort when preserved
71
+ goals, blockers, decisions, and preferences already exceed it.
72
72
 
73
- Use `memory search` to retrieve learned decisions, facts, preferences,
74
- procedures, and episodes; `memory status` to inspect the store; and
75
- `memory forget` with a hash printed by `memory search` or a `provider:session-id`
76
- to remove it. Forgetting creates durable tombstones so the same content is not
77
- learned again accidentally.
73
+ ## Durable memory
78
74
 
79
- Persistent formats are versioned and never migrated. An incompatible cache is
80
- rebuilt, while an incompatible memory database is rejected and must be
81
- reinitialized explicitly. A prior schema is never transformed in place.
75
+ Memory is explicit and separate from compaction:
82
76
 
83
- ## Inference performance
77
+ 1. **Remember:** [`gpt-oss-20b`](docs/models/gpt-oss-20b.md) extracts typed,
78
+ atomic statements with source provenance. [`bge-small-en-v1.5`](docs/models/bge-small-en-v1.5.md)
79
+ embeds each statement. SQLite stores the statements, vectors, and provenance.
80
+ 2. **Recall:** lexical and entity matches come first. Cosine-similar BGE vectors
81
+ fill the remaining slots. There is no separate vector database.
84
82
 
85
- The custom GPT-OSS-20B CPU engine uses every logical CPU available to the
86
- process by default. Override the compute thread count:
83
+ Memories are classified as decisions, facts, preferences, procedures, or lessons.
84
+
85
+ `memory remember` processes only new session entries, so remembering an unchanged
86
+ session is idempotent. A new version of a memory can supersede an older active
87
+ statement of the same type.
88
+
89
+ Recall searches active memories from the current project by default. Use
90
+ `--history` for superseded statements or `--all-projects` to search everywhere.
91
+ `memory show` displays provenance, and `memory forget` leaves a tombstone so
92
+ forgotten content is not learned again accidentally.
93
+
94
+ Session-index caches are rebuilt when their format changes. Durable-memory schema
95
+ migrations preserve stored sources, statements, and evidence links.
96
+
97
+ ## Local inference
98
+
99
+ Both models run locally. Download them with `goosedump model pull`, or use
100
+ `model pull text` or `model pull embedding`. Recall still uses lexical and entity
101
+ matching when the embedding model is not cached.
102
+
103
+ Text inference uses every logical CPU by default. Override it with
104
+ `GOOSEDUMP_INFERENCE_THREADS`:
87
105
 
88
106
  ```sh
89
- GOOSEDUMP_INFERENCE_THREADS=6 \
90
- goosedump session compact pi:context-id
107
+ GOOSEDUMP_INFERENCE_THREADS=6 goosedump session compact pi:context-id
91
108
  ```
92
109
 
93
- GPT-OSS-20B text generation continues to use goosedump's custom CPU engine.
94
- Download its weights ahead of time with `goosedump model pull`.
95
-
96
- The `bench` feature builds a standalone harness that shells out to
97
- `goosedump session compact` with `GOOSEDUMP_PROFILE_COMPACT=1` and reports
98
- end-to-end and per-stage timings:
110
+ The optional `bench` feature measures `session compact`. Keep the machine,
111
+ session range, and model cache unchanged when comparing runs:
99
112
 
100
113
  ```sh
101
- # Edit benches/bench.txt to point at a real context, then:
114
+ # Point benches/bench.txt at a real session first.
102
115
  cargo bench --features bench
103
116
  ```
104
117
 
105
- Each case emits JSON with per-run timing (including model loading), median and
106
- p95 latency, and per-stage medians and p95s. Keep the machine, context range,
107
- and model cache unchanged when comparing configurations.
108
-
109
118
  ## Pi extension
110
119
 
111
120
  The bundled [pi-goosedump extension](packages/pi-goosedump/README.md) adds
112
- session-history search, entry expansion, durable-memory recall, CWD-scoped session management,
113
- memory forget/status maintenance, and turn-driven goosedump compaction to Pi:
121
+ session search, durable memory, session management, and goosedump compaction to
122
+ Pi:
114
123
 
115
124
  ```sh
116
125
  pi install npm:pi-goosedump
@@ -134,5 +143,6 @@ The published Linux x64 and arm64 binaries are static glibc PIEs.
134
143
  ### Third Party Attribution
135
144
 
136
145
  1. GPT-OSS-20B: Apache 2.0
137
- - Downloaded on first use at run-time. The model is not distributed together
138
- with goosedump.
146
+ 2. bge-small-en-v1.5: MIT
147
+
148
+ The models are downloaded at run time and are not distributed with goosedump.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jarkkojs/goosedump",
3
- "version": "0.12.10",
3
+ "version": "0.12.12",
4
4
  "description": "Coding agent context data browser",
5
5
  "license": "Apache-2.0 AND LGPL-2.1-or-later",
6
6
  "homepage": "https://github.com/jarkkojs/goosedump#readme",
@@ -21,10 +21,10 @@
21
21
  "LICENSE-LGPL-2.1"
22
22
  ],
23
23
  "optionalDependencies": {
24
- "@jarkkojs/goosedump-darwin-arm64": "0.12.10",
25
- "@jarkkojs/goosedump-linux-arm64": "0.12.10",
26
- "@jarkkojs/goosedump-linux-x64": "0.12.10",
27
- "@jarkkojs/goosedump-win32-x64": "0.12.10"
24
+ "@jarkkojs/goosedump-darwin-arm64": "0.12.12",
25
+ "@jarkkojs/goosedump-linux-arm64": "0.12.12",
26
+ "@jarkkojs/goosedump-linux-x64": "0.12.12",
27
+ "@jarkkojs/goosedump-win32-x64": "0.12.12"
28
28
  },
29
29
  "publishConfig": {
30
30
  "access": "public"