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.
- {codingest-0.2.11 → codingest-0.2.12}/Cargo.lock +8 -40
- {codingest-0.2.11 → codingest-0.2.12}/Cargo.toml +66 -8
- {codingest-0.2.11 → codingest-0.2.12}/PKG-INFO +7 -7
- {codingest-0.2.11 → codingest-0.2.12}/README.md +5 -5
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/Cargo.toml +1 -1
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/README.md +1 -1
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-cli/Cargo.toml +1 -1
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-mcp/Cargo.toml +1 -1
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-py/Cargo.toml +3 -3
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-py/src/lib.rs +1 -1
- {codingest-0.2.11 → codingest-0.2.12}/pyproject.toml +2 -2
- {codingest-0.2.11 → codingest-0.2.12}/LICENSE +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/codingest/__init__.py +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/codingest/__init__.pyi +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/codingest/cli.py +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/codingest/mcp_server.py +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/bin/codingest_bench.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/bin/codingest_stats.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/builder/call_edges.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/builder/js_workspace.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/builder/load/edge_frames.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/builder/load/entity_frames.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/builder/load.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/builder/mod.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/builder/other_edges.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/builder/routes/django.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/builder/routes/fastapi.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/builder/routes/flask.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/builder/routes/mod.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/builder/semantic_edges.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/builder/type_edges.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/cross_lang.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/docs/mod.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/docs/rst.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/lib.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/manifest/mod.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/models.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/agc.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/cpp.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/csharp.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/css.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/dart.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/go.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/html.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/java.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/julia.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/mod.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/php.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/python.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/r.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/registry.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/rust_lang.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/shared.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/swift.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/parsers/typescript.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/repo.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/src/rev.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/agc_apollo.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/agc_basic.sha256 +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/cpp_extern_c.sha256 +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/cpp_include.sha256 +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/cross_ts_py.sha256 +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/csharp_using_alias.sha256 +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/dart_import.sha256 +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/dart_part_of.sha256 +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/docs_ext_collide.sha256 +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/docs_mdx.sha256 +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/dup_minified_assets.sha256 +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/go_interface.sha256 +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/html_js_lang_group.sha256 +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/java_javadoc.sha256 +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/julia_basic.sha256 +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/php_group_use.sha256 +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/py_basic.sha256 +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/py_import.sha256 +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/py_inheritance.sha256 +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/py_nested_defs.sha256 +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/py_routes_dup.sha256 +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/py_src_layout.sha256 +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/r_basic.sha256 +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/rust_import.sha256 +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/rust_inline_mod.sha256 +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/rust_xfile.sha256 +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/swift_basic.sha256 +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/ts_callback.sha256 +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/ts_closure_scope.sha256 +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/ts_hof_binding.sha256 +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/ts_monorepo.sha256 +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/web_served_root.sha256 +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/grammar_kinds.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/parity.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/traversal_semantics.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-cli/skills/codingest-code-review/SKILL.md +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-cli/skills/codingest-code-review/references/mcp-upgrade.md +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-cli/skills/codingest-code-review/references/public-repositories.md +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-cli/skills/codingest-code-review/references/queries.md +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-cli/src/code_tree_cli.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-cli/src/lib.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-cli/src/main.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-cli/src/query.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-cli/src/skill.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-cli/src/skill_assets.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-cli/tests/exit_codes.rs +0 -0
- {codingest-0.2.11 → codingest-0.2.12}/crates/codingest-mcp/src/lib.rs +0 -0
- {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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
1375
|
+
version = "0.16.17"
|
|
1396
1376
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1397
|
-
checksum = "
|
|
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.
|
|
1411
|
+
version = "0.16.17"
|
|
1432
1412
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1433
|
-
checksum = "
|
|
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.
|
|
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.
|
|
16
|
-
# floor
|
|
17
|
-
#
|
|
18
|
-
#
|
|
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.
|
|
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.
|
|
277
|
-
kglite-mcp-server = { version = "0.16.
|
|
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.
|
|
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
|
+
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.
|
|
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.
|
|
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
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
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
|
|
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.
|
|
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.
|
|
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
|
|
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.
|
|
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"] }
|
|
@@ -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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
45
|
+
# (`version = "0.16.17"` == `>=0.16.17,<0.17.0`) exactly — bump both together.
|
|
46
46
|
dependencies = [
|
|
47
|
-
"kglite>=0.16.
|
|
47
|
+
"kglite>=0.16.17,<0.17",
|
|
48
48
|
]
|
|
49
49
|
|
|
50
50
|
[project.urls]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/csharp_using_alias.sha256
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/docs_ext_collide.sha256
RENAMED
|
File without changes
|
|
File without changes
|
{codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/dup_minified_assets.sha256
RENAMED
|
File without changes
|
|
File without changes
|
{codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/html_js_lang_group.sha256
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codingest-0.2.11 → codingest-0.2.12}/crates/codingest/tests/goldens/ts_closure_scope.sha256
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codingest-0.2.11 → codingest-0.2.12}/crates/codingest-cli/skills/codingest-code-review/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|