better-code-review-graph 3.26.1__tar.gz → 3.26.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (257) hide show
  1. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/.claude-plugin/plugin.json +1 -1
  2. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/CHANGELOG.md +13 -0
  3. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/PKG-INFO +22 -19
  4. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/README.md +21 -18
  5. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/pyproject.toml +1 -1
  6. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/server.json +2 -2
  7. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/uv.lock +36 -36
  8. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/.agents/skills/build-graph/SKILL.md +0 -0
  9. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/.agents/skills/review-delta/SKILL.md +0 -0
  10. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/.agents/skills/review-pr/SKILL.md +0 -0
  11. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/.coderabbit.yaml +0 -0
  12. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/.dockerignore +0 -0
  13. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/.github/CODEOWNERS +0 -0
  14. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  15. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  16. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  17. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/.github/review-learnings.md +0 -0
  18. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/.github/rulesets/main.json +0 -0
  19. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/.github/workflows/bot-governance.yml +0 -0
  20. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/.github/workflows/cd.yml +0 -0
  21. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/.github/workflows/ci.yml +0 -0
  22. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/.github/workflows/opencode.yml +0 -0
  23. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/.gitignore +0 -0
  24. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/.infisical.json +0 -0
  25. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/.jules/bolt.md +0 -0
  26. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/.jules/sentinel.md +0 -0
  27. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/.pre-commit-config.yaml +0 -0
  28. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/AGENTS.md +0 -0
  29. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/BREAKING_CHANGES.md +0 -0
  30. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/CLAUDE.md +0 -0
  31. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/CODE_OF_CONDUCT.md +0 -0
  32. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/CONTRIBUTING.md +0 -0
  33. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/Dockerfile +0 -0
  34. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/LICENSE +0 -0
  35. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/LICENSE-MIT +0 -0
  36. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/NOTICE +0 -0
  37. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/SECURITY.md +0 -0
  38. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/alembic.ini +0 -0
  39. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/docs/HANDOVER.md +0 -0
  40. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/hooks/_graph_state.py +0 -0
  41. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/hooks/branch-sync-check.py +0 -0
  42. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/hooks/hooks.json +0 -0
  43. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/hooks/stale-graph-check.py +0 -0
  44. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/migrations/README +0 -0
  45. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/migrations/env.py +0 -0
  46. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/migrations/script.py.mako +0 -0
  47. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/migrations/versions/001_baseline.py +0 -0
  48. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/migrations/versions/002_summary_columns.py +0 -0
  49. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/migrations/versions/003_federation.py +0 -0
  50. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/migrations/versions/004_security_tags.py +0 -0
  51. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/migrations/versions/005_temporal_columns.py +0 -0
  52. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/migrations/versions/006_commits_table.py +0 -0
  53. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/renovate.json +0 -0
  54. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/rules/heuristic/cwe-22-path-traversal.yaml +0 -0
  55. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/rules/heuristic/cwe-78-shell-command-sink.yaml +0 -0
  56. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/rules/heuristic/cwe-89-sql-string-format.yaml +0 -0
  57. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/rules/heuristic/cwe-95-eval-on-input.yaml +0 -0
  58. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/rules/heuristic/hardcoded-secret.yaml +0 -0
  59. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/rules/semgrep/curated.yaml +0 -0
  60. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/scripts/benchmark_row_deserialization.py +0 -0
  61. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/scripts/enforce-commit.sh +0 -0
  62. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/scripts/preserve-diacritics.py +0 -0
  63. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/scripts/test_preserve_diacritics.py +0 -0
  64. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/semantic-release.toml +0 -0
  65. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/skills/impact-audit/SKILL.md +0 -0
  66. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/skills/onboard-repo/SKILL.md +0 -0
  67. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/skills/refactor-check/SKILL.md +0 -0
  68. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/skills/review-delta/SKILL.md +0 -0
  69. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/skills/review-pr/SKILL.md +0 -0
  70. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/skills/security-sweep/SKILL.md +0 -0
  71. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/smithery.yaml +0 -0
  72. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/__init__.py +0 -0
  73. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/__main__.py +0 -0
  74. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/cli.py +0 -0
  75. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/config.py +0 -0
  76. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/credential_state.py +0 -0
  77. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/docs/__init__.py +0 -0
  78. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/docs/config.md +0 -0
  79. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/docs/graph.md +0 -0
  80. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/docs/query.md +0 -0
  81. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/docs/recipes.md +0 -0
  82. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/docs/review.md +0 -0
  83. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/docs/security.md +0 -0
  84. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/embeddings.py +0 -0
  85. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/exporter.py +0 -0
  86. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/federation.py +0 -0
  87. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/graph.py +0 -0
  88. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/importer.py +0 -0
  89. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/incremental.py +0 -0
  90. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/parser.py +0 -0
  91. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/py.typed +0 -0
  92. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/relay_schema.py +0 -0
  93. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/relay_setup.py +0 -0
  94. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/reranker.py +0 -0
  95. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/resolver/__init__.py +0 -0
  96. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/resolver/_types.py +0 -0
  97. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/resolver/fallback.py +0 -0
  98. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/resolver/go.py +0 -0
  99. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/resolver/java.py +0 -0
  100. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/resolver/python.py +0 -0
  101. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/resolver/rust.py +0 -0
  102. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/resolver/typescript.py +0 -0
  103. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/security/__init__.py +0 -0
  104. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/security/heuristic.py +0 -0
  105. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/security/semgrep_engine.py +0 -0
  106. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/server.py +0 -0
  107. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/summarizer.py +0 -0
  108. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/temporal.py +0 -0
  109. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/tools.py +0 -0
  110. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/src/better_code_review_graph/xpia.py +0 -0
  111. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/__init__.py +0 -0
  112. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/conftest.py +0 -0
  113. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/conftest_e2e.py +0 -0
  114. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/e2e_mcp_protocol_test.py +0 -0
  115. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/fixtures/Sample.cs +0 -0
  116. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/fixtures/SampleJava.java +0 -0
  117. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/fixtures/callback_refs.js +0 -0
  118. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/fixtures/caller_example.py +0 -0
  119. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/fixtures/multi_call_example.py +0 -0
  120. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/fixtures/sample.c +0 -0
  121. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/fixtures/sample.cpp +0 -0
  122. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/fixtures/sample.kt +0 -0
  123. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/fixtures/sample.php +0 -0
  124. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/fixtures/sample.rb +0 -0
  125. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/fixtures/sample.sol +0 -0
  126. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/fixtures/sample.swift +0 -0
  127. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/fixtures/sample_go.go +0 -0
  128. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/fixtures/sample_python.py +0 -0
  129. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/fixtures/sample_rust.rs +0 -0
  130. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/fixtures/sample_typescript.ts +0 -0
  131. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/fixtures/test_sample.py +0 -0
  132. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/integration/__init__.py +0 -0
  133. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/integration/test_multi_user_remote.py +0 -0
  134. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_alembic_baseline.py +0 -0
  135. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_as_of_diff.py +0 -0
  136. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_auto_resolve_ambiguity.py +0 -0
  137. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_bare_suffix_correctness.py +0 -0
  138. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_callers_not_found_reason.py +0 -0
  139. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_callers_of_coverage.py +0 -0
  140. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_cli.py +0 -0
  141. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_cli_contracts.py +0 -0
  142. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_cohere_dimensions.py +0 -0
  143. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_commits_migration.py +0 -0
  144. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_config_open_relay_registered.py +0 -0
  145. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_coverage_gaps.py +0 -0
  146. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_credential_state.py +0 -0
  147. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_credential_state_stdio_no_fallback.py +0 -0
  148. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_credential_state_store_errors.py +0 -0
  149. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_crg_protocol_harness.py +0 -0
  150. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_custom_local_model.py +0 -0
  151. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_dynamic_dispatch_hints.py +0 -0
  152. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_e2e.py +0 -0
  153. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_embedder_retry_classification.py +0 -0
  154. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_embedding_migration.py +0 -0
  155. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_embeddings.py +0 -0
  156. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_embeddings_extra.py +0 -0
  157. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_export_graph_dispatch.py +0 -0
  158. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_export_graph_dispatch_path_traversal.py +0 -0
  159. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_exporter.py +0 -0
  160. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_federation.py +0 -0
  161. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_federation_migration.py +0 -0
  162. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_federation_smoke.py +0 -0
  163. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_full_live.py +0 -0
  164. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_g6_ux_status_accuracy.py +0 -0
  165. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_get_docs_section_error_path.py +0 -0
  166. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_get_review_context_no_diff.py +0 -0
  167. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_graph.py +0 -0
  168. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_graph_batch_fetch.py +0 -0
  169. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_graph_extra.py +0 -0
  170. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_graph_get_edges_by_targets_coverage.py +0 -0
  171. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_graph_stats_error_coverage.py +0 -0
  172. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_handle_not_found_coverage.py +0 -0
  173. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_help_recipes.py +0 -0
  174. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_heuristic.py +0 -0
  175. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_home_isolation.py +0 -0
  176. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_impact_payload_truncation.py +0 -0
  177. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_implements_edges.py +0 -0
  178. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_import_graph_dispatch.py +0 -0
  179. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_importer.py +0 -0
  180. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_incremental.py +0 -0
  181. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_incremental_extra.py +0 -0
  182. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_kind_filter_optimization.py +0 -0
  183. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_kinds_error_path.py +0 -0
  184. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_list_graph_stats_coverage.py +0 -0
  185. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_list_kinds_coverage.py +0 -0
  186. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_live_mcp.py +0 -0
  187. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_local_reranker.py +0 -0
  188. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_lookup_node_directly.py +0 -0
  189. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_multi_user.py +0 -0
  190. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_multi_user_dispatch.py +0 -0
  191. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_multilang.py +0 -0
  192. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_no_stale_package_name.py +0 -0
  193. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_oci_publication_sunset.py +0 -0
  194. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_oserror_coverage.py +0 -0
  195. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_parser.py +0 -0
  196. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_parser_extra.py +0 -0
  197. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_parser_grammar_failure.py +0 -0
  198. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_parser_source_text.py +0 -0
  199. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_path_resolution_fallback.py +0 -0
  200. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_payload_estimation.py +0 -0
  201. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_per_plugin_storage_migration.py +0 -0
  202. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_per_sub_graph_db.py +0 -0
  203. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_performance_n1.py +0 -0
  204. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_performance_n1_embeddings.py +0 -0
  205. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_phase_3_smoke.py +0 -0
  206. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_plugin_assets.py +0 -0
  207. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_pre_2_0_backup.py +0 -0
  208. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_relay_schema.py +0 -0
  209. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_relay_setup.py +0 -0
  210. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_renamed_in_diff.py +0 -0
  211. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_renamed_in_diff_exception.py +0 -0
  212. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_repo_filter.py +0 -0
  213. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_repo_filter_batching.py +0 -0
  214. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_repo_id_persistence.py +0 -0
  215. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_resolve_search_candidates.py +0 -0
  216. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_resolver_dispatcher.py +0 -0
  217. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_resolver_fallback.py +0 -0
  218. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_resolver_go.py +0 -0
  219. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_resolver_java.py +0 -0
  220. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_resolver_python.py +0 -0
  221. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_resolver_rust.py +0 -0
  222. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_resolver_typescript.py +0 -0
  223. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_response_header.py +0 -0
  224. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_response_payload_honesty.py +0 -0
  225. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_review_delta_line_shifts.py +0 -0
  226. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_review_languages_filter.py +0 -0
  227. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_reviewer_summary.py +0 -0
  228. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_search_edges_by_target_names.py +0 -0
  229. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_search_keyword_warning.py +0 -0
  230. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_security_injection.py +0 -0
  231. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_security_path_traversal.py +0 -0
  232. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_security_scan_batching.py +0 -0
  233. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_security_tags_migration.py +0 -0
  234. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_security_tool.py +0 -0
  235. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_semgrep_engine.py +0 -0
  236. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_server.py +0 -0
  237. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_server_help_coverage.py +0 -0
  238. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_serverinfo_version.py +0 -0
  239. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_setup_tool.py +0 -0
  240. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_shares_state_edges.py +0 -0
  241. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_spot_check.py +0 -0
  242. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_sql_security.py +0 -0
  243. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_stdio_direct.py +0 -0
  244. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_summarize_graph_dispatch.py +0 -0
  245. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_summarizer.py +0 -0
  246. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_summary_schema.py +0 -0
  247. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_temporal.py +0 -0
  248. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_temporal_migration.py +0 -0
  249. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_tested_by_edges.py +0 -0
  250. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_tools.py +0 -0
  251. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_tools_build_error_coverage.py +0 -0
  252. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_tools_full.py +0 -0
  253. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_tools_get_docs_section_coverage.py +0 -0
  254. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_typescript_coverage_gaps.py +0 -0
  255. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_v17_coverage_gaps.py +0 -0
  256. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_xpia.py +0 -0
  257. {better_code_review_graph-3.26.1 → better_code_review_graph-3.26.2}/tests/test_xpia_adversarial.py +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "better-code-review-graph",
3
3
  "description": "Knowledge graph for token-efficient code reviews -- semantic search and call-graph resolution across your codebase.",
4
- "version": "3.26.1",
4
+ "version": "3.26.2",
5
5
  "userConfig": {
6
6
  "EMBEDDING_MODELS": {
7
7
  "type": "string",
@@ -2,6 +2,19 @@
2
2
 
3
3
  <!-- version list -->
4
4
 
5
+ ## v3.26.2 (2026-09-13)
6
+
7
+ ### Bug Fixes
8
+
9
+ - **deps**: Lock file maintenance ([#1041](https://github.com/n24q02m/crg/pull/1041),
10
+ [`b4bc8be`](https://github.com/n24q02m/crg/commit/b4bc8be2fb5be1370010f69e9e35cb4d273cd0c3))
11
+
12
+ ### Documentation
13
+
14
+ - **readme**: Lead install/CLI with crg script, document uvx --from form and legacy name
15
+ ([`6c91fea`](https://github.com/n24q02m/crg/commit/6c91fea3a25580123837d5b9ef3eae4837953093))
16
+
17
+
5
18
  ## v3.26.1 (2026-09-13)
6
19
 
7
20
  ### Bug Fixes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: better-code-review-graph
3
- Version: 3.26.1
3
+ Version: 3.26.2
4
4
  Summary: Token-efficient code review knowledge graph: semantic search and call-graph resolution.
5
5
  Author: n24q02m
6
6
  License-Expression: Apache-2.0
@@ -116,15 +116,16 @@ plus the bundled `skills/` workflows. The skills invoke the CLI directly and do
116
116
  not require an MCP server mapping.
117
117
 
118
118
  ```bash
119
- # Run without a persistent install
120
- uvx --python 3.13 better-code-review-graph graph build --full-rebuild \
119
+ # Run without a persistent install (short `crg` script; PyPI package name stays
120
+ # better-code-review-graph, so `uvx` needs the explicit --from form)
121
+ uvx --python 3.13 --from better-code-review-graph crg graph build --full-rebuild \
121
122
  --repo-root /path/to/repo
122
- uvx --python 3.13 better-code-review-graph graph stats \
123
+ uvx --python 3.13 --from better-code-review-graph crg graph stats \
123
124
  --repo-root /path/to/repo
124
125
 
125
- # Or install the console script
126
+ # Or install the console scripts (installs both `crg` and the legacy long name)
126
127
  pip install better-code-review-graph
127
- better-code-review-graph query search --search-query "authentication" \
128
+ crg query search --search-query "authentication" \
128
129
  --repo-root /path/to/repo
129
130
  ```
130
131
 
@@ -414,29 +415,31 @@ browser setup form (e.g. after credential expiry); in stdio mode it returns
414
415
 
415
416
  ## CLI
416
417
 
417
- Running `better-code-review-graph` with **no arguments** starts the MCP server
418
- over stdio. A leading positional argument routes to a local CLI subcommand
419
- that calls the same domain services used by the MCP adapter. Run these with
420
- `uvx` (or `uv run` from a source checkout):
418
+ The package installs two console scripts: **`crg`** (primary) and
419
+ `better-code-review-graph` (legacy long name). Running either with **no
420
+ arguments** starts the MCP server over stdio; a leading positional argument
421
+ routes to a local CLI subcommand that calls the same domain services used by
422
+ the MCP adapter. Run them directly after `pip install`, or without a
423
+ persistent install via `uvx --python 3.13 --from better-code-review-graph crg ...`.
421
424
 
422
425
  ```bash
423
426
  # Start the MCP server over stdio (default -- no subcommand)
424
- uvx better-code-review-graph
427
+ crg
425
428
 
426
429
  # Build, inspect, and embed the local graph
427
- uvx better-code-review-graph graph build
428
- uvx better-code-review-graph graph stats
429
- uvx better-code-review-graph graph embed
430
+ crg graph build
431
+ crg graph stats
432
+ crg graph embed
430
433
 
431
434
  # Query relationships and impact
432
- uvx better-code-review-graph query query \
435
+ crg query query \
433
436
  --pattern callers_of --target "path/to/module.py::function"
434
- uvx better-code-review-graph query search --search-query "authentication"
435
- uvx better-code-review-graph query impact --changed-files src/app.py
437
+ crg query search --search-query "authentication"
438
+ crg query impact --changed-files src/app.py
436
439
 
437
440
  # Produce review context and run a local security scan
438
- uvx better-code-review-graph review context --base HEAD~1
439
- uvx better-code-review-graph security scan --engine heuristic
441
+ crg review context --base HEAD~1
442
+ crg security scan --engine heuristic
440
443
  ```
441
444
 
442
445
  | Command | Description |
@@ -83,15 +83,16 @@ plus the bundled `skills/` workflows. The skills invoke the CLI directly and do
83
83
  not require an MCP server mapping.
84
84
 
85
85
  ```bash
86
- # Run without a persistent install
87
- uvx --python 3.13 better-code-review-graph graph build --full-rebuild \
86
+ # Run without a persistent install (short `crg` script; PyPI package name stays
87
+ # better-code-review-graph, so `uvx` needs the explicit --from form)
88
+ uvx --python 3.13 --from better-code-review-graph crg graph build --full-rebuild \
88
89
  --repo-root /path/to/repo
89
- uvx --python 3.13 better-code-review-graph graph stats \
90
+ uvx --python 3.13 --from better-code-review-graph crg graph stats \
90
91
  --repo-root /path/to/repo
91
92
 
92
- # Or install the console script
93
+ # Or install the console scripts (installs both `crg` and the legacy long name)
93
94
  pip install better-code-review-graph
94
- better-code-review-graph query search --search-query "authentication" \
95
+ crg query search --search-query "authentication" \
95
96
  --repo-root /path/to/repo
96
97
  ```
97
98
 
@@ -381,29 +382,31 @@ browser setup form (e.g. after credential expiry); in stdio mode it returns
381
382
 
382
383
  ## CLI
383
384
 
384
- Running `better-code-review-graph` with **no arguments** starts the MCP server
385
- over stdio. A leading positional argument routes to a local CLI subcommand
386
- that calls the same domain services used by the MCP adapter. Run these with
387
- `uvx` (or `uv run` from a source checkout):
385
+ The package installs two console scripts: **`crg`** (primary) and
386
+ `better-code-review-graph` (legacy long name). Running either with **no
387
+ arguments** starts the MCP server over stdio; a leading positional argument
388
+ routes to a local CLI subcommand that calls the same domain services used by
389
+ the MCP adapter. Run them directly after `pip install`, or without a
390
+ persistent install via `uvx --python 3.13 --from better-code-review-graph crg ...`.
388
391
 
389
392
  ```bash
390
393
  # Start the MCP server over stdio (default -- no subcommand)
391
- uvx better-code-review-graph
394
+ crg
392
395
 
393
396
  # Build, inspect, and embed the local graph
394
- uvx better-code-review-graph graph build
395
- uvx better-code-review-graph graph stats
396
- uvx better-code-review-graph graph embed
397
+ crg graph build
398
+ crg graph stats
399
+ crg graph embed
397
400
 
398
401
  # Query relationships and impact
399
- uvx better-code-review-graph query query \
402
+ crg query query \
400
403
  --pattern callers_of --target "path/to/module.py::function"
401
- uvx better-code-review-graph query search --search-query "authentication"
402
- uvx better-code-review-graph query impact --changed-files src/app.py
404
+ crg query search --search-query "authentication"
405
+ crg query impact --changed-files src/app.py
403
406
 
404
407
  # Produce review context and run a local security scan
405
- uvx better-code-review-graph review context --base HEAD~1
406
- uvx better-code-review-graph security scan --engine heuristic
408
+ crg review context --base HEAD~1
409
+ crg security scan --engine heuristic
407
410
  ```
408
411
 
409
412
  | Command | Description |
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "better-code-review-graph"
7
- version = "3.26.1"
7
+ version = "3.26.2"
8
8
  description = "Token-efficient code review knowledge graph: semantic search and call-graph resolution."
9
9
  readme = { file = "README.md", content-type = "text/markdown" }
10
10
  license = "Apache-2.0"
@@ -6,12 +6,12 @@
6
6
  "url": "https://github.com/n24q02m/crg.git",
7
7
  "source": "github"
8
8
  },
9
- "version": "3.26.1",
9
+ "version": "3.26.2",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "pypi",
13
13
  "identifier": "better-code-review-graph",
14
- "version": "3.26.1",
14
+ "version": "3.26.2",
15
15
  "runtimeHint": "uvx",
16
16
  "runtimeArgs": [
17
17
  "--python",
@@ -159,7 +159,7 @@ wheels = [
159
159
 
160
160
  [[package]]
161
161
  name = "better-code-review-graph"
162
- version = "3.25.10"
162
+ version = "3.26.1"
163
163
  source = { editable = "." }
164
164
  dependencies = [
165
165
  { name = "alembic" },
@@ -409,26 +409,26 @@ wheels = [
409
409
 
410
410
  [[package]]
411
411
  name = "coverage"
412
- version = "7.16.0"
412
+ version = "7.16.1"
413
413
  source = { registry = "https://pypi.org/simple" }
414
- sdist = { url = "https://files.pythonhosted.org/packages/d1/f5/deb1a27aa20746c0278ac998c4179e272004699b2d33959ce020c5ac1615/coverage-7.16.0.tar.gz", hash = "sha256:077f0964087883176ff6ab9b074694cae29f8c708273b13ca62c183c6ed716cd", size = 945620, upload-time = "2026-08-28T21:54:37.74Z" }
414
+ sdist = { url = "https://files.pythonhosted.org/packages/65/2d/c738872f477f5687152acae68635790387425d407ae37dd3d3a8a6692307/coverage-7.16.1.tar.gz", hash = "sha256:f83981779bcf9dfa06fa0a8d4cb43e0faec1706328ce07aa3e7b665b4ac0f210", size = 969651, upload-time = "2026-09-13T19:12:21.422Z" }
415
415
  wheels = [
416
- { url = "https://files.pythonhosted.org/packages/54/c5/e62c87f4799d1e3647d5b2ae16ea1d12205d72fde1ea8529e13fe050f678/coverage-7.16.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1545c52ce756b8a97007f439a220297f1cd72a2cbbcdffccdf1c1f70e74f9a42", size = 223215, upload-time = "2026-08-28T21:51:55.628Z" },
417
- { url = "https://files.pythonhosted.org/packages/89/e9/5e62fda9397175fb206f75368b6e85da06d831c181b6d0f67ca073cd2f89/coverage-7.16.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0598aadae641f30a0796b75b45c0b9c5de8619bd5cfb251bb0cc254e86e6dd13", size = 223585, upload-time = "2026-08-28T21:51:57.355Z" },
418
- { url = "https://files.pythonhosted.org/packages/b9/40/bede08621b1ba67e88c4d3336c22b52cb7911ff1fa4ef055344b6670e58a/coverage-7.16.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:4080ad6bad9f14690e6b2104f5e8d137ccc65a4b5427a36662090637d4bd16d5", size = 254575, upload-time = "2026-08-28T21:51:59.233Z" },
419
- { url = "https://files.pythonhosted.org/packages/12/d8/ab0bdaa45dfd6b8cbf1a3ec548fdf827684b1997f9724375c5b3e89144fb/coverage-7.16.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:e9883a2f8206ce3af59117dc278e5d043fea06912bca3f199816129e5e2de354", size = 257172, upload-time = "2026-08-28T21:52:01.015Z" },
420
- { url = "https://files.pythonhosted.org/packages/1d/bb/135de81784bbd7dfedcab2b92b03d71d75b09b0815b42d6dabb052def5a6/coverage-7.16.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:984e5430fc6f858385009e92549955157d79335b1f3e13e1031e0f89d1284261", size = 258410, upload-time = "2026-08-28T21:52:02.76Z" },
421
- { url = "https://files.pythonhosted.org/packages/ad/72/ce44ecc062fb2e43d9447bb76154d091c2139232f20c125297c4b58f4c6a/coverage-7.16.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b1374099dd1ad0d31fbb6c95d00a56a3c5e85fb3343dca14fc12f78323a2b42a", size = 260539, upload-time = "2026-08-28T21:52:04.821Z" },
422
- { url = "https://files.pythonhosted.org/packages/e7/c4/9389c36a41e59406ca2bba493807c2294d2e5186a7e9ebcc2e63a0f2a711/coverage-7.16.0-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:34d8686bce035c8465b318a8c2890e69ba14a00801a27f4eb6bdc97c23944d87", size = 254756, upload-time = "2026-08-28T21:52:06.68Z" },
423
- { url = "https://files.pythonhosted.org/packages/ad/0f/7762447b15e01fb84263608540123c4d9941f06303265ee74d801ccbec0e/coverage-7.16.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:857fceba6ff4b507ee0ad98798a33d544a8473df0c542bf04251ee4ed5ee6292", size = 256540, upload-time = "2026-08-28T21:52:08.529Z" },
424
- { url = "https://files.pythonhosted.org/packages/e6/fa/c60dc75a8346c1dbebebc7279b19971c88f70dd575f0bc10bc0cb16f92d5/coverage-7.16.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:bbf08d951abaa1ce89e28c998361d56b952413846b459cd017f116ad4c9adbfa", size = 254508, upload-time = "2026-08-28T21:52:10.323Z" },
425
- { url = "https://files.pythonhosted.org/packages/c3/f0/4e0834f3a1fccaa8bf625a2a1d73bde0fa32577dc3249853c0dd0e7f2b20/coverage-7.16.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:1a03e78f53e4d2ab13adac19958a89322d1829913e5623d642627bf60b35da21", size = 258659, upload-time = "2026-08-28T21:52:12.124Z" },
426
- { url = "https://files.pythonhosted.org/packages/b4/ec/fe712d3a11fd6e874565a5fa5497c48b8ece561d9611da040b44cdcf8386/coverage-7.16.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:dcd3dafcdd78305d27c59a1006b53a4990acb89e68d8fbe0992f4f83503c827f", size = 254326, upload-time = "2026-08-28T21:52:14.181Z" },
427
- { url = "https://files.pythonhosted.org/packages/e7/78/093e12072e01034c65ff380f76c74b79dd83e44fa92b689a2154389be734/coverage-7.16.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c1bcfe470a796fbea6234accd81d258a31574dc0b7bf569e16be757572c4de17", size = 256102, upload-time = "2026-08-28T21:52:16.003Z" },
428
- { url = "https://files.pythonhosted.org/packages/9b/c0/265176117ca5d06e3f65575842884cdda96cf213350a31e9d41c80d65854/coverage-7.16.0-cp313-cp313-win32.whl", hash = "sha256:1420370276f1694b663207b8245c3628aafb9624fe3cebf313a13d860e55ee67", size = 225250, upload-time = "2026-08-28T21:52:17.82Z" },
429
- { url = "https://files.pythonhosted.org/packages/1f/01/8a87f2c04fde322430b45d16d8f543693e9894c5b2d2ca238a287c00beca/coverage-7.16.0-cp313-cp313-win_amd64.whl", hash = "sha256:496277c8d7beed695e02c7be53516a0152e4caef8738a0feab6a638546cce449", size = 225790, upload-time = "2026-08-28T21:52:19.641Z" },
430
- { url = "https://files.pythonhosted.org/packages/23/40/c21feacd9edfe7063195bf9cc84d650e9938fc6a23063e4f027199b160e1/coverage-7.16.0-cp313-cp313-win_arm64.whl", hash = "sha256:181c2906b9b3759955c1c33c51fbb91c754fbd0b82ea49e2c81061f5a052082c", size = 225180, upload-time = "2026-08-28T21:52:21.613Z" },
431
- { url = "https://files.pythonhosted.org/packages/b1/5a/234e8fadf85c3cc48cb31c247b9e8e0c7f06ece80f5b29f9b8c241f9da4c/coverage-7.16.0-py3-none-any.whl", hash = "sha256:245f7de6d023a5bba375dbec9f2e0869bfa26ac0cc639bbb7b4c814884000b73", size = 214977, upload-time = "2026-08-28T21:54:35.189Z" },
416
+ { url = "https://files.pythonhosted.org/packages/aa/74/c08c0c4dc9fa6bcd1d90728a63660aa1b17b488a806948598456c48f75d1/coverage-7.16.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ee5465db6e9152a7d09f3215309326878c6aa3ac509195a369f9d264ff4bfbd9", size = 223501, upload-time = "2026-09-13T19:09:37.276Z" },
417
+ { url = "https://files.pythonhosted.org/packages/5b/c8/784986d326663285258a8e39835c46fb730cc85284f0dbcd82078586dd22/coverage-7.16.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2b8256f8b525ba233d2e4cdcdce0d6673c66fc9bf70df1fd5e67c54a74e2d245", size = 223876, upload-time = "2026-09-13T19:09:39.385Z" },
418
+ { url = "https://files.pythonhosted.org/packages/15/76/73fb792928872bbb07e553f920ff55c65ee962c469265feb5d1d4ae5f97a/coverage-7.16.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:d57cc400275b9a2892e905fc893f732b21ddb95271bf96406c88e2f6367848b5", size = 254863, upload-time = "2026-09-13T19:09:41.326Z" },
419
+ { url = "https://files.pythonhosted.org/packages/ca/8d/1fd78899513244b065ccecdd1cfc6aa8b8f1bdee796d8c4f2aa8e8e5397d/coverage-7.16.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:6b3fd0f3435ebb7a7183b32a6062a8b755f08242ced1f3f22761d30b56b3c2a5", size = 257460, upload-time = "2026-09-13T19:09:43.086Z" },
420
+ { url = "https://files.pythonhosted.org/packages/47/1c/b23ddfcb7ef9bd7b3fdb7be9a5dccf9925ae88e556df7aa5b655283c78f2/coverage-7.16.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e5eb1762e7eb5fad34ef913e8107c7788a66f19d328e598ce95bf7217f9e5c8f", size = 258697, upload-time = "2026-09-13T19:09:45.161Z" },
421
+ { url = "https://files.pythonhosted.org/packages/1c/c9/19d0c6ca35778a7e9415c30c46a0c64c9d4374219d004a35563132296896/coverage-7.16.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:46cd3a73e9140410de62cceb66214bce0e08fb3922b9176fbfc1522fec151b41", size = 260827, upload-time = "2026-09-13T19:09:47.061Z" },
422
+ { url = "https://files.pythonhosted.org/packages/97/fc/5862f7344382c62b85df43d483e579168cc062e007f54d895dfa51fe3e7d/coverage-7.16.1-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d1ba5142d68dd2cb775cbd0ac8601819298152047803c8efe4eec6d7d7aa7878", size = 255038, upload-time = "2026-09-13T19:09:48.945Z" },
423
+ { url = "https://files.pythonhosted.org/packages/2e/9f/5c26583199a68df8d15124b4590520903f8eb7cef17db293fea712bb0783/coverage-7.16.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c389c6f9d1d518e1249ddcb8a7f158135644ce2c508fa6cc17b680777dad5bf2", size = 256827, upload-time = "2026-09-13T19:09:50.738Z" },
424
+ { url = "https://files.pythonhosted.org/packages/95/13/605198bff079b107336710f28a797312ab132587168600d70a290e7ecd2e/coverage-7.16.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cdc57746c7ac0ea063351b4d651c3bb4dd4fd35e64dbb8e90c10e14eb03c4080", size = 254794, upload-time = "2026-09-13T19:09:52.577Z" },
425
+ { url = "https://files.pythonhosted.org/packages/43/b7/0bbb32dc5ccdac766a13763fdfbffd7d73fc80349a69230c46c6b71e7508/coverage-7.16.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:5597180ed7670cc94c04c65347418a467d3a43d5f0cf52fcac647f5425f42037", size = 258947, upload-time = "2026-09-13T19:09:54.372Z" },
426
+ { url = "https://files.pythonhosted.org/packages/13/bd/65c31ddd43ff4e61b63721b3dad17cca412dba6e2ce89f92abdf75734339/coverage-7.16.1-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:a9647a0ac46255b8fef59a433a2161f03e5483f3a35e1cbd9dfe4600baff0c6b", size = 254613, upload-time = "2026-09-13T19:09:56.198Z" },
427
+ { url = "https://files.pythonhosted.org/packages/25/20/d278115f2ba522b3e3128c6852be265f4e0df7202b2effca4db96cf0217d/coverage-7.16.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e306e98186b9cd109121f3583aeb7978797ad21d948f22944c5c08845cd554d0", size = 256388, upload-time = "2026-09-13T19:09:58.095Z" },
428
+ { url = "https://files.pythonhosted.org/packages/e1/ca/d43aa396fb3a2f71c9411b99d926475f5acaf5c124f605c592865c80c8d5/coverage-7.16.1-cp313-cp313-win32.whl", hash = "sha256:48a78a66fcce49d7f6156524bf979c0ac633d584199717c68c6ffa949fc14e6a", size = 225550, upload-time = "2026-09-13T19:09:59.998Z" },
429
+ { url = "https://files.pythonhosted.org/packages/0e/30/df2f6114f6a17cffe94721bd1d298f77f86aad493717fa5bc03cb291a1a6/coverage-7.16.1-cp313-cp313-win_amd64.whl", hash = "sha256:7af03247d598a353bbbbe1b925deb735276e4d845e7197c4073dc89352b236fa", size = 226091, upload-time = "2026-09-13T19:10:02.331Z" },
430
+ { url = "https://files.pythonhosted.org/packages/ee/31/6f90d8aab72a112492bd50e3b5485b53b772b1f5fa70da0a620e723caae6/coverage-7.16.1-cp313-cp313-win_arm64.whl", hash = "sha256:166adae25b05b04c9a84135912066d9c97482115af38df1a419a38aacc6b6f5d", size = 225481, upload-time = "2026-09-13T19:10:04.151Z" },
431
+ { url = "https://files.pythonhosted.org/packages/96/1a/d6d16babd0a5fe4c3fae40702158c570351694e74516d8d81b86c5637448/coverage-7.16.1-py3-none-any.whl", hash = "sha256:3d8bd4e58b6a5c2018d808f297905393c6c61da466a48c3f0596a76a4900ebe4", size = 215264, upload-time = "2026-09-13T19:12:18.895Z" },
432
432
  ]
433
433
 
434
434
  [[package]]
@@ -618,7 +618,7 @@ server = [
618
618
 
619
619
  [[package]]
620
620
  name = "fastretrieval"
621
- version = "1.4.0"
621
+ version = "1.5.0"
622
622
  source = { registry = "https://pypi.org/simple" }
623
623
  dependencies = [
624
624
  { name = "huggingface-hub" },
@@ -629,9 +629,9 @@ dependencies = [
629
629
  { name = "tokenizers" },
630
630
  { name = "tqdm" },
631
631
  ]
632
- sdist = { url = "https://files.pythonhosted.org/packages/1b/35/1b0208b062ff19f762c1a94e2eb6fa1ff24dc1320f13063135e53c3d2f12/fastretrieval-1.4.0.tar.gz", hash = "sha256:f3584b20a64fe2a84e2496371ae6a5b19fe46f6811c8b8a89f7922c4b82cbbf8", size = 327929, upload-time = "2026-09-12T07:53:34.732Z" }
632
+ sdist = { url = "https://files.pythonhosted.org/packages/65/18/6c106f146d8531fa65986bfbb27d337dd287474ab2ae549348a47a00d6fe/fastretrieval-1.5.0.tar.gz", hash = "sha256:475474695009d1f2fc169534af9b33df61fee4136ba7ccdebd4f8b2d6088f616", size = 328906, upload-time = "2026-09-13T08:36:37.806Z" }
633
633
  wheels = [
634
- { url = "https://files.pythonhosted.org/packages/82/36/ab774756b864b2c4f629609dea1861650fbb53716ffcea2e22743cb2ba5a/fastretrieval-1.4.0-py3-none-any.whl", hash = "sha256:eb03702698de91207acd492d037cd9e582cab11a84a5f17e3b784729b4e3ea86", size = 145564, upload-time = "2026-09-12T07:53:33.064Z" },
634
+ { url = "https://files.pythonhosted.org/packages/7b/35/807b4c0d5335c881cdd1a8d719d0a271c5eecb792ccf2f38ce4aa062d9a7/fastretrieval-1.5.0-py3-none-any.whl", hash = "sha256:49c7c3d9ac3271757ae813d1adc22feca3b05171522c3c78f931bda9e790001c", size = 145975, upload-time = "2026-09-13T08:36:36.528Z" },
635
635
  ]
636
636
 
637
637
  [[package]]
@@ -1524,16 +1524,16 @@ wheels = [
1524
1524
 
1525
1525
  [[package]]
1526
1526
  name = "pydantic-settings"
1527
- version = "2.14.2"
1527
+ version = "2.15.0"
1528
1528
  source = { registry = "https://pypi.org/simple" }
1529
1529
  dependencies = [
1530
1530
  { name = "pydantic" },
1531
1531
  { name = "python-dotenv" },
1532
1532
  { name = "typing-inspection" },
1533
1533
  ]
1534
- sdist = { url = "https://files.pythonhosted.org/packages/5c/b5/8f48e906c3e0205276e8bd8cb7512217a87b2685304d64be27cad5b3019f/pydantic_settings-2.14.2.tar.gz", hash = "sha256:c19dd64b19097f1de80184f0cc7b0272a13ae6e170cbf240a3e27e381ed14a5f", size = 237700, upload-time = "2026-06-19T13:44:56.324Z" }
1534
+ sdist = { url = "https://files.pythonhosted.org/packages/68/ca/31c57507b13119d7d3cfa1576dad2911a4861e3be07b579395f4e9d393f9/pydantic_settings-2.15.0.tar.gz", hash = "sha256:694b793e84f766ba76a90ebdefc01d0a9a045dab0382bee70393da93712ad117", size = 261253, upload-time = "2026-08-07T09:24:57.419Z" }
1535
1535
  wheels = [
1536
- { url = "https://files.pythonhosted.org/packages/77/c1/6e422f34e569cf8e18df68d1939c81c099d2b61e4f7d9621c8a77560799c/pydantic_settings-2.14.2-py3-none-any.whl", hash = "sha256:a20c97b37910b6550d5ea50fbcc2d4187defe58cd57070b73863d069419c9440", size = 61715, upload-time = "2026-06-19T13:44:55.02Z" },
1536
+ { url = "https://files.pythonhosted.org/packages/30/a4/2bffa9f8e804325a09867f0e9d30795c80ea9f8d62560bd1b6ad6220eb2f/pydantic_settings-2.15.0-py3-none-any.whl", hash = "sha256:0ba092c291c94baceb5eff768aa0d56400a457585bc0175925a5a5510303da42", size = 69413, upload-time = "2026-08-07T09:24:55.839Z" },
1537
1537
  ]
1538
1538
 
1539
1539
  [[package]]
@@ -1955,14 +1955,14 @@ wheels = [
1955
1955
 
1956
1956
  [[package]]
1957
1957
  name = "syrupy"
1958
- version = "6.0.0"
1958
+ version = "6.1.1"
1959
1959
  source = { registry = "https://pypi.org/simple" }
1960
1960
  dependencies = [
1961
1961
  { name = "pytest" },
1962
1962
  ]
1963
- sdist = { url = "https://files.pythonhosted.org/packages/d2/a7/3c797c76994dc817582abdda90ee31867a9883567b0add47dbc0ccb12ce4/syrupy-6.0.0.tar.gz", hash = "sha256:bf4f5f662a7b23a9e5711bd5597e301cd09c00f31be5fa4095f79da7b0585f3d", size = 99435, upload-time = "2026-08-22T20:48:39.493Z" }
1963
+ sdist = { url = "https://files.pythonhosted.org/packages/74/2c/8ffc1414d1951895d0d5b7dc83c0b079ebc48c3bf27ffbb0064646367500/syrupy-6.1.1.tar.gz", hash = "sha256:7e584a8df4ede6dd3c1c44a77f9edc46186b6767a73dea6f0083044946839a59", size = 109705, upload-time = "2026-09-13T20:25:21.599Z" }
1964
1964
  wheels = [
1965
- { url = "https://files.pythonhosted.org/packages/7c/ff/4d8ae6d6070ea73ee9d466701584a75db9586ce09de98f8f1b3276efad5f/syrupy-6.0.0-py3-none-any.whl", hash = "sha256:3efa16d767bd8614413cc20057552e4aec14428c6e5ea788c1f7e03047e8a5e4", size = 58047, upload-time = "2026-08-22T20:48:38.213Z" },
1965
+ { url = "https://files.pythonhosted.org/packages/2c/b5/bf2a8a335a6a813869dd482cedbcde252f582b5afbfe50eb78ec09962800/syrupy-6.1.1-py3-none-any.whl", hash = "sha256:6ac9ac6a42d70ae44156f5f157a9563b9bb8cc96dcf9364327f330463bff889a", size = 63436, upload-time = "2026-09-13T20:25:20.294Z" },
1966
1966
  ]
1967
1967
 
1968
1968
  [[package]]
@@ -2059,19 +2059,19 @@ wheels = [
2059
2059
 
2060
2060
  [[package]]
2061
2061
  name = "tree-sitter-language-pack"
2062
- version = "1.19.0"
2062
+ version = "1.19.1"
2063
2063
  source = { registry = "https://pypi.org/simple" }
2064
2064
  dependencies = [
2065
2065
  { name = "tree-sitter" },
2066
2066
  ]
2067
- sdist = { url = "https://files.pythonhosted.org/packages/a9/36/d719e91a1a3af88b2502726dae21bf0c427c60154a5d65a78c1863aad3ca/tree_sitter_language_pack-1.19.0.tar.gz", hash = "sha256:ffe2085a86ca8c604ce804bd78a5be5b03e430b3ce20b4391b7d729f0b67b00d", size = 88626, upload-time = "2026-09-12T14:36:38.657Z" }
2067
+ sdist = { url = "https://files.pythonhosted.org/packages/6a/e0/8a9ca62d2397d78853a61a09852d6403e662a241b15222e2a8d56f3ddd04/tree_sitter_language_pack-1.19.1.tar.gz", hash = "sha256:38364e9883febbf868b3737654bc93a813e44433a973f08be049930ce1b19b5f", size = 88624, upload-time = "2026-09-13T15:03:34.16Z" }
2068
2068
  wheels = [
2069
- { url = "https://files.pythonhosted.org/packages/97/ae/ea67dae6e3be001f6ceb63e988a64346f4f00f869ce1fe38b3470189196c/tree_sitter_language_pack-1.19.0-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:23571543f34b6fb50376fd3d9da5bd172651b6cb3a08f2f0f7b1ac9093e3a6f6", size = 2294589, upload-time = "2026-09-12T14:36:30.858Z" },
2070
- { url = "https://files.pythonhosted.org/packages/ac/ef/af26b30048359b811a9e0a189e690c4782eb162b0063bcbeae45217c7071/tree_sitter_language_pack-1.19.0-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:a15a6aae2d19b3e0b249bf6cdf24e5ae4c1b0b91f4a0d4e08b1428680b1a40c4", size = 2182869, upload-time = "2026-09-12T14:36:32.331Z" },
2071
- { url = "https://files.pythonhosted.org/packages/c6/4a/fa4a092cc21c4d3891de98534d648280b788aeebf0addaf5b62a389f5153/tree_sitter_language_pack-1.19.0-cp310-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:ca81a3e2ef17854e3379f0af3a53b46a4074dbd7e056aa29f62bd6ea04656039", size = 2341606, upload-time = "2026-09-12T14:36:33.482Z" },
2072
- { url = "https://files.pythonhosted.org/packages/08/4c/47c779f8ab4727d3bd1a45e8bdd68a9de10f24b2961154b6feb3eddf7d03/tree_sitter_language_pack-1.19.0-cp310-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:22dfe6caff6dbc32d9d35940beba8e670d2c05986cc1494ea1395f6cd60d6d0e", size = 2459474, upload-time = "2026-09-12T14:36:34.677Z" },
2073
- { url = "https://files.pythonhosted.org/packages/ed/8c/7512ddadf79fc698e7307ea6834330931e577d231830223dab9201bf0237/tree_sitter_language_pack-1.19.0-cp310-abi3-win_amd64.whl", hash = "sha256:6f8593f2a4cb864c1f52c8b297013c184a5898b2ca5f732f6163720c2aa8dfb7", size = 2241129, upload-time = "2026-09-12T14:36:35.958Z" },
2074
- { url = "https://files.pythonhosted.org/packages/7c/6f/2cdbc6651915fa0ec4e461172c7e68363183345ccb4687646831d287729c/tree_sitter_language_pack-1.19.0-cp310-abi3-win_arm64.whl", hash = "sha256:6bee977b050888ffe4e8fb18c6c78ba8b88090a6e1b4a9923745394732f243b5", size = 2140328, upload-time = "2026-09-12T14:36:37.468Z" },
2069
+ { url = "https://files.pythonhosted.org/packages/0e/01/c1e6f361b3d11b4729bd4dcead96a1dc12d6fe4ea9aedf94a5b3c641bb82/tree_sitter_language_pack-1.19.1-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:eccaac3f56840d10c14036bb053baeb83bb44f4fc65b6203105eee0637a5483f", size = 2295247, upload-time = "2026-09-13T15:03:27.437Z" },
2070
+ { url = "https://files.pythonhosted.org/packages/32/71/d93b31b3a637da1cd3b2477a194194d9aacc5e831dfc1adc2ca5ddeeffaf/tree_sitter_language_pack-1.19.1-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:12afde06b32de7aa61922fb6c06344651bb94c9635c8f5f6c719b5e533f59b49", size = 2183284, upload-time = "2026-09-13T15:03:28.719Z" },
2071
+ { url = "https://files.pythonhosted.org/packages/69/14/5a606413b67ac1d4fb50368dce106e14b0d3132ed6013ba1f4831dab83bc/tree_sitter_language_pack-1.19.1-cp310-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:6d5187ee6b783614874d3fd7990edb51aa67703fa6ae2c05a2fd3a6cab08ddc1", size = 2341866, upload-time = "2026-09-13T15:03:29.797Z" },
2072
+ { url = "https://files.pythonhosted.org/packages/5e/b0/e0b0276b210e80c51ba77a2fcf9123bc76fd7e6868bf1c4114a81a1b894e/tree_sitter_language_pack-1.19.1-cp310-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:86889d8409bea81276590f9f05d289c08e9921e041d9ea6c240786d4798b76ee", size = 2459200, upload-time = "2026-09-13T15:03:30.882Z" },
2073
+ { url = "https://files.pythonhosted.org/packages/6c/e8/0edf02a82644fa03eb95a6b84ac7649c585692b3ee9fbf9e96df7e64fcca/tree_sitter_language_pack-1.19.1-cp310-abi3-win_amd64.whl", hash = "sha256:a2c57801f2d4d87899d59a91fb381a855329bacfe56c8289c8f376211aafeea1", size = 2241888, upload-time = "2026-09-13T15:03:32.051Z" },
2074
+ { url = "https://files.pythonhosted.org/packages/ec/5f/e19dca1fcafe4c50f931c3b1934dfea98fcf65d435c86c48ceaf12f33e2f/tree_sitter_language_pack-1.19.1-cp310-abi3-win_arm64.whl", hash = "sha256:9afd39e3698a0a487236774df2a09441c48610013d76abc6da9c014d900e223d", size = 2140521, upload-time = "2026-09-13T15:03:33.146Z" },
2075
2075
  ]
2076
2076
 
2077
2077
  [[package]]