mempalace-code 1.16.0__tar.gz → 1.16.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.
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/CHANGELOG.md +75 -0
- mempalace_code-1.16.0/README.md → mempalace_code-1.16.1/PKG-INFO +154 -26
- mempalace_code-1.16.0/PKG-INFO → mempalace_code-1.16.1/README.md +89 -86
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/docs/AGENT_INSTALL.md +12 -3
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/docs/BACKUP_RESTORE.md +87 -41
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/docs/DEPENDENCY_UPGRADE_GATE.md +203 -3
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/docs/HOW_SEARCH_WORKS.md +8 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/docs/LLM_USAGE_RULES.md +18 -6
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/docs/RELEASING.md +93 -10
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/docs/UPDATES.md +4 -1
- mempalace_code-1.16.1/docs/UPSTREAM_COMPARISON.md +358 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/docs/demo/code-intelligence-packet.json +1 -1
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/docs/demo/code-intelligence-packet.md +1 -1
- mempalace_code-1.16.1/docs/dependency-audit-allowlist.json +317 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/docs/quality/acceptance/README.md +5 -0
- mempalace_code-1.16.1/docs/quality/acceptance/v1.16.1.md +529 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/docs/quality/scorecard.json +19 -19
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/docs/quality/scorecard.md +13 -13
- mempalace_code-1.16.1/docs/quality/upstream-comparison.json +1166 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/docs/release-admission-rulesets.md +17 -4
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/agent_plugin/plugin.json +1 -1
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/agent_plugin/skills/mempalace/SKILL.md +12 -15
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/backup.py +400 -167
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/cli.py +1 -1
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/cli_commands/alias.py +6 -35
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/cli_commands/backup_restore.py +1 -1
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/cli_invocation.py +39 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/config.py +21 -28
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/export.py +17 -25
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/knowledge_graph.py +75 -29
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/mcp/tools/search.py +35 -7
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/mcp/tools/write.py +28 -45
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/mining/orchestrator.py +946 -6
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/mining/scanner.py +71 -4
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/mirror_preflight.py +130 -53
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/operation_lock.py +66 -8
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/searcher.py +6 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/storage.py +198 -18
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/updater.py +37 -5
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/watcher.py +171 -57
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/pyproject.toml +7 -3
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/scripts/dependency_upgrade_gate.py +418 -34
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/scripts/gen_code_intelligence_packet.py +18 -1
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/scripts/release_admission_checks.py +48 -16
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/scripts/release_preflight.py +83 -2
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/scripts/release_public_read.py +8 -1
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/scripts/release_readiness_gate.py +195 -114
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/scripts/release_status_gate.py +1 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_backup.py +744 -136
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_backup_dir.py +30 -8
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_cli.py +10 -2
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_code_intelligence_packet.py +45 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_config.py +20 -9
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_dependency_upgrade_gate.py +727 -3
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_export.py +17 -21
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_knowledge_graph.py +153 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_mcp_server.py +16 -7
- mempalace_code-1.16.1/tests/test_memory_growth_regression.py +2262 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_miner.py +43 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_palace_kg_owner.py +21 -1
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_release_preflight.py +173 -1
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_release_public_read.py +39 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_release_readiness_gate.py +350 -17
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_release_ruleset_contract.py +178 -4
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_release_status_gate.py +1 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_searcher.py +6 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_storage.py +57 -29
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_storage_lance.py +3 -1
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_uat2_watch_ops.py +104 -3
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_uat_ids.py +37 -6
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_uat_kg_backup.py +4 -3
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_uat_mcp_protocol.py +11 -9
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_uat_mining.py +1 -1
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_uat_model_install.py +4 -1
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_uat_ops_misc.py +13 -7
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_uat_repair.py +13 -3
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_uat_repair_backup.py +2 -1
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_updater.py +85 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_upstream_comparison_guard.py +4 -4
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_watcher.py +261 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tools/gitleaks/go.mod +1 -1
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/uv.lock +97 -90
- mempalace_code-1.16.0/docs/UPSTREAM_COMPARISON.md +0 -329
- mempalace_code-1.16.0/docs/dependency-audit-allowlist.json +0 -4
- mempalace_code-1.16.0/docs/quality/upstream-comparison.json +0 -674
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/.gitignore +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/.gitleaks.toml +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/.pre-commit-config.yaml +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/AGENTS.md +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/CLAUDE.md +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/CONTRIBUTING.md +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/LICENSE +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/NOTICE +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/SECURITY.md +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/assets/mempalace_banner.jpg +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/benchmarks/BENCHMARKS.md +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/benchmarks/HYBRID_MODE.md +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/benchmarks/README.md +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/benchmarks/code_retrieval_bench.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/benchmarks/convomem_bench.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/benchmarks/data/code_retrieval_queries.json +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/benchmarks/demo_perf_budgets.json +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/benchmarks/demo_perf_budgets.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/benchmarks/dotnet_bench.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/benchmarks/embed_ab_bench.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/benchmarks/locomo_bench.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/benchmarks/longmemeval_bench.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/benchmarks/membench_bench.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/benchmarks/minilm_runtime_compatibility_fixture.json +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/benchmarks/results_embed_ab_2026-04-09.json +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/benchmarks/results_token_delta_mempalace.json +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/benchmarks/retrieval_quality_facts.json +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/benchmarks/token_delta_bench.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/benchmarks/token_delta_fixture_facts.json +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/docs/BENCH_TOKEN_DELTA.md +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/docs/COMPARISON_GRAPHIFY.md +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/docs/OFFLINE_USAGE.md +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/docs/UPSTREAM_HARDENING.md +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/docs/WHY_THIS_FORK.md +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/docs/operations/wing-migration.md +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/docs/quality/PALACE-SCOPE-RESOURCE-BOUNDARY.md +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/docs/quality/README.md +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/docs/quality/acceptance/v1.15.0.md +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/docs/quality/acceptance/v1.15.1.md +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/docs/quality/acceptance/v1.16.0.md +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/docs/quality/autopilot-demo-gate-ledger.json +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/docs/quality/autopilot-demo-gate-ledger.md +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/docs/quality/workflow-review-protocol.md +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/examples/HOOKS_TUTORIAL.md +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/examples/basic_mining.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/examples/convo_import.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/examples/gemini_cli_setup.md +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/examples/mcp_setup.md +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/hooks/README.md +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/hooks/mempal_precompact_hook.sh +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/hooks/mempal_save_hook.sh +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace/__init__.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace/mcp_server.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/README.md +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/__init__.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/__main__.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/_stdio.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/agent_plugin/mcp.json +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/agent_plugin/schemas/1.0.0/mcp.schema.json +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/agent_plugin/schemas/1.0.0/plugin.schema.json +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/agent_plugin/schemas/SCHEMA-NOTICE.md +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/agent_plugins.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/architecture.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/cli_commands/__init__.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/cli_commands/agent_plugin.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/cli_commands/common.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/cli_commands/diary.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/cli_commands/export_import.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/cli_commands/ingest.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/cli_commands/maintenance.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/cli_commands/model.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/cli_commands/preflight.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/cli_commands/query.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/cli_commands/update.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/cli_commands/version_check.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/cli_commands/watch.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/cli_commands/wing_migration.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/convo_miner.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/dialect.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/diary.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/disk_budget.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/entity_detector.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/entity_registry.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/errors.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/general_extractor.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/language_catalog.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/launchd.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/layers.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/mcp/__init__.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/mcp/dispatch.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/mcp/protocol_compat.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/mcp/protocol_text.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/mcp/registry.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/mcp/runtime.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/mcp/tools/__init__.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/mcp/tools/architecture.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/mcp/tools/diary.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/mcp/tools/graph.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/mcp/tools/kg.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/mcp/tools/read.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/mcp_launcher.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/mcp_server.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/mcp_tool_profiles.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/miner.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/mining/__init__.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/mining/batching.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/mining/chunkers.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/mining/kg_extract.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/mining/languages.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/mining/projects.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/mining/source_text.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/mining/symbols.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/normalize.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/onboarding.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/palace_graph.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/py.typed +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/reader.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/retrieval_rerank.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/room_detector_local.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/search_reranker.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/source_io.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/spellcheck.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/split_mega_files.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/taxonomy_filters.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/treesitter.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/version.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/version_check.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/mempalace_code/wing_migration.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/pyrightconfig.strict.json +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/scripts/architecture_guard.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/scripts/bootstrap.sh +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/scripts/docs_drift_guard.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/scripts/gate_inventory.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/scripts/gitleaks_scan.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/scripts/nuke_wing.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/scripts/public_safety_scan.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/scripts/pytest_failure_summary.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/scripts/quality_scorecard.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/scripts/release_artifact_gate.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/scripts/release_install_metadata_smoke.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/scripts/release_notes.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/scripts/upstream_comparison_guard.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/scripts/wing_migration.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/scripts/workflow_summary_guard.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/conftest.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/fixtures/unreasoned_suppression.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/release_smoke_support.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_agent_plugin_package.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_agent_skill_authority_contract.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_architecture_extraction.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_architecture_guard.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_autopilot_demo_gate_ledger.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_backup_cli.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_chunking.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_claude_hooks.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_cli_command_modules.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_cli_golden_scenarios.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_code_retrieval_bench.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_convo_miner.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_demo_perf_budgets.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_dialect.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_disk_budget.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_docs_drift_guard.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_dotnet_bench.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_dotnet_config.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_e2e.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_embed_ab_bench.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_embedding_runtime.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_entity_detector.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_entity_registry.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_explicit_wing_consistency.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_gate_inventory.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_general_extractor.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_gitleaks_scan.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_installed_artifact_behavior.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_installed_cli_palace_scope.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_kg_extract.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_lang_detect.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_language_catalog.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_layers.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_legacy_benchmark_retrieval.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_license_notice.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_longmemeval_metrics.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_mcp_protocol_compat.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_mcp_registry.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_mcp_tool_profiles.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_mine_source_exact.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_miner_modules.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_normalize.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_nuke_wing.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_offline.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_onboarding.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_operation_lock.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_packaging_namespace.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_palace_graph.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_palace_scope_resource_boundary.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_public_safety_scan.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_pyright_optional_dependencies.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_pytest_failure_summary.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_quality_palace_scope_resource_boundary.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_quality_scorecard.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_reader.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_regular_source_guard.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_release_artifact_gate.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_release_install_metadata_smoke.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_release_notes.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_release_skill_contract.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_release_workflow_admission.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_retrieval_rerank.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_search_reranker.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_split_mega_files.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_stdio.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_symbol_extract.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_taxonomy_filters.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_token_delta_bench.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_treesitter.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_type_suppressions.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_uat2_mining.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_uat_compress_layers.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_uat_config_init.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_uat_convo_core.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_uat_convo_formats.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_uat_convos.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_uat_install_r2.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_uat_kg.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_uat_kg_mining.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_uat_leases.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_uat_mcp_search.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_uat_model_fetch.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_uat_repair_reads.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_uat_search_read.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_uat_watch.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_version_check.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_version_consistency.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_watcher_resource_bounds.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_watcher_resource_subprocess.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_wing_migration.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tests/test_workflow_summary_guard.py +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tools/gitleaks/go.sum +0 -0
- {mempalace_code-1.16.0 → mempalace_code-1.16.1}/tools/gitleaks/tools.go +0 -0
|
@@ -2,6 +2,81 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## v1.16.1 — 2026-10-24
|
|
6
|
+
|
|
7
|
+
### Security
|
|
8
|
+
|
|
9
|
+
- Require `filelock>=4.2.1` and lock 4.2.4 to address three lock-file
|
|
10
|
+
advisories. Require `setuptools>=84.1.0` in the existing `custom-models`
|
|
11
|
+
extra and lock 84.2.1 to fix GHSA-xmj3-9gf7-h52w without adding a
|
|
12
|
+
default-install dependency.
|
|
13
|
+
- Retain 41 Pillow 12.3.0 dependency findings under an explicitly accepted
|
|
14
|
+
temporary exception, expiring 2026-11-05. Reviewed canonical MiniLM text
|
|
15
|
+
inference does not call the affected image/PDF APIs. Arbitrary custom models
|
|
16
|
+
are outside that conclusion. See `docs/DEPENDENCY_UPGRADE_GATE.md`; the Pillow
|
|
17
|
+
vulnerabilities remain present and are not described as fixed.
|
|
18
|
+
- Require OpenTelemetry API 1.45.1 or newer and refresh its lock pin, fixing
|
|
19
|
+
GHSA-xcq7-p3pf-p88h in trace-metadata parsing. Ordinary upgrades replace an
|
|
20
|
+
older compatible API; conflicting old pins are refused.
|
|
21
|
+
|
|
22
|
+
- Require `certifi>=2026.10.19` and refresh its lock pin to remove compromised
|
|
23
|
+
emSign trust roots (GHSA-6q48-6c7w-9gw2). Existing installations must update
|
|
24
|
+
the certificate bundle when upgrading.
|
|
25
|
+
- Refresh locked Certifi to 2026.10.23 and release-tool Sigstore to 4.5.1;
|
|
26
|
+
remove Sigstore's unused PyOpenSSL dependency. The exact lock transition
|
|
27
|
+
reuses the existing temporary risk disposition through a hash-bound upgrade
|
|
28
|
+
report, with unchanged advisory scope and expiry.
|
|
29
|
+
- Refresh locked cryptography to 50.0.2, whose wheels contain OpenSSL 4.0.3,
|
|
30
|
+
and update the existing scanner build toolchain to Go 1.27.3 for its checksum
|
|
31
|
+
verification and certificate distrust fixes.
|
|
32
|
+
|
|
33
|
+
- Update the locked `fsspec` dependency to 2026.6.0, which fixes
|
|
34
|
+
GHSA-27vj-qcqg-25rc in reference filesystem template handling.
|
|
35
|
+
|
|
36
|
+
- Require patched MCP SDK releases in the supported `>=2.2,<3` range and
|
|
37
|
+
declare `fsspec>=2026.6.0` so an existing vulnerable installation cannot satisfy
|
|
38
|
+
the new package.
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
- Classify dependency-audit setup failures with a bounded reason and exit code.
|
|
43
|
+
Keep failed installs blocking and omit raw subprocess output from reports.
|
|
44
|
+
- Refuse distinct knowledge-graph names that collide under legacy identifiers.
|
|
45
|
+
Atomic writer, import and legacy-adoption checks preserve existing facts;
|
|
46
|
+
snapshot-consistent reads refuse ambiguous names. Existing identifiers, schema
|
|
47
|
+
and case-insensitive name lookup remain compatible.
|
|
48
|
+
- Coordinate macOS watchers in their verified launchd account domains, including
|
|
49
|
+
background user agents, and refuse ambiguous domain ownership before updating.
|
|
50
|
+
- Prevent recursive ingestion of nested checkouts and verified project copies.
|
|
51
|
+
Normal mining reconciles proven redundant generated chunks while retaining
|
|
52
|
+
unique and ambiguous originals, manual drawers, rejected-decision evidence,
|
|
53
|
+
knowledge-graph facts and source provenance.
|
|
54
|
+
- Keep automatic physical maintenance behind the existing healthy-backup,
|
|
55
|
+
reader and optimization guards. Interrupted maintenance can retry on an
|
|
56
|
+
unchanged mine; ordinary later writes avoid repeated full recovery archives.
|
|
57
|
+
- Use exact full-text checks for automatic duplicate refusal within the selected
|
|
58
|
+
scope. Opposite statements, changed conditions and cross-wing identical text
|
|
59
|
+
remain available through MCP and JSONL import.
|
|
60
|
+
- Refuse degraded forensic archives as automatic pre-watch recovery points.
|
|
61
|
+
- Reduce compression work while creating lossless gzip recovery archives under
|
|
62
|
+
the palace write lease.
|
|
63
|
+
- Preserve prior Lance and knowledge-graph state when force restore receives a
|
|
64
|
+
catchable interruption during publication or verification. If another owner
|
|
65
|
+
blocks rollback, retain the originals at the reported recovery paths.
|
|
66
|
+
- Resolve installed aliases through the canonical launcher under a conflicting
|
|
67
|
+
command search path, and align packaged memory instructions with live tools.
|
|
68
|
+
|
|
69
|
+
### Changed
|
|
70
|
+
|
|
71
|
+
- Healthy scheduled, pre-watch and pre-optimize backups share one automatic
|
|
72
|
+
retention pool, defaulting to two recovery points. Existing write maintenance
|
|
73
|
+
reconciles qualified archives even when optimization is disabled or mining is
|
|
74
|
+
unchanged. Two retained snapshots must restore successfully before expiry;
|
|
75
|
+
explicit keep-all, manual, explicit-output, degraded and ambiguous legacy
|
|
76
|
+
archives are preserved.
|
|
77
|
+
- Release preparation checks all open pull requests and issues, resolves confirmed
|
|
78
|
+
release blockers, and records a disposition before candidate qualification.
|
|
79
|
+
|
|
5
80
|
## v1.16.0 — 2026-10-05
|
|
6
81
|
|
|
7
82
|
### Added
|
|
@@ -1,3 +1,68 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: mempalace-code
|
|
3
|
+
Version: 1.16.1
|
|
4
|
+
Summary: Developer memory tool — mine codebases and conversations into a LanceDB-backed searchable palace. No API key required.
|
|
5
|
+
Project-URL: Homepage, https://github.com/rergards/mempalace-code
|
|
6
|
+
Project-URL: Repository, https://github.com/rergards/mempalace-code
|
|
7
|
+
Project-URL: Bug Tracker, https://github.com/rergards/mempalace-code/issues
|
|
8
|
+
Project-URL: Upstream, https://github.com/MemPalace/mempalace
|
|
9
|
+
Author: Ben Sigman, Igor Lins e Silva, milla-jovovich
|
|
10
|
+
Author-email: Aleksandr Markov <rergards@gmail.com>
|
|
11
|
+
License-Expression: Apache-2.0
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
License-File: NOTICE
|
|
14
|
+
Keywords: ai,chatgpt,claude,code-mining,code-search,crash-safe,developer-tools,embeddings,lancedb,llm,mcp,memory,rag,vector-database
|
|
15
|
+
Classifier: Development Status :: 4 - Beta
|
|
16
|
+
Classifier: Environment :: Console
|
|
17
|
+
Classifier: Intended Audience :: Developers
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
23
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
24
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
25
|
+
Classifier: Topic :: Utilities
|
|
26
|
+
Requires-Python: >=3.11
|
|
27
|
+
Requires-Dist: certifi>=2026.10.19
|
|
28
|
+
Requires-Dist: fastembed<0.9,>=0.8
|
|
29
|
+
Requires-Dist: filelock>=4.2.1
|
|
30
|
+
Requires-Dist: fsspec>=2026.6.0
|
|
31
|
+
Requires-Dist: huggingface-hub<2,>=0.20
|
|
32
|
+
Requires-Dist: lancedb>=0.20
|
|
33
|
+
Requires-Dist: mcp<3,>=2.2
|
|
34
|
+
Requires-Dist: onnxruntime<2,>=1.20
|
|
35
|
+
Requires-Dist: opentelemetry-api>=1.45.1
|
|
36
|
+
Requires-Dist: overrides>=7.7
|
|
37
|
+
Requires-Dist: packaging>=21.0
|
|
38
|
+
Requires-Dist: pyarrow<25
|
|
39
|
+
Requires-Dist: pyyaml>=6.0
|
|
40
|
+
Provides-Extra: custom-models
|
|
41
|
+
Requires-Dist: sentence-transformers>=5.6.0; extra == 'custom-models'
|
|
42
|
+
Requires-Dist: setuptools>=84.1.0; extra == 'custom-models'
|
|
43
|
+
Provides-Extra: dev
|
|
44
|
+
Requires-Dist: actionlint-py==1.7.12.24; extra == 'dev'
|
|
45
|
+
Requires-Dist: build>=1.0; extra == 'dev'
|
|
46
|
+
Requires-Dist: jsonschema>=4.18; extra == 'dev'
|
|
47
|
+
Requires-Dist: pypi-attestations==0.0.30; extra == 'dev'
|
|
48
|
+
Requires-Dist: pyright>=1.1.350; extra == 'dev'
|
|
49
|
+
Requires-Dist: pytest>=7.0; extra == 'dev'
|
|
50
|
+
Requires-Dist: ruff==0.15.16; extra == 'dev'
|
|
51
|
+
Requires-Dist: twine>=5.0; extra == 'dev'
|
|
52
|
+
Requires-Dist: watchfiles>=1.0; extra == 'dev'
|
|
53
|
+
Requires-Dist: zizmor==1.29.0; extra == 'dev'
|
|
54
|
+
Provides-Extra: spellcheck
|
|
55
|
+
Requires-Dist: autocorrect>=2.0; extra == 'spellcheck'
|
|
56
|
+
Provides-Extra: treesitter
|
|
57
|
+
Requires-Dist: tree-sitter-go<0.26,>=0.23; extra == 'treesitter'
|
|
58
|
+
Requires-Dist: tree-sitter-python<0.26,>=0.23; extra == 'treesitter'
|
|
59
|
+
Requires-Dist: tree-sitter-rust<0.26,>=0.23; extra == 'treesitter'
|
|
60
|
+
Requires-Dist: tree-sitter-typescript<0.26,>=0.23; extra == 'treesitter'
|
|
61
|
+
Requires-Dist: tree-sitter<0.26,>=0.22; extra == 'treesitter'
|
|
62
|
+
Provides-Extra: watch
|
|
63
|
+
Requires-Dist: watchfiles>=1.0; extra == 'watch'
|
|
64
|
+
Description-Content-Type: text/markdown
|
|
65
|
+
|
|
1
66
|
<div align="center">
|
|
2
67
|
|
|
3
68
|
<img src="https://raw.githubusercontent.com/rergards/mempalace-code/main/assets/mempalace_banner.jpg" alt="mempalace-code" width="640">
|
|
@@ -402,6 +467,40 @@ class names, packages, examples, and variables often look like people or product
|
|
|
402
467
|
heuristic pass. Code structure, symbols, languages, and architecture relationships are
|
|
403
468
|
handled by `mempalace-code mine`, not by entity detection.
|
|
404
469
|
|
|
470
|
+
### Source selection and generated copies
|
|
471
|
+
|
|
472
|
+
Mining reads the selected checkout's current files, including uncommitted changes. A branch
|
|
473
|
+
name does not pin the indexed commit. Select the checkout that contains the project state
|
|
474
|
+
you want to retrieve; Git is optional for mining.
|
|
475
|
+
|
|
476
|
+
The default scan skips nested Git checkouts. Exact `--include-ignored` paths can include
|
|
477
|
+
one deliberately. It also skips the project-root `.tasks` and `.local` directories, where
|
|
478
|
+
agents and tools keep task checkouts, workspaces and temporary verification receipts.
|
|
479
|
+
Directories with those names deeper in the project, such as `docs/.tasks`, are mined as
|
|
480
|
+
usual. An `--include-ignored` root, subtree or exact path selects technical content
|
|
481
|
+
deliberately, under the same rules as any other included path.
|
|
482
|
+
|
|
483
|
+
Records already stored from those directories stay: unique and rejected-decision reports,
|
|
484
|
+
manual drawers and their knowledge-graph facts are not stale-swept once the default scan
|
|
485
|
+
stops walking them. Exact stored copies of project files below them are still found from
|
|
486
|
+
their stored paths and reconciled as described next, without walking those directories.
|
|
487
|
+
|
|
488
|
+
A normal unlimited mine also reconciles previously stored generated copies. It removes
|
|
489
|
+
rows only after checking current regular files, identical ordered chunks and metadata,
|
|
490
|
+
and a healthy recovery backup. Manual, ambiguous, missing-source and different-content
|
|
491
|
+
records stay. Source aliases are recorded before removal and retained with the Lance data through
|
|
492
|
+
backup, restore and rebuild. An interrupted run
|
|
493
|
+
reassesses remaining candidates on the next mine. Limited and dry runs remove nothing.
|
|
494
|
+
|
|
495
|
+
Physical space is reclaimed through supported maintenance when post-mine optimization is
|
|
496
|
+
enabled. Active readers defer version cleanup. `MEMPALACE_OPTIMIZE_AFTER_MINE=0` and
|
|
497
|
+
`--skip-optimize` keep their existing effect. The mine result reports removed rows,
|
|
498
|
+
retained sources, table-file bytes and maintenance refusals. Backup and provenance-record
|
|
499
|
+
sizes must be counted separately when measuring the total disk footprint.
|
|
500
|
+
The watcher honors the same setting. Each watcher batch makes one maintenance decision: it
|
|
501
|
+
retries maintenance left pending by an exact-copy removal, even when the batch filed
|
|
502
|
+
nothing, under the same backup and reader gates.
|
|
503
|
+
|
|
405
504
|
### Auto-Watch
|
|
406
505
|
|
|
407
506
|
Keep your palace in sync automatically. By default, watches git metadata — branch refs plus
|
|
@@ -727,7 +826,7 @@ returns an empty result. A tool that reports a failure in its payload
|
|
|
727
826
|
| `mempalace_code_search` | Filter by language, symbol name/type, file glob (all applied before ranking); optional `rerank="hybrid"` |
|
|
728
827
|
| `mempalace_file_context` | Indexed chunks for a source file, ordered by chunk_index and paged with `limit`/`offset`; resolves paths like `mempalace_read` |
|
|
729
828
|
| `mempalace_read` | Surgical read of stored source lines in a range for a file; use after a search/file_context hit to avoid reading the whole file; reports gaps, `out_of_range`, and `no_line_metadata` (conversation drawers) |
|
|
730
|
-
| `mempalace_check_duplicate` |
|
|
829
|
+
| `mempalace_check_duplicate` | Exact-text duplicate check, optionally scoped by `wing`; similar matches are advisory (`threshold` must be -1 to 1) |
|
|
731
830
|
|
|
732
831
|
</details>
|
|
733
832
|
|
|
@@ -736,7 +835,7 @@ returns an empty result. A tool that reports a failure in its payload
|
|
|
736
835
|
|
|
737
836
|
| Tool | What |
|
|
738
837
|
|------|------|
|
|
739
|
-
| `mempalace_add_drawer` | File verbatim content into a wing/room; refuses
|
|
838
|
+
| `mempalace_add_drawer` | File verbatim content into a wing/room; refuses identical text already stored in the same wing and a new wing/room name that only re-spells an existing one (names are trimmed and case-sensitive) |
|
|
740
839
|
| `mempalace_delete_drawer` | Remove a drawer by ID |
|
|
741
840
|
| `mempalace_delete_wing` | Delete all drawers in a wing |
|
|
742
841
|
| `mempalace_mine` | Trigger re-mining of a project directory (incremental or full) |
|
|
@@ -1021,7 +1120,7 @@ replays an export written before 1.15.0; its contents are never modified. `--kg-
|
|
|
1021
1120
|
restore destination. The complete quarantine, rebuild, restore, force-restore,
|
|
1022
1121
|
and failure-recovery procedure is in [docs/BACKUP_RESTORE.md](https://github.com/rergards/mempalace-code/blob/main/docs/BACKUP_RESTORE.md).
|
|
1023
1122
|
|
|
1024
|
-
**Backup kinds:** Each archive has a kind that controls its filename prefix
|
|
1123
|
+
**Backup kinds:** Each archive has a kind that controls its filename prefix. Automatic kinds share one retention pool:
|
|
1025
1124
|
|
|
1026
1125
|
| Kind | Prefix | Created by |
|
|
1027
1126
|
|------|--------|-----------|
|
|
@@ -1085,23 +1184,37 @@ for inspection commands, permissions and existing-archive behavior.
|
|
|
1085
1184
|
|
|
1086
1185
|
**Retention (automatic pruning):**
|
|
1087
1186
|
|
|
1088
|
-
`
|
|
1089
|
-
|
|
1090
|
-
`
|
|
1187
|
+
Healthy `scheduled`, `pre_watch`, and `pre_optimize` archives share **one automatic
|
|
1188
|
+
pool with a default limit of 2**. This replaces the previous independent limits of
|
|
1189
|
+
14/5/5. A positive `backup_retain_count` applies to the whole pool and has a safety
|
|
1190
|
+
floor of 2; explicit `0` keeps all. Manual and explicit `--out` archives always stay
|
|
1191
|
+
outside the pool, including automatic-looking names in the managed directory.
|
|
1091
1192
|
|
|
1092
1193
|
```bash
|
|
1093
|
-
export MEMPALACE_BACKUP_RETAIN_COUNT=5 #
|
|
1094
|
-
#
|
|
1095
|
-
export MEMPALACE_BACKUP_RETAIN_COUNT=0 # 0 disables pruning for every kind
|
|
1194
|
+
export MEMPALACE_BACKUP_RETAIN_COUNT=5 # keep 5 healthy automatic snapshots total
|
|
1195
|
+
export MEMPALACE_BACKUP_RETAIN_COUNT=0 # deliberate keep-all opt-out
|
|
1096
1196
|
```
|
|
1097
1197
|
|
|
1098
|
-
|
|
1099
|
-
the
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1198
|
+
The equivalent config key is `{"backup_retain_count": 5}` in
|
|
1199
|
+
`~/.mempalace/config.json`. Retention examines only the selected managed directory.
|
|
1200
|
+
New archives record their origin, kind, canonical source palace and namespace, with
|
|
1201
|
+
metadata first for bounded inspection. Unknown legacy archives, foreign archives,
|
|
1202
|
+
degraded snapshots, linked files and protected or hidden extra files are preserved.
|
|
1203
|
+
A filename alone never authorizes deletion. Explicit `--out` never overwrites a file.
|
|
1204
|
+
|
|
1205
|
+
Reconciliation runs after healthy automatic publication and on mine/watch write
|
|
1206
|
+
maintenance, including idle batches with optimize disabled. It creates no archive
|
|
1207
|
+
just to rotate. Before deleting anything, it fully restores and verifies two retained
|
|
1208
|
+
recovery points in scratch space on the backup filesystem. A verification, identity,
|
|
1209
|
+
lease or disk failure defers cleanup; a successful backup stays successful and logs
|
|
1210
|
+
the retention error. Package-only updates stay package-only; the next managed write
|
|
1211
|
+
or watcher batch supplies the first-use cleanup. Search, status and dry runs remain
|
|
1212
|
+
read-only with respect to retention.
|
|
1213
|
+
|
|
1214
|
+
`backup list` (`--json` for scripts) marks qualified automatic archives beyond the
|
|
1215
|
+
shared limit as `stale`. This is a selection hint; deletion still requires keeper
|
|
1216
|
+
validation. `oversized`, `degraded` and `shared` describe size, damaged snapshots and
|
|
1217
|
+
legacy shared-directory archives. Listing never prunes.
|
|
1105
1218
|
|
|
1106
1219
|
`backup create` fails with exit 1 instead of writing an empty archive when the path holds no palace (missing directory, empty directory, or a legacy ChromaDB palace). For a degraded palace (unreadable drawers, or a knowledge graph that fails SQLite's `quick_check`) it still writes a forensic `*_DEGRADED.tar.gz` copy, warns, and exits 1; `restore` refuses such an archive, and degraded archives never displace healthy ones in retention.
|
|
1107
1220
|
|
|
@@ -1174,30 +1287,43 @@ Use these recommended excludes for any delete-mode state-directory mirror:
|
|
|
1174
1287
|
|
|
1175
1288
|
```bash
|
|
1176
1289
|
rsync -a --delete \
|
|
1177
|
-
--exclude=palace
|
|
1290
|
+
--exclude=palace \
|
|
1178
1291
|
--exclude='palace.backup-*/' \
|
|
1179
1292
|
--exclude='palace.quarantine-*/' \
|
|
1180
1293
|
--exclude=knowledge_graph.sqlite3 \
|
|
1294
|
+
--exclude='knowledge_graph.sqlite3-*' \
|
|
1181
1295
|
--exclude=knowledge_graph.sqlite3.adopted \
|
|
1182
1296
|
--exclude=config.json \
|
|
1183
1297
|
--exclude=backups/ \
|
|
1298
|
+
--exclude=locks/ \
|
|
1299
|
+
--exclude='operation.lock*' \
|
|
1300
|
+
--exclude='watch-*.claim' \
|
|
1184
1301
|
~/.mempalace/ user@host:.mempalace/
|
|
1185
1302
|
```
|
|
1186
1303
|
|
|
1304
|
+
`--exclude=palace` has no trailing slash: a directory-only pattern such as `palace/` does not
|
|
1305
|
+
protect the regular MOVED/guard file that can take the palace directory's place. The lock
|
|
1306
|
+
entries (`locks/`, `operation.lock*`, `watch-*.claim`) are required too: rsync would unlink a
|
|
1307
|
+
held lock file while its holder keeps locking the orphaned inode. A palace configured inside
|
|
1308
|
+
`~/.mempalace` under another name needs its own exclude (for example `--exclude=/palace_live`).
|
|
1309
|
+
For a home mirror such as `~/`, exclude the whole state directory with `--exclude=/.mempalace/`;
|
|
1310
|
+
keep selective excludes only for deliberate state-directory mirrors.
|
|
1311
|
+
|
|
1187
1312
|
`palace.backup-<UTC>/` (left by `repair`) and `palace.quarantine-<UTC>/` (left by the rebuild
|
|
1188
1313
|
workflow) are full palace copies. Run a preflight check before installing a mirror job (the
|
|
1189
1314
|
command is never executed). It also blocks `--del`, `--remove-source-files`, mirrors of a palace
|
|
1190
1315
|
configured outside `~/.mempalace`, and mirrors of a parent such as `~/` that contains
|
|
1191
1316
|
`~/.mempalace` without excluding the same families under it (for example
|
|
1192
|
-
`--exclude=/.mempalace
|
|
1317
|
+
`--exclude=/.mempalace/`), and reports `UNVERIFIED` when excludes come from files or an
|
|
1193
1318
|
earlier include:
|
|
1194
1319
|
|
|
1195
1320
|
```bash
|
|
1196
1321
|
mempalace-code preflight mirror --command \
|
|
1197
|
-
"rsync -a --delete --exclude=palace
|
|
1322
|
+
"rsync -a --delete --exclude=palace --exclude='palace.backup-*/' \
|
|
1198
1323
|
--exclude='palace.quarantine-*/' --exclude=knowledge_graph.sqlite3 \
|
|
1199
|
-
--exclude=knowledge_graph.sqlite3
|
|
1200
|
-
|
|
1324
|
+
--exclude='knowledge_graph.sqlite3-*' --exclude=knowledge_graph.sqlite3.adopted \
|
|
1325
|
+
--exclude=config.json --exclude=backups/ --exclude=locks/ --exclude='operation.lock*' \
|
|
1326
|
+
--exclude='watch-*.claim' ~/.mempalace/ user@host:.mempalace/"
|
|
1201
1327
|
# OK
|
|
1202
1328
|
# warning: advisory: no --exclude for 'logs' (add --exclude='*.log' if you route MemPalace logs into the state directory)
|
|
1203
1329
|
```
|
|
@@ -1251,6 +1377,8 @@ Every mine that walks the whole project (no `--limit`) ends with a stale-file sw
|
|
|
1251
1377
|
removes drawers of files that are no longer discovered by the scanner — deleted files and
|
|
1252
1378
|
previously indexed files that now fall under an exclusion rule. `--full` runs the same
|
|
1253
1379
|
sweep and also re-chunks and re-embeds every remaining file.
|
|
1380
|
+
Records stored from the project-root `.tasks` and `.local` directories are the exception:
|
|
1381
|
+
they are kept after the default scan stops walking them.
|
|
1254
1382
|
|
|
1255
1383
|
---
|
|
1256
1384
|
|
|
@@ -1364,19 +1492,19 @@ the same way, and `version-check --status` says the value is unrecognized. Run `
|
|
|
1364
1492
|
|
|
1365
1493
|
This is a code-first fork of the upstream `mempalace` project. The canonical upstream repository is [MemPalace/mempalace](https://github.com/MemPalace/mempalace); the older `milla-jovovich/mempalace` URL redirects there.
|
|
1366
1494
|
|
|
1367
|
-
Snapshot reviewed on 2026-10-
|
|
1495
|
+
Snapshot reviewed on 2026-10-23 against upstream `develop` at commit `f41e8e75ddaadf5588d5127715fa531d79eadb45` (upstream release 3.12.0), using pinned upstream public sources. Nothing below is a performance, quality, or adoption comparison — no upstream build or benchmark was run.
|
|
1368
1496
|
|
|
1369
1497
|
| Area | Upstream, as advertised at that commit | This fork |
|
|
1370
1498
|
|---|---|---|
|
|
1371
1499
|
| Focus | General-purpose AI memory | Code-first: repository mining, `code_search`, symbol/type/project-graph tools |
|
|
1372
1500
|
| Default storage | ChromaDB | LanceDB |
|
|
1373
1501
|
| Other backends offered | `sqlite_exact`, native `rust_exact`, Milvus, Qdrant, pgvector | LanceDB-only current package; ChromaDB support is retired; no server-backed backends |
|
|
1374
|
-
| Embedding model | `all-MiniLM-L6-v2` by default;
|
|
1502
|
+
| Embedding model | `all-MiniLM-L6-v2` by default; `init --embedding-model` selects recommended Gemma or optional experimental Gemma2/media; optional configured OpenAI-compatible server | `all-MiniLM-L6-v2`; no supported multilingual configuration or migration flow |
|
|
1375
1503
|
| Retrieval | Hybrid retrieval | Vector search, plus a local deterministic `code_search(rerank="hybrid")` |
|
|
1376
1504
|
| Reranking | Optional LLM reranking | None — no LLM reranker; this direction is explicitly rejected |
|
|
1377
|
-
| MCP tools | 47 in the full server registry
|
|
1505
|
+
| MCP tools | 47 in the full server registry and README, plus a 3-tool lightweight server | 29 in the full profile, plus a 4-tool minimal profile for agent plugins |
|
|
1378
1506
|
|
|
1379
|
-
This fork has not adopted upstream's multilingual embedding, broad hybrid-retrieval, or alternative-backend paths. LLM reranking is explicitly rejected
|
|
1507
|
+
This fork has not adopted upstream's multilingual embedding, broad hybrid-retrieval, or alternative-backend paths. LLM reranking is explicitly rejected because it adds a model/service dependency and non-deterministic ranking. Upstream can use local Ollama; its external LLM routes require explicit consent. This fork keeps its existing local retrieval path after the one-time model download.
|
|
1380
1508
|
|
|
1381
1509
|
Reviewed comparison with source links, evidence limits, and the reasoning behind each decision: [`docs/UPSTREAM_COMPARISON.md`](https://github.com/rergards/mempalace-code/blob/main/docs/UPSTREAM_COMPARISON.md).
|
|
1382
1510
|
|
|
@@ -1655,7 +1783,7 @@ python -m pyright --pythonpath "$(python -c 'import sys; print(sys.executable)')
|
|
|
1655
1783
|
Apache 2.0 — see [LICENSE](https://github.com/rergards/mempalace-code/blob/main/LICENSE) and [NOTICE](https://github.com/rergards/mempalace-code/blob/main/NOTICE).
|
|
1656
1784
|
|
|
1657
1785
|
<!-- Link Definitions -->
|
|
1658
|
-
[version-shield]: https://img.shields.io/badge/version-1.16.
|
|
1786
|
+
[version-shield]: https://img.shields.io/badge/version-1.16.1-4dc9f6?style=flat-square&labelColor=0a0e14
|
|
1659
1787
|
[release-link]: https://github.com/rergards/mempalace-code/releases
|
|
1660
1788
|
[python-shield]: https://img.shields.io/badge/python-3.11+-7dd8f8?style=flat-square&labelColor=0a0e14&logo=python&logoColor=7dd8f8
|
|
1661
1789
|
[python-link]: https://www.python.org/
|