Commit Graph

163 Commits

Author SHA1 Message Date
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
github-actions[bot] 4de5229f10 chore: bump version to 3.0.4 2026-04-08 16:15:37 +00:00
Tal Muskal 8ac0026d24 fix: update command descriptions to specify 'generic mempalace skill' 2026-04-08 19:15:25 +03:00
github-actions[bot] b232108314 chore: bump version to 3.0.3 2026-04-08 16:10:56 +00:00
Tal Muskal 50c3db383a feat: add Codex plugin support with hooks, commands, and documentation 2026-04-08 19:10:44 +03:00
Hsu Hsiuwei 3d68c4127d fix: honour --palace flag in mcp_server
Parse --palace before initialising module-level singletons so that
both ChromaDB and KnowledgeGraph use the correct palace directory.

When --palace is provided the user is requesting an isolated palace;
KG must co-locate with ChromaDB under that path, not fall back to the
global default (~/.mempalace/knowledge_graph.sqlite3).
2026-04-08 23:58:45 +08:00
github-actions[bot] 61924ea018 chore: bump version to 3.0.2 2026-04-08 15:56:25 +00:00
Tal Muskal aaa6f59446 refactor: remove unused skills section from plugin.json 2026-04-08 18:56:00 +03:00
github-actions[bot] d4d328a545 chore: bump version to 3.0.1 2026-04-08 15:50:39 +00:00
Tal Muskal a788af8919 feat: add command documentation for help, init, mine, search, and status 2026-04-08 18:49:45 +03:00
Tal Muskal 94b39cbfe9 refactor: rename workflow and improve version bumping process 2026-04-08 18:43:53 +03:00
Tal Muskal c9d3955859 refactor: update skill names to include 'mempalace:' prefix for consistency 2026-04-08 18:41:22 +03:00
Tal Muskal 2f83518415 refactor: simplify plugin.json by removing unused hooks and commands 2026-04-08 18:37:46 +03:00
Igor Lins e Silva 37e15767f0 ci: remove benchmark job from CI workflow
Too heavy for CI (~2h per run). Benchmarks can be run locally with:
  pytest -m benchmark --bench-scale=small --bench-report=results.json
2026-04-08 11:11:15 -03:00
Igor Lins e Silva ebc26f3960 fix: resolve formatting, regression logic, and pytest defaults
- Run ruff format on all benchmark files (fixes CI lint job)
- Fix check_regression() substring ambiguity: ordered keyword matching
  so "latency_improvement_pct" is correctly classified as higher-is-better
- Update stale comments in conftest.py referencing wrong fixture
- Add pytest addopts to skip benchmark/slow/stress markers by default
2026-04-08 10:56:39 -03:00
Tal Muskal 94a41913a3 fix: update plugin source path in marketplace.json 2026-04-08 15:37:57 +03:00
github-actions[bot] 6b5e869dd5 chore: sync plugin version to 3.0.0 2026-04-08 11:56:13 +00:00
Tal Muskal 3d00a93655 feat: add MemPalace Claude Code plugin with hooks and instructions
- Introduced README.md for plugin overview and installation instructions.
- Added hooks configuration in hooks.json for auto-save and pre-compact functionality.
- Implemented stop and pre-compact hooks in bash scripts for memory management.
- Created marketplace.json and plugin.json for plugin metadata and versioning.
- Developed skills and instructions for help, init, mine, search, and status functionalities.
- Added CLI commands for executing hooks and displaying skill instructions.
- Implemented hooks_cli.py for handling hook logic and JSON input/output.
- Enhanced instruction files for user guidance on setup and usage.
- Updated .gitignore to exclude additional files.
- Created GitHub Actions workflow for syncing plugin version on push.
2026-04-08 14:55:46 +03:00
Simon Strandgaard f1a8220f29 Fixed broken link reference for AAAK Dialect in README 2026-04-08 13:02:47 +02:00
marerem df33550945 fix: silence ChromaDB telemetry warnings and CoreML segfault on Apple Silicon
ChromaDB 0.6.x bundles a Posthog telemetry client whose capture()
signature is incompatible with the installed posthog library, producing
noisy "Failed to send telemetry event" stderr warnings on every
operation. Silence by raising the logger threshold to CRITICAL.

ONNX Runtime's CoreML execution provider segfaults during vector
queries on macOS ARM64 (issue #74). Auto-set ORT_DISABLE_COREML=1
on Apple Silicon to force CPU execution, while respecting any
user-provided override via os.environ.setdefault().

Made-with: Cursor
2026-04-08 12:43:09 +02:00
Igor Lins e Silva 7e4db33061 fix: resolve ruff lint errors in benchmark suite
Remove unused imports (shutil, string, datetime, os, yaml, time,
SCALE_CONFIGS) and unused variable assignments in timing-only calls.
2026-04-08 05:10:39 -03:00
Igor Lins e Silva e8017ca2ec bench: add per-room recall threshold test
Concentrates all drawers into a single wing+room to isolate the
embedding model's retrieval limit independent of palace filtering.
Confirms recall degrades to ~0.4-0.5 at 5K drawers per room even
with wing+room filters applied — the spatial structure helps by
keeping buckets small, but can't fix the underlying embedding ceiling.
2026-04-08 05:06:31 -03:00
Igor Lins e Silva 7b89291334 bench: add scale benchmark suite (94 tests)
Benchmark mempalace at configurable scale (1K–100K drawers) to find
real-world performance limits. Tests cover MCP tool OOM thresholds,
ChromaDB query degradation, search recall@k, mining throughput,
knowledge graph concurrency, memory leak detection, palace boost
quantification, and Layer1 unbounded fetch behavior.

- tests/benchmarks/ with 8 test modules + data generator + report system
- Deterministic data factory with planted needles for recall measurement
- JSON report output with regression detection (--bench-report flag)
- CI benchmark job on PRs at small scale
- psutil added as dev dependency for RSS tracking
2026-04-08 05:06:31 -03:00
Igor Lins e Silva 47696bef8c fix: address Copilot review — derive MCP version, improve test isolation and portability 2026-04-08 04:41:03 -03:00
Igor Lins e Silva a67b00d7c7 perf: cache ChromaDB PersistentClient instead of re-instantiating per call
The MCP server previously created a new PersistentClient on every tool
call via _get_collection(). This incurs HNSW index loading overhead
on each request.

Cache the client and collection at module level. The cache resets
naturally on process restart (MCP runs as a subprocess).

Also adds a _reset_mcp_cache fixture to conftest.py for test isolation.

Includes test infrastructure from PR #131.
92 tests pass.
2026-04-08 04:39:19 -03:00
adv3nt3 75eb7ff871 fix: use actual detected room in mine summary stats
process_file() now returns (drawer_count, room) instead of just
drawer_count. The mine summary uses the returned room directly
instead of re-calling detect_room with empty content, which
produced wrong stats when routing relied on content keywords.
2026-04-08 01:28:33 +02:00
Ben Sigman 71736a3f4f Merge pull request #142 from igorls/chore/packaging-cleanup
chore: tighten chromadb version range and add py.typed marker
2026-04-07 16:05:20 -07:00
Ben Sigman c30bc9e71e Merge pull request #137 from igorls/fix/bounded-queries
fix: add limit=10000 safety cap to all unbounded ChromaDB .get() calls
2026-04-07 16:05:17 -07:00
Ben Sigman a8de2911e5 Merge pull request #136 from igorls/fix/kg-hardening
fix: enable SQLite WAL mode and add consistent LIMIT to KG timeline
2026-04-07 16:05:13 -07:00
Ben Sigman 168c3bc22e Merge pull request #139 from igorls/fix/error-handling
fix: sanitize error responses and remove sys.exit from library code
2026-04-07 16:05:11 -07:00
Ben Sigman a74061f739 Merge pull request #141 from igorls/fix/hook-security
fix: sanitize SESSION_ID in save hook to prevent path traversal
2026-04-07 16:05:09 -07:00
Igor Lins e Silva e5b3434e9b fix: update dialect tests for PR #147 stats API and remove unused fixture param 2026-04-07 18:58:28 -03:00
Igor Lins e Silva d3145e9a7b fix: update dialect tests for PR #147 stats API and remove unused fixture param 2026-04-07 18:58:25 -03:00
Igor Lins e Silva b5a58557e3 fix: update dialect tests for PR #147 stats API and remove unused fixture param 2026-04-07 18:58:22 -03:00