Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions mempalace/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
"""MemPalace — Give your AI a memory. No API key required."""

__version__ = "2.0.0"

from .cli import main
from .version import __version__

__all__ = ["main", "__version__"]
3 changes: 2 additions & 1 deletion mempalace/mcp_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
from datetime import datetime

from .config import MempalaceConfig
from .version import __version__
from .searcher import search_memories
from .palace_graph import traverse, find_tunnels, graph_stats
import chromadb
Expand Down Expand Up @@ -700,7 +701,7 @@ def handle_request(request):
"result": {
"protocolVersion": "2024-11-05",
"capabilities": {"tools": {}},
"serverInfo": {"name": "mempalace", "version": "2.0.0"},
"serverInfo": {"name": "mempalace", "version": __version__},
},
}
elif method == "notifications/initialized":
Expand Down
3 changes: 3 additions & 0 deletions mempalace/version.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
"""Single source of truth for the MemPalace package version."""

__version__ = "3.0.0"
22 changes: 22 additions & 0 deletions tests/test_version_consistency.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import re
from pathlib import Path

from mempalace import __version__
from mempalace.mcp_server import handle_request


def _expected_version() -> str:
pyproject = Path(__file__).resolve().parents[1] / "pyproject.toml"
content = pyproject.read_text(encoding="utf-8")
match = re.search(r'^version\s*=\s*"([^"]+)"', content, re.MULTILINE)
assert match is not None, "Could not find project version in pyproject.toml"
return match.group(1)


def test_package_version_matches_pyproject():
assert __version__ == _expected_version()


def test_mcp_initialize_reports_package_version():
response = handle_request({"jsonrpc": "2.0", "id": 1, "method": "initialize"})
assert response["result"]["serverInfo"]["version"] == _expected_version()