@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.
- package/README.md +55 -45
- 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,
|
|
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] [--
|
|
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
|
|
54
|
-
memory
|
|
55
|
-
memory
|
|
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 `
|
|
61
|
-
to carry out the change.
|
|
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
|
-
##
|
|
66
|
+
## Compaction
|
|
65
67
|
|
|
66
|
-
`session compact`
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
86
|
-
|
|
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
|
-
|
|
94
|
-
|
|
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
|
-
#
|
|
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
|
|
113
|
-
|
|
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
|
-
|
|
138
|
-
|
|
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.
|
|
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.
|
|
25
|
-
"@jarkkojs/goosedump-linux-arm64": "0.12.
|
|
26
|
-
"@jarkkojs/goosedump-linux-x64": "0.12.
|
|
27
|
-
"@jarkkojs/goosedump-win32-x64": "0.12.
|
|
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"
|