178 lines
5.0 KiB
Markdown
178 lines
5.0 KiB
Markdown
# MemPalace v3.0.0 — Ezra Integration Packet
|
|
|
|
This packet turns issue #570 into an executable, reviewable integration plan for Ezra's Hermes home.
|
|
It is a repo-side scaffold: no live Ezra host changes are claimed in this artifact.
|
|
|
|
## Commands
|
|
|
|
```bash
|
|
pip install mempalace==3.0.0
|
|
mempalace init ~/.hermes/ --yes
|
|
cat > ~/.hermes/mempalace.yaml <<'YAML'
|
|
wing: ezra_home
|
|
palace: ~/.mempalace/palace
|
|
rooms:
|
|
- name: sessions
|
|
description: Conversation history and durable agent transcripts
|
|
globs:
|
|
- "*.json"
|
|
- "*.jsonl"
|
|
- name: config
|
|
description: Hermes configuration and runtime settings
|
|
globs:
|
|
- "*.yaml"
|
|
- "*.yml"
|
|
- "*.toml"
|
|
- name: docs
|
|
description: Notes, markdown docs, and operating reports
|
|
globs:
|
|
- "*.md"
|
|
- "*.txt"
|
|
people: []
|
|
projects: []
|
|
YAML
|
|
echo "" | mempalace mine ~/.hermes/
|
|
echo "" | mempalace mine ~/.hermes/sessions/ --mode convos
|
|
mempalace search "your common queries"
|
|
mempalace wake-up
|
|
hermes mcp add mempalace -- python -m mempalace.mcp_server
|
|
```
|
|
|
|
## Manual config template
|
|
|
|
```yaml
|
|
wing: ezra_home
|
|
palace: ~/.mempalace/palace
|
|
rooms:
|
|
- name: sessions
|
|
description: Conversation history and durable agent transcripts
|
|
globs:
|
|
- "*.json"
|
|
- "*.jsonl"
|
|
- name: config
|
|
description: Hermes configuration and runtime settings
|
|
globs:
|
|
- "*.yaml"
|
|
- "*.yml"
|
|
- "*.toml"
|
|
- name: docs
|
|
description: Notes, markdown docs, and operating reports
|
|
globs:
|
|
- "*.md"
|
|
- "*.txt"
|
|
people: []
|
|
projects: []
|
|
```
|
|
|
|
## Native MCP config snippet
|
|
|
|
```yaml
|
|
mcp_servers:
|
|
mempalace:
|
|
command: python
|
|
args:
|
|
- -m
|
|
- mempalace.mcp_server
|
|
```
|
|
|
|
## Session start wake-up hook
|
|
|
|
Drop this into Ezra's session start wrapper (or source it before starting Hermes) so the wake-up context is refreshed automatically.
|
|
|
|
```bash
|
|
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
if command -v mempalace >/dev/null 2>&1; then
|
|
mkdir -p "~/.hermes/wakeups"
|
|
mempalace wake-up > "~/.hermes/wakeups/ezra_home.txt"
|
|
export HERMES_MEMPALACE_WAKEUP_FILE="~/.hermes/wakeups/ezra_home.txt"
|
|
printf '[MemPalace] wake-up context refreshed: %s\n' "$HERMES_MEMPALACE_WAKEUP_FILE"
|
|
fi
|
|
```
|
|
|
|
## Metrics reply for #568
|
|
|
|
Use this as the ready-to-fill comment body after the live Ezra run:
|
|
|
|
```md
|
|
# Metrics reply for #568
|
|
|
|
Refs #570.
|
|
|
|
## Ezra live run
|
|
- package: mempalace==3.0.0
|
|
- hermes home: ~/.hermes/
|
|
- sessions dir: ~/.hermes/sessions/
|
|
- palace path: ~/.mempalace/palace
|
|
- wake-up file: ~/.hermes/wakeups/ezra_home.txt
|
|
|
|
## Results to fill in
|
|
- install result: [pass/fail + note]
|
|
- init result: [pass/fail + note]
|
|
- mine home duration: [seconds]
|
|
- mine sessions duration: [seconds]
|
|
- corpus size after mining: [drawers/rooms]
|
|
- query 1: [query] -> [top result]
|
|
- query 2: [query] -> [top result]
|
|
- query 3: [query] -> [top result]
|
|
- wake-up context token count: [tokens]
|
|
- MCP wiring succeeded: [yes/no]
|
|
- session-start hook enabled: [yes/no]
|
|
|
|
## Commands actually used
|
|
```bash
|
|
pip install mempalace==3.0.0
|
|
mempalace init ~/.hermes/ --yes
|
|
echo "" | mempalace mine ~/.hermes/
|
|
echo "" | mempalace mine ~/.hermes/sessions/ --mode convos
|
|
mempalace search "your common queries"
|
|
mempalace wake-up
|
|
hermes mcp add mempalace -- python -m mempalace.mcp_server
|
|
```
|
|
```
|
|
|
|
## Operator-ready support bundle
|
|
|
|
Generate copy-ready files for Ezra's host with:
|
|
|
|
```bash
|
|
python3 scripts/mempalace_ezra_integration.py --bundle-dir /tmp/ezra-mempalace-bundle
|
|
```
|
|
|
|
That bundle writes:
|
|
- `mempalace.yaml`
|
|
- `hermes-mcp-mempalace.yaml`
|
|
- `session-start-mempalace.sh`
|
|
- `issue-568-comment-template.md`
|
|
|
|
## Why this shape
|
|
|
|
- `wing: ezra_home` matches the issue's Ezra-specific integration target.
|
|
- `rooms` split the mined material into sessions, config, and docs to keep retrieval interpretable.
|
|
- Mining commands pipe empty stdin to avoid the interactive entity-detector hang noted in the evaluation.
|
|
- `mcp_servers:` gives the native-MCP equivalent of `hermes mcp add ...`, so the operator can choose either path.
|
|
- `HERMES_MEMPALACE_WAKEUP_FILE` makes the wake-up context explicit and reusable from the session-start boundary.
|
|
|
|
## Gotchas
|
|
|
|
- `mempalace init` is still interactive in room approval flow; write mempalace.yaml manually if the init output stalls.
|
|
- The yaml key is `wing:` not `wings:`. Using the wrong key causes mine/setup failures.
|
|
- Pipe empty stdin into mining commands (`echo "" | ...`) to avoid the entity-detector stdin hang on larger directories.
|
|
- First mine downloads the ChromaDB embedding model cache (~79MB).
|
|
- Report Ezra's before/after metrics back to issue #568 after live installation and retrieval tests.
|
|
|
|
## Report back to #568
|
|
|
|
After live execution on Ezra's actual environment, post back to #568 with:
|
|
- install result
|
|
- mine duration and corpus size
|
|
- 2-3 real search queries + retrieved results
|
|
- wake-up context token count
|
|
- whether MCP wiring succeeded
|
|
- whether the session-start hook exported `HERMES_MEMPALACE_WAKEUP_FILE`
|
|
|
|
## Honest scope boundary
|
|
|
|
This repo artifact does **not** prove live installation on Ezra's host. It makes the work reproducible and testable so the next pass can execute it without guesswork.
|