better-code-review-graph 3.26.24__tar.gz → 3.26.26__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 (255) hide show
  1. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/.claude-plugin/plugin.json +1 -1
  2. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/.github/workflows/ci.yml +2 -2
  3. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/CHANGELOG.md +19 -0
  4. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/PKG-INFO +3 -3
  5. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/pyproject.toml +3 -3
  6. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/server.json +2 -2
  7. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/uv.lock +31 -31
  8. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/.agents/skills/build-graph/SKILL.md +0 -0
  9. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/.agents/skills/review-delta/SKILL.md +0 -0
  10. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/.agents/skills/review-pr/SKILL.md +0 -0
  11. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/.coderabbit.yaml +0 -0
  12. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/.dockerignore +0 -0
  13. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/.github/CODEOWNERS +0 -0
  14. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  15. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  16. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  17. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/.github/review-learnings.md +0 -0
  18. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/.github/rulesets/main.json +0 -0
  19. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/.github/workflows/cd.yml +0 -0
  20. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/.gitignore +0 -0
  21. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/.infisical.json +0 -0
  22. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/.jules/bolt.md +0 -0
  23. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/.jules/sentinel.md +0 -0
  24. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/.pre-commit-config.yaml +0 -0
  25. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/AGENTS.md +0 -0
  26. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/BREAKING_CHANGES.md +0 -0
  27. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/CLAUDE.md +0 -0
  28. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/CODE_OF_CONDUCT.md +0 -0
  29. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/CONTRIBUTING.md +0 -0
  30. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/Dockerfile +0 -0
  31. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/LICENSE +0 -0
  32. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/LICENSE-MIT +0 -0
  33. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/NOTICE +0 -0
  34. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/README.md +0 -0
  35. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/SECURITY.md +0 -0
  36. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/alembic.ini +0 -0
  37. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/docs/HANDOVER.md +0 -0
  38. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/hooks/_graph_state.py +0 -0
  39. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/hooks/branch-sync-check.py +0 -0
  40. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/hooks/hooks.json +0 -0
  41. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/hooks/stale-graph-check.py +0 -0
  42. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/migrations/README +0 -0
  43. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/migrations/env.py +0 -0
  44. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/migrations/script.py.mako +0 -0
  45. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/migrations/versions/001_baseline.py +0 -0
  46. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/migrations/versions/002_summary_columns.py +0 -0
  47. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/migrations/versions/003_federation.py +0 -0
  48. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/migrations/versions/004_security_tags.py +0 -0
  49. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/migrations/versions/005_temporal_columns.py +0 -0
  50. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/migrations/versions/006_commits_table.py +0 -0
  51. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/renovate.json +0 -0
  52. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/rules/heuristic/cwe-22-path-traversal.yaml +0 -0
  53. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/rules/heuristic/cwe-78-shell-command-sink.yaml +0 -0
  54. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/rules/heuristic/cwe-89-sql-string-format.yaml +0 -0
  55. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/rules/heuristic/cwe-95-eval-on-input.yaml +0 -0
  56. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/rules/heuristic/hardcoded-secret.yaml +0 -0
  57. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/rules/semgrep/curated.yaml +0 -0
  58. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/scripts/benchmark_row_deserialization.py +0 -0
  59. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/scripts/enforce-commit.sh +0 -0
  60. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/scripts/preserve-diacritics.py +0 -0
  61. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/scripts/test_preserve_diacritics.py +0 -0
  62. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/semantic-release.toml +0 -0
  63. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/skills/impact-audit/SKILL.md +0 -0
  64. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/skills/onboard-repo/SKILL.md +0 -0
  65. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/skills/refactor-check/SKILL.md +0 -0
  66. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/skills/review-delta/SKILL.md +0 -0
  67. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/skills/review-pr/SKILL.md +0 -0
  68. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/skills/security-sweep/SKILL.md +0 -0
  69. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/smithery.yaml +0 -0
  70. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/__init__.py +0 -0
  71. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/__main__.py +0 -0
  72. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/cli.py +0 -0
  73. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/config.py +0 -0
  74. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/credential_state.py +0 -0
  75. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/docs/__init__.py +0 -0
  76. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/docs/config.md +0 -0
  77. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/docs/graph.md +0 -0
  78. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/docs/query.md +0 -0
  79. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/docs/recipes.md +0 -0
  80. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/docs/review.md +0 -0
  81. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/docs/security.md +0 -0
  82. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/embeddings.py +0 -0
  83. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/exporter.py +0 -0
  84. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/federation.py +0 -0
  85. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/graph.py +0 -0
  86. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/importer.py +0 -0
  87. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/incremental.py +0 -0
  88. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/parser.py +0 -0
  89. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/py.typed +0 -0
  90. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/relay_schema.py +0 -0
  91. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/relay_setup.py +0 -0
  92. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/reranker.py +0 -0
  93. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/resolver/__init__.py +0 -0
  94. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/resolver/_types.py +0 -0
  95. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/resolver/fallback.py +0 -0
  96. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/resolver/go.py +0 -0
  97. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/resolver/java.py +0 -0
  98. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/resolver/python.py +0 -0
  99. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/resolver/rust.py +0 -0
  100. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/resolver/typescript.py +0 -0
  101. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/security/__init__.py +0 -0
  102. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/security/heuristic.py +0 -0
  103. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/security/semgrep_engine.py +0 -0
  104. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/server.py +0 -0
  105. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/summarizer.py +0 -0
  106. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/temporal.py +0 -0
  107. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/tools.py +0 -0
  108. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/src/better_code_review_graph/xpia.py +0 -0
  109. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/__init__.py +0 -0
  110. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/conftest.py +0 -0
  111. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/conftest_e2e.py +0 -0
  112. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/e2e_mcp_protocol_test.py +0 -0
  113. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/fixtures/Sample.cs +0 -0
  114. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/fixtures/SampleJava.java +0 -0
  115. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/fixtures/callback_refs.js +0 -0
  116. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/fixtures/caller_example.py +0 -0
  117. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/fixtures/multi_call_example.py +0 -0
  118. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/fixtures/sample.c +0 -0
  119. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/fixtures/sample.cpp +0 -0
  120. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/fixtures/sample.kt +0 -0
  121. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/fixtures/sample.php +0 -0
  122. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/fixtures/sample.rb +0 -0
  123. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/fixtures/sample.sol +0 -0
  124. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/fixtures/sample.swift +0 -0
  125. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/fixtures/sample_go.go +0 -0
  126. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/fixtures/sample_python.py +0 -0
  127. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/fixtures/sample_rust.rs +0 -0
  128. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/fixtures/sample_typescript.ts +0 -0
  129. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/fixtures/test_sample.py +0 -0
  130. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/integration/__init__.py +0 -0
  131. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/integration/test_multi_user_remote.py +0 -0
  132. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_alembic_baseline.py +0 -0
  133. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_as_of_diff.py +0 -0
  134. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_auto_resolve_ambiguity.py +0 -0
  135. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_bare_suffix_correctness.py +0 -0
  136. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_callers_not_found_reason.py +0 -0
  137. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_callers_of_coverage.py +0 -0
  138. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_cli.py +0 -0
  139. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_cli_contracts.py +0 -0
  140. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_cohere_dimensions.py +0 -0
  141. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_commits_migration.py +0 -0
  142. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_config_open_relay_registered.py +0 -0
  143. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_coverage_gaps.py +0 -0
  144. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_credential_state.py +0 -0
  145. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_credential_state_stdio_no_fallback.py +0 -0
  146. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_credential_state_store_errors.py +0 -0
  147. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_crg_protocol_harness.py +0 -0
  148. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_custom_local_model.py +0 -0
  149. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_dynamic_dispatch_hints.py +0 -0
  150. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_e2e.py +0 -0
  151. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_embedder_retry_classification.py +0 -0
  152. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_embedding_migration.py +0 -0
  153. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_embeddings.py +0 -0
  154. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_embeddings_extra.py +0 -0
  155. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_export_graph_dispatch.py +0 -0
  156. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_export_graph_dispatch_path_traversal.py +0 -0
  157. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_exporter.py +0 -0
  158. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_federation.py +0 -0
  159. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_federation_migration.py +0 -0
  160. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_federation_smoke.py +0 -0
  161. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_full_live.py +0 -0
  162. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_g6_ux_status_accuracy.py +0 -0
  163. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_get_docs_section_error_path.py +0 -0
  164. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_get_review_context_no_diff.py +0 -0
  165. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_graph.py +0 -0
  166. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_graph_batch_fetch.py +0 -0
  167. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_graph_extra.py +0 -0
  168. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_graph_get_edges_by_targets_coverage.py +0 -0
  169. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_graph_stats_error_coverage.py +0 -0
  170. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_handle_not_found_coverage.py +0 -0
  171. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_help_recipes.py +0 -0
  172. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_heuristic.py +0 -0
  173. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_home_isolation.py +0 -0
  174. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_impact_payload_truncation.py +0 -0
  175. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_implements_edges.py +0 -0
  176. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_import_graph_dispatch.py +0 -0
  177. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_importer.py +0 -0
  178. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_incremental.py +0 -0
  179. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_incremental_extra.py +0 -0
  180. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_kind_filter_optimization.py +0 -0
  181. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_kinds_error_path.py +0 -0
  182. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_list_graph_stats_coverage.py +0 -0
  183. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_list_kinds_coverage.py +0 -0
  184. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_live_mcp.py +0 -0
  185. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_local_reranker.py +0 -0
  186. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_lookup_node_directly.py +0 -0
  187. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_multi_user.py +0 -0
  188. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_multi_user_dispatch.py +0 -0
  189. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_multilang.py +0 -0
  190. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_no_stale_package_name.py +0 -0
  191. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_oci_publication_sunset.py +0 -0
  192. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_oserror_coverage.py +0 -0
  193. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_parser.py +0 -0
  194. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_parser_extra.py +0 -0
  195. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_parser_grammar_failure.py +0 -0
  196. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_parser_source_text.py +0 -0
  197. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_path_resolution_fallback.py +0 -0
  198. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_payload_estimation.py +0 -0
  199. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_per_plugin_storage_migration.py +0 -0
  200. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_per_sub_graph_db.py +0 -0
  201. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_performance_n1.py +0 -0
  202. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_performance_n1_embeddings.py +0 -0
  203. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_phase_3_smoke.py +0 -0
  204. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_plugin_assets.py +0 -0
  205. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_pre_2_0_backup.py +0 -0
  206. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_relay_schema.py +0 -0
  207. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_relay_setup.py +0 -0
  208. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_renamed_in_diff.py +0 -0
  209. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_renamed_in_diff_exception.py +0 -0
  210. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_repo_filter.py +0 -0
  211. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_repo_filter_batching.py +0 -0
  212. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_repo_id_persistence.py +0 -0
  213. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_resolve_search_candidates.py +0 -0
  214. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_resolver_dispatcher.py +0 -0
  215. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_resolver_fallback.py +0 -0
  216. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_resolver_go.py +0 -0
  217. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_resolver_java.py +0 -0
  218. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_resolver_python.py +0 -0
  219. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_resolver_rust.py +0 -0
  220. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_resolver_typescript.py +0 -0
  221. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_response_header.py +0 -0
  222. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_response_payload_honesty.py +0 -0
  223. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_review_delta_line_shifts.py +0 -0
  224. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_review_languages_filter.py +0 -0
  225. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_reviewer_summary.py +0 -0
  226. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_search_edges_by_target_names.py +0 -0
  227. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_search_keyword_warning.py +0 -0
  228. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_security_injection.py +0 -0
  229. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_security_path_traversal.py +0 -0
  230. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_security_scan_batching.py +0 -0
  231. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_security_tags_migration.py +0 -0
  232. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_security_tool.py +0 -0
  233. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_semgrep_engine.py +0 -0
  234. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_server.py +0 -0
  235. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_server_help_coverage.py +0 -0
  236. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_serverinfo_version.py +0 -0
  237. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_setup_tool.py +0 -0
  238. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_shares_state_edges.py +0 -0
  239. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_spot_check.py +0 -0
  240. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_sql_security.py +0 -0
  241. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_stdio_direct.py +0 -0
  242. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_summarize_graph_dispatch.py +0 -0
  243. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_summarizer.py +0 -0
  244. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_summary_schema.py +0 -0
  245. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_temporal.py +0 -0
  246. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_temporal_migration.py +0 -0
  247. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_tested_by_edges.py +0 -0
  248. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_tools.py +0 -0
  249. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_tools_build_error_coverage.py +0 -0
  250. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_tools_full.py +0 -0
  251. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_tools_get_docs_section_coverage.py +0 -0
  252. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_typescript_coverage_gaps.py +0 -0
  253. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_v17_coverage_gaps.py +0 -0
  254. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/tests/test_xpia.py +0 -0
  255. {better_code_review_graph-3.26.24 → better_code_review_graph-3.26.26}/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.24",
4
+ "version": "3.26.26",
5
5
  "userConfig": {
6
6
  "EMBEDDING_MODELS": {
7
7
  "type": "string",
@@ -131,12 +131,12 @@ jobs:
131
131
  uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
132
132
 
133
133
  - name: Initialize CodeQL
134
- uses: github/codeql-action/init@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4.38.0
134
+ uses: github/codeql-action/init@1c5b675653bb5c22dbe9b12b556ec555138e09fd # v4.38.1
135
135
  with:
136
136
  languages: python
137
137
 
138
138
  - name: Perform CodeQL Analysis
139
- uses: github/codeql-action/analyze@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4.38.0
139
+ uses: github/codeql-action/analyze@1c5b675653bb5c22dbe9b12b556ec555138e09fd # v4.38.1
140
140
 
141
141
  dependency-review:
142
142
  name: Dependency Review
@@ -2,6 +2,25 @@
2
2
 
3
3
  <!-- version list -->
4
4
 
5
+ ## v3.26.26 (2026-09-25)
6
+
7
+ ### Bug Fixes
8
+
9
+ - **deps**: Lock file maintenance ([#1092](https://github.com/n24q02m/crg/pull/1092),
10
+ [`96def1f`](https://github.com/n24q02m/crg/commit/96def1fc616a3c608f971a2d1916b7f1ca1f8cc3))
11
+
12
+
13
+ ## v3.26.25 (2026-09-25)
14
+
15
+ ### Bug Fixes
16
+
17
+ - **deps**: Lock file maintenance ([#1091](https://github.com/n24q02m/crg/pull/1091),
18
+ [`487bbe9`](https://github.com/n24q02m/crg/commit/487bbe985701e7417eac9f6f6028db90f2f9c0ab))
19
+
20
+ - **deps**: Update patch dependencies ([#1090](https://github.com/n24q02m/crg/pull/1090),
21
+ [`9ba0104`](https://github.com/n24q02m/crg/commit/9ba010455fc9131f0bb106533a048cdb9e1436e0))
22
+
23
+
5
24
  ## v3.26.24 (2026-09-24)
6
25
 
7
26
  ### Bug Fixes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: better-code-review-graph
3
- Version: 3.26.24
3
+ Version: 3.26.26
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
@@ -16,12 +16,12 @@ Requires-Python: ==3.13.*
16
16
  Requires-Dist: alembic<2,>=1.20.0
17
17
  Requires-Dist: defusedxml>=0.7.1
18
18
  Requires-Dist: fastmcp<4,>=3.4.7
19
- Requires-Dist: fastretrieval<2,>=1.7.1
19
+ Requires-Dist: fastretrieval<2,>=1.8.2
20
20
  Requires-Dist: httpx
21
21
  Requires-Dist: litellm>=1.102.0
22
22
  Requires-Dist: mcp<2,>=1.30.0
23
23
  Requires-Dist: n24q02m-mcp-core[llm]==1.24.6
24
- Requires-Dist: networkx<4,>=3.6.1
24
+ Requires-Dist: networkx<4,>=3.7
25
25
  Requires-Dist: pydantic-settings
26
26
  Requires-Dist: pygments>=2.21.0
27
27
  Requires-Dist: tree-sitter-language-pack<2,>=1.20.0
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "better-code-review-graph"
7
- version = "3.26.24"
7
+ version = "3.26.26"
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"
@@ -22,9 +22,9 @@ dependencies = [
22
22
  "fastmcp>=3.4.7,<4",
23
23
  "tree-sitter>=0.26.0,<1",
24
24
  "tree-sitter-language-pack>=1.20.0,<2",
25
- "networkx>=3.6.1,<4",
25
+ "networkx>=3.7,<4",
26
26
  "watchdog>=6.0.0,<7",
27
- "fastretrieval>=1.7.1,<2",
27
+ "fastretrieval>=1.8.2,<2",
28
28
  "httpx",
29
29
  "pydantic-settings",
30
30
  # Floor tracks the current mcp-core stable for cascade parity with
@@ -6,12 +6,12 @@
6
6
  "url": "https://github.com/n24q02m/crg.git",
7
7
  "source": "github"
8
8
  },
9
- "version": "3.26.24",
9
+ "version": "3.26.26",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "pypi",
13
13
  "identifier": "better-code-review-graph",
14
- "version": "3.26.24",
14
+ "version": "3.26.26",
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.26.23"
162
+ version = "3.26.25"
163
163
  source = { editable = "." }
164
164
  dependencies = [
165
165
  { name = "alembic" },
@@ -200,12 +200,12 @@ requires-dist = [
200
200
  { name = "alembic", specifier = ">=1.20.0,<2" },
201
201
  { name = "defusedxml", specifier = ">=0.7.1" },
202
202
  { name = "fastmcp", specifier = ">=3.4.7,<4" },
203
- { name = "fastretrieval", specifier = ">=1.7.1,<2" },
203
+ { name = "fastretrieval", specifier = ">=1.8.2,<2" },
204
204
  { name = "httpx" },
205
205
  { name = "litellm", specifier = ">=1.102.0" },
206
206
  { name = "mcp", specifier = ">=1.30.0,<2" },
207
207
  { name = "n24q02m-mcp-core", extras = ["llm"], specifier = "==1.24.6" },
208
- { name = "networkx", specifier = ">=3.6.1,<4" },
208
+ { name = "networkx", specifier = ">=3.7,<4" },
209
209
  { name = "pydantic-settings" },
210
210
  { name = "pygments", specifier = ">=2.21.0" },
211
211
  { name = "semgrep", marker = "extra == 'security'", specifier = ">=1.0,<1.162" },
@@ -238,30 +238,30 @@ wheels = [
238
238
 
239
239
  [[package]]
240
240
  name = "boto3"
241
- version = "1.43.102"
241
+ version = "1.43.103"
242
242
  source = { registry = "https://pypi.org/simple" }
243
243
  dependencies = [
244
244
  { name = "botocore" },
245
245
  { name = "jmespath" },
246
246
  { name = "s3transfer" },
247
247
  ]
248
- sdist = { url = "https://files.pythonhosted.org/packages/9a/e6/2a24a2013beecdd9a381bcf7a11981478a1f5f78e37908c0fddba3cd915f/boto3-1.43.102.tar.gz", hash = "sha256:440bdd9fbf88d57809b68839fb690f19e4db65fa5539e60cc803ebd7b9e5e8fc", size = 112696, upload-time = "2026-09-24T19:25:18.329Z" }
248
+ sdist = { url = "https://files.pythonhosted.org/packages/46/59/012898d78087105e9c20fe31605d3f1999921745e1890ee0f0d993846e2e/boto3-1.43.103.tar.gz", hash = "sha256:524821052527f6446d249bf710847b032d9b12135e346c9751777a0a2811cf04", size = 112687, upload-time = "2026-09-25T19:26:30.427Z" }
249
249
  wheels = [
250
- { url = "https://files.pythonhosted.org/packages/46/ea/5bb0e8a8a4b04221b054365a5904fd63b6bcc22edcf4aa75a253f946b86e/boto3-1.43.102-py3-none-any.whl", hash = "sha256:b2a06cbbcb2cb0484f126172eab0881252f01007e8f7e0607ecac131cff9f744", size = 140042, upload-time = "2026-09-24T19:25:16.822Z" },
250
+ { url = "https://files.pythonhosted.org/packages/f2/66/6eb2e92c57b30e54c87fe14c8cd71de3aed9184f3cec95c39132a3fcc61f/boto3-1.43.103-py3-none-any.whl", hash = "sha256:574796187eb4e4fcaaf5c1b88c1724a1ba5a95bc27aeae5573676178666acc71", size = 140044, upload-time = "2026-09-25T19:26:29.085Z" },
251
251
  ]
252
252
 
253
253
  [[package]]
254
254
  name = "botocore"
255
- version = "1.43.102"
255
+ version = "1.43.103"
256
256
  source = { registry = "https://pypi.org/simple" }
257
257
  dependencies = [
258
258
  { name = "jmespath" },
259
259
  { name = "python-dateutil" },
260
260
  { name = "urllib3" },
261
261
  ]
262
- sdist = { url = "https://files.pythonhosted.org/packages/7d/12/97d043f9bfdd54984f8d562169a9ac800c7b94a5b5fdb9b7d7b46659ebd2/botocore-1.43.102.tar.gz", hash = "sha256:3239f3c8611f0fbfb1a3fda77fb70e18f87bec102edf38f67e40902c56639c10", size = 16232455, upload-time = "2026-09-24T19:25:13.238Z" }
262
+ sdist = { url = "https://files.pythonhosted.org/packages/3c/83/acbee6f2e3b1f02de935fef0c48a387511bf979149dc6b44466aaafba6a5/botocore-1.43.103.tar.gz", hash = "sha256:8c7f220e09f3b7ec99c59c716aa66cf6f5b2b57fd8731544054f3778aa744c6a", size = 16243609, upload-time = "2026-09-25T19:26:25.884Z" }
263
263
  wheels = [
264
- { url = "https://files.pythonhosted.org/packages/5a/95/e2791a9dfc989e3580ce087085a45a67987e693f364e2461904d962e3951/botocore-1.43.102-py3-none-any.whl", hash = "sha256:78d9dcee19950444b4ff0250125aff735da4f7d6db46eb1e9aca82dc8f101a66", size = 15926988, upload-time = "2026-09-24T19:25:09.891Z" },
264
+ { url = "https://files.pythonhosted.org/packages/8c/47/790ba88ec849d1e07b5866458b67e79b291164f3de7f23429b4dcb7e2ced/botocore-1.43.103-py3-none-any.whl", hash = "sha256:6a6a561a6de43845ae42bc7ff7e2c798742bfa277f5215398f9c15ed9b1bd67c", size = 15938608, upload-time = "2026-09-25T19:26:23.162Z" },
265
265
  ]
266
266
 
267
267
  [[package]]
@@ -1313,14 +1313,14 @@ wheels = [
1313
1313
 
1314
1314
  [[package]]
1315
1315
  name = "opentelemetry-api"
1316
- version = "1.44.0"
1316
+ version = "1.45.0"
1317
1317
  source = { registry = "https://pypi.org/simple" }
1318
1318
  dependencies = [
1319
1319
  { name = "typing-extensions" },
1320
1320
  ]
1321
- sdist = { url = "https://files.pythonhosted.org/packages/ee/8b/aa9e2d8b8dfa7c946f7dec5d1f8f6ba8eca062f43509a06bdb5ce93d26c0/opentelemetry_api-1.44.0.tar.gz", hash = "sha256:67647e5e9566edcf421166fdf022b3537f818635daa852b289e34604dc6fb33a", size = 72406, upload-time = "2026-07-16T15:25:32.678Z" }
1321
+ sdist = { url = "https://files.pythonhosted.org/packages/1f/dc/e12c1fe1ed8a7b7149777127b1a0e12ce5bd5a81d97408bedc2128c260f5/opentelemetry_api-1.45.0.tar.gz", hash = "sha256:711ede81773c8025c2c03dac0450bc89f3d30aea6eabcc815c570d4e35a963f7", size = 72115, upload-time = "2026-09-25T12:32:28.399Z" }
1322
1322
  wheels = [
1323
- { url = "https://files.pythonhosted.org/packages/ca/6f/a04e900f465ff3221ccc395522503e2d10e79fa21f2723c8e177aae1e0d1/opentelemetry_api-1.44.0-py3-none-any.whl", hash = "sha256:94b98c893a91b88657eaac1e3ba89618cdb85be6918196705354f34728b2cdef", size = 60018, upload-time = "2026-07-16T15:25:11.657Z" },
1323
+ { url = "https://files.pythonhosted.org/packages/44/b9/040d1a1c7836922828e6480cd2366bb8fe0ebf75b413d2bb51a9b0e7f78f/opentelemetry_api-1.45.0-py3-none-any.whl", hash = "sha256:80e068aba7cd56c8b58512d6a36f8d25cb1dfaa0c0a4cc1c938ccf9f362d9cb3", size = 60020, upload-time = "2026-09-25T12:32:03.192Z" },
1324
1324
  ]
1325
1325
 
1326
1326
  [[package]]
@@ -1352,11 +1352,11 @@ wheels = [
1352
1352
 
1353
1353
  [[package]]
1354
1354
  name = "platformdirs"
1355
- version = "4.11.12"
1355
+ version = "4.11.14"
1356
1356
  source = { registry = "https://pypi.org/simple" }
1357
- sdist = { url = "https://files.pythonhosted.org/packages/ea/dd/65804b0c2925a1c821a05502ea57517b69a073ff400d25ab9faa3a2cf012/platformdirs-4.11.12.tar.gz", hash = "sha256:e8dc1cb58f1153fd7f61db1374317770baababec2480b37b8f01c6cc25b45267", size = 40016, upload-time = "2026-09-22T01:02:36.973Z" }
1357
+ sdist = { url = "https://files.pythonhosted.org/packages/72/72/2075f80b8de9992872715444e7088ec3b6eea2bc0e99521e1d6e562e382d/platformdirs-4.11.14.tar.gz", hash = "sha256:0e706ec0a73a4ec023d11496153a4b6607a672f4b5027c23c3aefa9c9288c523", size = 45301, upload-time = "2026-09-25T17:24:00.877Z" }
1358
1358
  wheels = [
1359
- { url = "https://files.pythonhosted.org/packages/ec/2b/69de6317fbf48865bb12aa56c9cfcfff46b3add0cd45250725d96146dce0/platformdirs-4.11.12-py3-none-any.whl", hash = "sha256:b1ba966ac76153d9985a0787ffab951e7c18416189873d4e4ddb2c8a04a0a254", size = 24976, upload-time = "2026-09-22T01:02:35.742Z" },
1359
+ { url = "https://files.pythonhosted.org/packages/dc/40/03f2c094178624d155b8d27a9b0c5ab1e39efa6cc9074b599e8c671b9db1/platformdirs-4.11.14-py3-none-any.whl", hash = "sha256:c1b1a1eab4f4d1b0eb81754593f1c38de88e84ebe6f93bf6714706a6759074b1", size = 26700, upload-time = "2026-09-25T17:23:59.443Z" },
1360
1360
  ]
1361
1361
 
1362
1362
  [[package]]
@@ -1868,24 +1868,24 @@ wheels = [
1868
1868
 
1869
1869
  [[package]]
1870
1870
  name = "sqlalchemy"
1871
- version = "2.1.0"
1871
+ version = "2.1.1"
1872
1872
  source = { registry = "https://pypi.org/simple" }
1873
1873
  dependencies = [
1874
1874
  { name = "typing-extensions" },
1875
1875
  ]
1876
- sdist = { url = "https://files.pythonhosted.org/packages/ba/29/8de56a7f78fb0d71fe4f91ee43401a24ba8777e6d4f72683f268c9e0c72e/sqlalchemy-2.1.0.tar.gz", hash = "sha256:37600e4641c435a7e4549f4e6df79d9dfc096bb9712a10dba8925921bc87bc3c", size = 10502427, upload-time = "2026-09-24T20:12:49.737Z" }
1876
+ sdist = { url = "https://files.pythonhosted.org/packages/a8/cb/7c68da82239ffae9378eca076afe14c310e17a4f01e3d315112f266e26c7/sqlalchemy-2.1.1.tar.gz", hash = "sha256:fcf3cbb33bb23bad75d2150157c21804618745731e9931ab27e61879a9f6123b", size = 10503203, upload-time = "2026-09-25T14:59:00.117Z" }
1877
1877
  wheels = [
1878
- { url = "https://files.pythonhosted.org/packages/59/cd/9a3e6f4c353b9fea527a1a68274a0ee405f4977101af4d6b8ec97c144cc9/sqlalchemy-2.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:038a6e6dd0554cb8586a773520251a4de670c3fd402162bcc0844df1640823a8", size = 2452538, upload-time = "2026-09-24T20:29:10.026Z" },
1879
- { url = "https://files.pythonhosted.org/packages/3f/93/83f2c02b0dd08b9f31676e7ec8e459525c40c591ca46914f388361434570/sqlalchemy-2.1.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:060966367e63838554a3be161b03477f7f1d332e3a4dd094eeb0d9e1aa722801", size = 4577608, upload-time = "2026-09-24T20:38:35.283Z" },
1880
- { url = "https://files.pythonhosted.org/packages/57/58/a73953c480f9411a5e664e325ba33f51b6f98b8479332c6192ef11e618cc/sqlalchemy-2.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d2f73e5cbf444bf181bcba89250fb8dd93ab61f6efa5894df1dcd73933e688aa", size = 4628720, upload-time = "2026-09-24T20:38:01.718Z" },
1881
- { url = "https://files.pythonhosted.org/packages/13/79/f597bc71f81ed58ea49717af9f24b228240917c98b09657bca5750189e9a/sqlalchemy-2.1.0-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:2ace7dc100e9bf0194894ab924f0721138216868f68aaa35ba83db62442e6262", size = 4295805, upload-time = "2026-09-24T21:02:52.549Z" },
1882
- { url = "https://files.pythonhosted.org/packages/af/c7/6944d5e097e898a4e87608cc735408d1fd3cde1581e6b2f7da34b7a0a3b5/sqlalchemy-2.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a0466b1dab6965d79780e4b563ef77f0798ce9fcab5c659e72e1f21939cce50b", size = 4502555, upload-time = "2026-09-24T20:38:36.898Z" },
1883
- { url = "https://files.pythonhosted.org/packages/cf/10/5568c4af34f281177307e7a7e15a8dc8340219fdc4f8b2ae6a339c111961/sqlalchemy-2.1.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:74246c52e6ce4b8774e64850005fe4477258b1a6fd7382d83bb64a44934b034c", size = 4297214, upload-time = "2026-09-24T21:02:55.664Z" },
1884
- { url = "https://files.pythonhosted.org/packages/d7/9c/82261a5724fc8ab13925a780f75211c1246909beedee9a4ad1106aab6df4/sqlalchemy-2.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:43d9f0e0ba5284f91d8dc01c611650ffb04e4bc2eef8aa143e5cd85e17a4a348", size = 4589958, upload-time = "2026-09-24T20:38:04.221Z" },
1885
- { url = "https://files.pythonhosted.org/packages/a6/c2/67d9962f93833b2c9f374efcffe78cd20cd45cf8c73313068104df94a1a9/sqlalchemy-2.1.0-cp313-cp313-win32.whl", hash = "sha256:077d8d28461ad5d1bbb9d83c8435fbbc0e51c6665b4d6ebc58a7934856247c1a", size = 2366565, upload-time = "2026-09-24T20:36:51.966Z" },
1886
- { url = "https://files.pythonhosted.org/packages/82/9f/e492728cd71487814dbfde59e0cc18576b4f70f1611e2a601c6a841367c7/sqlalchemy-2.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:557a2f44d483cee57520bc249895a06d89bde504c44692d4fc159db103197b6e", size = 2416589, upload-time = "2026-09-24T20:36:53.889Z" },
1887
- { url = "https://files.pythonhosted.org/packages/ab/98/6d1a8aa122512ee6bbda9fd4f933058dc475f578d356ed1f528cabc444b4/sqlalchemy-2.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:a496f762ac7288875909bf9da1199eecc095bdb7ec1914d613a5dfb75808bcff", size = 2377549, upload-time = "2026-09-24T20:27:54.506Z" },
1888
- { url = "https://files.pythonhosted.org/packages/25/8a/9178cd9411c57f16a1e73b0a75bca9270cd471aafdccae2dd8b0b491c9bd/sqlalchemy-2.1.0-py3-none-any.whl", hash = "sha256:8728cbc7544d05c5cab9bf50749636f128e4db4828a20ce5952355c4f33d6e2e", size = 2047583, upload-time = "2026-09-24T20:36:44.055Z" },
1878
+ { url = "https://files.pythonhosted.org/packages/cc/54/83400a33b70e02ef03b877e9d35c451124b4e74846a02e8a8a42d66b3dc9/sqlalchemy-2.1.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b04365ffe57cdeaf4d0f75630332d857dde3f91336bc4bdec76c810473c9c35e", size = 2452431, upload-time = "2026-09-25T15:12:48.551Z" },
1879
+ { url = "https://files.pythonhosted.org/packages/c4/ab/15a4bda565d148aae53f8df650a5e3c908735460b97ce37a89f637a87d49/sqlalchemy-2.1.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dee7886f4725c304641929a38d1ebe163f9fb45a5c9363f34bbb85bfdcb084c5", size = 4577496, upload-time = "2026-09-25T15:18:56.457Z" },
1880
+ { url = "https://files.pythonhosted.org/packages/b0/98/35dd80a408ae2d880f92631eaaff7ae1b1004a3cd8f070f95d9c534380ee/sqlalchemy-2.1.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:abd893deac6b0765f51d87129c5631cc5bc8f784f8bf22a9d3903695c764bccc", size = 4628607, upload-time = "2026-09-25T15:19:51.653Z" },
1881
+ { url = "https://files.pythonhosted.org/packages/47/61/177fad5305fbd3ca2b528361f8723d7804995eeb458bdf33eba5547eb747/sqlalchemy-2.1.1-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:7c60fb6793cf60b2733012352f0e1861c38b24727d0e37a1da1f3974eb79f0ed", size = 4295693, upload-time = "2026-09-25T16:17:51.491Z" },
1882
+ { url = "https://files.pythonhosted.org/packages/6c/2a/ec0273d82a196180f75084cfd7bc5ad5ae43724d0b8e4addf5dd97f1a0a5/sqlalchemy-2.1.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a74c46cd93e34b912adafab98aa71c862518451a019d97f9c2f37392fc8eea3f", size = 4502443, upload-time = "2026-09-25T15:18:58.555Z" },
1883
+ { url = "https://files.pythonhosted.org/packages/4b/91/36ff623fa5f28c5b96cec0f31c5c76c66ab9362d21f1d97df14261b5ec3e/sqlalchemy-2.1.1-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:eef01acb10295adfac8a960f716687052fe16f14a3f5955b56c24eefa9df7851", size = 4297102, upload-time = "2026-09-25T16:17:54.314Z" },
1884
+ { url = "https://files.pythonhosted.org/packages/71/58/a5a62bb8e2aa32c202dad2930efe7d7775b98f6cce7424dc7e6b5f357500/sqlalchemy-2.1.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7ed18c0747eec4a0d8d9abe4c89d96ec0eda97721ab7d3a31d0c1ebcbf38cd2e", size = 4589847, upload-time = "2026-09-25T15:19:53.839Z" },
1885
+ { url = "https://files.pythonhosted.org/packages/f9/d4/8e80c47eea173dcfb09ed73d255ae2f5f52b6c053a335639fed9000b0cfd/sqlalchemy-2.1.1-cp313-cp313-win32.whl", hash = "sha256:389e7098e9ae15094f222496de98b0fd211c06b896c73c6e46aa9ca5b6fcd590", size = 2366456, upload-time = "2026-09-25T15:20:28.824Z" },
1886
+ { url = "https://files.pythonhosted.org/packages/07/ec/29eb6ce8f821d36df50ebe7bd05fb6f04b61aeed78ccb6cf830f413b34d0/sqlalchemy-2.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:cf88881d593f527860fa7c63a50095496a5fa15632b1fee58e3114353f7fbc22", size = 2416469, upload-time = "2026-09-25T15:20:30.607Z" },
1887
+ { url = "https://files.pythonhosted.org/packages/69/ff/ab43fb0042119bd7ac7347d2df1391f37515b2e27cc49bf29bf799651878/sqlalchemy-2.1.1-cp313-cp313-win_arm64.whl", hash = "sha256:28b882509319789d52966d70164ccfc5bc1aaffc1c7f98a79bbccec13346ebd7", size = 2377438, upload-time = "2026-09-25T15:25:19.304Z" },
1888
+ { url = "https://files.pythonhosted.org/packages/c5/7a/7d1879d78c086737acee5f3250cbff9d285e5bd7cb6bc2c730f24e8d400e/sqlalchemy-2.1.1-py3-none-any.whl", hash = "sha256:4357c1a222e141662251a59d3702f9b124294941171dfa6bd570513e9f4905ee", size = 2047471, upload-time = "2026-09-25T15:20:37.797Z" },
1889
1889
  ]
1890
1890
 
1891
1891
  [[package]]
@@ -2109,15 +2109,15 @@ wheels = [
2109
2109
 
2110
2110
  [[package]]
2111
2111
  name = "uvicorn"
2112
- version = "0.53.0"
2112
+ version = "0.54.0"
2113
2113
  source = { registry = "https://pypi.org/simple" }
2114
2114
  dependencies = [
2115
2115
  { name = "click" },
2116
2116
  { name = "h11" },
2117
2117
  ]
2118
- sdist = { url = "https://files.pythonhosted.org/packages/5d/ad/04bbb797c84fc1f26cb171f7394716f4865ffb8d8c5e1eef42565c2dfa6b/uvicorn-0.53.0.tar.gz", hash = "sha256:a9356f0cb89b3b8621529c5d5eebd69bfe154f4c3f68b4cf2de47e45fa855c2e", size = 110881, upload-time = "2026-09-14T07:44:23.815Z" }
2118
+ sdist = { url = "https://files.pythonhosted.org/packages/da/34/30e9280707135d2cfc589dfff3cb796bd07a3aeb1a3e415ba09dd89d7bb4/uvicorn-0.54.0.tar.gz", hash = "sha256:a2e33cbfaa0306f8e6b0c13e0cb89d7d7a2da3e62b90c66e18c33d9807b28620", size = 112283, upload-time = "2026-09-25T06:52:37.601Z" }
2119
2119
  wheels = [
2120
- { url = "https://files.pythonhosted.org/packages/76/18/0eea75741ee812e9f598b687619ce2454f6c3a1c5cd21ea990ec6bd26f45/uvicorn-0.53.0-py3-none-any.whl", hash = "sha256:e8dca71ec86dce5f04e333f0d56cdedf942446e6643b9cea1af0d6d3a02cb03e", size = 87081, upload-time = "2026-09-14T07:44:22.179Z" },
2120
+ { url = "https://files.pythonhosted.org/packages/38/0c/b54a4fdd7f90a3af8b02ebc9ce6712c2c208b7926a2f7bad95c33ebbe943/uvicorn-0.54.0-py3-none-any.whl", hash = "sha256:505bdb0f318731d45f1f712071fc781a8981f6847a31c902c9f5e652d4f67faf", size = 87427, upload-time = "2026-09-25T06:52:35.829Z" },
2121
2121
  ]
2122
2122
 
2123
2123
  [[package]]