bensig
1d19dfc9d5
security: harden inputs, fix shell injection, optimize DB access
...
- Fix command injection in hook script (pass paths via sys.argv)
- Add sanitize_name/sanitize_content validators in config.py
- Add 10MB file size guard + symlink skip in miners
- Fix SQLite connection leak in knowledge_graph.py (reuse connection)
- Use `with conn:` for proper transaction handling
- Consolidate shared palace operations into palace.py
- Add write-ahead log for audit trail on writes/deletes
- Add metadata cache with 30s TTL for status/taxonomy calls
- Upgrade md5 → sha256 for drawer/triple IDs
- Harden file permissions (0o700/0o600)
- Pin chromadb>=0.5.0,<0.7
Based on PR #252 by @anthonyonazure with lint fixes applied.
Co-Authored-By: anthonyonazure <anthonyonazure@users.noreply.github.com >
2026-04-09 08:06:30 -07:00
Ben Sigman
963c04cf45
Merge pull request #281 from tmuskal/main
...
Increase test coverage from 30% to 85% and fix Windows encoding bugs
2026-04-09 07:53:32 -07:00
Tal Muskal
da64016a94
fix: format test_layers_bench.py with ruff to pass CI lint
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-09 08:24:51 +03:00
Tal Muskal
667d895fb9
Merge branch 'main' into main
2026-04-09 08:17:39 +03:00
github-actions[bot]
26835e30ef
chore: bump version to 3.0.14
2026-04-08 23:54:30 +00:00
Ben Sigman
a5d9baf589
Merge pull request #165 from adv3nt3/fix/miner-room-stats
...
fix: use actual detected room in mine summary stats
2026-04-08 16:54:22 -07:00
Ben Sigman
d26606b2f9
Merge branch 'main' into main
2026-04-08 14:07:33 -07:00
github-actions[bot]
b370e86f96
chore: bump version to 3.0.13
2026-04-08 20:56:15 +00:00
Ben Sigman
9b705d651f
Merge pull request #223 from igorls/bench/scale-test-suite
...
bench: add scale benchmark suite (106 tests)
2026-04-08 13:56:06 -07:00
Igor Lins e Silva
c4e52954fe
Merge upstream/main into bench/scale-test-suite to resolve conflicts
...
Merged both the PR's benchmark suite additions (psutil dep, pytest
markers, --ignore=tests/benchmarks) and upstream's coverage changes
(pytest-cov, --cov-fail-under=30, coverage config) so both coexist.
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-04-08 16:28:06 -03:00
Tal Muskal
28de031f25
fix: remove stale palace_path reference in test helper
...
_patch_mcp_server had palace_path removed from its signature but the
assertion body still referenced it, causing NameError at runtime and
F821 from ruff.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-08 22:07:46 +03:00
Tal Muskal
dbf456b73b
Merge branch 'main' into main
2026-04-08 22:02:50 +03:00
github-actions[bot]
cef5994ea6
chore: bump version to 3.0.12
2026-04-08 18:58:39 +00:00
Ben Sigman
2c4abb9b59
Merge pull request #140 from igorls/fix/data-integrity
...
fix: use upsert and deterministic IDs to prevent data stagnation
2026-04-08 11:58:11 -07:00
Tal Muskal
4ce0d8491e
fix: pin ruff <0.5 in CI to match local formatting, reset version to 3.0.11
...
CI was installing latest ruff (0.15.x) which has different formatting
rules than our local 0.4.x. Pin to ruff>=0.4.0,<0.5 for consistency.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-08 21:42:02 +03:00
github-actions[bot]
ea32c2e659
chore: bump version to 3.0.12
2026-04-08 18:38:38 +00:00
Tal Muskal
abd52534bb
test: bring coverage to 85%, set threshold to 85, reset version to 3.0.11
...
- Add tests for config, convo_miner, spellcheck, knowledge_graph
- Fix Windows PermissionError in test cleanup (chromadb file locks)
- Add UTF-8 encoding to split_mega_files, entity_registry, hooks_cli
- Fix mcp_server parse_known_args logging for unknown args
- Set coverage threshold to 85 in pyproject.toml and CI
- Reset all version files to 3.0.11
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-08 21:38:12 +03:00
github-actions[bot]
f47ca8a122
chore: bump version to 3.0.15
2026-04-08 18:23:32 +00:00
Tal Muskal
43c5a47172
ci: add separate jobs for Windows and macOS testing
2026-04-08 21:23:20 +03:00
Igor Lins e Silva
edf8f36099
fix: use parse_known_args to allow importing mcp_server during pytest collection
2026-04-08 15:18:40 -03:00
Igor Lins e Silva
a0bcd0c836
fix: ruff format test_hooks_cli.py and test_knowledge_graph.py
2026-04-08 15:12:12 -03:00
Igor Lins e Silva
af42a850f6
fix: split semicolon statements onto two lines for ruff E702
2026-04-08 15:11:55 -03:00
Igor Lins e Silva
bf88daa649
fix: address review — re-mine modified files, idempotent add_drawer, cleanup ChromaDB handles
2026-04-08 15:11:55 -03:00
Igor Lins e Silva
a4149ab248
fix: use upsert and deterministic IDs to prevent data stagnation
...
MCP tool_add_drawer:
- Make drawer_id content-based: hash full content instead of
content[:100] + timestamp. Same content → same ID, eliminating
TOCTOU race conditions
- Switch from col.add() to col.upsert() so re-filing with updated
content updates the existing drawer
miner.add_drawer:
- Switch from collection.add() to collection.upsert() so re-mining
a modified file updates instead of silently failing
- Remove the try/except catching 'already exists' — upsert handles
this naturally
Findings: #11 (HIGH — add ignores updates), #6 (MEDIUM — TOCTOU),
#13 (MEDIUM — non-deterministic IDs)
Includes test infrastructure from PR #131 .
92 tests pass.
2026-04-08 15:11:55 -03:00
github-actions[bot]
5cee307e7c
chore: bump version to 3.0.14
2026-04-08 18:09:18 +00:00
Tal Muskal
9ca70264f3
style: format test files with ruff
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-08 21:08:49 +03:00
github-actions[bot]
65ac8ad977
chore: bump version to 3.0.13
2026-04-08 18:07:33 +00:00
Tal Muskal
e24d8ca733
test: expand coverage to 70%, fix mcp_server CI crash (threshold 60%)
...
Add/expand tests for normalize (39%→97%), searcher (39%→100%),
layers (28%→97%), split_mega_files (34%→72%).
Fix mcp_server.py parse_args→parse_known_args to prevent SystemExit
when imported during pytest (CI was crashing on all test jobs).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-08 21:07:03 +03:00
github-actions[bot]
ab66c0e945
chore: bump version to 3.0.12
2026-04-08 17:55:26 +00:00
Tal Muskal
03e9b57108
test: add comprehensive test coverage (35% → 58%, threshold 50%)
...
Add 180+ new tests across 10 test files covering previously untested modules:
- instructions_cli (0% → 100%), hooks_cli (73% → 96%), spellcheck (28% → 84%)
- palace_graph (9% → 91%), general_extractor (0% → 92%), entity_detector (0% → 69%)
- entity_registry (0% → 70%), room_detector_local (0% → 55%), layers (0% → 28%)
- onboarding (0% → 36%)
Also fixes Windows encoding bug in onboarding.py (write_text without encoding="utf-8").
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-08 20:54:56 +03:00
github-actions[bot]
fcc9ce84f2
chore: bump version to 3.0.11
2026-04-08 17:46:56 +00:00
Ben Sigman
c3ea596855
Merge pull request #264 from showaykerker/fix/palace-flag-ignored
...
fix: honour --palace flag in mcp_server
2026-04-08 10:46:46 -07:00
Ben Sigman
ede3ad10c2
Merge pull request #236 from marerem/fix/silence-chromadb-telemetry-warnings
...
fix: silence ChromaDB telemetry warnings and CoreML segfault on Apple Silicon
2026-04-08 10:46:43 -07:00
Ben Sigman
f40aed820f
Merge pull request #238 from neoneye/main
...
Fixed broken link reference for AAAK Dialect in README
2026-04-08 10:46:41 -07:00
github-actions[bot]
2eb4d43a59
chore: bump version to 3.0.10
2026-04-08 17:41:55 +00:00
Ben Sigman
59d011a23b
Merge pull request #270 from tmuskal/main
...
Package MemPalace as standard Claude and Codex plugins with easy installation
2026-04-08 10:41:45 -07:00
github-actions[bot]
43cf87315e
chore: bump version to 3.0.9
2026-04-08 17:40:17 +00:00
Tal Muskal
9de302f881
feat: update README and CI configuration, add tests for hooks functionality
2026-04-08 20:40:03 +03:00
github-actions[bot]
67e21c582c
chore: bump version to 3.0.8
2026-04-08 17:17:36 +00:00
Tal Muskal
e47fa1b5bf
refactor: consolidate hook scripts and fixed issue from review
2026-04-08 20:17:23 +03:00
Hsu Hsiuwei
c7896d3bb0
fix: preserve default KG path when --palace not passed
...
When --palace is not explicitly provided, fall back to KnowledgeGraph()
which uses DEFAULT_KG_PATH (~/.mempalace/knowledge_graph.sqlite3),
preserving backward compatibility for existing users.
2026-04-09 01:15:20 +08:00
Ben Sigman
3489a09581
Merge pull request #135 from igorls/fix/chromadb-singleton
...
perf: cache ChromaDB PersistentClient instead of re-instantiating per call
2026-04-08 10:11:58 -07:00
github-actions[bot]
4f1434720c
chore: bump version to 3.0.7
2026-04-08 17:04:25 +00:00
Tal Muskal
350ce0ba42
Merge branch 'main' of https://github.com/tmuskal/mempalace
2026-04-08 20:04:12 +03:00
Tal Muskal
0975b1d23f
fix: add syncing of pyproject.toml version during bump process
2026-04-08 20:04:10 +03:00
github-actions[bot]
019d852707
chore: bump version to 3.0.6
2026-04-08 17:00:30 +00:00
Tal Muskal
b3399253b6
Merge branch 'main' of https://github.com/tmuskal/mempalace
2026-04-08 20:00:18 +03:00
Tal Muskal
1888b56883
chore: bump version to 3.0.4 in pyproject.toml
2026-04-08 20:00:16 +03:00
github-actions[bot]
1e251cbf36
chore: bump version to 3.0.5
2026-04-08 16:33:29 +00:00
Tal Muskal
34c8f8c1b8
fix: update README for marketplace installation and improve hooks_cli file encoding
2026-04-08 19:33:16 +03:00