superlocalmemory 3.4.32__tar.gz → 3.4.34__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 (450) hide show
  1. {superlocalmemory-3.4.32/src/superlocalmemory.egg-info → superlocalmemory-3.4.34}/PKG-INFO +1 -1
  2. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/pyproject.toml +1 -1
  3. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/__init__.py +1 -1
  4. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/cli/commands.py +2 -2
  5. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/cli/setup_wizard.py +6 -6
  6. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/config.py +31 -3
  7. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/embedding_worker.py +1 -1
  8. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/bandit.py +18 -0
  9. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/reward_proxy.py +7 -2
  10. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/mcp/tools_v3.py +14 -2
  11. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/routes/v3_api.py +1 -1
  12. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34/src/superlocalmemory.egg-info}/PKG-INFO +1 -1
  13. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/AUTHORS.md +0 -0
  14. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/LICENSE +0 -0
  15. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/NOTICE +0 -0
  16. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/README.md +0 -0
  17. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/setup.cfg +0 -0
  18. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/attribution/__init__.py +0 -0
  19. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/attribution/mathematical_dna.py +0 -0
  20. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/attribution/signer.py +0 -0
  21. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/attribution/watermark.py +0 -0
  22. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/cli/__init__.py +0 -0
  23. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/cli/context_commands.py +0 -0
  24. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/cli/daemon.py +0 -0
  25. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/cli/db_migrate.py +0 -0
  26. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/cli/doctor_cmd.py +0 -0
  27. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/cli/escape_hatch.py +0 -0
  28. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/cli/ingest_cmd.py +0 -0
  29. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/cli/json_output.py +0 -0
  30. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/cli/main.py +0 -0
  31. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/cli/migrate_cmd.py +0 -0
  32. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/cli/pending_store.py +0 -0
  33. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/cli/post_install.py +0 -0
  34. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/cli/service_installer.py +0 -0
  35. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/cli/version_banner.py +0 -0
  36. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/cli/wizard_v3426_options.py +0 -0
  37. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/code_graph/__init__.py +0 -0
  38. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/code_graph/blast_radius.py +0 -0
  39. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/code_graph/bridge/__init__.py +0 -0
  40. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/code_graph/bridge/entity_resolver.py +0 -0
  41. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/code_graph/bridge/event_listeners.py +0 -0
  42. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/code_graph/bridge/fact_enricher.py +0 -0
  43. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/code_graph/bridge/hebbian_linker.py +0 -0
  44. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/code_graph/bridge/temporal_checker.py +0 -0
  45. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/code_graph/changes.py +0 -0
  46. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/code_graph/communities.py +0 -0
  47. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/code_graph/config.py +0 -0
  48. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/code_graph/database.py +0 -0
  49. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/code_graph/extractors/__init__.py +0 -0
  50. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/code_graph/extractors/python.py +0 -0
  51. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/code_graph/extractors/typescript.py +0 -0
  52. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/code_graph/flows.py +0 -0
  53. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/code_graph/git_hooks.py +0 -0
  54. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/code_graph/graph_engine.py +0 -0
  55. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/code_graph/graph_store.py +0 -0
  56. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/code_graph/incremental.py +0 -0
  57. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/code_graph/models.py +0 -0
  58. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/code_graph/parser.py +0 -0
  59. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/code_graph/resolver.py +0 -0
  60. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/code_graph/search.py +0 -0
  61. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/code_graph/service.py +0 -0
  62. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/code_graph/watcher.py +0 -0
  63. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/compliance/__init__.py +0 -0
  64. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/compliance/abac.py +0 -0
  65. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/compliance/audit.py +0 -0
  66. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/compliance/eu_ai_act.py +0 -0
  67. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/compliance/gdpr.py +0 -0
  68. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/compliance/lifecycle.py +0 -0
  69. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/compliance/retention.py +0 -0
  70. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/compliance/scheduler.py +0 -0
  71. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/__init__.py +0 -0
  72. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/clock_monitor.py +0 -0
  73. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/consolidation_engine.py +0 -0
  74. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/context_cache.py +0 -0
  75. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/db_pool.py +0 -0
  76. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/embeddings.py +0 -0
  77. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/engine.py +0 -0
  78. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/engine_capabilities.py +0 -0
  79. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/engine_lock.py +0 -0
  80. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/engine_wiring.py +0 -0
  81. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/error_catalog.py +0 -0
  82. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/error_envelope.py +0 -0
  83. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/fact_consolidator.py +0 -0
  84. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/file_lock.py +0 -0
  85. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/graph_analyzer.py +0 -0
  86. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/graph_pruner.py +0 -0
  87. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/health_monitor.py +0 -0
  88. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/hooks.py +0 -0
  89. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/loop_watchdog.py +0 -0
  90. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/maintenance.py +0 -0
  91. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/maintenance_scheduler.py +0 -0
  92. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/modes.py +0 -0
  93. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/ollama_embedder.py +0 -0
  94. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/platform_utils.py +0 -0
  95. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/priority_queue.py +0 -0
  96. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/profiles.py +0 -0
  97. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/queue_dispatcher.py +0 -0
  98. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/ram_lock.py +0 -0
  99. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/rate_limit.py +0 -0
  100. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/recall_gate.py +0 -0
  101. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/recall_pipeline.py +0 -0
  102. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/recall_queue.py +0 -0
  103. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/recall_worker.py +0 -0
  104. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/registry.py +0 -0
  105. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/reranker_worker.py +0 -0
  106. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/safe_fs.py +0 -0
  107. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/security_primitives.py +0 -0
  108. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/shadow_router.py +0 -0
  109. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/slm_disabled.py +0 -0
  110. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/slmignore.py +0 -0
  111. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/store_pipeline.py +0 -0
  112. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/summarizer.py +0 -0
  113. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/tier_manager.py +0 -0
  114. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/topic_signature.py +0 -0
  115. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/core/worker_pool.py +0 -0
  116. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/dynamics/__init__.py +0 -0
  117. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/dynamics/activation_guided_quantization.py +0 -0
  118. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/dynamics/eap_scheduler.py +0 -0
  119. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/dynamics/ebbinghaus_langevin_coupling.py +0 -0
  120. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/dynamics/fisher_langevin_coupling.py +0 -0
  121. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/encoding/__init__.py +0 -0
  122. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/encoding/auto_linker.py +0 -0
  123. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/encoding/cognitive_consolidator.py +0 -0
  124. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/encoding/consolidator.py +0 -0
  125. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/encoding/context_generator.py +0 -0
  126. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/encoding/emotional.py +0 -0
  127. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/encoding/entity_resolver.py +0 -0
  128. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/encoding/entropy_gate.py +0 -0
  129. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/encoding/fact_extractor.py +0 -0
  130. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/encoding/foresight.py +0 -0
  131. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/encoding/graph_builder.py +0 -0
  132. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/encoding/observation_builder.py +0 -0
  133. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/encoding/scene_builder.py +0 -0
  134. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/encoding/signal_inference.py +0 -0
  135. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/encoding/temporal_parser.py +0 -0
  136. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/encoding/temporal_validator.py +0 -0
  137. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/encoding/type_router.py +0 -0
  138. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/evolution/__init__.py +0 -0
  139. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/evolution/blind_verifier.py +0 -0
  140. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/evolution/budget.py +0 -0
  141. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/evolution/evolution_store.py +0 -0
  142. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/evolution/llm_dispatch.py +0 -0
  143. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/evolution/mutation_generator.py +0 -0
  144. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/evolution/skill_evolver.py +0 -0
  145. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/evolution/triggers.py +0 -0
  146. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/evolution/types.py +0 -0
  147. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/hooks/__init__.py +0 -0
  148. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/hooks/_outcome_common.py +0 -0
  149. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/hooks/adapter_base.py +0 -0
  150. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/hooks/antigravity_adapter.py +0 -0
  151. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/hooks/auto_capture.py +0 -0
  152. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/hooks/auto_invoker.py +0 -0
  153. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/hooks/auto_parameterize.py +0 -0
  154. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/hooks/auto_recall.py +0 -0
  155. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/hooks/claude_code_hooks.py +0 -0
  156. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/hooks/context_payload.py +0 -0
  157. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/hooks/copilot_adapter.py +0 -0
  158. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/hooks/cross_platform_connector.py +0 -0
  159. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/hooks/cursor_adapter.py +0 -0
  160. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/hooks/hook_handlers.py +0 -0
  161. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/hooks/ide_connector.py +0 -0
  162. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/hooks/post_tool_async_hook.py +0 -0
  163. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/hooks/post_tool_outcome_hook.py +0 -0
  164. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/hooks/prewarm_auth.py +0 -0
  165. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/hooks/rules_engine.py +0 -0
  166. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/hooks/session_registry.py +0 -0
  167. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/hooks/stop_outcome_hook.py +0 -0
  168. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/hooks/sync_loop.py +0 -0
  169. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/hooks/user_prompt_hook.py +0 -0
  170. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/hooks/user_prompt_rehash_hook.py +0 -0
  171. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/infra/__init__.py +0 -0
  172. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/infra/auth_middleware.py +0 -0
  173. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/infra/backup.py +0 -0
  174. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/infra/cache_manager.py +0 -0
  175. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/infra/cloud_backup.py +0 -0
  176. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/infra/event_bus.py +0 -0
  177. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/infra/heartbeat_monitor.py +0 -0
  178. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/infra/pid_manager.py +0 -0
  179. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/infra/process_reaper.py +0 -0
  180. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/infra/rate_limiter.py +0 -0
  181. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/infra/webhook_dispatcher.py +0 -0
  182. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ingestion/__init__.py +0 -0
  183. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ingestion/adapter_manager.py +0 -0
  184. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ingestion/base_adapter.py +0 -0
  185. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ingestion/calendar_adapter.py +0 -0
  186. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ingestion/credentials.py +0 -0
  187. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ingestion/gmail_adapter.py +0 -0
  188. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ingestion/parsers.py +0 -0
  189. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ingestion/transcript_adapter.py +0 -0
  190. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/__init__.py +0 -0
  191. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/adaptive.py +0 -0
  192. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/arm_catalog.py +0 -0
  193. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/assertion_miner.py +0 -0
  194. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/bandit_cache.py +0 -0
  195. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/behavioral.py +0 -0
  196. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/behavioral_listener.py +0 -0
  197. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/bootstrap.py +0 -0
  198. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/consolidation_cycle.py +0 -0
  199. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/consolidation_quantization_worker.py +0 -0
  200. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/consolidation_worker.py +0 -0
  201. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/cross_project.py +0 -0
  202. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/database.py +0 -0
  203. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/dedup_hnsw.py +0 -0
  204. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/engagement.py +0 -0
  205. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/ensemble.py +0 -0
  206. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/entity_compiler.py +0 -0
  207. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/fact_outcome_joins.py +0 -0
  208. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/features.py +0 -0
  209. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/feedback.py +0 -0
  210. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/forgetting_scheduler.py +0 -0
  211. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/hnsw_dedup.py +0 -0
  212. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/labeler.py +0 -0
  213. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/legacy_migration.py +0 -0
  214. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/memory_merge.py +0 -0
  215. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/model_cache.py +0 -0
  216. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/model_rollback.py +0 -0
  217. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/outcome_queue.py +0 -0
  218. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/outcomes.py +0 -0
  219. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/pattern_miner.py +0 -0
  220. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/pattern_miner_constants.py +0 -0
  221. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/project_context.py +0 -0
  222. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/quantization_scheduler.py +0 -0
  223. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/ranker.py +0 -0
  224. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/ranker_common.py +0 -0
  225. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/ranker_retrain_legacy.py +0 -0
  226. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/ranker_retrain_online.py +0 -0
  227. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/reward.py +0 -0
  228. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/reward_archive.py +0 -0
  229. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/reward_boost.py +0 -0
  230. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/shadow_test.py +0 -0
  231. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/signal_worker.py +0 -0
  232. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/signals.py +0 -0
  233. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/skill_performance_miner.py +0 -0
  234. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/source_quality.py +0 -0
  235. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/trigram_index.py +0 -0
  236. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/learning/workflows.py +0 -0
  237. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/llm/__init__.py +0 -0
  238. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/llm/backbone.py +0 -0
  239. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/math/__init__.py +0 -0
  240. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/math/ebbinghaus.py +0 -0
  241. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/math/fisher.py +0 -0
  242. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/math/fisher_quantized.py +0 -0
  243. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/math/hopfield.py +0 -0
  244. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/math/langevin.py +0 -0
  245. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/math/polar_quant.py +0 -0
  246. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/math/qjl.py +0 -0
  247. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/math/sheaf.py +0 -0
  248. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/math/turbo_quant.py +0 -0
  249. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/mcp/__init__.py +0 -0
  250. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/mcp/_daemon_proxy.py +0 -0
  251. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/mcp/_pool_adapter.py +0 -0
  252. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/mcp/resources.py +0 -0
  253. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/mcp/server.py +0 -0
  254. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/mcp/shared.py +0 -0
  255. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/mcp/tools.py +0 -0
  256. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/mcp/tools_active.py +0 -0
  257. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/mcp/tools_code_graph.py +0 -0
  258. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/mcp/tools_context.py +0 -0
  259. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/mcp/tools_core.py +0 -0
  260. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/mcp/tools_evolution.py +0 -0
  261. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/mcp/tools_learning.py +0 -0
  262. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/mcp/tools_mesh.py +0 -0
  263. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/mcp/tools_v28.py +0 -0
  264. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/mcp/tools_v33.py +0 -0
  265. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/mesh/__init__.py +0 -0
  266. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/mesh/broker.py +0 -0
  267. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/migrations/__init__.py +0 -0
  268. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/migrations/v3_4_25_to_v3_4_26.py +0 -0
  269. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/parameterization/__init__.py +0 -0
  270. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/parameterization/pattern_extractor.py +0 -0
  271. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/parameterization/pii_filter.py +0 -0
  272. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/parameterization/prompt_injector.py +0 -0
  273. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/parameterization/prompt_lifecycle.py +0 -0
  274. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/parameterization/soft_prompt_generator.py +0 -0
  275. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/retrieval/__init__.py +0 -0
  276. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/retrieval/agentic.py +0 -0
  277. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/retrieval/ann_index.py +0 -0
  278. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/retrieval/bm25_channel.py +0 -0
  279. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/retrieval/bridge_discovery.py +0 -0
  280. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/retrieval/channel_registry.py +0 -0
  281. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/retrieval/engine.py +0 -0
  282. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/retrieval/entity_channel.py +0 -0
  283. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/retrieval/forgetting_filter.py +0 -0
  284. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/retrieval/fusion.py +0 -0
  285. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/retrieval/hopfield_channel.py +0 -0
  286. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/retrieval/profile_channel.py +0 -0
  287. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/retrieval/quantization_aware_search.py +0 -0
  288. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/retrieval/reranker.py +0 -0
  289. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/retrieval/semantic_channel.py +0 -0
  290. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/retrieval/spreading_activation.py +0 -0
  291. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/retrieval/strategy.py +0 -0
  292. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/retrieval/temporal_channel.py +0 -0
  293. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/retrieval/vector_store.py +0 -0
  294. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/__init__.py +0 -0
  295. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/api.py +0 -0
  296. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/bandit_loops.py +0 -0
  297. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/middleware/__init__.py +0 -0
  298. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/middleware/security_headers.py +0 -0
  299. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/routes/__init__.py +0 -0
  300. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/routes/adapters.py +0 -0
  301. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/routes/agents.py +0 -0
  302. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/routes/backup.py +0 -0
  303. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/routes/behavioral.py +0 -0
  304. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/routes/brain.py +0 -0
  305. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/routes/chat.py +0 -0
  306. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/routes/compliance.py +0 -0
  307. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/routes/data_io.py +0 -0
  308. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/routes/entity.py +0 -0
  309. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/routes/events.py +0 -0
  310. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/routes/evolution.py +0 -0
  311. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/routes/helpers.py +0 -0
  312. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/routes/ingest.py +0 -0
  313. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/routes/insights.py +0 -0
  314. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/routes/learning.py +0 -0
  315. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/routes/lifecycle.py +0 -0
  316. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/routes/memories.py +0 -0
  317. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/routes/mesh.py +0 -0
  318. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/routes/prewarm.py +0 -0
  319. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/routes/profiles.py +0 -0
  320. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/routes/stats.py +0 -0
  321. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/routes/tiers.py +0 -0
  322. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/routes/timeline.py +0 -0
  323. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/routes/token.py +0 -0
  324. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/routes/ws.py +0 -0
  325. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/security_middleware.py +0 -0
  326. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/ui.py +0 -0
  327. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/server/unified_daemon.py +0 -0
  328. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/skills/slm-build-graph/SKILL.md +0 -0
  329. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/skills/slm-list-recent/SKILL.md +0 -0
  330. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/skills/slm-recall/SKILL.md +0 -0
  331. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/skills/slm-remember/SKILL.md +0 -0
  332. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/skills/slm-show-patterns/SKILL.md +0 -0
  333. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/skills/slm-status/SKILL.md +0 -0
  334. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/skills/slm-switch-profile/SKILL.md +0 -0
  335. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/storage/__init__.py +0 -0
  336. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/storage/access_control.py +0 -0
  337. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/storage/access_log.py +0 -0
  338. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/storage/database.py +0 -0
  339. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/storage/embedding_migrator.py +0 -0
  340. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/storage/migration_runner.py +0 -0
  341. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/storage/migration_v33.py +0 -0
  342. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/storage/migrations/M001_add_signal_features_columns.py +0 -0
  343. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/storage/migrations/M002_model_state_history.py +0 -0
  344. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/storage/migrations/M003_migration_log.py +0 -0
  345. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/storage/migrations/M004_cross_platform_sync_log.py +0 -0
  346. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/storage/migrations/M005_bandit_tables.py +0 -0
  347. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/storage/migrations/M006_action_outcomes_reward.py +0 -0
  348. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/storage/migrations/M007_pending_outcomes.py +0 -0
  349. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/storage/migrations/M009_model_lineage.py +0 -0
  350. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/storage/migrations/M010_evolution_config.py +0 -0
  351. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/storage/migrations/M011_archive_and_merge.py +0 -0
  352. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/storage/migrations/M012_shadow_observations.py +0 -0
  353. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/storage/migrations/M013_bi_temporal_columns.py +0 -0
  354. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/storage/migrations/__init__.py +0 -0
  355. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/storage/migrations.py +0 -0
  356. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/storage/models.py +0 -0
  357. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/storage/quantized_store.py +0 -0
  358. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/storage/schema.py +0 -0
  359. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/storage/schema_code_graph.py +0 -0
  360. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/storage/schema_v32.py +0 -0
  361. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/storage/schema_v3410.py +0 -0
  362. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/storage/schema_v3411.py +0 -0
  363. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/storage/schema_v343.py +0 -0
  364. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/storage/schema_v347.py +0 -0
  365. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/storage/v2_migrator.py +0 -0
  366. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/trust/__init__.py +0 -0
  367. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/trust/gate.py +0 -0
  368. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/trust/provenance.py +0 -0
  369. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/trust/scorer.py +0 -0
  370. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/trust/signals.py +0 -0
  371. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/css/brain.css +0 -0
  372. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/css/legacy-dashboard.css +0 -0
  373. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/css/neural-glass.css +0 -0
  374. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/index.html +0 -0
  375. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/agents.js +0 -0
  376. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/auto-settings.js +0 -0
  377. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/brain.js +0 -0
  378. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/clusters.js +0 -0
  379. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/compliance.js +0 -0
  380. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/core.js +0 -0
  381. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/dashboard.js +0 -0
  382. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/events.js +0 -0
  383. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/fact-detail.js +0 -0
  384. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/feedback.js +0 -0
  385. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/graph-event-bus.js +0 -0
  386. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/graph-filters.js +0 -0
  387. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/graph-ui.js +0 -0
  388. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/ide-status.js +0 -0
  389. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/init.js +0 -0
  390. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/knowledge-graph.js +0 -0
  391. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/lifecycle.js +0 -0
  392. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/math-health.js +0 -0
  393. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/memories.js +0 -0
  394. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/memory-chat.js +0 -0
  395. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/memory-timeline.js +0 -0
  396. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/modal.js +0 -0
  397. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/ng-entities.js +0 -0
  398. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/ng-health.js +0 -0
  399. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/ng-ingestion.js +0 -0
  400. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/ng-mesh.js +0 -0
  401. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/ng-shell.js +0 -0
  402. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/ng-skills.js +0 -0
  403. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/profiles.js +0 -0
  404. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/quick-actions.js +0 -0
  405. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/recall-lab.js +0 -0
  406. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/search.js +0 -0
  407. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/settings.js +0 -0
  408. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/timeline.js +0 -0
  409. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/js/trust-dashboard.js +0 -0
  410. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/vendor/bootstrap-icons/bootstrap-icons.css +0 -0
  411. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/vendor/bootstrap-icons/fonts/bootstrap-icons.woff +0 -0
  412. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2 +0 -0
  413. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/vendor/bootstrap.bundle.min.js +0 -0
  414. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/vendor/bootstrap.min.css +0 -0
  415. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/vendor/d3.v7.min.js +0 -0
  416. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/vendor/graphology-library.min.js +0 -0
  417. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/vendor/graphology.umd.min.js +0 -0
  418. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/vendor/inter-ui/inter-variable.min.css +0 -0
  419. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/vendor/inter-ui/variable/InterVariable-Italic.woff2 +0 -0
  420. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/vendor/inter-ui/variable/InterVariable.woff2 +0 -0
  421. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory/ui/vendor/sigma.min.js +0 -0
  422. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory.egg-info/SOURCES.txt +0 -0
  423. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory.egg-info/dependency_links.txt +0 -0
  424. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory.egg-info/entry_points.txt +0 -0
  425. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory.egg-info/requires.txt +0 -0
  426. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/src/superlocalmemory.egg-info/top_level.txt +0 -0
  427. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/tests/test_auto_hooks.py +0 -0
  428. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/tests/test_behavioral_full.py +0 -0
  429. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/tests/test_claude_hooks.py +0 -0
  430. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/tests/test_cli.py +0 -0
  431. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/tests/test_cli_json.py +0 -0
  432. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/tests/test_cli_v33.py +0 -0
  433. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/tests/test_compliance_full.py +0 -0
  434. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/tests/test_config_system.py +0 -0
  435. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/tests/test_engine_hooks.py +0 -0
  436. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/tests/test_event_bus.py +0 -0
  437. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/tests/test_features.py +0 -0
  438. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/tests/test_final_locomo_mini.py +0 -0
  439. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/tests/test_hook_handlers.py +0 -0
  440. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/tests/test_ide_connector.py +0 -0
  441. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/tests/test_infra.py +0 -0
  442. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/tests/test_learning_advanced.py +0 -0
  443. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/tests/test_learning_collectors.py +0 -0
  444. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/tests/test_llm_provider.py +0 -0
  445. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/tests/test_mcp_server.py +0 -0
  446. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/tests/test_migration.py +0 -0
  447. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/tests/test_post_install.py +0 -0
  448. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/tests/test_ranker.py +0 -0
  449. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/tests/test_trust_full.py +0 -0
  450. {superlocalmemory-3.4.32 → superlocalmemory-3.4.34}/tests/test_v3_api.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: superlocalmemory
3
- Version: 3.4.32
3
+ Version: 3.4.34
4
4
  Summary: Information-geometric agent memory with mathematical guarantees
5
5
  Author-email: Varun Pratap Bhardwaj <admin@superlocalmemory.com>
6
6
  License: AGPL-3.0-or-later
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "superlocalmemory"
3
- version = "3.4.32"
3
+ version = "3.4.34"
4
4
  description = "Information-geometric agent memory with mathematical guarantees"
5
5
  readme = "README.md"
6
6
  license = {text = "AGPL-3.0-or-later"}
@@ -1,3 +1,3 @@
1
1
  """SuperLocalMemory — information-geometric agent memory."""
2
2
 
3
- __version__ = "3.4.32"
3
+ __version__ = "3.4.34"
@@ -639,7 +639,7 @@ def cmd_mode(args: Namespace) -> None:
639
639
  llm_api_key=config.llm.api_key,
640
640
  llm_api_base=config.llm.api_base,
641
641
  )
642
- updated.save()
642
+ updated.save(mode_change=True)
643
643
  json_print("mode", data={
644
644
  "previous_mode": old_mode, "current_mode": args.value.upper(),
645
645
  }, next_actions=[
@@ -661,7 +661,7 @@ def cmd_mode(args: Namespace) -> None:
661
661
  llm_api_key=config.llm.api_key,
662
662
  llm_api_base=config.llm.api_base,
663
663
  )
664
- updated.save()
664
+ updated.save(mode_change=True)
665
665
  print(f"Mode set to: {args.value.upper()}")
666
666
 
667
667
  # V3.3: Check if embedding model changed — inform about re-indexing
@@ -335,7 +335,7 @@ def run_wizard(auto: bool = False) -> None:
335
335
  if choice == "c" and interactive:
336
336
  configure_provider(config)
337
337
  else:
338
- config.save()
338
+ config.save(mode_change=True)
339
339
 
340
340
  mode_names = {"a": "Local Guardian", "b": "Smart Local", "c": "Full Power"}
341
341
  print(f"\n ✓ Mode {choice.upper()} ({mode_names[choice]}) configured")
@@ -421,7 +421,7 @@ def run_wizard(auto: bool = False) -> None:
421
421
  config.daemon_idle_timeout = 0
422
422
  print("\n ✓ 24/7 Always-On mode")
423
423
 
424
- config.save()
424
+ config.save(mode_change=True)
425
425
 
426
426
  # -- Step 6: Mesh Communication (v3.4.3) --
427
427
  print()
@@ -441,7 +441,7 @@ def run_wizard(auto: bool = False) -> None:
441
441
  print(" Auto-enabling Mesh (non-interactive)")
442
442
 
443
443
  config.mesh_enabled = mesh_choice in ("", "y", "yes")
444
- config.save()
444
+ config.save(mode_change=True)
445
445
  print(f"\n ✓ Mesh {'enabled' if config.mesh_enabled else 'disabled'}")
446
446
 
447
447
  # -- Step 7: Ingestion Adapters (v3.4.3) --
@@ -502,7 +502,7 @@ def run_wizard(auto: bool = False) -> None:
502
502
  print(" Auto-enabling entity compilation (non-interactive)")
503
503
 
504
504
  config.entity_compilation_enabled = ec_choice in ("", "y", "yes")
505
- config.save()
505
+ config.save(mode_change=True)
506
506
  print(f"\n ✓ Entity compilation {'enabled' if config.entity_compilation_enabled else 'disabled'}")
507
507
 
508
508
  # -- Step 9: Skill Evolution (v3.4.11) --
@@ -661,7 +661,7 @@ def check_first_use(command: str) -> None:
661
661
  from superlocalmemory.core.config import SLMConfig
662
662
  from superlocalmemory.storage.models import Mode
663
663
  config = SLMConfig.for_mode(Mode.A)
664
- config.save()
664
+ config.save(mode_change=True)
665
665
  _mark_complete()
666
666
  except Exception:
667
667
  pass
@@ -749,6 +749,6 @@ def configure_provider(config: object) -> None:
749
749
  llm_api_key=api_key,
750
750
  llm_api_base=preset["base_url"],
751
751
  )
752
- updated.save()
752
+ updated.save(mode_change=True)
753
753
  print(f" Provider: {provider_name}")
754
754
  print(f" Model: {preset['model']}")
@@ -697,8 +697,25 @@ class SLMConfig:
697
697
 
698
698
  return config
699
699
 
700
- def save(self, config_path: Path | None = None) -> None:
701
- """Save config to JSON file."""
700
+ def save(
701
+ self,
702
+ config_path: Path | None = None,
703
+ *,
704
+ mode_change: bool = False,
705
+ ) -> None:
706
+ """Save config to JSON file.
707
+
708
+ v3.4.34: mode protection. If the existing config.json has a mode
709
+ that differs from ``self.mode`` and the caller did NOT pass
710
+ ``mode_change=True``, the EXISTING mode is preserved. This
711
+ prevents accidental mode resets when code creates a fresh
712
+ ``SLMConfig()`` (defaults to Mode A) and calls ``save()`` to
713
+ persist an unrelated field change.
714
+
715
+ Callers that intentionally switch mode (``slm mode b``, the MCP
716
+ ``set_mode`` tool, the dashboard PUT ``/api/v3/mode``) MUST pass
717
+ ``mode_change=True``.
718
+ """
702
719
  import json
703
720
  path = config_path or (self.base_dir / "config.json")
704
721
  path.parent.mkdir(parents=True, exist_ok=True)
@@ -710,8 +727,19 @@ class SLMConfig:
710
727
  except (json.JSONDecodeError, OSError):
711
728
  pass
712
729
 
730
+ # v3.4.34: mode protection — preserve user's mode unless explicitly changing
731
+ effective_mode = self.mode.value
732
+ existing_mode = existing.get("mode")
733
+ if existing_mode and existing_mode != effective_mode and not mode_change:
734
+ logger.warning(
735
+ "SLMConfig.save(): mode change blocked (%s → %s). "
736
+ "Pass mode_change=True to override. Preserving '%s'.",
737
+ existing_mode, effective_mode, existing_mode,
738
+ )
739
+ effective_mode = existing_mode
740
+
713
741
  data = {
714
- "mode": self.mode.value,
742
+ "mode": effective_mode,
715
743
  "active_profile": self.active_profile,
716
744
  "llm": {
717
745
  "provider": self.llm.provider,
@@ -63,7 +63,7 @@ def _load_embedding_model(name: str) -> tuple:
63
63
  """
64
64
  from sentence_transformers import SentenceTransformer
65
65
 
66
- # Tier 1: ONNX (stable memory, ~200MB footprint)
66
+ # Tier 1: ONNX (stable memory; ~1.1 GB for nomic-embed-text-v1.5)
67
67
  try:
68
68
  m = SentenceTransformer(name, backend="onnx", trust_remote_code=True)
69
69
  return m, "onnx"
@@ -176,6 +176,23 @@ def _conn_for(db_path: Path) -> sqlite3.Connection:
176
176
  return conn
177
177
 
178
178
 
179
+ def close_threadlocal_conn() -> None:
180
+ """Close the threadlocal bandit connection on the calling thread.
181
+
182
+ v3.4.33: background callers (asyncio.to_thread pool threads) MUST call
183
+ this after finishing bandit work. Without it, each pool thread keeps a
184
+ leaked connection to learning.db for the process lifetime — observed as
185
+ 12+ open file descriptors and ~100 MB wasted page-cache RAM.
186
+ """
187
+ if _holder.conn is not None:
188
+ try:
189
+ _holder.conn.close()
190
+ except sqlite3.Error: # pragma: no cover
191
+ pass
192
+ _holder.conn = None
193
+ _holder.path = None
194
+
195
+
179
196
  def _now_iso() -> str:
180
197
  return datetime.now(timezone.utc).isoformat(timespec="seconds")
181
198
 
@@ -520,6 +537,7 @@ def retention_sweep(
520
537
  __all__ = (
521
538
  "BanditChoice",
522
539
  "ContextualBandit",
540
+ "close_threadlocal_conn",
523
541
  "compute_stratum",
524
542
  "current_time_bucket",
525
543
  "retention_sweep",
@@ -317,8 +317,13 @@ def settle_stale_plays(
317
317
  memory_conn.close()
318
318
  except sqlite3.Error: # pragma: no cover
319
319
  pass
320
- # Don't close a caller-owned bandit instance.
321
- _ = owns_bandit
320
+ # v3.4.33: close the threadlocal bandit connection so pool threads
321
+ # from asyncio.to_thread don't leak file descriptors to learning.db.
322
+ try:
323
+ from superlocalmemory.learning.bandit import close_threadlocal_conn
324
+ close_threadlocal_conn()
325
+ except Exception: # pragma: no cover — defensive
326
+ pass
322
327
 
323
328
  return settled
324
329
 
@@ -70,8 +70,20 @@ def register_v3_tools(server, get_engine: Callable) -> None:
70
70
 
71
71
  mode_enum = Mode(mode_lower)
72
72
  old_config = SLMConfig.load()
73
- config = SLMConfig.for_mode(mode_enum)
74
- config.save()
73
+ config = SLMConfig.for_mode(
74
+ mode_enum,
75
+ llm_provider=old_config.llm.provider,
76
+ llm_model=old_config.llm.model,
77
+ llm_api_key=old_config.llm.api_key,
78
+ llm_api_base=old_config.llm.api_base,
79
+ embedding_provider=old_config.embedding.provider,
80
+ embedding_endpoint=old_config.embedding.api_endpoint,
81
+ embedding_key=old_config.embedding.api_key,
82
+ embedding_model_name=old_config.embedding.model_name,
83
+ embedding_dimension=old_config.embedding.dimension,
84
+ )
85
+ config.active_profile = old_config.active_profile
86
+ config.save(mode_change=True)
75
87
 
76
88
  # V3.3: Check if embedding model changed — flag for re-indexing
77
89
  needs_reindex = (
@@ -136,7 +136,7 @@ async def set_mode(request: Request):
136
136
  embedding_dimension=old_config.embedding.dimension,
137
137
  )
138
138
  new_config.active_profile = old_config.active_profile
139
- new_config.save()
139
+ new_config.save(mode_change=True)
140
140
 
141
141
  # Audit the change before we lose context — proves who/when/what.
142
142
  # Captures the phantom-write case where `for_mode(C)` auto-defaults
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: superlocalmemory
3
- Version: 3.4.32
3
+ Version: 3.4.34
4
4
  Summary: Information-geometric agent memory with mathematical guarantees
5
5
  Author-email: Varun Pratap Bhardwaj <admin@superlocalmemory.com>
6
6
  License: AGPL-3.0-or-later