memgit 0.6.0__tar.gz → 0.6.1__tar.gz
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.
- {memgit-0.6.0 → memgit-0.6.1}/PKG-INFO +1 -1
- {memgit-0.6.0 → memgit-0.6.1}/memgit/__init__.py +1 -1
- {memgit-0.6.0 → memgit-0.6.1}/memgit/hooks.py +6 -1
- {memgit-0.6.0 → memgit-0.6.1}/memgit.egg-info/PKG-INFO +1 -1
- {memgit-0.6.0 → memgit-0.6.1}/pyproject.toml +1 -1
- {memgit-0.6.0 → memgit-0.6.1}/tests/test_v060.py +11 -0
- {memgit-0.6.0 → memgit-0.6.1}/LICENSE +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/README.md +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/memgit/cli.py +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/memgit/cloud/__init__.py +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/memgit/cloud/client.py +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/memgit/cloud/commands.py +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/memgit/cloud/crypto.py +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/memgit/cloud/state.py +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/memgit/cloud/sync.py +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/memgit/delivery.py +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/memgit/gitdigest.py +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/memgit/graph.py +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/memgit/http_server.py +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/memgit/importer.py +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/memgit/links.py +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/memgit/mcp_server.py +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/memgit/models.py +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/memgit/project.py +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/memgit/repo.py +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/memgit/scorer.py +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/memgit/store.py +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/memgit/tokens.py +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/memgit/toon.py +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/memgit/usage.py +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/memgit.egg-info/SOURCES.txt +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/memgit.egg-info/dependency_links.txt +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/memgit.egg-info/entry_points.txt +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/memgit.egg-info/requires.txt +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/memgit.egg-info/top_level.txt +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/setup.cfg +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/tests/test_accrue.py +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/tests/test_advanced.py +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/tests/test_aliases.py +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/tests/test_core.py +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/tests/test_delivery.py +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/tests/test_setup.py +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/tests/test_store_repo.py +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/tests/test_toon.py +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/tests/test_v020.py +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/tests/test_v030.py +0 -0
- {memgit-0.6.0 → memgit-0.6.1}/tests/test_v040.py +0 -0
|
@@ -261,10 +261,15 @@ def context_recall() -> int:
|
|
|
261
261
|
if not tokens:
|
|
262
262
|
return 0
|
|
263
263
|
# Tag matches a path token exactly, case-insensitive. (Substring matching
|
|
264
|
-
# would fire 'api' against half the filesystem.)
|
|
264
|
+
# would fire 'api' against half the filesystem.) The project label and its
|
|
265
|
+
# components are excluded — every path under the workspace contains them,
|
|
266
|
+
# and importer-derived label tags ('personal', 'business') are not topics.
|
|
267
|
+
label_parts = set((project or '').lower().split('-')) - {''}
|
|
265
268
|
lower_tags = {t.lower(): t for t in tagmap}
|
|
266
269
|
candidates = []
|
|
267
270
|
for tok in tokens:
|
|
271
|
+
if tok in label_parts or tok == (project or '').lower():
|
|
272
|
+
continue
|
|
268
273
|
tag = lower_tags.get(tok)
|
|
269
274
|
if not tag:
|
|
270
275
|
continue
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "memgit"
|
|
7
|
-
version = "0.6.
|
|
7
|
+
version = "0.6.1"
|
|
8
8
|
description = "Git for AI memory — version-controlled context persistence across Claude, GPT, Gemini, Cursor, Windsurf, and more"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.11"
|
|
@@ -451,6 +451,17 @@ class TestContextRecall:
|
|
|
451
451
|
payload("delta", "cap1"), repo)
|
|
452
452
|
assert out4 == "" # hard cap 3/session
|
|
453
453
|
|
|
454
|
+
def test_project_label_component_tags_never_hinted(self, repo, monkeypatch, capsys):
|
|
455
|
+
"""Every path under the workspace contains the label's words —
|
|
456
|
+
importer-derived label tags ('personal', 'business') are not topics.
|
|
457
|
+
Found live: 77 'business'-tagged memories hinted on MEMORY.md."""
|
|
458
|
+
from memgit.hooks import context_recall
|
|
459
|
+
self._seed(repo, n=5, tag="business")
|
|
460
|
+
rc, out = _run_hook(monkeypatch, capsys, context_recall, {
|
|
461
|
+
"tool_input": {"file_path": "/Users/x/Personal business/notes.md"},
|
|
462
|
+
"cwd": "/Users/x/Personal business", "session_id": "ctx6"}, repo)
|
|
463
|
+
assert out == ""
|
|
464
|
+
|
|
454
465
|
def test_skips_tag_already_hinted_by_prompt_recall(self, repo, monkeypatch, capsys):
|
|
455
466
|
from memgit.hooks import context_recall
|
|
456
467
|
self._seed(repo, n=3, tag="zebpay")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|