flurryx-code-memory 0.6.1__tar.gz → 0.6.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 (189) hide show
  1. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/PKG-INFO +1 -1
  2. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/claude-code/scripts/on-post-tool.js +11 -0
  3. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/cursor/scripts/on-after-file-edit.js +11 -0
  4. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/opencode/src/code-memory.ts +11 -0
  5. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/pyproject.toml +1 -1
  6. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/.claude-plugin/marketplace.json +0 -0
  7. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/.env.example +0 -0
  8. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/.gitignore +0 -0
  9. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/CHANGELOG.md +0 -0
  10. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/README.md +0 -0
  11. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/docker/docker-compose.yml +0 -0
  12. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/docs/BENCHMARK.md +0 -0
  13. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/docs/BENCHMARK_VS_BASELINE.json +0 -0
  14. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/docs/BENCHMARK_VS_BASELINE.md +0 -0
  15. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/docs/architecture.png +0 -0
  16. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/docs/benchmark-raw.json +0 -0
  17. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/docs/hero.png +0 -0
  18. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/install.ps1 +0 -0
  19. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/install.sh +0 -0
  20. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/claude-code/.claude-plugin/plugin.json +0 -0
  21. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/claude-code/README.md +0 -0
  22. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/claude-code/commands/code-memory.md +0 -0
  23. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/claude-code/hooks/hooks.json +0 -0
  24. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/claude-code/install.sh +0 -0
  25. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/claude-code/scripts/lib/claim-intent.js +0 -0
  26. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/claude-code/scripts/lib/claim-intent.test.js +0 -0
  27. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/claude-code/scripts/lib/io.js +0 -0
  28. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/claude-code/scripts/lib/memory.js +0 -0
  29. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/claude-code/scripts/lib/state.js +0 -0
  30. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/claude-code/scripts/on-pre-tool.js +0 -0
  31. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/claude-code/scripts/on-retrieve-seen.js +0 -0
  32. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/claude-code/scripts/on-session-start.js +0 -0
  33. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/claude-code/scripts/on-stop.js +0 -0
  34. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/claude-code/scripts/on-user-prompt.js +0 -0
  35. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/claude-code/scripts/resolver-debounce.js +0 -0
  36. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/claude-code/skills/code-memory/SKILL.md +0 -0
  37. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/cursor/README.md +0 -0
  38. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/cursor/hooks/hooks.json.template +0 -0
  39. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/cursor/install.sh +0 -0
  40. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/cursor/rules/code-memory.mdc +0 -0
  41. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/cursor/scripts/lib/claim-intent.js +0 -0
  42. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/cursor/scripts/lib/claim-intent.test.js +0 -0
  43. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/cursor/scripts/lib/io.js +0 -0
  44. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/cursor/scripts/lib/memory.js +0 -0
  45. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/cursor/scripts/lib/state.js +0 -0
  46. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/cursor/scripts/on-before-mcp-execution.js +0 -0
  47. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/cursor/scripts/on-before-submit-prompt.js +0 -0
  48. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/cursor/scripts/on-post-tool-use.js +0 -0
  49. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/cursor/scripts/on-pre-compact.js +0 -0
  50. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/cursor/scripts/on-pre-tool-use.js +0 -0
  51. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/cursor/scripts/on-session-end.js +0 -0
  52. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/cursor/scripts/on-session-start.js +0 -0
  53. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/cursor/scripts/on-stop.js +0 -0
  54. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/cursor/scripts/resolver-debounce.js +0 -0
  55. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/opencode/README.md +0 -0
  56. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/opencode/install.sh +0 -0
  57. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/opencode/package-lock.json +0 -0
  58. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/opencode/package.json +0 -0
  59. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/opencode/scripts/add-mcp.py +0 -0
  60. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/opencode/scripts/install.mjs +0 -0
  61. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/opencode/scripts/uninstall.mjs +0 -0
  62. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/opencode/skills/code-memory/SKILL.md +0 -0
  63. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/opencode/src/code-memory-lib/claim-intent.test.mts +0 -0
  64. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/opencode/src/code-memory-lib/claim-intent.ts +0 -0
  65. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/opencode/src/code-memory-lib/memory-client.ts +0 -0
  66. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/opencode/tsconfig.json +0 -0
  67. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/vibe/README.md +0 -0
  68. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/vibe/install.sh +0 -0
  69. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/plugins/vibe/skills/code-memory/SKILL.md +0 -0
  70. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/scripts/benchmark.py +0 -0
  71. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/scripts/benchmark_queries.json +0 -0
  72. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/scripts/benchmark_vs_baseline.py +0 -0
  73. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/scripts/benchmark_vs_grep.sh +0 -0
  74. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/scripts/ingest.py +0 -0
  75. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/scripts/install.ps1 +0 -0
  76. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/scripts/install.sh +0 -0
  77. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/__init__.py +0 -0
  78. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/claims/__init__.py +0 -0
  79. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/claims/extractor.py +0 -0
  80. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/claims/indexer.py +0 -0
  81. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/claims/resolver.py +0 -0
  82. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/claims/store.py +0 -0
  83. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/cli.py +0 -0
  84. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/config.py +0 -0
  85. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/embed/__init__.py +0 -0
  86. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/embed/cache.py +0 -0
  87. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/embed/m3.py +0 -0
  88. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/embed/ollama.py +0 -0
  89. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/embed/tei.py +0 -0
  90. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/episodic/__init__.py +0 -0
  91. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/episodic/sqlite_store.py +0 -0
  92. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/extractor/__init__.py +0 -0
  93. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/extractor/csproj.py +0 -0
  94. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/extractor/dll.py +0 -0
  95. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/extractor/gitignore.py +0 -0
  96. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/extractor/nuget.py +0 -0
  97. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/extractor/sanity.py +0 -0
  98. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/extractor/sln.py +0 -0
  99. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/extractor/treesitter.py +0 -0
  100. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/graph/__init__.py +0 -0
  101. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/graph/falkor_store.py +0 -0
  102. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/mcp_server.py +0 -0
  103. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/metrics.py +0 -0
  104. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/orchestrator/__init__.py +0 -0
  105. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/orchestrator/git_delta.py +0 -0
  106. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/orchestrator/ingest_state.py +0 -0
  107. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/orchestrator/pipeline.py +0 -0
  108. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/orchestrator/reset.py +0 -0
  109. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/orchestrator/resolver.py +0 -0
  110. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/orchestrator/retrieve.py +0 -0
  111. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/resilience.py +0 -0
  112. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/sync/__init__.py +0 -0
  113. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/sync/autostart/__init__.py +0 -0
  114. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/sync/autostart/base.py +0 -0
  115. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/sync/autostart/launchd.py +0 -0
  116. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/sync/autostart/schtasks.py +0 -0
  117. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/sync/autostart/systemd.py +0 -0
  118. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/sync/hooks.py +0 -0
  119. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/sync/safety.py +0 -0
  120. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/sync/snapshot.py +0 -0
  121. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/sync/store.py +0 -0
  122. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/sync/sync.py +0 -0
  123. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/sync/watcher.py +0 -0
  124. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/updater.py +0 -0
  125. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/vector/__init__.py +0 -0
  126. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/src/code_memory/vector/qdrant_store.py +0 -0
  127. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_autostart_adapters.py +0 -0
  128. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_chunk_text.py +0 -0
  129. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_claim_extractor.py +0 -0
  130. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_claim_indexer.py +0 -0
  131. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_claim_resolver.py +0 -0
  132. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_claim_store.py +0 -0
  133. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_config_embed_dim.py +0 -0
  134. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_config_sentinel.py +0 -0
  135. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_csproj.py +0 -0
  136. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_dll_members.py +0 -0
  137. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_dll_parser.py +0 -0
  138. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_embed_backend.py +0 -0
  139. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_embed_cache.py +0 -0
  140. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_embed_m3.py +0 -0
  141. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_embed_tei.py +0 -0
  142. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_episode_dedup.py +0 -0
  143. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_episode_head_sha.py +0 -0
  144. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_extractor_csharp.py +0 -0
  145. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_extractor_dart.py +0 -0
  146. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_extractor_filters.py +0 -0
  147. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_extractor_php.py +0 -0
  148. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_extractor_python_imports.py +0 -0
  149. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_extractor_receiver_type.py +0 -0
  150. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_extractor_references.py +0 -0
  151. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_extractor_sanity.py +0 -0
  152. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_extractor_ts_abstract.py +0 -0
  153. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_extractor_ts_inject.py +0 -0
  154. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_extractor_utf8.py +0 -0
  155. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_file_containment.py +0 -0
  156. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_git_delta.py +0 -0
  157. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_graph_queries.py +0 -0
  158. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_graph_temporal.py +0 -0
  159. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_graph_vacuum_at_sha.py +0 -0
  160. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_hooks_installer.py +0 -0
  161. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_ingest_state.py +0 -0
  162. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_mcp_assert_claim.py +0 -0
  163. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_mcp_server_descriptions.py +0 -0
  164. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_mcp_shutdown.py +0 -0
  165. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_mcp_strict_project.py +0 -0
  166. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_metrics.py +0 -0
  167. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_nuget_resolver.py +0 -0
  168. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_overload_resolution.py +0 -0
  169. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_partial_class.py +0 -0
  170. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_pipeline_references.py +0 -0
  171. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_pipeline_temporal_wiring.py +0 -0
  172. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_qdrant_legacy_guard.py +0 -0
  173. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_razor_inject.py +0 -0
  174. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_resilience.py +0 -0
  175. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_resolver.py +0 -0
  176. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_resolver_assembly.py +0 -0
  177. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_retrieve_claims_surfacing.py +0 -0
  178. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_retrieve_rerank.py +0 -0
  179. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_sln.py +0 -0
  180. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_smoke.py +0 -0
  181. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_snapshot_e2e.py +0 -0
  182. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_snapshot_format.py +0 -0
  183. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_snapshot_store.py +0 -0
  184. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_sync_decision_tree.py +0 -0
  185. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_watch_safety.py +0 -0
  186. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_watcher_debouncer.py +0 -0
  187. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_watcher_exclude.py +0 -0
  188. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/tests/test_watcher_ref_events.py +0 -0
  189. {flurryx_code_memory-0.6.1 → flurryx_code_memory-0.6.2}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flurryx-code-memory
3
- Version: 0.6.1
3
+ Version: 0.6.2
4
4
  Summary: Local lightweight memory layer for coding agents: FalkorDB + Qdrant + Ollama (BGE-M3) + tree-sitter
5
5
  Requires-Python: >=3.11
6
6
  Requires-Dist: anyio>=4.4
@@ -51,6 +51,17 @@ function pickPath(obj) {
51
51
  return;
52
52
  }
53
53
 
54
+ // Guard: only reingest files that live inside the project root (cwd).
55
+ // Resolving against cwd handles relative paths; the sep-suffix check
56
+ // prevents false positives like /foo/bar matching the prefix of /foo/baz.
57
+ const projectRoot = path.resolve(cwd);
58
+ const absFilePath = path.resolve(cwd, filePath);
59
+ if (absFilePath !== projectRoot && !absFilePath.startsWith(projectRoot + path.sep)) {
60
+ // File is outside the project — silently skip ingestion.
61
+ done();
62
+ return;
63
+ }
64
+
54
65
  const mem = await createMemoryClient({ cwd, log: () => {} });
55
66
  if (!mem.available) {
56
67
  done();
@@ -32,6 +32,17 @@ const { touchResolverMarker } = require("./lib/state");
32
32
  process.env.CURSOR_PROJECT_DIR ||
33
33
  process.cwd();
34
34
 
35
+ // Guard: only reingest files that live inside the project root (cwd).
36
+ // Resolving against cwd handles relative paths; the sep-suffix check
37
+ // prevents false positives like /foo/bar matching the prefix of /foo/baz.
38
+ const projectRoot = path.resolve(cwd);
39
+ const absFilePath = path.resolve(cwd, filePath);
40
+ if (absFilePath !== projectRoot && !absFilePath.startsWith(projectRoot + path.sep)) {
41
+ // File is outside the project — silently skip ingestion.
42
+ done();
43
+ return;
44
+ }
45
+
35
46
  const mem = await createMemoryClient({ cwd, log: () => {} });
36
47
  if (!mem.available) {
37
48
  done();
@@ -15,6 +15,7 @@
15
15
 
16
16
  import { execFile as execFileCb } from "node:child_process";
17
17
  import { promisify } from "node:util";
18
+ import * as nodePath from "node:path";
18
19
 
19
20
  import type { Plugin } from "@opencode-ai/plugin";
20
21
 
@@ -324,6 +325,16 @@ const CodeMemoryPlugin: Plugin = async ({ client, directory, worktree }) => {
324
325
  const path = pickToolPath(output.args) ?? pickToolPath(output.metadata);
325
326
  if (!path) return;
326
327
 
328
+ // Guard: only reingest files that live inside the project root (cwd).
329
+ // Resolving against cwd handles relative paths; the sep-suffix check
330
+ // prevents false positives like /foo/bar matching the prefix of /foo/baz.
331
+ const projectRoot = nodePath.resolve(cwd);
332
+ const absPath = nodePath.resolve(cwd, path);
333
+ if (absPath !== projectRoot && !absPath.startsWith(projectRoot + nodePath.sep)) {
334
+ // File is outside the project — silently skip ingestion.
335
+ return;
336
+ }
337
+
327
338
  // 1. Re-ingest the single file (fast, background).
328
339
  void memory.reingest(path);
329
340
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "flurryx-code-memory"
7
- version = "0.6.1"
7
+ version = "0.6.2"
8
8
  description = "Local lightweight memory layer for coding agents: FalkorDB + Qdrant + Ollama (BGE-M3) + tree-sitter"
9
9
  requires-python = ">=3.11"
10
10
  dependencies = [