Skip to content

Commit 9bbf33c

Browse files
feat!: v2.0.0 native cutover — memory runs on amplifier-data; mempalace removed (tool memory, local embedder, auto-started daemon, migration script)
## B1 Core Architecture - FastEmbedEmbedder: local all-MiniLM-L6-v2 ONNX (384-dim), daemon-side embeddings. Zero external calls — model stays on-machine. Fallback lexical search when embedder unavailable (loud, never silent). - Gateway promoted to auto-started daemon via MemoryClient.ensure_daemon(): daemon.json discovery + /health polling, O_EXCL spawn race prevention, stale-pid + kill-9 recovery, version-mismatch respawn. Production stores require durable daemon (enforced). - Daemon-side search: cosine similarity top-k + lexical bonus scoring. Lexical-only degraded mode when embedder is offline — returns results with warning, never blocks. ## B2 Cutover - Every tool operation (write_cell, relate, assert_fact, invalidate_fact) + capture/briefing/interject hooks rewired from mempalace-mcp subprocess to native MemoryClient daemon. - mempalace dependency removed from all pyproject.toml files; PalaceMemoryStore, DualWriteMemoryStore, dualwrite_compare scripts deleted. - amplifier-data (pinned 09482f1) + fastembed now HARD deps of tool-memory. No fallback to non-native stores. ## B3 Sweep - Modules renamed: tool-mempalace → tool-memory, hooks-mempalace-* → hooks-memory-*. - Packages renamed: amplifier_module_tool_mempalace → amplifier_module_tool_memory. - Tool renamed: palace → memory (operations unchanged). - Classes renamed: PalaceTool → MemoryTool, AmplifierDataMemoryStore → NativeMemoryStore. - Scripts: memory_store.py → store.py, gateway.py → daemon.py. - Behaviors: behaviors/mempalace.yaml → behaviors/memory.yaml. - External SQLite tool-memory module dropped (name collision, duplicative). - Home directory: ~/.mempalace → ~/.amplifier/memory. - Events schema v2: memory:* event names. - Skills: skills/mempalace → skills/memory. - Console scripts: memory-daemon, amplifier-memory-import, etc. - Migration script migrate.py: chromadb-only [migrate] extra, reads legacy store read-only, copies vectors verbatim, idempotent --verify gate. - CHANGELOG.md updated for v2.0.0 breaking changes. ## Killer Gates Executed ✅ KG-N1: Real semantic remember→search round-trip through orchestrator calling convention ✅ KG-N2: Two-process concurrent writers via auto-started daemon ✅ KG-N3: Embedder-offline lexical degraded mode (loud, operational) ✅ KG-N4: Vendor-sweep allowlist reviewed + grepped (no mempalace imports remain outside deleted files) ✅ KG-N5: Migration from real seeded chromadb store (idempotent, vectors preserved) ✅ KG-N6: kill -9 daemon respawn under stale-pid conditions ## Test Results - tool-memory: 259 passed - hooks-capture: 5 passed - briefing: 12 passed - interject: 23 passed - repo-root: 113 passed - Total: 412 passed with mempalace NOT installed (conftest-asserted) - ruff: clean - pyright: 0 new errors, no new suppressions Generated with [Amplifier](https://github.com/microsoft/amplifier) Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com>
1 parent 7b244a9 commit 9bbf33c

153 files changed

Lines changed: 12887 additions & 15099 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.amplifier/digital-twin-universe/profiles/memory-bundle-e2e.yaml

Lines changed: 0 additions & 283 deletions
This file was deleted.

0 commit comments

Comments
 (0)