sync: merge main into develop after v3.3.0 release

Bring back the main-only content that develop has been missing:
- pyproject.toml chromadb upper-bound removal (#690)
- CHANGELOG [3.2.0] Packaging subsection (#690, #761)
- CONTRIBUTING.md fork-first clone instructions
- mempalace/hooks_cli.py richer block-reason strings (from #666,
  still used by the Python hook invocation path)
- integrations/openclaw/SKILL.md version bump to 3.3.0

Plus the v3.3.0 release commit itself (4aa7e1e) and the legacy
main-only commits (#666, #690, v3.2.0 finalization) for history.

Resolves the main → develop drift that caused PR #838's conflicts.
Going forward, back-merging main to develop after each release
will prevent the same pattern.

Single conflict in CHANGELOG.md resolved by taking main's version
(the Packaging subsection under [3.2.0]).
This commit is contained in:
Igor Lins e Silva
2026-04-13 22:42:58 -03:00
5 changed files with 29 additions and 12 deletions
+10
View File
@@ -54,6 +54,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
## [3.2.0] — 2026-04-12 ## [3.2.0] — 2026-04-12
### Packaging
- Remove `chromadb<0.7` upper bound — unblocks installs against chromadb 1.x palaces (#690)
- Bump version to 3.2.0 across `pyproject.toml`, `mempalace/version.py`, README badge, and OpenClaw SKILL (#761)
### Security ### Security
- Harden palace deletion, WAL redaction, and MCP search input handling (#739) - Harden palace deletion, WAL redaction, and MCP search input handling (#739)
- Consistent input validation, argument whitelisting, concurrency safety, and WAL fixes (#647) - Consistent input validation, argument whitelisting, concurrency safety, and WAL fixes (#647)
@@ -61,6 +65,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
- Remove global SSL verification bypass in convomem_bench (#176) - Remove global SSL verification bypass in convomem_bench (#176)
### Bug Fixes ### Bug Fixes
- Parse Claude.ai privacy export with `messages` key and sender field (#685, #677)
- Detect mtime changes in `_get_client` to prevent stale HNSW index (#757)
- Hash full content in `tool_add_drawer` drawer ID — stable re-mines (#716)
- Remove 10k drawer cap from status display (#707, #603)
- Correct typo in entity_detector interactive classification prompt (#755)
- Prevent convo_miner from re-processing 0-chunk files on every run (#732, #654) - Prevent convo_miner from re-processing 0-chunk files on every run (#732, #654)
- Remove silent 8-line AI response truncation in convo_miner (#708, #692) - Remove silent 8-line AI response truncation in convo_miner (#708, #692)
- Store full AI response in convo_miner exchange chunking (#695) - Store full AI response in convo_miner exchange chunking (#695)
@@ -103,6 +112,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
- Add VitePress documentation site (#439) - Add VitePress documentation site (#439)
- Add warning about fake MemPalace websites (#598) - Add warning about fake MemPalace websites (#598)
- Fix stale org URLs and PR branch target in contributor docs (#679) - Fix stale org URLs and PR branch target in contributor docs (#679)
- Fix misaligned architecture diagram (#734, #733)
- Add ROADMAP.md — v3.1.1 stability patch and v4.0.0-alpha plan - Add ROADMAP.md — v3.1.1 stability patch and v4.0.0-alpha plan
### Internal ### Internal
+4 -1
View File
@@ -5,8 +5,11 @@ Thanks for wanting to help. MemPalace is open source and we welcome contribution
## Getting Started ## Getting Started
```bash ```bash
git clone https://github.com/MemPalace/mempalace.git # Fork the repo on GitHub first, then clone your fork
git clone https://github.com/<your-username>/mempalace.git
cd mempalace cd mempalace
git remote add upstream https://github.com/MemPalace/mempalace.git
pip install -e ".[dev]" # installs with dev dependencies (pytest, build, twine) pip install -e ".[dev]" # installs with dev dependencies (pytest, build, twine)
``` ```
+1 -1
View File
@@ -1,7 +1,7 @@
--- ---
name: mempalace name: mempalace
description: "MemPalace — Local AI memory with 96.6% recall. Semantic search, temporal knowledge graph, palace architecture (wings/rooms/drawers). Free, no cloud, no API keys." description: "MemPalace — Local AI memory with 96.6% recall. Semantic search, temporal knowledge graph, palace architecture (wings/rooms/drawers). Free, no cloud, no API keys."
version: 3.1.0 version: 3.3.0
homepage: https://github.com/MemPalace/mempalace homepage: https://github.com/MemPalace/mempalace
user-invocable: true user-invocable: true
metadata: metadata:
+13 -9
View File
@@ -18,18 +18,22 @@ SAVE_INTERVAL = 15
STATE_DIR = Path.home() / ".mempalace" / "hook_state" STATE_DIR = Path.home() / ".mempalace" / "hook_state"
STOP_BLOCK_REASON = ( STOP_BLOCK_REASON = (
"AUTO-SAVE checkpoint. Save key topics, decisions, quotes, and code " "AUTO-SAVE checkpoint (MemPalace). Save this session's key content:\n"
"from this session to your memory system. Organize into appropriate " "1. mempalace_diary_write — AAAK-compressed session summary\n"
"categories. Use verbatim quotes where possible. Continue conversation " "2. mempalace_add_drawer — verbatim quotes, decisions, code snippets\n"
"after saving." "3. mempalace_kg_add — entity relationships (optional)\n"
"Do NOT write to Claude Code's native auto-memory (.md files). "
"Continue conversation after saving."
) )
PRECOMPACT_BLOCK_REASON = ( PRECOMPACT_BLOCK_REASON = (
"COMPACTION IMMINENT. Save ALL topics, decisions, quotes, code, and " "COMPACTION IMMINENT (MemPalace). Save ALL session content before context is lost:\n"
"important context from this session to your memory system. Be thorough " "1. mempalace_diary_write — thorough AAAK-compressed session summary\n"
"\u2014 after compaction, detailed context will be lost. Organize into " "2. mempalace_add_drawer — ALL verbatim quotes, decisions, code, context\n"
"appropriate categories. Use verbatim quotes where possible. Save " "3. mempalace_kg_add — entity relationships (optional)\n"
"everything, then allow compaction to proceed." "Be thorough \u2014 after compaction, detailed context will be lost. "
"Do NOT write to Claude Code's native auto-memory (.md files). "
"Save everything to MemPalace, then allow compaction to proceed."
) )
+1 -1
View File
@@ -25,7 +25,7 @@ classifiers = [
"Topic :: Utilities", "Topic :: Utilities",
] ]
dependencies = [ dependencies = [
"chromadb>=0.5.0,<0.7", "chromadb>=0.5.0",
"pyyaml>=6.0,<7", "pyyaml>=6.0,<7",
] ]