hippo-memory 0.8.1 → 0.9.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
@@ -43,6 +43,18 @@ hippo recall "data pipeline issues" --budget 2000
43
43
 
44
44
  That's it. You have a memory system.
45
45
 
46
+ ### What's new in v0.9.0
47
+
48
+ - **Working memory layer** (`hippo wm push/read/clear/flush`). Bounded buffer (max 20 per scope) with importance-based eviction. Current-state notes live separately from long-term memory.
49
+ - **Session handoffs** (`hippo handoff create/latest/show`). Persist session summaries, next actions, and artifacts so successor sessions can resume without transcript archaeology.
50
+ - **Session lifecycle** with explicit start/end events, fallback session IDs, and `hippo session resume` for continuity.
51
+ - **Explainable recall** (`hippo recall --why`). See which terms matched, whether BM25 or embedding contributed, and the source bucket (layer, confidence, local/global).
52
+ - **`hippo current show`** for compact current-state display (active task + recent session events), ready for agent injection.
53
+ - **SQLite lock hardening**: `busy_timeout=5000`, `synchronous=NORMAL`, `wal_autocheckpoint=100`. Concurrent plugin calls no longer hit `SQLITE_BUSY`.
54
+ - **Consolidation batching**: all writes/deletes happen in a single transaction instead of N open/close cycles.
55
+ - **`--limit` flag** on `hippo recall` and `hippo context` to cap result count independently of token budget.
56
+ - **Plugin injection dedup guard** prevents double context injection on reconnect.
57
+
46
58
  ### What's new in v0.8.0
47
59
 
48
60
  - **Hybrid search** blends BM25 keywords with cosine embedding similarity. Install `@xenova/transformers`, run `hippo embed`, recall quality jumps. Falls back to BM25 otherwise.
@@ -150,6 +162,50 @@ hippo context --auto --budget 1500
150
162
 
151
163
  Hippo mirrors the latest trail to `.hippo/buffer/recent-session.md` so you can inspect the short-term thread without opening SQLite.
152
164
 
165
+ ### Session handoffs
166
+
167
+ When you're done for the day (or switching to another agent), create a handoff so the next session knows exactly where to pick up:
168
+
169
+ ```bash
170
+ hippo handoff create \
171
+ --summary "Finished schema migration, tests green" \
172
+ --next "Wire handoff injection into context output" \
173
+ --session sess_20260403 \
174
+ --artifact src/db.ts
175
+
176
+ hippo handoff latest # show the most recent handoff
177
+ hippo handoff show 3 # show a specific handoff by ID
178
+ hippo session resume # re-inject latest handoff as context
179
+ ```
180
+
181
+ ### Working memory
182
+
183
+ Working memory is a bounded scratchpad for current-state notes. It's separate from long-term memory and gets cleared between sessions.
184
+
185
+ ```bash
186
+ hippo wm push --scope repo \
187
+ --content "Investigating flaky test in store.test.ts, line 42" \
188
+ --importance 0.9
189
+
190
+ hippo wm read --scope repo # show current working notes
191
+ hippo wm clear --scope repo # wipe the scratchpad
192
+ hippo wm flush --scope repo # flush on session end
193
+ ```
194
+
195
+ The buffer holds a maximum of 20 entries per scope. When full, the lowest-importance entry is evicted.
196
+
197
+ ### Explainable recall
198
+
199
+ See why a memory was returned:
200
+
201
+ ```bash
202
+ hippo recall "data pipeline" --why --limit 5
203
+
204
+ # --- mem_a1b2c3 [episodic] [observed] [local] score=0.847
205
+ # BM25: matched [data, pipeline]; cosine: 0.82
206
+ # ...memory content...
207
+ ```
208
+
153
209
  ---
154
210
 
155
211
  ## How It Works
@@ -401,9 +457,12 @@ hippo watch "npm run build"
401
457
  | `hippo remember "<text>" --global` | Store in global `~/.hippo/` store |
402
458
  | `hippo recall "<query>"` | Retrieve relevant memories (local + global) |
403
459
  | `hippo recall "<query>" --budget <n>` | Recall within token limit (default: 4000) |
460
+ | `hippo recall "<query>" --limit <n>` | Cap result count |
461
+ | `hippo recall "<query>" --why` | Show match reasons and source buckets |
404
462
  | `hippo recall "<query>" --json` | Output as JSON |
405
463
  | `hippo context --auto` | Smart context injection (auto-detects task from git) |
406
464
  | `hippo context "<query>" --budget <n>` | Context injection with explicit query (default: 1500) |
465
+ | `hippo context --limit <n>` | Cap memory count in context |
407
466
  | `hippo context --budget 0` | Skip entirely (zero token cost) |
408
467
  | `hippo context --framing <mode>` | Framing: observe (default), suggest, assert |
409
468
  | `hippo context --format <fmt>` | Output format: markdown (default) or json |
@@ -446,6 +505,16 @@ hippo watch "npm run build"
446
505
  | `hippo hook list` | Show available framework hooks |
447
506
  | `hippo hook install <target>` | Install hook (claude-code, codex, cursor, openclaw) |
448
507
  | `hippo hook uninstall <target>` | Remove hook |
508
+ | `hippo handoff create --summary "..."` | Create a session handoff |
509
+ | `hippo handoff latest` | Show the most recent handoff |
510
+ | `hippo handoff show <id>` | Show a specific handoff by ID |
511
+ | `hippo session latest` | Show latest task snapshot + events |
512
+ | `hippo session resume` | Re-inject latest handoff as context |
513
+ | `hippo current show` | Compact current state (task + session events) |
514
+ | `hippo wm push --scope <s> --content "..."` | Push to working memory |
515
+ | `hippo wm read --scope <s>` | Read working memory entries |
516
+ | `hippo wm clear --scope <s>` | Clear working memory |
517
+ | `hippo wm flush --scope <s>` | Flush working memory (session end) |
449
518
  | `hippo dashboard` | Open web dashboard at localhost:3333 |
450
519
  | `hippo dashboard --port <n>` | Use custom port |
451
520
  | `hippo mcp` | Start MCP server (stdio transport) |
@@ -521,7 +590,7 @@ Add to your MCP config (e.g. `.cursor/mcp.json` or `claude_desktop_config.json`)
521
590
  }
522
591
  ```
523
592
 
524
- Exposes 6 tools: `hippo_recall`, `hippo_remember`, `hippo_outcome`, `hippo_context`, `hippo_status`, `hippo_learn`.
593
+ Exposes tools: `hippo_recall`, `hippo_remember`, `hippo_outcome`, `hippo_context`, `hippo_status`, `hippo_learn`, `hippo_wm_push`.
525
594
 
526
595
  ### OpenClaw Plugin
527
596
 
@@ -586,7 +655,7 @@ For how these mechanisms connect to LLM training, continual learning, and open r
586
655
  | Git-friendly | Yes | No | Yes | No |
587
656
  | Framework agnostic | Yes | Partial | Yes | No |
588
657
 
589
- Mem0, Basic Memory, and Claude-Mem all implement "save everything, search later." Hippo implements 6 of 7 hippocampal mechanisms: two-speed storage, decay, retrieval strengthening, schema acceleration, conflict detection, and multi-agent transfer. It's the only tool that models what memories are worth keeping.
658
+ Mem0, Basic Memory, and Claude-Mem all implement "save everything, search later." Hippo implements all 7 hippocampal mechanisms: two-speed storage, decay, retrieval strengthening, schema acceleration, conflict detection, multi-agent transfer, and explicit working memory. It's the only tool that models what memories are worth keeping.
590
659
 
591
660
  ---
592
661
 
package/dist/cli.d.ts CHANGED
@@ -5,13 +5,15 @@
5
5
  * Commands:
6
6
  * hippo init [--global]
7
7
  * hippo remember <text> [--tag <t>] [--error] [--pin] [--global]
8
- * hippo recall <query> [--budget <n>] [--json]
8
+ * hippo recall <query> [--budget <n>] [--json] [--why]
9
9
  * hippo sleep [--dry-run]
10
10
  * hippo status
11
11
  * hippo outcome --good | --bad [--id <id>]
12
12
  * hippo conflicts [--status <status>] [--json]
13
13
  * hippo snapshot <save|show|clear>
14
- * hippo session <log|show>
14
+ * hippo session <log|show|latest|resume>
15
+ * hippo handoff <create|latest|show>
16
+ * hippo current <show>
15
17
  * hippo forget <id>
16
18
  * hippo inspect <id>
17
19
  * hippo embed [--status]
@@ -19,6 +21,7 @@
19
21
  * hippo learn --git [--days <n>] [--repos <paths>]
20
22
  * hippo promote <id>
21
23
  * hippo sync
24
+ * hippo wm <push|read|clear|flush>
22
25
  */
23
26
  export {};
24
27
  //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;GAoBG"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;GAuBG"}