superlocalmemory 3.7.1__tar.gz → 3.7.2__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.
Files changed (566) hide show
  1. {superlocalmemory-3.7.1/src/superlocalmemory.egg-info → superlocalmemory-3.7.2}/PKG-INFO +3 -3
  2. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/README.md +2 -2
  3. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/pyproject.toml +1 -1
  4. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/__init__.py +1 -1
  5. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/embedding_worker.py +7 -1
  6. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/embeddings.py +8 -0
  7. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/engine.py +1 -3
  8. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/engine_wiring.py +0 -5
  9. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/ram_lock.py +42 -4
  10. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/evolution/budget.py +43 -8
  11. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_core.py +46 -29
  12. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mesh/broker.py +111 -61
  13. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/spreading_activation.py +53 -3
  14. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/unified_daemon.py +24 -7
  15. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2/src/superlocalmemory.egg-info}/PKG-INFO +3 -3
  16. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/AUTHORS.md +0 -0
  17. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/LICENSE +0 -0
  18. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/NOTICE +0 -0
  19. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/plugin-src/skills/slm-cache/SKILL.md +0 -0
  20. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/plugin-src/skills/slm-compress/SKILL.md +0 -0
  21. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/plugin-src/skills/slm-graph/SKILL.md +0 -0
  22. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/plugin-src/skills/slm-recall/SKILL.md +0 -0
  23. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/plugin-src/skills/slm-remember/SKILL.md +0 -0
  24. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/plugin-src/skills/slm-session/SKILL.md +0 -0
  25. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/plugin-src/skills/slm-status/SKILL.md +0 -0
  26. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/setup.cfg +0 -0
  27. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/attribution/__init__.py +0 -0
  28. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/attribution/mathematical_dna.py +0 -0
  29. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/attribution/signer.py +0 -0
  30. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/attribution/watermark.py +0 -0
  31. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/__init__.py +0 -0
  32. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/_lazy_init.py +0 -0
  33. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/cache_cmd.py +0 -0
  34. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/commands.py +0 -0
  35. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/compress_cmd.py +0 -0
  36. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/context_commands.py +0 -0
  37. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/daemon.py +0 -0
  38. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/db_migrate.py +0 -0
  39. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/diagnostics_cmd.py +0 -0
  40. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/escape_hatch.py +0 -0
  41. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/evidence_cmd.py +0 -0
  42. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/help_cmd.py +0 -0
  43. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/ingest_cmd.py +0 -0
  44. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/json_output.py +0 -0
  45. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/main.py +0 -0
  46. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/migrate_cmd.py +0 -0
  47. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/optimize_cmd.py +0 -0
  48. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/optimize_constants.py +0 -0
  49. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/pending_store.py +0 -0
  50. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/post_install.py +0 -0
  51. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/proxy_cmd.py +0 -0
  52. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/scale_engine_cmd.py +0 -0
  53. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/service_installer.py +0 -0
  54. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/setup_wizard.py +0 -0
  55. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/version_banner.py +0 -0
  56. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/wizard_v3426_options.py +0 -0
  57. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/__init__.py +0 -0
  58. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/blast_radius.py +0 -0
  59. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/bridge/__init__.py +0 -0
  60. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/bridge/entity_resolver.py +0 -0
  61. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/bridge/event_listeners.py +0 -0
  62. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/bridge/fact_enricher.py +0 -0
  63. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/bridge/hebbian_linker.py +0 -0
  64. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/bridge/temporal_checker.py +0 -0
  65. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/changes.py +0 -0
  66. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/communities.py +0 -0
  67. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/config.py +0 -0
  68. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/database.py +0 -0
  69. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/extractors/__init__.py +0 -0
  70. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/extractors/python.py +0 -0
  71. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/extractors/typescript.py +0 -0
  72. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/flows.py +0 -0
  73. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/git_hooks.py +0 -0
  74. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/graph_engine.py +0 -0
  75. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/graph_store.py +0 -0
  76. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/incremental.py +0 -0
  77. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/models.py +0 -0
  78. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/parser.py +0 -0
  79. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/resolver.py +0 -0
  80. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/search.py +0 -0
  81. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/service.py +0 -0
  82. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/watcher.py +0 -0
  83. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/compliance/__init__.py +0 -0
  84. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/compliance/abac.py +0 -0
  85. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/compliance/audit.py +0 -0
  86. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/compliance/eu_ai_act.py +0 -0
  87. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/compliance/gdpr.py +0 -0
  88. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/compliance/lifecycle.py +0 -0
  89. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/compliance/retention.py +0 -0
  90. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/compliance/scheduler.py +0 -0
  91. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/__init__.py +0 -0
  92. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/backend_orchestrator.py +0 -0
  93. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/block_hygiene.py +0 -0
  94. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/clock_monitor.py +0 -0
  95. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/config.py +0 -0
  96. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/consolidation_engine.py +0 -0
  97. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/context_cache.py +0 -0
  98. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/db_pool.py +0 -0
  99. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/derivation_lineage.py +0 -0
  100. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/engine_capabilities.py +0 -0
  101. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/engine_ingestion.py +0 -0
  102. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/engine_lock.py +0 -0
  103. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/error_catalog.py +0 -0
  104. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/error_envelope.py +0 -0
  105. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/evidence_bundle.py +0 -0
  106. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/fact_consolidator.py +0 -0
  107. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/file_lock.py +0 -0
  108. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/graph_analyzer.py +0 -0
  109. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/graph_pruner.py +0 -0
  110. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/health_monitor.py +0 -0
  111. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/hooks.py +0 -0
  112. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/ingest_gate.py +0 -0
  113. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/ingestion_command.py +0 -0
  114. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/injection.py +0 -0
  115. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/lifecycle_state.py +0 -0
  116. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/loop_watchdog.py +0 -0
  117. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/maintenance.py +0 -0
  118. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/maintenance_scheduler.py +0 -0
  119. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/mcp_embedder_proxy.py +0 -0
  120. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/modes.py +0 -0
  121. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/mutations.py +0 -0
  122. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/ollama_embedder.py +0 -0
  123. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/platform_utils.py +0 -0
  124. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/priority_queue.py +0 -0
  125. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/profiles.py +0 -0
  126. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/pruning_engine.py +0 -0
  127. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/queue_consumer.py +0 -0
  128. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/queue_dispatcher.py +0 -0
  129. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/rate_limit.py +0 -0
  130. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/recall_gate.py +0 -0
  131. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/recall_pipeline.py +0 -0
  132. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/recall_queue.py +0 -0
  133. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/recall_worker.py +0 -0
  134. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/registry.py +0 -0
  135. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/remote_mode.py +0 -0
  136. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/reranker_worker.py +0 -0
  137. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/safe_fs.py +0 -0
  138. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/scale_engine.py +0 -0
  139. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/score_contract.py +0 -0
  140. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/security_primitives.py +0 -0
  141. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/shadow_router.py +0 -0
  142. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/slm_disabled.py +0 -0
  143. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/slmignore.py +0 -0
  144. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/store_pipeline.py +0 -0
  145. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/summarizer.py +0 -0
  146. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/tier_manager.py +0 -0
  147. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/topic_signature.py +0 -0
  148. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/worker_pool.py +0 -0
  149. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/dynamics/__init__.py +0 -0
  150. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/dynamics/activation_guided_quantization.py +0 -0
  151. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/dynamics/eap_scheduler.py +0 -0
  152. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/dynamics/ebbinghaus_langevin_coupling.py +0 -0
  153. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/dynamics/fisher_langevin_coupling.py +0 -0
  154. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/__init__.py +0 -0
  155. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/auto_linker.py +0 -0
  156. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/cognitive_consolidator.py +0 -0
  157. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/consolidator.py +0 -0
  158. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/context_generator.py +0 -0
  159. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/emotional.py +0 -0
  160. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/entity_resolver.py +0 -0
  161. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/entropy_gate.py +0 -0
  162. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/fact_extractor.py +0 -0
  163. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/foresight.py +0 -0
  164. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/graph_builder.py +0 -0
  165. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/observation_builder.py +0 -0
  166. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/scene_builder.py +0 -0
  167. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/signal_inference.py +0 -0
  168. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/temporal_parser.py +0 -0
  169. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/temporal_validator.py +0 -0
  170. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/type_router.py +0 -0
  171. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/evaluation/__init__.py +0 -0
  172. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/evaluation/calibration.py +0 -0
  173. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/evolution/__init__.py +0 -0
  174. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/evolution/blind_verifier.py +0 -0
  175. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/evolution/evolution_store.py +0 -0
  176. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/evolution/llm_dispatch.py +0 -0
  177. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/evolution/mutation_generator.py +0 -0
  178. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/evolution/skill_evolver.py +0 -0
  179. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/evolution/triggers.py +0 -0
  180. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/evolution/types.py +0 -0
  181. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/graph/__init__.py +0 -0
  182. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/graph/cozo_backend.py +0 -0
  183. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/__init__.py +0 -0
  184. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/_outcome_common.py +0 -0
  185. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/adapter_base.py +0 -0
  186. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/antigravity_adapter.py +0 -0
  187. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/auto_capture.py +0 -0
  188. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/auto_invoker.py +0 -0
  189. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/auto_parameterize.py +0 -0
  190. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/auto_recall.py +0 -0
  191. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/auto_recall_hook.py +0 -0
  192. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/before_web_hook.py +0 -0
  193. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/claude_code_hooks.py +0 -0
  194. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/codex_assets.py +0 -0
  195. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/codex_hooks.py +0 -0
  196. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/context_payload.py +0 -0
  197. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/copilot_adapter.py +0 -0
  198. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/cross_platform_connector.py +0 -0
  199. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/cursor_adapter.py +0 -0
  200. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/hook_daemon.py +0 -0
  201. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/hook_handlers.py +0 -0
  202. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/ide_connector.py +0 -0
  203. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/memory_protocol.py +0 -0
  204. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/portable_kit.py +0 -0
  205. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/post_tool_async_hook.py +0 -0
  206. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/post_tool_outcome_hook.py +0 -0
  207. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/prewarm_auth.py +0 -0
  208. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/rules_engine.py +0 -0
  209. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/session_registry.py +0 -0
  210. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/stop_outcome_hook.py +0 -0
  211. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/sync_loop.py +0 -0
  212. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/topic_shift_hook.py +0 -0
  213. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/user_prompt_hook.py +0 -0
  214. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/user_prompt_rehash_hook.py +0 -0
  215. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/__init__.py +0 -0
  216. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/auth_middleware.py +0 -0
  217. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/backup.py +0 -0
  218. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/cache_manager.py +0 -0
  219. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/cloud_backup.py +0 -0
  220. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/daemon_identity.py +0 -0
  221. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/data_root.py +0 -0
  222. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/event_bus.py +0 -0
  223. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/heartbeat_monitor.py +0 -0
  224. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/local_diagnostics.py +0 -0
  225. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/pid_manager.py +0 -0
  226. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/process_reaper.py +0 -0
  227. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/rate_limiter.py +0 -0
  228. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/webhook_dispatcher.py +0 -0
  229. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ingestion/__init__.py +0 -0
  230. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ingestion/adapter_manager.py +0 -0
  231. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ingestion/base_adapter.py +0 -0
  232. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ingestion/calendar_adapter.py +0 -0
  233. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ingestion/credentials.py +0 -0
  234. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ingestion/gmail_adapter.py +0 -0
  235. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ingestion/parsers.py +0 -0
  236. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ingestion/transcript_adapter.py +0 -0
  237. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/__init__.py +0 -0
  238. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/adaptive.py +0 -0
  239. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/arm_catalog.py +0 -0
  240. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/assertion_miner.py +0 -0
  241. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/bandit.py +0 -0
  242. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/bandit_cache.py +0 -0
  243. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/behavioral.py +0 -0
  244. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/behavioral_listener.py +0 -0
  245. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/bootstrap.py +0 -0
  246. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/consolidation_cycle.py +0 -0
  247. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/consolidation_quantization_worker.py +0 -0
  248. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/consolidation_worker.py +0 -0
  249. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/cross_project.py +0 -0
  250. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/database.py +0 -0
  251. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/dedup_hnsw.py +0 -0
  252. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/engagement.py +0 -0
  253. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/ensemble.py +0 -0
  254. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/entity_compiler.py +0 -0
  255. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/fact_outcome_joins.py +0 -0
  256. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/features.py +0 -0
  257. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/feedback.py +0 -0
  258. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/forgetting_scheduler.py +0 -0
  259. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/hnsw_dedup.py +0 -0
  260. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/labeler.py +0 -0
  261. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/legacy_migration.py +0 -0
  262. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/lightgbm_subprocess.py +0 -0
  263. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/memory_merge.py +0 -0
  264. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/model_cache.py +0 -0
  265. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/model_rollback.py +0 -0
  266. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/outcome_queue.py +0 -0
  267. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/outcomes.py +0 -0
  268. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/pattern_miner.py +0 -0
  269. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/pattern_miner_constants.py +0 -0
  270. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/project_context.py +0 -0
  271. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/quantization_scheduler.py +0 -0
  272. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/ranker.py +0 -0
  273. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/ranker_common.py +0 -0
  274. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/ranker_retrain_legacy.py +0 -0
  275. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/ranker_retrain_online.py +0 -0
  276. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/reward.py +0 -0
  277. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/reward_archive.py +0 -0
  278. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/reward_boost.py +0 -0
  279. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/reward_proxy.py +0 -0
  280. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/shadow_test.py +0 -0
  281. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/signal_worker.py +0 -0
  282. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/signals.py +0 -0
  283. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/skill_performance_miner.py +0 -0
  284. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/source_quality.py +0 -0
  285. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/trigram_index.py +0 -0
  286. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/workflows.py +0 -0
  287. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/llm/__init__.py +0 -0
  288. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/llm/backbone.py +0 -0
  289. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/math/__init__.py +0 -0
  290. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/math/ebbinghaus.py +0 -0
  291. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/math/fisher.py +0 -0
  292. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/math/fisher_quantized.py +0 -0
  293. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/math/hopfield.py +0 -0
  294. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/math/langevin.py +0 -0
  295. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/math/polar_quant.py +0 -0
  296. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/math/qjl.py +0 -0
  297. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/math/sheaf.py +0 -0
  298. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/math/turbo_quant.py +0 -0
  299. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/__init__.py +0 -0
  300. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/_daemon_proxy.py +0 -0
  301. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/_pool_adapter.py +0 -0
  302. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/_stdin_guard.py +0 -0
  303. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/agent_context.py +0 -0
  304. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/cli_fallback.py +0 -0
  305. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/http_transport.py +0 -0
  306. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/resources.py +0 -0
  307. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/server.py +0 -0
  308. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/shared.py +0 -0
  309. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools.py +0 -0
  310. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_active.py +0 -0
  311. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_code_graph.py +0 -0
  312. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_context.py +0 -0
  313. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_evolution.py +0 -0
  314. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_learning.py +0 -0
  315. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_mesh.py +0 -0
  316. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_optimize.py +0 -0
  317. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_v28.py +0 -0
  318. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_v3.py +0 -0
  319. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_v33.py +0 -0
  320. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mesh/__init__.py +0 -0
  321. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mesh/remote_sync.py +0 -0
  322. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/migrations/__init__.py +0 -0
  323. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/migrations/v3_4_25_to_v3_4_26.py +0 -0
  324. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/NOTICE +0 -0
  325. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/__init__.py +0 -0
  326. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/adapters/__init__.py +0 -0
  327. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/adapters/_agent_registry.py +0 -0
  328. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/adapters/anthropic_adapter.py +0 -0
  329. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/adapters/openai_adapter.py +0 -0
  330. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/adapters/wrap.py +0 -0
  331. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/cache/__init__.py +0 -0
  332. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/cache/boundary_store.py +0 -0
  333. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/cache/centroid_store.py +0 -0
  334. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/cache/context_key.py +0 -0
  335. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/cache/exact.py +0 -0
  336. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/cache/invalidation.py +0 -0
  337. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/cache/key_builder.py +0 -0
  338. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/cache/manager.py +0 -0
  339. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/cache/semantic.py +0 -0
  340. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/cache/stampede.py +0 -0
  341. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/compress/__init__.py +0 -0
  342. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/compress/align.py +0 -0
  343. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/compress/ccr.py +0 -0
  344. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/compress/prose_llmlingua.py +0 -0
  345. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/compress/router.py +0 -0
  346. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/config/__init__.py +0 -0
  347. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/config/defaults.py +0 -0
  348. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/config/schema.py +0 -0
  349. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/config/store.py +0 -0
  350. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/metrics/__init__.py +0 -0
  351. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/metrics/counters.py +0 -0
  352. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/metrics/estimator.py +0 -0
  353. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/metrics/exporters.py +0 -0
  354. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/metrics/persistence.py +0 -0
  355. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/proxy/__init__.py +0 -0
  356. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/proxy/_helpers.py +0 -0
  357. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/proxy/anthropic_surface.py +0 -0
  358. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/proxy/capture.py +0 -0
  359. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/proxy/gemini_surface.py +0 -0
  360. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/proxy/lifecycle.py +0 -0
  361. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/proxy/openai_surface.py +0 -0
  362. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/proxy/server.py +0 -0
  363. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/proxy/vertex_surface.py +0 -0
  364. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/storage/__init__.py +0 -0
  365. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/storage/db.py +0 -0
  366. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/storage/schema.py +0 -0
  367. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/parameterization/__init__.py +0 -0
  368. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/parameterization/pattern_extractor.py +0 -0
  369. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/parameterization/pii_filter.py +0 -0
  370. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/parameterization/prompt_injector.py +0 -0
  371. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/parameterization/prompt_lifecycle.py +0 -0
  372. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/parameterization/soft_prompt_generator.py +0 -0
  373. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/__init__.py +0 -0
  374. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/agentic.py +0 -0
  375. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/ann_index.py +0 -0
  376. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/bm25_channel.py +0 -0
  377. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/bridge_discovery.py +0 -0
  378. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/channel_registry.py +0 -0
  379. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/engine.py +0 -0
  380. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/entity_channel.py +0 -0
  381. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/forgetting_filter.py +0 -0
  382. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/fusion.py +0 -0
  383. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/hopfield_channel.py +0 -0
  384. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/profile_channel.py +0 -0
  385. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/quantization_aware_search.py +0 -0
  386. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/reranker.py +0 -0
  387. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/scope_policy.py +0 -0
  388. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/semantic_channel.py +0 -0
  389. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/strategy.py +0 -0
  390. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/temporal_channel.py +0 -0
  391. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/vector_store.py +0 -0
  392. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/__init__.py +0 -0
  393. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/api.py +0 -0
  394. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/bandit_loops.py +0 -0
  395. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/middleware/__init__.py +0 -0
  396. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/middleware/security_headers.py +0 -0
  397. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/recall_health.py +0 -0
  398. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/recall_serializer.py +0 -0
  399. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/route_mutations.py +0 -0
  400. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/__init__.py +0 -0
  401. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/adapters.py +0 -0
  402. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/agents.py +0 -0
  403. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/backup.py +0 -0
  404. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/behavioral.py +0 -0
  405. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/brain.py +0 -0
  406. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/chat.py +0 -0
  407. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/compliance.py +0 -0
  408. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/data_io.py +0 -0
  409. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/entity.py +0 -0
  410. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/events.py +0 -0
  411. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/evolution.py +0 -0
  412. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/helpers.py +0 -0
  413. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/ingest.py +0 -0
  414. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/insights.py +0 -0
  415. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/learning.py +0 -0
  416. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/lifecycle.py +0 -0
  417. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/memories.py +0 -0
  418. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/mesh.py +0 -0
  419. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/optimize.py +0 -0
  420. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/prewarm.py +0 -0
  421. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/profiles.py +0 -0
  422. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/stats.py +0 -0
  423. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/tiers.py +0 -0
  424. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/timeline.py +0 -0
  425. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/token.py +0 -0
  426. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/v3_api.py +0 -0
  427. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/ws.py +0 -0
  428. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/security_middleware.py +0 -0
  429. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/ui.py +0 -0
  430. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/write_identity.py +0 -0
  431. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/__init__.py +0 -0
  432. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/access_control.py +0 -0
  433. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/access_log.py +0 -0
  434. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/database.py +0 -0
  435. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/embedding_migrator.py +0 -0
  436. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migration_runner.py +0 -0
  437. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migration_v33.py +0 -0
  438. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M001_add_signal_features_columns.py +0 -0
  439. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M002_model_state_history.py +0 -0
  440. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M003_migration_log.py +0 -0
  441. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M004_cross_platform_sync_log.py +0 -0
  442. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M005_bandit_tables.py +0 -0
  443. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M006_action_outcomes_reward.py +0 -0
  444. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M007_pending_outcomes.py +0 -0
  445. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M009_model_lineage.py +0 -0
  446. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M010_evolution_config.py +0 -0
  447. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M011_archive_and_merge.py +0 -0
  448. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M012_shadow_observations.py +0 -0
  449. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M013_bi_temporal_columns.py +0 -0
  450. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M014_v345_scale_ready.py +0 -0
  451. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M015_add_pinned_column.py +0 -0
  452. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M016_add_scope_support.py +0 -0
  453. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M017_ccq_scope_column.py +0 -0
  454. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M018_ingestion_operations.py +0 -0
  455. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M019_derivation_lineage.py +0 -0
  456. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M020_model_state_integrity.py +0 -0
  457. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/__init__.py +0 -0
  458. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations.py +0 -0
  459. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/models.py +0 -0
  460. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/quantized_store.py +0 -0
  461. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/schema.py +0 -0
  462. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/schema_code_graph.py +0 -0
  463. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/schema_v32.py +0 -0
  464. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/schema_v3410.py +0 -0
  465. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/schema_v3411.py +0 -0
  466. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/schema_v343.py +0 -0
  467. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/schema_v345.py +0 -0
  468. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/schema_v347.py +0 -0
  469. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/v2_migrator.py +0 -0
  470. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/trust/__init__.py +0 -0
  471. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/trust/gate.py +0 -0
  472. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/trust/provenance.py +0 -0
  473. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/trust/scorer.py +0 -0
  474. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/trust/signals.py +0 -0
  475. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/css/brain.css +0 -0
  476. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/css/legacy-dashboard.css +0 -0
  477. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/css/neural-glass.css +0 -0
  478. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/favicon.svg +0 -0
  479. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/index.html +0 -0
  480. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/agents.js +0 -0
  481. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/auto-settings.js +0 -0
  482. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/brain.js +0 -0
  483. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/clusters.js +0 -0
  484. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/compliance.js +0 -0
  485. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/core.js +0 -0
  486. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/dashboard.js +0 -0
  487. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/events.js +0 -0
  488. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/fact-detail.js +0 -0
  489. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/feedback.js +0 -0
  490. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/graph-event-bus.js +0 -0
  491. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/graph-filters.js +0 -0
  492. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/graph-ui.js +0 -0
  493. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/ide-status.js +0 -0
  494. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/init.js +0 -0
  495. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/knowledge-graph.js +0 -0
  496. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/lifecycle.js +0 -0
  497. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/math-health.js +0 -0
  498. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/memories.js +0 -0
  499. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/memory-chat.js +0 -0
  500. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/memory-timeline.js +0 -0
  501. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/modal.js +0 -0
  502. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/ng-entities.js +0 -0
  503. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/ng-health.js +0 -0
  504. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/ng-ingestion.js +0 -0
  505. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/ng-mesh.js +0 -0
  506. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/ng-shell.js +0 -0
  507. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/ng-skills.js +0 -0
  508. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/optimize.js +0 -0
  509. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/profiles.js +0 -0
  510. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/quick-actions.js +0 -0
  511. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/recall-lab.js +0 -0
  512. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/search.js +0 -0
  513. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/settings.js +0 -0
  514. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/timeline.js +0 -0
  515. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/trust-dashboard.js +0 -0
  516. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/bootstrap-icons/bootstrap-icons.css +0 -0
  517. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/bootstrap-icons/fonts/bootstrap-icons.woff +0 -0
  518. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2 +0 -0
  519. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/bootstrap.bundle.min.js +0 -0
  520. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/bootstrap.min.css +0 -0
  521. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/d3.v7.min.js +0 -0
  522. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/graphology-library.min.js +0 -0
  523. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/graphology.umd.min.js +0 -0
  524. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/inter-ui/inter-variable.min.css +0 -0
  525. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/inter-ui/variable/InterVariable-Italic.woff2 +0 -0
  526. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/inter-ui/variable/InterVariable.woff2 +0 -0
  527. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/sigma.min.js +0 -0
  528. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/vector/__init__.py +0 -0
  529. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/vector/lancedb_backend.py +0 -0
  530. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory.egg-info/SOURCES.txt +0 -0
  531. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory.egg-info/dependency_links.txt +0 -0
  532. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory.egg-info/entry_points.txt +0 -0
  533. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory.egg-info/requires.txt +0 -0
  534. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory.egg-info/top_level.txt +0 -0
  535. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_auto_hooks.py +0 -0
  536. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_before_web_hook.py +0 -0
  537. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_behavioral_full.py +0 -0
  538. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_claude_hooks.py +0 -0
  539. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_cli_core.py +0 -0
  540. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_cli_json.py +0 -0
  541. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_cli_v33.py +0 -0
  542. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_compliance_full.py +0 -0
  543. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_config_system.py +0 -0
  544. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_dashboard_preserve_embedding.py +0 -0
  545. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_engine_hooks.py +0 -0
  546. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_event_bus.py +0 -0
  547. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_features.py +0 -0
  548. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_final_locomo_mini.py +0 -0
  549. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_graph_integrity.py +0 -0
  550. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_hook_handlers.py +0 -0
  551. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_ide_connector.py +0 -0
  552. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_infra.py +0 -0
  553. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_injection.py +0 -0
  554. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_learning_advanced.py +0 -0
  555. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_learning_collectors.py +0 -0
  556. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_llm_provider.py +0 -0
  557. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_mcp_server.py +0 -0
  558. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_migration.py +0 -0
  559. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_mode_switch_preservation.py +0 -0
  560. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_post_install.py +0 -0
  561. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_ranker.py +0 -0
  562. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_resource_lifecycle.py +0 -0
  563. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_topic_shift_hook.py +0 -0
  564. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_trust_full.py +0 -0
  565. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_v3_api.py +0 -0
  566. {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_version_consistency.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: superlocalmemory
3
- Version: 3.7.1
3
+ Version: 3.7.2
4
4
  Summary: Local-first agent memory with auditable hybrid retrieval
5
5
  Author-email: Varun Pratap Bhardwaj <admin@superlocalmemory.com>
6
6
  License-Expression: AGPL-3.0-or-later
@@ -104,10 +104,10 @@ Dynamic: license-file
104
104
  <img src="https://superlocalmemory.com/assets/logo-mark.png" alt="SuperLocalMemory" width="200"/>
105
105
  </p>
106
106
 
107
- <h1 align="center">SuperLocalMemory V3.7.1</h1>
107
+ <h1 align="center">SuperLocalMemory V3.7.2</h1>
108
108
  <p align="center"><strong>Cache. Compress. Remember. Three surfaces — proxy, MCP tools, or skill. Every setup covered.</strong><br/>
109
109
  <em>Local-first agent memory with explicit operating modes, auditable retrieval, and optional Optimize tools.</em></p>
110
- <p align="center"><code>v3.7.1</code> — <strong>Installer-parity hotfix; release witnesses required before outreach.</strong><br/>
110
+ <p align="center"><code>v3.7.2</code> — <strong>Reliability release: durable local writes, cross-platform installation, and bounded enrichment recovery.</strong><br/>
111
111
  Proxy: <code>slm wrap claude</code> &nbsp;·&nbsp; MCP: add <code>slm_compress</code> to your config &nbsp;·&nbsp; Skill: zero-config</p>
112
112
  <p align="center"><strong>3 public research preprints</strong> (arXiv + Zenodo archives) · <a href="https://arxiv.org/abs/2603.02240">arXiv:2603.02240</a> · <a href="https://arxiv.org/abs/2603.14588">arXiv:2603.14588</a> · <a href="https://arxiv.org/abs/2604.04514">arXiv:2604.04514</a></p>
113
113
 
@@ -2,10 +2,10 @@
2
2
  <img src="https://superlocalmemory.com/assets/logo-mark.png" alt="SuperLocalMemory" width="200"/>
3
3
  </p>
4
4
 
5
- <h1 align="center">SuperLocalMemory V3.7.1</h1>
5
+ <h1 align="center">SuperLocalMemory V3.7.2</h1>
6
6
  <p align="center"><strong>Cache. Compress. Remember. Three surfaces — proxy, MCP tools, or skill. Every setup covered.</strong><br/>
7
7
  <em>Local-first agent memory with explicit operating modes, auditable retrieval, and optional Optimize tools.</em></p>
8
- <p align="center"><code>v3.7.1</code> — <strong>Installer-parity hotfix; release witnesses required before outreach.</strong><br/>
8
+ <p align="center"><code>v3.7.2</code> — <strong>Reliability release: durable local writes, cross-platform installation, and bounded enrichment recovery.</strong><br/>
9
9
  Proxy: <code>slm wrap claude</code> &nbsp;·&nbsp; MCP: add <code>slm_compress</code> to your config &nbsp;·&nbsp; Skill: zero-config</p>
10
10
  <p align="center"><strong>3 public research preprints</strong> (arXiv + Zenodo archives) · <a href="https://arxiv.org/abs/2603.02240">arXiv:2603.02240</a> · <a href="https://arxiv.org/abs/2603.14588">arXiv:2603.14588</a> · <a href="https://arxiv.org/abs/2604.04514">arXiv:2604.04514</a></p>
11
11
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "superlocalmemory"
3
- version = "3.7.1"
3
+ version = "3.7.2"
4
4
  description = "Local-first agent memory with auditable hybrid retrieval"
5
5
  readme = "README.md"
6
6
  license = "AGPL-3.0-or-later"
@@ -32,7 +32,7 @@ if "OMP_NUM_THREADS" not in os.environ:
32
32
  os.environ["OMP_NUM_THREADS"] = "2"
33
33
  # ---------------------------------------------------------------------------
34
34
 
35
- __version__ = "3.7.1"
35
+ __version__ = "3.7.2"
36
36
 
37
37
  _REQUIRED_VERSIONS = {
38
38
  "sentence_transformers": "5.3.0",
@@ -70,7 +70,13 @@ def _load_embedding_model(name: str) -> tuple:
70
70
 
71
71
  Returns (model, backend_name) or (None, "").
72
72
  """
73
- from sentence_transformers import SentenceTransformer
73
+ try:
74
+ from sentence_transformers import SentenceTransformer
75
+ except Exception:
76
+ # Dependency/version errors must stay inside the JSON-lines protocol.
77
+ # Letting this import escape kills the worker before it can explain the
78
+ # failure, which the parent previously mislabeled as a long timeout.
79
+ return None, ""
74
80
 
75
81
  for backend in _embedding_backend_order():
76
82
  try:
@@ -295,6 +295,8 @@ class EmbeddingService:
295
295
  never hangs indefinitely on cold model loads or network issues.
296
296
  """
297
297
  with self._lock:
298
+ if not self._available:
299
+ return None
298
300
  # Worker recycling: restart after N requests to prevent
299
301
  # C++ allocator fragmentation over long-running sessions.
300
302
  if self._request_count >= _WORKER_RECYCLE_AFTER and self._worker_proc is not None:
@@ -339,6 +341,12 @@ class EmbeddingService:
339
341
  resp = json.loads(resp_line)
340
342
  if not resp.get("ok"):
341
343
  logger.warning("Worker error: %s", resp.get("error"))
344
+ # A well-formed worker error is a terminal local
345
+ # dependency/model failure, not a transient pipe race.
346
+ # Disable this service and terminate the child so every
347
+ # recall does not respawn a heavyweight failing process.
348
+ self._available = False
349
+ self._kill_worker()
342
350
  return None
343
351
  self._reset_idle_timer()
344
352
  self._request_count += 1
@@ -24,6 +24,7 @@ from typing import Any
24
24
  from superlocalmemory.core.config import CANONICAL_RECALL_LIMIT, SLMConfig
25
25
  from superlocalmemory.core.engine_capabilities import Capabilities, CapabilityError
26
26
  from superlocalmemory.core.modes import get_capabilities
27
+ from superlocalmemory.learning.outcome_queue import RecallEvent, enqueue_recall
27
28
  from superlocalmemory.storage.models import (
28
29
  AtomicFact, MemoryRecord, Mode, RecallResponse,
29
30
  )
@@ -664,9 +665,6 @@ class MemoryEngine:
664
665
  # recall correctness (LLD-02 §4.9, LLD-08 §4.1).
665
666
  if session_id:
666
667
  try:
667
- from superlocalmemory.learning.outcome_queue import (
668
- RecallEvent, enqueue_recall,
669
- )
670
668
  fact_ids = tuple(
671
669
  getattr(r.fact, "fact_id", "") or ""
672
670
  for r in getattr(response, "results", [])
@@ -388,11 +388,6 @@ def _init_spreading_activation(
388
388
  vector_store: Any,
389
389
  ) -> Any | None:
390
390
  """Create SpreadingActivation for Phase 3 5th retrieval channel."""
391
- # V3.3.21: Guard against None vector_store. Without embeddings, SA's
392
- # search() crashes with "'NoneType' has no attribute 'search'".
393
- if vector_store is None:
394
- logger.debug("SpreadingActivation skipped: no vector_store")
395
- return None
396
391
  try:
397
392
  from superlocalmemory.retrieval.spreading_activation import (
398
393
  SpreadingActivation,
@@ -15,12 +15,13 @@ Design notes:
15
15
  available before we even try — better to defer than thrash.
16
16
  - Lock file lives at ``~/.superlocalmemory/ram_lock.sem`` by default,
17
17
  tests may monkeypatch ``RAM_LOCK_PATH``.
18
- - POSIX only; Windows build is deferred per LLD-00 §7 and MASTER-PLAN H-01.
18
+ - Uses a standard-library advisory lock on POSIX and Windows. The lock is
19
+ deliberately file-backed so independent daemon, CLI, and worker processes
20
+ share the same RAM reservation.
19
21
  """
20
22
 
21
23
  from __future__ import annotations
22
24
 
23
- import fcntl
24
25
  import os
25
26
  import time
26
27
  from contextlib import contextmanager
@@ -29,6 +30,11 @@ from typing import Iterator
29
30
 
30
31
  import psutil
31
32
 
33
+ try: # POSIX advisory locks (macOS/Linux)
34
+ import fcntl as _fcntl
35
+ except ImportError: # Windows uses the stdlib byte-range equivalent below.
36
+ _fcntl = None
37
+
32
38
  # Public override retained for tests and embedders. ``None`` means resolve the
33
39
  # lock dynamically so a long-lived process can switch canonical namespaces
34
40
  # without retaining the first root it observed.
@@ -44,6 +50,38 @@ def _ram_lock_path() -> Path:
44
50
  return state_path("ram_lock.sem")
45
51
 
46
52
 
53
+ def _acquire_lock(fd: int) -> None:
54
+ """Acquire one non-blocking cross-process lock for the semaphore."""
55
+ if _fcntl is not None:
56
+ _fcntl.flock(fd, _fcntl.LOCK_EX | _fcntl.LOCK_NB)
57
+ return
58
+
59
+ import msvcrt
60
+
61
+ # ``msvcrt.locking`` cannot reserve an empty file. The marker byte is
62
+ # purely structural; the human-readable audit marker is written after the
63
+ # reservation is acquired.
64
+ if os.fstat(fd).st_size == 0:
65
+ os.write(fd, b"\0")
66
+ os.lseek(fd, 0, os.SEEK_SET)
67
+ try:
68
+ msvcrt.locking(fd, msvcrt.LK_NBLCK, 1)
69
+ except OSError as exc:
70
+ raise BlockingIOError("RAM reservation is already held") from exc
71
+
72
+
73
+ def _release_lock(fd: int) -> None:
74
+ """Release a reservation acquired by :func:`_acquire_lock`."""
75
+ if _fcntl is not None:
76
+ _fcntl.flock(fd, _fcntl.LOCK_UN)
77
+ return
78
+
79
+ import msvcrt
80
+
81
+ os.lseek(fd, 0, os.SEEK_SET)
82
+ msvcrt.locking(fd, msvcrt.LK_UNLCK, 1)
83
+
84
+
47
85
  @contextmanager
48
86
  def ram_reservation(
49
87
  name: str,
@@ -96,7 +134,7 @@ def ram_reservation(
96
134
  deadline = time.time() + timeout_s
97
135
  while True:
98
136
  try:
99
- fcntl.flock(fd, fcntl.LOCK_EX | fcntl.LOCK_NB)
137
+ _acquire_lock(fd)
100
138
  break
101
139
  except BlockingIOError:
102
140
  if time.time() >= deadline:
@@ -114,7 +152,7 @@ def ram_reservation(
114
152
  yield
115
153
  finally:
116
154
  try:
117
- fcntl.flock(fd, fcntl.LOCK_UN)
155
+ _release_lock(fd)
118
156
  finally:
119
157
  os.close(fd)
120
158
 
@@ -20,7 +20,6 @@ Author: Varun Pratap Bhardwaj / Qualixar
20
20
 
21
21
  from __future__ import annotations
22
22
 
23
- import fcntl
24
23
  import logging
25
24
  import os
26
25
  import sqlite3
@@ -35,8 +34,44 @@ from superlocalmemory.core.security_primitives import safe_resolve_identifier
35
34
 
36
35
  logger = logging.getLogger(__name__)
37
36
 
37
+ try: # POSIX advisory locks (macOS/Linux)
38
+ import fcntl as _fcntl
39
+ except ImportError: # Windows has no fcntl; use its stdlib byte-range lock.
40
+ _fcntl = None
38
41
 
39
- # M-P-07: path-component hints for filesystems where ``fcntl.flock`` is
42
+
43
+ def _acquire_profile_lock(fd: int) -> None:
44
+ """Acquire a non-blocking cross-process lock on every supported OS."""
45
+ if _fcntl is not None:
46
+ _fcntl.flock(fd, _fcntl.LOCK_EX | _fcntl.LOCK_NB)
47
+ return
48
+
49
+ import msvcrt
50
+
51
+ # ``msvcrt.locking`` cannot lock an empty file. Reserve one marker byte;
52
+ # the file content is diagnostic only and never a correctness signal.
53
+ if os.fstat(fd).st_size == 0:
54
+ os.write(fd, b"\0")
55
+ os.lseek(fd, 0, os.SEEK_SET)
56
+ try:
57
+ msvcrt.locking(fd, msvcrt.LK_NBLCK, 1)
58
+ except OSError as exc:
59
+ raise BlockingIOError("evolution profile lock is held") from exc
60
+
61
+
62
+ def _release_profile_lock(fd: int) -> None:
63
+ """Release the lock acquired by :func:`_acquire_profile_lock`."""
64
+ if _fcntl is not None:
65
+ _fcntl.flock(fd, _fcntl.LOCK_UN)
66
+ return
67
+
68
+ import msvcrt
69
+
70
+ os.lseek(fd, 0, os.SEEK_SET)
71
+ msvcrt.locking(fd, msvcrt.LK_UNLCK, 1)
72
+
73
+
74
+ # M-P-07: path-component hints for filesystems where advisory locking is
40
75
  # known to degrade to a no-op. We do NOT abort — some users accept the
41
76
  # risk — but we emit a one-shot warning so a double-cycle is at least
42
77
  # attributable to a known root cause. If/when we ship a threading-only
@@ -127,7 +162,7 @@ class EvolutionBudget:
127
162
  )
128
163
  self._lock_path = safe_stem.with_suffix(".lock")
129
164
  # M-P-07: warn once per lock-path when we detect the lock sits on
130
- # a known sync-backed filesystem. ``fcntl.flock`` silently
165
+ # a known sync-backed filesystem. Advisory locking silently
131
166
  # degrades on iCloud/OneDrive/Dropbox — two concurrent cycles
132
167
  # would each acquire and burn LLM budget. Documentation-only for
133
168
  # now; a future release may refuse to run until the lock_dir is
@@ -141,7 +176,7 @@ class EvolutionBudget:
141
176
  if key not in _WARNED_SYNC_PATHS:
142
177
  _WARNED_SYNC_PATHS.add(key)
143
178
  logger.warning(
144
- "evolution lock at %s lives under %r — fcntl.flock "
179
+ "evolution lock at %s lives under %r — advisory locking "
145
180
  "may silently no-op on sync-backed filesystems. "
146
181
  "Concurrent cycles could double-bill LLM cost. Move "
147
182
  "the lock_dir off the sync root to make single-flight "
@@ -258,12 +293,12 @@ class EvolutionBudget:
258
293
  f"cap={MAX_CYCLES_PER_DAY}",
259
294
  )
260
295
 
261
- # Single-flight lock (non-blocking flock). A second concurrent
296
+ # Single-flight lock (non-blocking advisory lock). A second concurrent
262
297
  # acquire raises BlockingIOError — surface as BudgetExhausted.
263
298
  fd = os.open(str(self._lock_path), os.O_CREAT | os.O_RDWR, 0o600)
264
299
  try:
265
300
  try:
266
- fcntl.flock(fd, fcntl.LOCK_EX | fcntl.LOCK_NB)
301
+ _acquire_profile_lock(fd)
267
302
  except BlockingIOError as e:
268
303
  os.close(fd)
269
304
  raise BudgetExhausted(
@@ -296,7 +331,7 @@ class EvolutionBudget:
296
331
  # Release lock before propagating — a failed cycle-record should
297
332
  # not leave the lock dangling.
298
333
  try:
299
- fcntl.flock(fd, fcntl.LOCK_UN)
334
+ _release_profile_lock(fd)
300
335
  finally:
301
336
  os.close(fd)
302
337
  self._lock_fd = None
@@ -312,7 +347,7 @@ class EvolutionBudget:
312
347
  finally:
313
348
  self._cycle_start_mono = None
314
349
  try:
315
- fcntl.flock(fd, fcntl.LOCK_UN)
350
+ _release_profile_lock(fd)
316
351
  finally:
317
352
  try:
318
353
  os.close(fd)
@@ -149,35 +149,52 @@ def register_core_tools(server, get_engine: Callable) -> None:
149
149
  # is_daemon_running() and daemon_request() both use blocking urllib
150
150
  # against the same uvicorn server — run in threads so the MCP
151
151
  # event loop stays unblocked (#34 class bug).
152
- if await _asyncio.to_thread(is_daemon_running):
153
- resp = await _asyncio.to_thread(daemon_request, "POST", "/remember", {
154
- "content": content, "tags": tags, "metadata": meta,
155
- "scope": scope, "shared_with": _shared_list,
156
- "session_id": session_id,
157
- "idempotency_key": effective_idempotency_key or None,
158
- })
159
- if resp and (resp.get("fact_ids") is not None or resp.get("ok")):
160
- fids = resp.get("fact_ids") or []
161
- materialization_state = resp.get("materialization_state")
162
- if materialization_state is None:
163
- materialization_state = (
164
- "complete" if resp.get("status") == "stored" else "queryable"
165
- )
166
- pending = materialization_state != "complete"
167
- return {
168
- "success": True,
169
- "fact_ids": fids,
170
- "count": int(resp.get("count", len(fids))),
171
- "pending": pending,
172
- "pending_id": resp.get("pending_id") if pending else None,
173
- "operation_id": resp.get("operation_id"),
174
- "materialization_state": materialization_state,
175
- "message": (
176
- "Stored through canonical daemon ingestion."
177
- if not pending
178
- else "Queryable now; canonical enrichment is still running."
179
- ),
180
- }
152
+ daemon_owned = await _asyncio.to_thread(is_daemon_running)
153
+ if daemon_owned:
154
+ # A positively identified daemon owns this database. Never
155
+ # spawn a WorkerPool writer after a transient daemon failure:
156
+ # that creates the competing writers which SQLite WAL cannot
157
+ # support. Retry the canonical path, then return an explicit
158
+ # retryable result to the MCP client.
159
+ for attempt in range(3):
160
+ resp = await _asyncio.to_thread(daemon_request, "POST", "/remember", {
161
+ "content": content, "tags": tags, "metadata": meta,
162
+ "scope": scope, "shared_with": _shared_list,
163
+ "session_id": session_id,
164
+ "idempotency_key": effective_idempotency_key or None,
165
+ })
166
+ if resp and (resp.get("fact_ids") is not None or resp.get("ok")):
167
+ fids = resp.get("fact_ids") or []
168
+ materialization_state = resp.get("materialization_state")
169
+ if materialization_state is None:
170
+ materialization_state = (
171
+ "complete" if resp.get("status") == "stored" else "queryable"
172
+ )
173
+ pending = materialization_state != "complete"
174
+ return {
175
+ "success": True,
176
+ "fact_ids": fids,
177
+ "count": int(resp.get("count", len(fids))),
178
+ "pending": pending,
179
+ "pending_id": resp.get("pending_id") if pending else None,
180
+ "operation_id": resp.get("operation_id"),
181
+ "materialization_state": materialization_state,
182
+ "message": (
183
+ "Stored through canonical daemon ingestion."
184
+ if not pending
185
+ else "Queryable now; canonical enrichment is still running."
186
+ ),
187
+ }
188
+ if attempt < 2:
189
+ await _asyncio.sleep(0.05 * (attempt + 1))
190
+ return {
191
+ "success": False,
192
+ "retryable": True,
193
+ "error": (
194
+ "Canonical daemon is temporarily unavailable; retry the "
195
+ "same remember operation without starting a second writer."
196
+ ),
197
+ }
181
198
  except Exception as dexc:
182
199
  logger.debug("MCP remember via daemon failed, pending fallback: %s", dexc)
183
200