codingest 0.2.7__tar.gz → 0.2.9__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 (105) hide show
  1. {codingest-0.2.7 → codingest-0.2.9}/Cargo.lock +9 -8
  2. {codingest-0.2.7 → codingest-0.2.9}/Cargo.toml +59 -6
  3. {codingest-0.2.7 → codingest-0.2.9}/PKG-INFO +5 -5
  4. {codingest-0.2.7 → codingest-0.2.9}/README.md +3 -3
  5. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/Cargo.toml +1 -1
  6. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest-cli/Cargo.toml +1 -1
  7. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest-mcp/Cargo.toml +1 -1
  8. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest-py/Cargo.toml +3 -3
  9. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest-py/src/lib.rs +2 -1
  10. {codingest-0.2.7 → codingest-0.2.9}/pyproject.toml +2 -2
  11. {codingest-0.2.7 → codingest-0.2.9}/LICENSE +0 -0
  12. {codingest-0.2.7 → codingest-0.2.9}/codingest/__init__.py +0 -0
  13. {codingest-0.2.7 → codingest-0.2.9}/codingest/__init__.pyi +0 -0
  14. {codingest-0.2.7 → codingest-0.2.9}/codingest/cli.py +0 -0
  15. {codingest-0.2.7 → codingest-0.2.9}/codingest/mcp_server.py +0 -0
  16. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/bin/codingest_bench.rs +0 -0
  17. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/bin/codingest_stats.rs +0 -0
  18. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/builder/call_edges.rs +0 -0
  19. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/builder/js_workspace.rs +0 -0
  20. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/builder/load/edge_frames.rs +0 -0
  21. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/builder/load/entity_frames.rs +0 -0
  22. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/builder/load.rs +0 -0
  23. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/builder/mod.rs +0 -0
  24. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/builder/other_edges.rs +0 -0
  25. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/builder/routes/django.rs +0 -0
  26. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/builder/routes/fastapi.rs +0 -0
  27. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/builder/routes/flask.rs +0 -0
  28. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/builder/routes/mod.rs +0 -0
  29. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/builder/semantic_edges.rs +0 -0
  30. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/builder/type_edges.rs +0 -0
  31. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/cross_lang.rs +0 -0
  32. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/docs/mod.rs +0 -0
  33. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/docs/rst.rs +0 -0
  34. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/lib.rs +0 -0
  35. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/manifest/mod.rs +0 -0
  36. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/models.rs +0 -0
  37. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/parsers/agc.rs +0 -0
  38. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/parsers/cpp.rs +0 -0
  39. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/parsers/csharp.rs +0 -0
  40. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/parsers/css.rs +0 -0
  41. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/parsers/dart.rs +0 -0
  42. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/parsers/go.rs +0 -0
  43. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/parsers/html.rs +0 -0
  44. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/parsers/java.rs +0 -0
  45. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/parsers/julia.rs +0 -0
  46. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/parsers/mod.rs +0 -0
  47. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/parsers/php.rs +0 -0
  48. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/parsers/python.rs +0 -0
  49. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/parsers/r.rs +0 -0
  50. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/parsers/registry.rs +0 -0
  51. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/parsers/rust_lang.rs +0 -0
  52. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/parsers/shared.rs +0 -0
  53. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/parsers/swift.rs +0 -0
  54. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/parsers/typescript.rs +0 -0
  55. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/repo.rs +0 -0
  56. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/src/rev.rs +0 -0
  57. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/agc_apollo.rs +0 -0
  58. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/goldens/README.md +0 -0
  59. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/goldens/agc_basic.sha256 +0 -0
  60. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/goldens/cpp_extern_c.sha256 +0 -0
  61. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/goldens/cpp_include.sha256 +0 -0
  62. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/goldens/cross_ts_py.sha256 +0 -0
  63. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/goldens/csharp_using_alias.sha256 +0 -0
  64. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/goldens/dart_import.sha256 +0 -0
  65. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/goldens/dart_part_of.sha256 +0 -0
  66. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/goldens/docs_ext_collide.sha256 +0 -0
  67. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/goldens/docs_mdx.sha256 +0 -0
  68. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/goldens/dup_minified_assets.sha256 +0 -0
  69. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/goldens/go_interface.sha256 +0 -0
  70. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/goldens/html_js_lang_group.sha256 +0 -0
  71. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/goldens/java_javadoc.sha256 +0 -0
  72. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/goldens/julia_basic.sha256 +0 -0
  73. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/goldens/php_group_use.sha256 +0 -0
  74. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/goldens/py_basic.sha256 +0 -0
  75. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/goldens/py_import.sha256 +0 -0
  76. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/goldens/py_inheritance.sha256 +0 -0
  77. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/goldens/py_nested_defs.sha256 +0 -0
  78. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/goldens/py_routes_dup.sha256 +0 -0
  79. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/goldens/py_src_layout.sha256 +0 -0
  80. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/goldens/r_basic.sha256 +0 -0
  81. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/goldens/rust_import.sha256 +0 -0
  82. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/goldens/rust_inline_mod.sha256 +0 -0
  83. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/goldens/rust_xfile.sha256 +0 -0
  84. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/goldens/swift_basic.sha256 +0 -0
  85. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/goldens/ts_callback.sha256 +0 -0
  86. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/goldens/ts_closure_scope.sha256 +0 -0
  87. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/goldens/ts_hof_binding.sha256 +0 -0
  88. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/goldens/ts_monorepo.sha256 +0 -0
  89. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/goldens/web_served_root.sha256 +0 -0
  90. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/grammar_kinds.rs +0 -0
  91. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/parity.rs +0 -0
  92. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest/tests/traversal_semantics.rs +0 -0
  93. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest-cli/skills/codingest-code-review/SKILL.md +0 -0
  94. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest-cli/skills/codingest-code-review/references/mcp-upgrade.md +0 -0
  95. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest-cli/skills/codingest-code-review/references/public-repositories.md +0 -0
  96. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest-cli/skills/codingest-code-review/references/queries.md +0 -0
  97. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest-cli/src/code_tree_cli.rs +0 -0
  98. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest-cli/src/lib.rs +0 -0
  99. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest-cli/src/main.rs +0 -0
  100. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest-cli/src/query.rs +0 -0
  101. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest-cli/src/skill.rs +0 -0
  102. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest-cli/src/skill_assets.rs +0 -0
  103. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest-cli/tests/exit_codes.rs +0 -0
  104. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest-mcp/src/lib.rs +0 -0
  105. {codingest-0.2.7 → codingest-0.2.9}/crates/codingest-mcp/src/main.rs +0 -0
@@ -308,7 +308,7 @@ dependencies = [
308
308
 
309
309
  [[package]]
310
310
  name = "codingest"
311
- version = "0.2.7"
311
+ version = "0.2.9"
312
312
  dependencies = [
313
313
  "aho-corasick",
314
314
  "base64 0.22.1",
@@ -344,7 +344,7 @@ dependencies = [
344
344
 
345
345
  [[package]]
346
346
  name = "codingest-cli"
347
- version = "0.2.7"
347
+ version = "0.2.9"
348
348
  dependencies = [
349
349
  "anyhow",
350
350
  "clap",
@@ -356,7 +356,7 @@ dependencies = [
356
356
 
357
357
  [[package]]
358
358
  name = "codingest-mcp"
359
- version = "0.2.7"
359
+ version = "0.2.9"
360
360
  dependencies = [
361
361
  "anyhow",
362
362
  "codingest",
@@ -365,7 +365,7 @@ dependencies = [
365
365
 
366
366
  [[package]]
367
367
  name = "codingest-py"
368
- version = "0.2.7"
368
+ version = "0.2.9"
369
369
  dependencies = [
370
370
  "codingest",
371
371
  "codingest-cli",
@@ -1392,12 +1392,13 @@ dependencies = [
1392
1392
 
1393
1393
  [[package]]
1394
1394
  name = "kglite"
1395
- version = "0.16.7"
1395
+ version = "0.16.12"
1396
1396
  source = "registry+https://github.com/rust-lang/crates.io-index"
1397
- checksum = "52ad0bb585ce66fea7444c3d07b7ea814ffc11982467e2153f7d2bac8825f975"
1397
+ checksum = "5a849c74d23c785f96e42189be38a3a973021bf6ab16c1846652419b296b39e4"
1398
1398
  dependencies = [
1399
1399
  "bzip2",
1400
1400
  "chrono",
1401
+ "crc32fast",
1401
1402
  "csv",
1402
1403
  "flate2",
1403
1404
  "fs2",
@@ -1427,9 +1428,9 @@ dependencies = [
1427
1428
 
1428
1429
  [[package]]
1429
1430
  name = "kglite-mcp-server"
1430
- version = "0.16.7"
1431
+ version = "0.16.12"
1431
1432
  source = "registry+https://github.com/rust-lang/crates.io-index"
1432
- checksum = "20b0d3d8b3e616958bc4bcc06e5d95da6d4f1c48f64fb3ec2d95227f7e888845"
1433
+ checksum = "a24b79083c1f915afbbb6c3a2601893e06beaef80c736d51ddbbc30b7c18a87b"
1433
1434
  dependencies = [
1434
1435
  "anyhow",
1435
1436
  "bytes",
@@ -3,7 +3,7 @@ members = ["crates/codingest", "crates/codingest-cli", "crates/codingest-mcp", "
3
3
  resolver = "2"
4
4
 
5
5
  [workspace.package]
6
- version = "0.2.7"
6
+ version = "0.2.9"
7
7
  edition = "2021"
8
8
  rust-version = "1.88"
9
9
  license = "MIT"
@@ -12,8 +12,61 @@ repository = "https://github.com/kkollsga/codingest"
12
12
  [workspace.dependencies]
13
13
  base64 = "0.22"
14
14
  sha2 = "0.11"
15
- # kglite engine + MCP server — imported as crates.io libraries. The 0.16.7
16
- # floor is a LOCKSTEP REFRESH (same pattern as 0.16.5, below): 0.16.7 converts
15
+ # kglite engine + MCP server — imported as crates.io libraries. The 0.16.12
16
+ # floor is a LOCKSTEP REFRESH over three upstream releases, all of which are
17
+ # opt-in surface codingest does not opt into:
18
+ # * 0.16.12 is entirely INSIDE the 0.16.11 ontology declaration layer:
19
+ # `required_properties`/`property_types` were parsed and persisted but
20
+ # never checked (they now emit audit rows), `inverse_name` stopped
21
+ # auto-enrolling the physical-inverse check (it is a reading-direction
22
+ # alias; opt in with `inverse_enforced: true`), and `enforcement` gained a
23
+ # per-check `{check: severity}` map. Every one of those reaches a graph
24
+ # only through a declaration codingest never installs — nothing here calls
25
+ # `define_ontology`, so there is no declaration to audit, no blueprint gate
26
+ # to fail, and no `SHOW ONTOLOGY` row to render.
27
+ # * 0.16.11 adds the ontology declaration layer (`define_ontology`,
28
+ # `materialize_ontology`, `SHOW ONTOLOGY`, `ontology_audit`), structured
29
+ # table properties, and `MATCH (n:A|B)` label alternation. All three are
30
+ # DECLARED features — a graph that declares none is byte-identical and
31
+ # queries identically, and codingest declares none (see the standing ask in
32
+ # inbox to emit a code-graph ontology: a FEATURE, not part of this floor).
33
+ # Its one broad fix, `vacuum()` corrupting secondary labels, cannot reach us
34
+ # — the builder never adds a secondary label and never vacuums. `describe()`
35
+ # grew an `<ontology>` section (absent when nothing is declared) and a
36
+ # sample-inferred `shape=` per property; the six rule procedures gained a
37
+ # `rule` column, and codingest calls none of them.
38
+ # * 0.16.10 is the BM25 text index (`build_text_index` / `text_bm25` /
39
+ # `score_fuse`), vector-index catch-up, and the MCP `--parallel` /
40
+ # `extensions.parallel` opt-in codingest asked for on 2026-08-22 — which
41
+ # codingest-mcp inherits for free as a thin frontend over
42
+ # kglite-mcp-server, off unless an operator turns it on. Its `.kgl` text-
43
+ # index section is a rebuildable cache: a graph with no text index writes
44
+ # byte-identical files and older files load unchanged, so the frozen
45
+ # goldens hold. Two engine fixes land under us without a source change: a
46
+ # `LIMIT` on an aggregating RETURN grouped by a node property silently
47
+ # dropped rows, and a second `vector_score()`/`text_score()` in one query
48
+ # returned the first call's score. `size()` on a bracket-delimited string
49
+ # now counts characters, not JSON elements. Its Rust REMOVALS — the `spec`
50
+ # parameter of `api::io::save_subset`, `EmbeddingStore::index` as a public
51
+ # field, `build_vector_index`'s new trailing `auto_refresh_limit` — name no
52
+ # symbol codingest uses (we import DirGraph, GraphRead, io::{load_file,
53
+ # save_graph, write_kgl, prepare_kgl_write}, mutation::{add_nodes,
54
+ # extend_graph}, param::kglite_value_to_json, session, code_entities,
55
+ # datatypes).
56
+ # Evidence is the gate: build/clippy/`cargo test` incl. `golden_parity` green
57
+ # across the bump with zero source changes.
58
+ # It sits on the 0.16.9
59
+ # floor, itself a LOCKSTEP REFRESH: 0.16.9 replaces the software CRC32 in `.kgl`
60
+ # section verification with crc32fast (loads of digest-carrying files ~1.6x
61
+ # faster; digest VALUES unchanged, byte-identical files, golden digests do not
62
+ # move), and 0.16.8 is engine correctness fixes — count(DISTINCT <rel var>),
63
+ # aggregating WITH+LIMIT pushdown, composite-index key order, mapped-storage
64
+ # property staleness — none of which reaches a query or API codingest ships
65
+ # (our one count(DISTINCT …) counts a node variable). Python-side,
66
+ # `add_connections_internal` disappeared from the class; codingest never
67
+ # called it.
68
+ # It sits on the 0.16.7
69
+ # floor, a lockstep refresh in the same pattern (as was 0.16.5): 0.16.7 converts
17
70
  # a family of Python-facing silent-wrong-answer paths into typed errors
18
71
  # (`as_dict` removal; collision-raising `degrees()`/`embeddings()`/
19
72
  # `to_networkx()`; `compare()` traversal errors as `kglite.ArgumentError`) —
@@ -99,7 +152,7 @@ sha2 = "0.11"
99
152
  # which kglite 0.15.14 and earlier refuse by version number. Because
100
153
  # `codingest.build()` writes the bytes with the Rust engine compiled in here and
101
154
  # reads them back through the separately-installed Python `kglite` wheel, the
102
- # two sides must be on the same side of that break — hence `>=0.16.7,<0.17` in
155
+ # two sides must be on the same side of that break — hence `>=0.16.12,<0.17` in
103
156
  # pyproject.toml, and hence a reader on 0.15.x is not "old but workable", it is
104
157
  # a hard failure with `FileFormatError`.
105
158
  # 0.16.0 also removed `DirGraph::enable_columnar` from the public API (every
@@ -164,8 +217,8 @@ sha2 = "0.11"
164
217
  # and no disk storage. Neither 0.15.7 nor 0.15.8 changes the `kglite::api` we
165
218
  # call, graph output, property encoding, or `.kgl` serialization.
166
219
  # Keep both libraries aligned so the graph and server share one engine release.
167
- kglite = { version = "0.16.7", default-features = false }
168
- kglite-mcp-server = { version = "0.16.7", default-features = false }
220
+ kglite = { version = "0.16.12", default-features = false }
221
+ kglite-mcp-server = { version = "0.16.12", default-features = false }
169
222
 
170
223
  # Mirror KGLite's release codegen so the standalone builder has
171
224
  # performance parity with the in-tree component (see KGLite
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codingest
3
- Version: 0.2.7
3
+ Version: 0.2.9
4
4
  Classifier: Development Status :: 3 - Alpha
5
5
  Classifier: Intended Audience :: Developers
6
6
  Classifier: Programming Language :: Python :: 3
@@ -12,7 +12,7 @@ Classifier: Programming Language :: Python :: 3.14
12
12
  Classifier: Programming Language :: Rust
13
13
  Classifier: Topic :: Software Development
14
14
  Classifier: Topic :: Software Development :: Libraries
15
- Requires-Dist: kglite>=0.16.7,<0.17
15
+ Requires-Dist: kglite>=0.16.12,<0.17
16
16
  License-File: LICENSE
17
17
  Summary: Build fast, queryable code graphs for AI agents, MCP code review, and local or GitHub repository analysis.
18
18
  Keywords: ai-agents,mcp,code-review,knowledge-graph,code-analysis,github,tree-sitter,cypher
@@ -192,7 +192,7 @@ codingest skill install # code-review Agent Skill
192
192
  ```
193
193
 
194
194
  The wheel bundles every grammar plus the `codingest` and `codingest-mcp`
195
- commands. KGLite ≥0.16.7 is installed automatically as the query/storage
195
+ commands. KGLite ≥0.16.12 is installed automatically as the query/storage
196
196
  engine; its MCP server and the transitive `mcp-methods` framework power the
197
197
  builder-aware Codingest server. Nothing else needs to be installed.
198
198
 
@@ -205,7 +205,7 @@ Python prerequisites.
205
205
  ```toml
206
206
  [dependencies]
207
207
  codingest = "0.2"
208
- kglite = "0.16.7"
208
+ kglite = "0.16.12"
209
209
  ```
210
210
 
211
211
  ```rust
@@ -277,7 +277,7 @@ diagnostic.
277
277
  ## Dependency policy
278
278
 
279
279
  `kglite` and `kglite-mcp-server` use matching crates.io requirements with a
280
- 0.16.7 minimum and a shared lockfile. This keeps the builder, persistence
280
+ 0.16.12 minimum and a shared lockfile. This keeps the builder, persistence
281
281
  handoff, and embedded MCP server on one compatible engine patch line.
282
282
 
283
283
  ## Parity with the (now-removed) in-tree component
@@ -165,7 +165,7 @@ codingest skill install # code-review Agent Skill
165
165
  ```
166
166
 
167
167
  The wheel bundles every grammar plus the `codingest` and `codingest-mcp`
168
- commands. KGLite ≥0.16.7 is installed automatically as the query/storage
168
+ commands. KGLite ≥0.16.12 is installed automatically as the query/storage
169
169
  engine; its MCP server and the transitive `mcp-methods` framework power the
170
170
  builder-aware Codingest server. Nothing else needs to be installed.
171
171
 
@@ -178,7 +178,7 @@ Python prerequisites.
178
178
  ```toml
179
179
  [dependencies]
180
180
  codingest = "0.2"
181
- kglite = "0.16.7"
181
+ kglite = "0.16.12"
182
182
  ```
183
183
 
184
184
  ```rust
@@ -250,7 +250,7 @@ diagnostic.
250
250
  ## Dependency policy
251
251
 
252
252
  `kglite` and `kglite-mcp-server` use matching crates.io requirements with a
253
- 0.16.7 minimum and a shared lockfile. This keeps the builder, persistence
253
+ 0.16.12 minimum and a shared lockfile. This keeps the builder, persistence
254
254
  handoff, and embedded MCP server on one compatible engine patch line.
255
255
 
256
256
  ## Parity with the (now-removed) in-tree component
@@ -10,7 +10,7 @@ keywords = ["knowledge-graph", "code-analysis", "tree-sitter", "cypher", "kglite
10
10
  categories = ["development-tools", "parser-implementations"]
11
11
 
12
12
  # Requires the kglite 0.15 engine API (`kglite::api::code_entities`); the
13
- # workspace pins the current engine floor (0.16.7).
13
+ # workspace pins the current engine floor (0.16.12).
14
14
 
15
15
  [lib]
16
16
  name = "codingest"
@@ -14,7 +14,7 @@ name = "codingest"
14
14
  path = "src/main.rs"
15
15
 
16
16
  [dependencies]
17
- codingest = { version = "0.2.7", path = "../codingest" }
17
+ codingest = { version = "0.2.9", path = "../codingest" }
18
18
  kglite = { workspace = true }
19
19
  anyhow = "1.0.104"
20
20
  clap = { version = "4.6.4", features = ["derive"] }
@@ -14,6 +14,6 @@ name = "codingest-mcp"
14
14
  path = "src/main.rs"
15
15
 
16
16
  [dependencies]
17
- codingest = { version = "0.2.7", path = "../codingest" }
17
+ codingest = { version = "0.2.9", path = "../codingest" }
18
18
  kglite-mcp-server = { workspace = true }
19
19
  anyhow = "1.0.104"
@@ -42,7 +42,7 @@ doctest = false
42
42
  pyo3 = { version = "0.29" }
43
43
  # The engine-free builder (parsers, call/type/route edges, rev merge, repo
44
44
  # clone, manifest reader). Docs pass gated by this crate's `docs` feature.
45
- codingest = { version = "0.2.7", path = "../codingest", default-features = false }
45
+ codingest = { version = "0.2.9", path = "../codingest", default-features = false }
46
46
  # `.kgl` persistence (`kglite::api::io::save_graph`) for the serialize half of
47
47
  # the build-then-load handoff, plus the `DirGraph` type the builder returns.
48
48
  kglite = { workspace = true }
@@ -53,9 +53,9 @@ tempfile = "3.27.0"
53
53
  # through `_run_cli`, so `pip install codingest` also installs the `codingest`
54
54
  # command without a second wheel or a duplicated builder build. Mirrors
55
55
  # kglite-py's `kglite-cli` bundling.
56
- codingest-cli = { version = "0.2.7", path = "../codingest-cli" }
56
+ codingest-cli = { version = "0.2.9", path = "../codingest-cli" }
57
57
  # Source-building MCP composition. The graph server and generic MCP lifecycle
58
58
  # remain owned by its existing kglite-mcp-server -> mcp-methods Rust dependency
59
59
  # chain; linking this thin library into the extension gives pip users the same
60
60
  # builder-aware server as the standalone `codingest-mcp` binary.
61
- codingest-mcp = { version = "0.2.7", path = "../codingest-mcp" }
61
+ codingest-mcp = { version = "0.2.9", path = "../codingest-mcp" }
@@ -73,7 +73,8 @@ fn load_via_kglite(py: Python<'_>, path: &Path) -> PyResult<Py<PyAny>> {
73
73
  let kglite = py.import("kglite").map_err(|e| {
74
74
  PyRuntimeError::new_err(format!(
75
75
  "codingest.build() returns a kglite.KnowledgeGraph, but importing \
76
- `kglite` failed ({e}). Install it: `pip install kglite>=0.16.6`."
76
+ `kglite` failed ({e}). Install it: `pip install \
77
+ 'kglite>=0.16.12,<0.17'`."
77
78
  ))
78
79
  })?;
79
80
  let graph = kglite.call_method1("load", (path.to_string_lossy().as_ref(),))?;
@@ -42,9 +42,9 @@ dynamic = ["version"]
42
42
  # minor releases (e.g. the v3->v4 break, which refuses old files outright), so
43
43
  # pip must never be free to pair our writer with a reader from a different
44
44
  # minor. This range therefore mirrors the Cargo semver range for the pin above
45
- # (`version = "0.16.7"` == `>=0.16.7,<0.17.0`) exactly — bump both together.
45
+ # (`version = "0.16.12"` == `>=0.16.12,<0.17.0`) exactly — bump both together.
46
46
  dependencies = [
47
- "kglite>=0.16.7,<0.17",
47
+ "kglite>=0.16.12,<0.17",
48
48
  ]
49
49
 
50
50
  [project.urls]
File without changes
File without changes