codespine 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 (59) hide show
  1. {codespine-0.6.1 → codespine-0.6.2}/PKG-INFO +1 -1
  2. {codespine-0.6.1 → codespine-0.6.2}/codespine/__init__.py +1 -1
  3. {codespine-0.6.1 → codespine-0.6.2}/codespine/cli.py +5 -0
  4. {codespine-0.6.1 → codespine-0.6.2}/codespine/db/store.py +9 -0
  5. {codespine-0.6.1 → codespine-0.6.2}/codespine.egg-info/PKG-INFO +1 -1
  6. {codespine-0.6.1 → codespine-0.6.2}/pyproject.toml +1 -1
  7. {codespine-0.6.1 → codespine-0.6.2}/LICENSE +0 -0
  8. {codespine-0.6.1 → codespine-0.6.2}/README.md +0 -0
  9. {codespine-0.6.1 → codespine-0.6.2}/codespine/analysis/__init__.py +0 -0
  10. {codespine-0.6.1 → codespine-0.6.2}/codespine/analysis/community.py +0 -0
  11. {codespine-0.6.1 → codespine-0.6.2}/codespine/analysis/context.py +0 -0
  12. {codespine-0.6.1 → codespine-0.6.2}/codespine/analysis/coupling.py +0 -0
  13. {codespine-0.6.1 → codespine-0.6.2}/codespine/analysis/crossmodule.py +0 -0
  14. {codespine-0.6.1 → codespine-0.6.2}/codespine/analysis/deadcode.py +0 -0
  15. {codespine-0.6.1 → codespine-0.6.2}/codespine/analysis/flow.py +0 -0
  16. {codespine-0.6.1 → codespine-0.6.2}/codespine/analysis/impact.py +0 -0
  17. {codespine-0.6.1 → codespine-0.6.2}/codespine/config.py +0 -0
  18. {codespine-0.6.1 → codespine-0.6.2}/codespine/db/__init__.py +0 -0
  19. {codespine-0.6.1 → codespine-0.6.2}/codespine/db/schema.py +0 -0
  20. {codespine-0.6.1 → codespine-0.6.2}/codespine/diff/__init__.py +0 -0
  21. {codespine-0.6.1 → codespine-0.6.2}/codespine/diff/branch_diff.py +0 -0
  22. {codespine-0.6.1 → codespine-0.6.2}/codespine/indexer/__init__.py +0 -0
  23. {codespine-0.6.1 → codespine-0.6.2}/codespine/indexer/call_resolver.py +0 -0
  24. {codespine-0.6.1 → codespine-0.6.2}/codespine/indexer/engine.py +0 -0
  25. {codespine-0.6.1 → codespine-0.6.2}/codespine/indexer/java_parser.py +0 -0
  26. {codespine-0.6.1 → codespine-0.6.2}/codespine/indexer/symbol_builder.py +0 -0
  27. {codespine-0.6.1 → codespine-0.6.2}/codespine/mcp/__init__.py +0 -0
  28. {codespine-0.6.1 → codespine-0.6.2}/codespine/mcp/server.py +0 -0
  29. {codespine-0.6.1 → codespine-0.6.2}/codespine/noise/__init__.py +0 -0
  30. {codespine-0.6.1 → codespine-0.6.2}/codespine/noise/blocklist.py +0 -0
  31. {codespine-0.6.1 → codespine-0.6.2}/codespine/overlay/__init__.py +0 -0
  32. {codespine-0.6.1 → codespine-0.6.2}/codespine/overlay/git_state.py +0 -0
  33. {codespine-0.6.1 → codespine-0.6.2}/codespine/overlay/merge.py +0 -0
  34. {codespine-0.6.1 → codespine-0.6.2}/codespine/overlay/store.py +0 -0
  35. {codespine-0.6.1 → codespine-0.6.2}/codespine/search/__init__.py +0 -0
  36. {codespine-0.6.1 → codespine-0.6.2}/codespine/search/bm25.py +0 -0
  37. {codespine-0.6.1 → codespine-0.6.2}/codespine/search/fuzzy.py +0 -0
  38. {codespine-0.6.1 → codespine-0.6.2}/codespine/search/hybrid.py +0 -0
  39. {codespine-0.6.1 → codespine-0.6.2}/codespine/search/rrf.py +0 -0
  40. {codespine-0.6.1 → codespine-0.6.2}/codespine/search/vector.py +0 -0
  41. {codespine-0.6.1 → codespine-0.6.2}/codespine/watch/__init__.py +0 -0
  42. {codespine-0.6.1 → codespine-0.6.2}/codespine/watch/watcher.py +0 -0
  43. {codespine-0.6.1 → codespine-0.6.2}/codespine.egg-info/SOURCES.txt +0 -0
  44. {codespine-0.6.1 → codespine-0.6.2}/codespine.egg-info/dependency_links.txt +0 -0
  45. {codespine-0.6.1 → codespine-0.6.2}/codespine.egg-info/entry_points.txt +0 -0
  46. {codespine-0.6.1 → codespine-0.6.2}/codespine.egg-info/requires.txt +0 -0
  47. {codespine-0.6.1 → codespine-0.6.2}/codespine.egg-info/top_level.txt +0 -0
  48. {codespine-0.6.1 → codespine-0.6.2}/gindex.py +0 -0
  49. {codespine-0.6.1 → codespine-0.6.2}/setup.cfg +0 -0
  50. {codespine-0.6.1 → codespine-0.6.2}/tests/test_branch_diff_normalize.py +0 -0
  51. {codespine-0.6.1 → codespine-0.6.2}/tests/test_call_resolver.py +0 -0
  52. {codespine-0.6.1 → codespine-0.6.2}/tests/test_community_detection.py +0 -0
  53. {codespine-0.6.1 → codespine-0.6.2}/tests/test_deadcode.py +0 -0
  54. {codespine-0.6.1 → codespine-0.6.2}/tests/test_index_and_hybrid.py +0 -0
  55. {codespine-0.6.1 → codespine-0.6.2}/tests/test_java_parser.py +0 -0
  56. {codespine-0.6.1 → codespine-0.6.2}/tests/test_multimodule_index.py +0 -0
  57. {codespine-0.6.1 → codespine-0.6.2}/tests/test_overlay.py +0 -0
  58. {codespine-0.6.1 → codespine-0.6.2}/tests/test_search_ranking.py +0 -0
  59. {codespine-0.6.1 → codespine-0.6.2}/tests/test_store_recovery.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codespine
3
- Version: 0.6.1
3
+ Version: 0.6.2
4
4
  Summary: Local Java code intelligence indexer backed by a graph database
5
5
  Author: CodeSpine contributors
6
6
  License: MIT License
@@ -1,4 +1,4 @@
1
1
  """CodeSpine package."""
2
2
 
3
3
  __all__ = ["__version__"]
4
- __version__ = "0.6.1"
4
+ __version__ = "0.6.2"
@@ -777,6 +777,8 @@ def clear_project_cmd(project_id: str, allow_running: bool) -> None:
777
777
  os.remove(meta_path)
778
778
  except OSError:
779
779
  pass
780
+ # Update the read replica so read-only callers (stats, MCP) see the change.
781
+ GraphStore.snapshot_to_read_replica()
780
782
  click.secho(f"Cleared project '{project_id}' (was at {project_path}).", fg="green")
781
783
 
782
784
 
@@ -817,6 +819,9 @@ def clear_index_cmd(allow_running: bool) -> None:
817
819
  os.remove(meta_path)
818
820
  except OSError:
819
821
  pass
822
+ # Publish an empty read replica so that read-only callers (stats, MCP)
823
+ # immediately see the cleared state and the MCP daemon hot-reloads.
824
+ GraphStore.snapshot_to_read_replica()
820
825
  click.secho(f"Cleared {len(projects)} project(s). Index is now empty.", fg="green")
821
826
 
822
827
 
@@ -560,6 +560,15 @@ class GraphStore:
560
560
  except OSError:
561
561
  pass
562
562
 
563
+ # Also remove the read replica so that read-only callers (stats, MCP)
564
+ # don't continue to see stale data from before the wipe.
565
+ for stale in [
566
+ SETTINGS.db_snapshot_path,
567
+ SETTINGS.db_snapshot_path + ".tmp",
568
+ SETTINGS.db_snapshot_path + ".updated",
569
+ ]:
570
+ self._remove_db_path(stale)
571
+
563
572
  # Kuzu may retain stale internal state from a previous failed open of
564
573
  # this path (e.g. after Ctrl+C mid-write). The in-process C++ state
565
574
  # is poisoned and will raise "unordered_map::at: key not found" on any
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codespine
3
- Version: 0.6.1
3
+ Version: 0.6.2
4
4
  Summary: Local Java code intelligence indexer backed by a graph database
5
5
  Author: CodeSpine contributors
6
6
  License: MIT License
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "codespine"
7
- version = "0.6.1"
7
+ version = "0.6.2"
8
8
  description = "Local Java code intelligence indexer backed by a graph database"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
File without changes
File without changes
File without changes
File without changes
File without changes