codespine 1.0.9__tar.gz → 1.0.10__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.
- {codespine-1.0.9 → codespine-1.0.10}/PKG-INFO +28 -3
- {codespine-1.0.9 → codespine-1.0.10}/README.md +26 -2
- {codespine-1.0.9 → codespine-1.0.10}/codespine/__init__.py +1 -1
- {codespine-1.0.9 → codespine-1.0.10}/codespine/cli.py +441 -4
- {codespine-1.0.9 → codespine-1.0.10}/codespine/config.py +1 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/db/_cypher_compat.py +65 -12
- {codespine-1.0.9 → codespine-1.0.10}/codespine/db/duckdb_store.py +21 -11
- codespine-1.0.10/codespine/health.py +123 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/mcp/server.py +14 -0
- codespine-1.0.10/codespine/tasks.py +137 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine.egg-info/PKG-INFO +28 -3
- {codespine-1.0.9 → codespine-1.0.10}/codespine.egg-info/SOURCES.txt +5 -1
- {codespine-1.0.9 → codespine-1.0.10}/codespine.egg-info/requires.txt +2 -0
- {codespine-1.0.9 → codespine-1.0.10}/pyproject.toml +5 -1
- {codespine-1.0.9 → codespine-1.0.10}/tests/test_cypher_compat.py +25 -2
- codespine-1.0.10/tests/test_health.py +77 -0
- codespine-1.0.10/tests/test_tasks.py +34 -0
- {codespine-1.0.9 → codespine-1.0.10}/LICENSE +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/analysis/__init__.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/analysis/community.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/analysis/context.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/analysis/coupling.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/analysis/crossmodule.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/analysis/deadcode.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/analysis/flow.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/analysis/impact.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/cache/__init__.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/cache/result_cache.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/db/__init__.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/db/schema.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/db/store.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/diff/__init__.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/diff/branch_diff.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/guide.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/indexer/__init__.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/indexer/call_resolver.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/indexer/di_resolver.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/indexer/engine.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/indexer/java_parser.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/indexer/symbol_builder.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/mcp/__init__.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/noise/__init__.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/noise/blocklist.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/overlay/__init__.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/overlay/git_state.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/overlay/merge.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/overlay/store.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/search/__init__.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/search/bm25.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/search/fuzzy.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/search/hybrid.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/search/rrf.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/search/vector.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/sharding/__init__.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/sharding/router.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/sharding/store.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/watch/__init__.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/watch/git_hook.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine/watch/watcher.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine.egg-info/dependency_links.txt +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine.egg-info/entry_points.txt +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/codespine.egg-info/top_level.txt +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/gindex.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/setup.cfg +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/tests/test_branch_diff_normalize.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/tests/test_call_resolver.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/tests/test_community_detection.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/tests/test_deadcode.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/tests/test_duckdb_store.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/tests/test_index_and_hybrid.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/tests/test_java_parser.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/tests/test_multimodule_index.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/tests/test_overlay.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/tests/test_parse_resilience.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/tests/test_result_cache.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/tests/test_search_ranking.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/tests/test_sharding.py +0 -0
- {codespine-1.0.9 → codespine-1.0.10}/tests/test_store_recovery.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: codespine
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.10
|
|
4
4
|
Summary: Local Java code intelligence indexer backed by a graph database
|
|
5
5
|
Author: CodeSpine contributors
|
|
6
6
|
License: MIT License
|
|
@@ -56,6 +56,7 @@ Requires-Dist: numpy; extra == "ml"
|
|
|
56
56
|
Provides-Extra: community
|
|
57
57
|
Requires-Dist: igraph; extra == "community"
|
|
58
58
|
Requires-Dist: leidenalg; extra == "community"
|
|
59
|
+
Provides-Extra: ui
|
|
59
60
|
Provides-Extra: full
|
|
60
61
|
Requires-Dist: sentence-transformers; extra == "full"
|
|
61
62
|
Requires-Dist: numpy; extra == "full"
|
|
@@ -65,7 +66,7 @@ Dynamic: license-file
|
|
|
65
66
|
|
|
66
67
|
# CodeSpine
|
|
67
68
|
|
|
68
|
-
**v1.0.
|
|
69
|
+
**v1.0.10** — Local Java code intelligence for coding agents, backed by a graph database.
|
|
69
70
|
|
|
70
71
|
CodeSpine cuts token burn for coding agents working on Java codebases.
|
|
71
72
|
|
|
@@ -95,12 +96,22 @@ File changes are written directly to the graph and are immediately queryable —
|
|
|
95
96
|
pip install codespine
|
|
96
97
|
```
|
|
97
98
|
|
|
99
|
+
Default install includes the CLI, MCP server, Java indexer, watch mode, health checks, background task tracking, and graph/search commands.
|
|
100
|
+
|
|
98
101
|
Optional semantic search (sentence-transformers):
|
|
99
102
|
|
|
100
103
|
```bash
|
|
101
104
|
pip install "codespine[ml]"
|
|
102
105
|
```
|
|
103
106
|
|
|
107
|
+
Add the local index explorer UI:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
pip install "codespine[ui]"
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
The current lite UI is dependency-free and served locally by CodeSpine; the `ui` extra is the stable add-on install target for the browser explorer.
|
|
114
|
+
|
|
104
115
|
Everything at once (ml + community detection):
|
|
105
116
|
|
|
106
117
|
```bash
|
|
@@ -149,6 +160,8 @@ Detecting execution flows... 34 processes found
|
|
|
149
160
|
Finding dead code... 12 unreachable symbols
|
|
150
161
|
Analyzing git history... 18 coupled file pairs
|
|
151
162
|
Generating embeddings... 623 vectors stored
|
|
163
|
+
Index self-test... passed
|
|
164
|
+
Index health... no anomalies
|
|
152
165
|
|
|
153
166
|
Done in 4.2s — 623 symbols, 1,847 edges, 8 clusters, 34 flows
|
|
154
167
|
Publishing read replica... MCP will reload automatically
|
|
@@ -317,6 +330,12 @@ codespine analyse <path> --complete --deep # + communities, flows, dead code,
|
|
|
317
330
|
codespine analyse <path> --complete --incremental-deep
|
|
318
331
|
codespine analyse <path> --embed # + vector embeddings
|
|
319
332
|
|
|
333
|
+
# Background jobs and local UI
|
|
334
|
+
codespine background # background task progress
|
|
335
|
+
codespine tasks # running/recent background work
|
|
336
|
+
codespine ui # local read-only index explorer
|
|
337
|
+
codespine ui --open # open http://127.0.0.1:8765
|
|
338
|
+
|
|
320
339
|
# Live watch
|
|
321
340
|
codespine watch --path . # file-save-triggered direct-to-graph writes
|
|
322
341
|
codespine watch --path . --install-hook # also install post-commit git hook
|
|
@@ -334,6 +353,8 @@ codespine diff main..feature # symbol-level branch diff
|
|
|
334
353
|
|
|
335
354
|
# Status & Info
|
|
336
355
|
codespine stats # per-project stats (--shards for shard layout)
|
|
356
|
+
codespine health # index coverage and anomaly dashboard
|
|
357
|
+
codespine self-test # smoke queries for schema/translator checks
|
|
337
358
|
codespine list # indexed projects
|
|
338
359
|
codespine status # service and database status
|
|
339
360
|
codespine guide # tool catalog and workflows
|
|
@@ -360,7 +381,7 @@ codespine force-reset # emergency: delete all data files
|
|
|
360
381
|
|
|
361
382
|
`analyse` defaults to incremental mode. Repeat runs only process changed files and are fast.
|
|
362
383
|
|
|
363
|
-
`analyse` runs in fast mode by default: it indexes the core graph, publishes that read replica from a detached process, then continues communities, flows, dead code, coupling, and cross-module enrichment in the background. Use `--complete --deep` when you want those passes refreshed before the command returns.
|
|
384
|
+
`analyse` runs in fast mode by default: it indexes the core graph, publishes that read replica from a detached process, then continues communities, flows, dead code, coupling, and cross-module enrichment in the background. Use `codespine tasks` or `codespine ui` to watch that work. Use `--complete --deep` when you want those passes refreshed before the command returns.
|
|
364
385
|
|
|
365
386
|
---
|
|
366
387
|
|
|
@@ -548,6 +569,10 @@ The deep analysis phase covers four passes that are expensive but optional:
|
|
|
548
569
|
|
|
549
570
|
**Fast default:** `codespine analyse` prioritizes a queryable core index. Communities, flows, dead-code, git coupling, and cross-module links are queued in a detached background enrichment job unless you use `--complete`.
|
|
550
571
|
|
|
572
|
+
**Health checks:** every analyse run now performs a small self-test query suite and reports index anomalies such as large projects with zero call edges. Use `codespine health` for the terminal dashboard or `codespine self-test --json` in CI.
|
|
573
|
+
|
|
574
|
+
**Background visibility:** `codespine background` shows running background job progress in the terminal, and `codespine tasks` remains available as the shorter registry view. `codespine ui` serves a local read-only index explorer with project counts, index health, and the same background task state at `http://127.0.0.1:8765`.
|
|
575
|
+
|
|
551
576
|
**Complete deep:** `--complete --deep` runs the expensive enrichment passes before returning. `--complete --incremental-deep` combines incremental file indexing with a forced full deep pass.
|
|
552
577
|
|
|
553
578
|
```bash
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# CodeSpine
|
|
2
2
|
|
|
3
|
-
**v1.0.
|
|
3
|
+
**v1.0.10** — Local Java code intelligence for coding agents, backed by a graph database.
|
|
4
4
|
|
|
5
5
|
CodeSpine cuts token burn for coding agents working on Java codebases.
|
|
6
6
|
|
|
@@ -30,12 +30,22 @@ File changes are written directly to the graph and are immediately queryable —
|
|
|
30
30
|
pip install codespine
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
+
Default install includes the CLI, MCP server, Java indexer, watch mode, health checks, background task tracking, and graph/search commands.
|
|
34
|
+
|
|
33
35
|
Optional semantic search (sentence-transformers):
|
|
34
36
|
|
|
35
37
|
```bash
|
|
36
38
|
pip install "codespine[ml]"
|
|
37
39
|
```
|
|
38
40
|
|
|
41
|
+
Add the local index explorer UI:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
pip install "codespine[ui]"
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
The current lite UI is dependency-free and served locally by CodeSpine; the `ui` extra is the stable add-on install target for the browser explorer.
|
|
48
|
+
|
|
39
49
|
Everything at once (ml + community detection):
|
|
40
50
|
|
|
41
51
|
```bash
|
|
@@ -84,6 +94,8 @@ Detecting execution flows... 34 processes found
|
|
|
84
94
|
Finding dead code... 12 unreachable symbols
|
|
85
95
|
Analyzing git history... 18 coupled file pairs
|
|
86
96
|
Generating embeddings... 623 vectors stored
|
|
97
|
+
Index self-test... passed
|
|
98
|
+
Index health... no anomalies
|
|
87
99
|
|
|
88
100
|
Done in 4.2s — 623 symbols, 1,847 edges, 8 clusters, 34 flows
|
|
89
101
|
Publishing read replica... MCP will reload automatically
|
|
@@ -252,6 +264,12 @@ codespine analyse <path> --complete --deep # + communities, flows, dead code,
|
|
|
252
264
|
codespine analyse <path> --complete --incremental-deep
|
|
253
265
|
codespine analyse <path> --embed # + vector embeddings
|
|
254
266
|
|
|
267
|
+
# Background jobs and local UI
|
|
268
|
+
codespine background # background task progress
|
|
269
|
+
codespine tasks # running/recent background work
|
|
270
|
+
codespine ui # local read-only index explorer
|
|
271
|
+
codespine ui --open # open http://127.0.0.1:8765
|
|
272
|
+
|
|
255
273
|
# Live watch
|
|
256
274
|
codespine watch --path . # file-save-triggered direct-to-graph writes
|
|
257
275
|
codespine watch --path . --install-hook # also install post-commit git hook
|
|
@@ -269,6 +287,8 @@ codespine diff main..feature # symbol-level branch diff
|
|
|
269
287
|
|
|
270
288
|
# Status & Info
|
|
271
289
|
codespine stats # per-project stats (--shards for shard layout)
|
|
290
|
+
codespine health # index coverage and anomaly dashboard
|
|
291
|
+
codespine self-test # smoke queries for schema/translator checks
|
|
272
292
|
codespine list # indexed projects
|
|
273
293
|
codespine status # service and database status
|
|
274
294
|
codespine guide # tool catalog and workflows
|
|
@@ -295,7 +315,7 @@ codespine force-reset # emergency: delete all data files
|
|
|
295
315
|
|
|
296
316
|
`analyse` defaults to incremental mode. Repeat runs only process changed files and are fast.
|
|
297
317
|
|
|
298
|
-
`analyse` runs in fast mode by default: it indexes the core graph, publishes that read replica from a detached process, then continues communities, flows, dead code, coupling, and cross-module enrichment in the background. Use `--complete --deep` when you want those passes refreshed before the command returns.
|
|
318
|
+
`analyse` runs in fast mode by default: it indexes the core graph, publishes that read replica from a detached process, then continues communities, flows, dead code, coupling, and cross-module enrichment in the background. Use `codespine tasks` or `codespine ui` to watch that work. Use `--complete --deep` when you want those passes refreshed before the command returns.
|
|
299
319
|
|
|
300
320
|
---
|
|
301
321
|
|
|
@@ -483,6 +503,10 @@ The deep analysis phase covers four passes that are expensive but optional:
|
|
|
483
503
|
|
|
484
504
|
**Fast default:** `codespine analyse` prioritizes a queryable core index. Communities, flows, dead-code, git coupling, and cross-module links are queued in a detached background enrichment job unless you use `--complete`.
|
|
485
505
|
|
|
506
|
+
**Health checks:** every analyse run now performs a small self-test query suite and reports index anomalies such as large projects with zero call edges. Use `codespine health` for the terminal dashboard or `codespine self-test --json` in CI.
|
|
507
|
+
|
|
508
|
+
**Background visibility:** `codespine background` shows running background job progress in the terminal, and `codespine tasks` remains available as the shorter registry view. `codespine ui` serves a local read-only index explorer with project counts, index health, and the same background task state at `http://127.0.0.1:8765`.
|
|
509
|
+
|
|
486
510
|
**Complete deep:** `--complete --deep` runs the expensive enrichment passes before returning. `--complete --incremental-deep` combines incremental file indexing with a forced full deep pass.
|
|
487
511
|
|
|
488
512
|
```bash
|