codingest 0.2.11__tar.gz → 0.2.12__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.11 → codingest-0.2.12}/Cargo.lock +8 -40
  2. {codingest-0.2.11 → codingest-0.2.12}/Cargo.toml +66 -8
  3. {codingest-0.2.11 → codingest-0.2.12}/PKG-INFO +7 -7
  4. {codingest-0.2.11 → codingest-0.2.12}/README.md +5 -5
  5. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/Cargo.toml +1 -1
  6. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/README.md +1 -1
  7. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-cli/Cargo.toml +1 -1
  8. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-mcp/Cargo.toml +1 -1
  9. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-py/Cargo.toml +3 -3
  10. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-py/src/lib.rs +1 -1
  11. {codingest-0.2.11 → codingest-0.2.12}/pyproject.toml +2 -2
  12. {codingest-0.2.11 → codingest-0.2.12}/LICENSE +0 -0
  13. {codingest-0.2.11 → codingest-0.2.12}/codingest/__init__.py +0 -0
  14. {codingest-0.2.11 → codingest-0.2.12}/codingest/__init__.pyi +0 -0
  15. {codingest-0.2.11 → codingest-0.2.12}/codingest/cli.py +0 -0
  16. {codingest-0.2.11 → codingest-0.2.12}/codingest/mcp_server.py +0 -0
  17. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/bin/codingest_bench.rs +0 -0
  18. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/bin/codingest_stats.rs +0 -0
  19. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/builder/call_edges.rs +0 -0
  20. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/builder/js_workspace.rs +0 -0
  21. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/builder/load/edge_frames.rs +0 -0
  22. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/builder/load/entity_frames.rs +0 -0
  23. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/builder/load.rs +0 -0
  24. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/builder/mod.rs +0 -0
  25. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/builder/other_edges.rs +0 -0
  26. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/builder/routes/django.rs +0 -0
  27. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/builder/routes/fastapi.rs +0 -0
  28. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/builder/routes/flask.rs +0 -0
  29. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/builder/routes/mod.rs +0 -0
  30. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/builder/semantic_edges.rs +0 -0
  31. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/builder/type_edges.rs +0 -0
  32. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/cross_lang.rs +0 -0
  33. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/docs/mod.rs +0 -0
  34. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/docs/rst.rs +0 -0
  35. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/lib.rs +0 -0
  36. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/manifest/mod.rs +0 -0
  37. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/models.rs +0 -0
  38. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/agc.rs +0 -0
  39. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/cpp.rs +0 -0
  40. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/csharp.rs +0 -0
  41. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/css.rs +0 -0
  42. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/dart.rs +0 -0
  43. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/go.rs +0 -0
  44. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/html.rs +0 -0
  45. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/java.rs +0 -0
  46. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/julia.rs +0 -0
  47. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/mod.rs +0 -0
  48. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/php.rs +0 -0
  49. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/python.rs +0 -0
  50. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/r.rs +0 -0
  51. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/registry.rs +0 -0
  52. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/rust_lang.rs +0 -0
  53. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/shared.rs +0 -0
  54. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/swift.rs +0 -0
  55. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/typescript.rs +0 -0
  56. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/repo.rs +0 -0
  57. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/rev.rs +0 -0
  58. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/agc_apollo.rs +0 -0
  59. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/agc_basic.sha256 +0 -0
  60. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/cpp_extern_c.sha256 +0 -0
  61. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/cpp_include.sha256 +0 -0
  62. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/cross_ts_py.sha256 +0 -0
  63. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/csharp_using_alias.sha256 +0 -0
  64. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/dart_import.sha256 +0 -0
  65. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/dart_part_of.sha256 +0 -0
  66. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/docs_ext_collide.sha256 +0 -0
  67. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/docs_mdx.sha256 +0 -0
  68. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/dup_minified_assets.sha256 +0 -0
  69. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/go_interface.sha256 +0 -0
  70. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/html_js_lang_group.sha256 +0 -0
  71. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/java_javadoc.sha256 +0 -0
  72. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/julia_basic.sha256 +0 -0
  73. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/php_group_use.sha256 +0 -0
  74. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/py_basic.sha256 +0 -0
  75. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/py_import.sha256 +0 -0
  76. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/py_inheritance.sha256 +0 -0
  77. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/py_nested_defs.sha256 +0 -0
  78. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/py_routes_dup.sha256 +0 -0
  79. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/py_src_layout.sha256 +0 -0
  80. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/r_basic.sha256 +0 -0
  81. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/rust_import.sha256 +0 -0
  82. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/rust_inline_mod.sha256 +0 -0
  83. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/rust_xfile.sha256 +0 -0
  84. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/swift_basic.sha256 +0 -0
  85. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/ts_callback.sha256 +0 -0
  86. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/ts_closure_scope.sha256 +0 -0
  87. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/ts_hof_binding.sha256 +0 -0
  88. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/ts_monorepo.sha256 +0 -0
  89. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/web_served_root.sha256 +0 -0
  90. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/grammar_kinds.rs +0 -0
  91. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/parity.rs +0 -0
  92. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/traversal_semantics.rs +0 -0
  93. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-cli/skills/codingest-code-review/SKILL.md +0 -0
  94. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-cli/skills/codingest-code-review/references/mcp-upgrade.md +0 -0
  95. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-cli/skills/codingest-code-review/references/public-repositories.md +0 -0
  96. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-cli/skills/codingest-code-review/references/queries.md +0 -0
  97. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-cli/src/code_tree_cli.rs +0 -0
  98. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-cli/src/lib.rs +0 -0
  99. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-cli/src/main.rs +0 -0
  100. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-cli/src/query.rs +0 -0
  101. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-cli/src/skill.rs +0 -0
  102. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-cli/src/skill_assets.rs +0 -0
  103. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-cli/tests/exit_codes.rs +0 -0
  104. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-mcp/src/lib.rs +0 -0
  105. {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-mcp/src/main.rs +0 -0
@@ -17,12 +17,6 @@ dependencies = [
17
17
  "memchr",
18
18
  ]
19
19
 
20
- [[package]]
21
- name = "allocator-api2"
22
- version = "0.2.21"
23
- source = "registry+https://github.com/rust-lang/crates.io-index"
24
- checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
25
-
26
20
  [[package]]
27
21
  name = "android_system_properties"
28
22
  version = "0.1.5"
@@ -308,7 +302,7 @@ dependencies = [
308
302
 
309
303
  [[package]]
310
304
  name = "codingest"
311
- version = "0.2.11"
305
+ version = "0.2.12"
312
306
  dependencies = [
313
307
  "aho-corasick",
314
308
  "base64 0.22.1",
@@ -344,7 +338,7 @@ dependencies = [
344
338
 
345
339
  [[package]]
346
340
  name = "codingest-cli"
347
- version = "0.2.11"
341
+ version = "0.2.12"
348
342
  dependencies = [
349
343
  "anyhow",
350
344
  "clap",
@@ -356,7 +350,7 @@ dependencies = [
356
350
 
357
351
  [[package]]
358
352
  name = "codingest-mcp"
359
- version = "0.2.11"
353
+ version = "0.2.12"
360
354
  dependencies = [
361
355
  "anyhow",
362
356
  "codingest",
@@ -365,7 +359,7 @@ dependencies = [
365
359
 
366
360
  [[package]]
367
361
  name = "codingest-py"
368
- version = "0.2.11"
362
+ version = "0.2.12"
369
363
  dependencies = [
370
364
  "codingest",
371
365
  "codingest-cli",
@@ -534,15 +528,6 @@ version = "1.0.20"
534
528
  source = "registry+https://github.com/rust-lang/crates.io-index"
535
529
  checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555"
536
530
 
537
- [[package]]
538
- name = "earcut"
539
- version = "0.4.5"
540
- source = "registry+https://github.com/rust-lang/crates.io-index"
541
- checksum = "88459a2a8e3a514b6e6de38cf3aaa9250a894cb098f74a932db77fcc8341b6d0"
542
- dependencies = [
543
- "num-traits",
544
- ]
545
-
546
531
  [[package]]
547
532
  name = "either"
548
533
  version = "1.16.0"
@@ -802,7 +787,6 @@ version = "0.33.1"
802
787
  source = "registry+https://github.com/rust-lang/crates.io-index"
803
788
  checksum = "30eb1fdc57c1e5cfd11826fe0caec4b9dc7901f3758263bb506228d88c8d9e9a"
804
789
  dependencies = [
805
- "earcut",
806
790
  "float_next_after",
807
791
  "geo-types",
808
792
  "geographiclib-rs",
@@ -814,7 +798,6 @@ dependencies = [
814
798
  "robust",
815
799
  "rstar 0.12.2",
816
800
  "sif-itree",
817
- "spade",
818
801
  ]
819
802
 
820
803
  [[package]]
@@ -841,7 +824,6 @@ dependencies = [
841
824
  "rstar 0.8.4",
842
825
  "rstar 0.9.3",
843
826
  "serde",
844
- "spade",
845
827
  ]
846
828
 
847
829
  [[package]]
@@ -981,8 +963,6 @@ version = "0.16.1"
981
963
  source = "registry+https://github.com/rust-lang/crates.io-index"
982
964
  checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
983
965
  dependencies = [
984
- "allocator-api2",
985
- "equivalent",
986
966
  "foldhash 0.2.0",
987
967
  ]
988
968
 
@@ -1392,9 +1372,9 @@ dependencies = [
1392
1372
 
1393
1373
  [[package]]
1394
1374
  name = "kglite"
1395
- version = "0.16.15"
1375
+ version = "0.16.17"
1396
1376
  source = "registry+https://github.com/rust-lang/crates.io-index"
1397
- checksum = "9f4b2cd787fa1e60e5b03e54277cdbabe3319c7b21064175c04bfaad52b78d26"
1377
+ checksum = "d9ff035eedd2049ac8f9ce3fd8d52ef761700df723c83c9db3e8ac5765bd8b92"
1398
1378
  dependencies = [
1399
1379
  "bzip2",
1400
1380
  "chrono",
@@ -1428,9 +1408,9 @@ dependencies = [
1428
1408
 
1429
1409
  [[package]]
1430
1410
  name = "kglite-mcp-server"
1431
- version = "0.16.15"
1411
+ version = "0.16.17"
1432
1412
  source = "registry+https://github.com/rust-lang/crates.io-index"
1433
- checksum = "7dde5188e417f3ab1bc3289f353d1e8bdc6f1cbf7345e668961d107690e19908"
1413
+ checksum = "74fb796100deb0f01eb0edcf845c0bd1d36f6bc9622c004883b705be4648f6b8"
1434
1414
  dependencies = [
1435
1415
  "anyhow",
1436
1416
  "bytes",
@@ -2315,18 +2295,6 @@ dependencies = [
2315
2295
  "windows-sys 0.61.2",
2316
2296
  ]
2317
2297
 
2318
- [[package]]
2319
- name = "spade"
2320
- version = "2.15.1"
2321
- source = "registry+https://github.com/rust-lang/crates.io-index"
2322
- checksum = "9699399fd9349b00b184f5635b074f9ec93afffef30c853f8c875b32c0f8c7fa"
2323
- dependencies = [
2324
- "hashbrown 0.16.1",
2325
- "num-traits",
2326
- "robust",
2327
- "smallvec",
2328
- ]
2329
-
2330
2298
  [[package]]
2331
2299
  name = "spin"
2332
2300
  version = "0.9.9"
@@ -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.11"
6
+ version = "0.2.12"
7
7
  edition = "2021"
8
8
  rust-version = "1.88"
9
9
  license = "MIT"
@@ -12,10 +12,57 @@ 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.15
16
- # floor covers two upstream releases, and unlike the last four refreshes the
17
- # argument is not only "unreachable" — two 0.16.14 fixes land on `.kgl` bytes
18
- # codingest itself writes and reloads:
15
+ # kglite engine + MCP server — imported as crates.io libraries. The 0.16.17
16
+ # floor is the downstream compile-footprint release, shipped the same day as
17
+ # codingest's 2026-08-31 footprint request (a 265 MB debug rlib per kglite
18
+ # generation; ~100 GB of accumulated target dirs filled the build-cache disk
19
+ # to zero that morning):
20
+ # * kglite now pulls `geo` with default-features = false — earcut/spade
21
+ # (triangulation/Voronoi) gated APIs no kglite code path calls; five
22
+ # transitive packages gone for every consumer. No kglite API or Cypher
23
+ # behavior change (spatial functions unaffected), and codingest declares
24
+ # no direct `geo` dependency, so there is nothing to re-declare here.
25
+ # Graph output cannot move — the release contains zero engine changes —
26
+ # and the goldens prove it.
27
+ # * The same coordination delivered four unit-graph-verified invocation
28
+ # fixes on OUR side (dedup of kglite rlib variants ~1.1 GB → ~190 MB per
29
+ # generation): the parity gate and the bench/soak bins now run with
30
+ # --workspace package selection instead of -p narrowing (narrowing
31
+ # re-runs feature unification over fewer crates and forks the
32
+ # -Cmetadata hash into a duplicate 265 MB kglite rlib — no feature
33
+ # difference), `make gate`'s build step sees the full unit graph via
34
+ # --all-targets, and the workspace root sets
35
+ # [profile.dev.package."*"] debug = "line-tables-only" (measured
36
+ # upstream: rlib −43%, debug tree −22%; backtraces keep file/line).
37
+ # It sits on the 0.16.16
38
+ # floor, the deadline-observance release, which lands on a surface we ship:
39
+ # * codingest-cli documents a `--timeout` flag on `query`, and before
40
+ # 0.16.16 the deadline it sets was observed only inside the pattern
41
+ # matcher — the MATCH row loops downstream of it (match-to-row conversion
42
+ # with fused WHERE, comma-pattern join, subsequent-MATCH driving join,
43
+ # path-binding propagation) ran to completion however long past the
44
+ # deadline (upstream repro: a deadline set a quarter of the way in was
45
+ # detected after 94% of the query had run; a downstream OOM-kill at
46
+ # 7.29 GB motivated the fix). Variable-length expansion also now observes
47
+ # cooperative cancellation (Ctrl-C: observed at 112 ms instead of 3.93 s).
48
+ # The timeout CONTRACT is unchanged — Err("Query timed out…"), no partial
49
+ # rows — so our error mapping holds; the added poll measured flat on the
50
+ # directly affected cells upstream, and our perf anchor verifies that
51
+ # independently. Its one REMOVAL, `QueryDiagnostics::timed_out`, had no
52
+ # writer anywhere in the engine (read `false` on every result ever
53
+ # returned) and does not reach us: codingest names QueryDiagnostics
54
+ # nowhere (grep: zero hits for QueryDiagnostics / timed_out). The rest is
55
+ # additive or documentation: the api-facade now exports
56
+ # `fluent::FilterCondition` (we use no fluent filters), GraphML gains a
57
+ # `label` attr key (we export no GraphML), `describe()` badges loc and
58
+ # geo independently, and `id(n)` is documented as reading the source
59
+ # data's own `id` field.
60
+ # Evidence is the gate: build/clippy/`cargo test` incl. `golden_parity` green
61
+ # across the bump with zero source changes.
62
+ # It sits on the 0.16.15
63
+ # floor, which covered two upstream releases — there too the argument was not
64
+ # only "unreachable": two 0.16.14 fixes land on `.kgl` bytes codingest itself
65
+ # writes and reloads:
19
66
  # * 0.16.14's load-bearing pair. (1) Two saves of one graph write identical
20
67
  # `.kgl` bytes again: four persisted lists (the type-connectivity triples
21
68
  # and the property/composite/range index-key snapshots) were written in
@@ -208,7 +255,7 @@ sha2 = "0.11"
208
255
  # which kglite 0.15.14 and earlier refuse by version number. Because
209
256
  # `codingest.build()` writes the bytes with the Rust engine compiled in here and
210
257
  # reads them back through the separately-installed Python `kglite` wheel, the
211
- # two sides must be on the same side of that break — hence `>=0.16.15,<0.17` in
258
+ # two sides must be on the same side of that break — hence `>=0.16.17,<0.17` in
212
259
  # pyproject.toml, and hence a reader on 0.15.x is not "old but workable", it is
213
260
  # a hard failure with `FileFormatError`.
214
261
  # 0.16.0 also removed `DirGraph::enable_columnar` from the public API (every
@@ -273,8 +320,19 @@ sha2 = "0.11"
273
320
  # and no disk storage. Neither 0.15.7 nor 0.15.8 changes the `kglite::api` we
274
321
  # call, graph output, property encoding, or `.kgl` serialization.
275
322
  # Keep both libraries aligned so the graph and server share one engine release.
276
- kglite = { version = "0.16.15", default-features = false }
277
- kglite-mcp-server = { version = "0.16.15", default-features = false }
323
+ kglite = { version = "0.16.17", default-features = false }
324
+ kglite-mcp-server = { version = "0.16.17", default-features = false }
325
+
326
+ # Dependency debuginfo capped at line tables (kglite coordination, 2026-08-31,
327
+ # after unbounded debug trees filled the build-cache disk to zero): a
328
+ # full-DWARF kglite rlib is ~336 MB, two-thirds DWARF type-name strings and
329
+ # ~5% code. Measured upstream on this exact dep tree: rlib −43%, whole debug
330
+ # tree −22%. Backtraces keep file/line; the only loss is variable inspection
331
+ # INSIDE dependency code. The "*" glob deliberately skips workspace members —
332
+ # our own crates keep full debuginfo. Do not reach for `strip` or
333
+ # `split-debuginfo` instead: both measured ZERO effect on rlib size upstream.
334
+ [profile.dev.package."*"]
335
+ debug = "line-tables-only"
278
336
 
279
337
  # Mirror KGLite's release codegen so the standalone builder has
280
338
  # 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.11
3
+ Version: 0.2.12
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.15,<0.17
15
+ Requires-Dist: kglite>=0.16.17,<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.15 is installed automatically as the query/storage
195
+ commands. KGLite ≥0.16.17 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.15"
208
+ kglite = "0.16.17"
209
209
  ```
210
210
 
211
211
  ```rust
@@ -246,7 +246,7 @@ Documentation: **[codingest.readthedocs.io](https://codingest.readthedocs.io)**
246
246
  cargo build --workspace
247
247
  cargo clippy --workspace --all-targets -- -D warnings
248
248
  cargo test --workspace
249
- cargo test -p codingest --test parity
249
+ cargo test --workspace --test parity
250
250
  ```
251
251
 
252
252
  ### The golden-digest oracle (also the determinism gate)
@@ -265,7 +265,7 @@ nondeterminism bug). Disagreement between builds is reported as NONDETERMINISM;
265
265
  agreement between builds but not with the golden is reported as a behaviour
266
266
  change. The multi-rev fixture is guarded instead by `rev_self_consistency`.
267
267
  Regenerate goldens only for deliberate builder-behavior changes:
268
- `cargo test -p codingest --test parity -- --ignored capture_goldens` (details in
268
+ `cargo test --workspace --test parity -- --ignored capture_goldens` (details in
269
269
  `crates/codingest/tests/goldens/README.md`).
270
270
 
271
271
  Everything the gate needs is committed to this repository, so it is hermetic and
@@ -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.15 minimum and a shared lockfile. This keeps the builder, persistence
280
+ 0.16.17 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.15 is installed automatically as the query/storage
168
+ commands. KGLite ≥0.16.17 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.15"
181
+ kglite = "0.16.17"
182
182
  ```
183
183
 
184
184
  ```rust
@@ -219,7 +219,7 @@ Documentation: **[codingest.readthedocs.io](https://codingest.readthedocs.io)**
219
219
  cargo build --workspace
220
220
  cargo clippy --workspace --all-targets -- -D warnings
221
221
  cargo test --workspace
222
- cargo test -p codingest --test parity
222
+ cargo test --workspace --test parity
223
223
  ```
224
224
 
225
225
  ### The golden-digest oracle (also the determinism gate)
@@ -238,7 +238,7 @@ nondeterminism bug). Disagreement between builds is reported as NONDETERMINISM;
238
238
  agreement between builds but not with the golden is reported as a behaviour
239
239
  change. The multi-rev fixture is guarded instead by `rev_self_consistency`.
240
240
  Regenerate goldens only for deliberate builder-behavior changes:
241
- `cargo test -p codingest --test parity -- --ignored capture_goldens` (details in
241
+ `cargo test --workspace --test parity -- --ignored capture_goldens` (details in
242
242
  `crates/codingest/tests/goldens/README.md`).
243
243
 
244
244
  Everything the gate needs is committed to this repository, so it is hermetic and
@@ -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.15 minimum and a shared lockfile. This keeps the builder, persistence
253
+ 0.16.17 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.15).
13
+ # workspace pins the current engine floor (0.16.17).
14
14
 
15
15
  [lib]
16
16
  name = "codingest"
@@ -448,7 +448,7 @@ intended (a parser fix, a new edge kind, a property-shape change). The capture
448
448
  path is:
449
449
 
450
450
  ```bash
451
- cargo test -p codingest --test parity -- --ignored capture_goldens
451
+ cargo test --workspace --test parity -- --ignored capture_goldens
452
452
  ```
453
453
 
454
454
  This rewrites every `<corpus>.sha256`. Review the diff, and land the digest
@@ -14,7 +14,7 @@ name = "codingest"
14
14
  path = "src/main.rs"
15
15
 
16
16
  [dependencies]
17
- codingest = { version = "0.2.11", path = "../codingest" }
17
+ codingest = { version = "0.2.12", 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.11", path = "../codingest" }
17
+ codingest = { version = "0.2.12", 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.11", path = "../codingest", default-features = false }
45
+ codingest = { version = "0.2.12", 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.11", path = "../codingest-cli" }
56
+ codingest-cli = { version = "0.2.12", 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.11", path = "../codingest-mcp" }
61
+ codingest-mcp = { version = "0.2.12", path = "../codingest-mcp" }
@@ -74,7 +74,7 @@ fn load_via_kglite(py: Python<'_>, path: &Path) -> PyResult<Py<PyAny>> {
74
74
  PyRuntimeError::new_err(format!(
75
75
  "codingest.build() returns a kglite.KnowledgeGraph, but importing \
76
76
  `kglite` failed ({e}). Install it: `pip install \
77
- 'kglite>=0.16.15,<0.17'`."
77
+ 'kglite>=0.16.17,<0.17'`."
78
78
  ))
79
79
  })?;
80
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.15"` == `>=0.16.15,<0.17.0`) exactly — bump both together.
45
+ # (`version = "0.16.17"` == `>=0.16.17,<0.17.0`) exactly — bump both together.
46
46
  dependencies = [
47
- "kglite>=0.16.15,<0.17",
47
+ "kglite>=0.16.17,<0.17",
48
48
  ]
49
49
 
50
50
  [project.urls]
File without changes
File without changes