sourcecode 4.7.0__tar.gz → 4.8.0__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 (215) hide show
  1. {sourcecode-4.7.0 → sourcecode-4.8.0}/CHANGELOG.md +40 -0
  2. {sourcecode-4.7.0 → sourcecode-4.8.0}/PKG-INFO +7 -7
  3. {sourcecode-4.7.0 → sourcecode-4.8.0}/README.md +6 -6
  4. {sourcecode-4.7.0 → sourcecode-4.8.0}/pyproject.toml +1 -1
  5. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/__init__.py +1 -1
  6. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/cli.py +529 -75
  7. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/context_cache.py +48 -1
  8. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/hibernate_strat.py +28 -6
  9. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/migrate_check.py +20 -3
  10. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/risk.py +159 -6
  11. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/spring_impact.py +8 -2
  12. {sourcecode-4.7.0 → sourcecode-4.8.0}/.github/workflows/build-windows.yml +0 -0
  13. {sourcecode-4.7.0 → sourcecode-4.8.0}/.gitignore +0 -0
  14. {sourcecode-4.7.0 → sourcecode-4.8.0}/.ruff.toml +0 -0
  15. {sourcecode-4.7.0 → sourcecode-4.8.0}/CLAUDE.md +0 -0
  16. {sourcecode-4.7.0 → sourcecode-4.8.0}/CONTRIBUTING.md +0 -0
  17. {sourcecode-4.7.0 → sourcecode-4.8.0}/LICENSE +0 -0
  18. {sourcecode-4.7.0 → sourcecode-4.8.0}/SECURITY.md +0 -0
  19. {sourcecode-4.7.0 → sourcecode-4.8.0}/raw +0 -0
  20. {sourcecode-4.7.0 → sourcecode-4.8.0}/scripts/compare_integration_engines.py +0 -0
  21. {sourcecode-4.7.0 → sourcecode-4.8.0}/scripts/customer_smoke_test.sh +0 -0
  22. {sourcecode-4.7.0 → sourcecode-4.8.0}/scripts/generate_jdk_exports.py +0 -0
  23. {sourcecode-4.7.0 → sourcecode-4.8.0}/scripts/perf_harness.py +0 -0
  24. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/adaptive_scanner.py +0 -0
  25. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/archetype.py +0 -0
  26. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/architectural_baseline.py +0 -0
  27. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/architectural_delta.py +0 -0
  28. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/architecture_analyzer.py +0 -0
  29. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/architecture_summary.py +0 -0
  30. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/ast_extractor.py +0 -0
  31. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/baseline_autocapture.py +0 -0
  32. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/cache.py +0 -0
  33. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/cache_model.py +0 -0
  34. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/call_surface.py +0 -0
  35. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/caller_metrics.py +0 -0
  36. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/caller_reach.py +0 -0
  37. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/canonical_ir.py +0 -0
  38. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/chain_rules.py +0 -0
  39. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/change_plan.py +0 -0
  40. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/cir_graphs.py +0 -0
  41. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/classifier.py +0 -0
  42. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/client_calls.py +0 -0
  43. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/code_notes_analyzer.py +0 -0
  44. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/compare.py +0 -0
  45. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/confidence_analyzer.py +0 -0
  46. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/constraint_diff.py +0 -0
  47. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/context_graph.py +0 -0
  48. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/context_scorer.py +0 -0
  49. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/context_summarizer.py +0 -0
  50. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/contract_diff.py +0 -0
  51. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/contract_init.py +0 -0
  52. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/contract_model.py +0 -0
  53. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/contract_pipeline.py +0 -0
  54. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/coverage_parser.py +0 -0
  55. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/data_exposure.py +0 -0
  56. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/data_labels.py +0 -0
  57. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/defect_identity.py +0 -0
  58. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/degradation.py +0 -0
  59. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/dependency_analyzer.py +0 -0
  60. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/deployment_prefix.py +0 -0
  61. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/__init__.py +0 -0
  62. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/base.py +0 -0
  63. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/csproj_parser.py +0 -0
  64. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/dart.py +0 -0
  65. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/dotnet.py +0 -0
  66. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/elixir.py +0 -0
  67. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/go.py +0 -0
  68. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/heuristic.py +0 -0
  69. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/hybrid.py +0 -0
  70. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/java.py +0 -0
  71. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/jvm_ext.py +0 -0
  72. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/nodejs.py +0 -0
  73. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/parsers.py +0 -0
  74. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/php.py +0 -0
  75. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/project.py +0 -0
  76. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/python.py +0 -0
  77. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/ruby.py +0 -0
  78. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/rust.py +0 -0
  79. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/systems.py +0 -0
  80. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/terraform.py +0 -0
  81. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/tooling.py +0 -0
  82. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/doc_analyzer.py +0 -0
  83. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/dynamic_argument_surface.py +0 -0
  84. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/endpoint_literals.py +0 -0
  85. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/endpoint_metrics.py +0 -0
  86. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/entrypoint_classifier.py +0 -0
  87. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/env_analyzer.py +0 -0
  88. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/envelope.py +0 -0
  89. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/environment_resolution.py +0 -0
  90. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/error_schema.py +0 -0
  91. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/evidence_provider.py +0 -0
  92. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/explain.py +0 -0
  93. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/facts/__init__.py +0 -0
  94. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/facts/registry.json +0 -0
  95. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/file_chunker.py +0 -0
  96. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/file_classifier.py +0 -0
  97. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/filter_surface.py +0 -0
  98. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/format_contract.py +0 -0
  99. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/fqn_utils.py +0 -0
  100. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/git_analyzer.py +0 -0
  101. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/git_checkout.py +0 -0
  102. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/graph_analyzer.py +0 -0
  103. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/graph_evidence.py +0 -0
  104. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/identity_fallback.py +0 -0
  105. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/integration_coordinates.py +0 -0
  106. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/jdk_exports.py +0 -0
  107. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/license.py +0 -0
  108. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/mcp/__init__.py +0 -0
  109. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
  110. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/mcp/onboarding/applier.py +0 -0
  111. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/mcp/onboarding/backup.py +0 -0
  112. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/mcp/onboarding/detector.py +0 -0
  113. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/mcp/onboarding/planner.py +0 -0
  114. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/mcp/orchestrator.py +0 -0
  115. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/mcp/registry.py +0 -0
  116. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/mcp/runner.py +0 -0
  117. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/mcp/server.py +0 -0
  118. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/mcp_nudge.py +0 -0
  119. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/metrics_analyzer.py +0 -0
  120. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/migration_blast.py +0 -0
  121. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/non_coverage.py +0 -0
  122. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/openapi_surface.py +0 -0
  123. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/openrewrite_recipe.py +0 -0
  124. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/output_budget.py +0 -0
  125. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/parse_cache.py +0 -0
  126. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/path_admission.py +0 -0
  127. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/path_filters.py +0 -0
  128. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/perf.py +0 -0
  129. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/pipe_contract.py +0 -0
  130. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/posture.py +0 -0
  131. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/pr_comment_renderer.py +0 -0
  132. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/pr_impact.py +0 -0
  133. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/prepare_context.py +0 -0
  134. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/progress.py +0 -0
  135. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/ranking_engine.py +0 -0
  136. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/readiness_timeline.py +0 -0
  137. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/reconciliation.py +0 -0
  138. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/redactor.py +0 -0
  139. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/reference_facts.py +0 -0
  140. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/release_info.py +0 -0
  141. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/relevance_scorer.py +0 -0
  142. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/remedies.py +0 -0
  143. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/rename_refactor.py +0 -0
  144. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/repo_classifier.py +0 -0
  145. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/repository_ir.py +0 -0
  146. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/__init__.py +0 -0
  147. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/context.py +0 -0
  148. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/errors.py +0 -0
  149. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/executor.py +0 -0
  150. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/planner.py +0 -0
  151. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/query.py +0 -0
  152. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/request.py +0 -0
  153. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/resolution.py +0 -0
  154. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/result.py +0 -0
  155. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/retriever.py +0 -0
  156. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/runtime.py +0 -0
  157. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/steps.py +0 -0
  158. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/steps_endpoint.py +0 -0
  159. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/steps_graph.py +0 -0
  160. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/steps_impact.py +0 -0
  161. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/steps_intf.py +0 -0
  162. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/steps_struct.py +0 -0
  163. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/steps_txsec.py +0 -0
  164. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/ris.py +0 -0
  165. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/rule_catalog.py +0 -0
  166. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/runtime_classifier.py +0 -0
  167. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/sarif.py +0 -0
  168. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/scanner.py +0 -0
  169. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/schema.py +0 -0
  170. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/schemas/envelope-v1.schema.json +0 -0
  171. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/security_config.py +0 -0
  172. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/security_config_scan.py +0 -0
  173. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/security_posture.py +0 -0
  174. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/semantic_analyzer.py +0 -0
  175. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/semantic_impact_engine.py +0 -0
  176. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/semantic_integration_engine.py +0 -0
  177. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/semantic_services.py +0 -0
  178. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/serializer.py +0 -0
  179. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/servlet_surface.py +0 -0
  180. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/source_text.py +0 -0
  181. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/spring_event_topology.py +0 -0
  182. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/spring_findings.py +0 -0
  183. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/spring_model.py +0 -0
  184. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/spring_profiles.py +0 -0
  185. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/spring_properties.py +0 -0
  186. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/spring_security_audit.py +0 -0
  187. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/spring_semantic.py +0 -0
  188. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/spring_tx_analyzer.py +0 -0
  189. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/summarizer.py +0 -0
  190. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/target_admission.py +0 -0
  191. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/telemetry/__init__.py +0 -0
  192. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/telemetry/config.py +0 -0
  193. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/telemetry/consent.py +0 -0
  194. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/telemetry/events.py +0 -0
  195. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/telemetry/filters.py +0 -0
  196. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/telemetry/transport.py +0 -0
  197. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/test_gap_ranking.py +0 -0
  198. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/test_sources.py +0 -0
  199. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/token_estimate.py +0 -0
  200. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/tree_utils.py +0 -0
  201. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/type_usage_surface.py +0 -0
  202. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/validation_inference.py +0 -0
  203. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/validation_surface.py +0 -0
  204. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/verify_edit.py +0 -0
  205. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/verify_repo.py +0 -0
  206. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/verify_rules.py +0 -0
  207. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/version_check.py +0 -0
  208. {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/workspace.py +0 -0
  209. {sourcecode-4.7.0 → sourcecode-4.8.0}/supabase/functions/README.md +0 -0
  210. {sourcecode-4.7.0 → sourcecode-4.8.0}/supabase/functions/get-license/index.ts +0 -0
  211. {sourcecode-4.7.0 → sourcecode-4.8.0}/supabase/functions/lemonsqueezy-webhook/index.ts +0 -0
  212. {sourcecode-4.7.0 → sourcecode-4.8.0}/supabase/functions/telemetry/index.ts +0 -0
  213. {sourcecode-4.7.0 → sourcecode-4.8.0}/supabase/sql/license_event_ordering.sql +0 -0
  214. {sourcecode-4.7.0 → sourcecode-4.8.0}/supabase/sql/licensing_schema.sql +0 -0
  215. {sourcecode-4.7.0 → sourcecode-4.8.0}/supabase/sql/telemetry_events.sql +0 -0
@@ -2,6 +2,46 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [4.8.0] — 2026-08-04
6
+
7
+ ### Fixed
8
+
9
+ - **`risk` now gives MyBatis XML findings real reach.** `SEC-008` mapper XML
10
+ binds to the Java mapper interface named by the XML namespace, then walks that
11
+ interface's callers instead of publishing manufactured zero reach.
12
+ - **`risk` now maps deployment descriptor controls to endpoint reach.**
13
+ `DEAD-001` in `web.xml` reads descriptor URL patterns and reports the
14
+ endpoint population they cover, or an explicit unknown reach reason when the
15
+ descriptor scope cannot be parsed.
16
+ - **`migrate-check` no longer scores unresolved transitive Hibernate as ready.**
17
+ `spring-boot-starter-data-jpa` without a resolved Hibernate version now
18
+ degrades to unresolved transitive evidence instead of `hibernate_readiness:
19
+ 100`.
20
+ - **`impact-chain` names caller-count units.** List entries, distinct symbols and
21
+ distinct classes are published separately so truncation warnings and metadata
22
+ no longer reuse one ambiguous "direct callers" phrase.
23
+ - **Expensive semantic passes warn about repository contention.** `spring-audit`,
24
+ `risk`, `migrate-check` and `verify` register an advisory analysis scope and
25
+ warn interactive users when another expensive `ask` process is already running
26
+ against the same repository.
27
+ - **Cache context stats publish lookup distributions.** `cache context-stats`
28
+ now includes lookup/build p50/p95 and context-layer payload sizes so cache-hit
29
+ cost can be budgeted instead of inferred.
30
+ - **Cache command grammar is consistent.** `ask cache model [path]` accepts a
31
+ repository path like sibling cache commands.
32
+
33
+ ### Added
34
+
35
+ - **Human-scale table triage for large audits.** `spring-audit`, `risk` and
36
+ `migrate-check` now support table renderers with direct filtering:
37
+ `--table`, `--rule`/`--only`, `--band` where applicable, and `--top-n`.
38
+
39
+ ### Documentation
40
+
41
+ - README and user guide examples now report `4.8.0`.
42
+ - The development roadmap records the saint-server field-evaluation fixes and
43
+ future feature queue.
44
+
5
45
  ## [4.7.0] — 2026-08-04
6
46
 
7
47
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sourcecode
3
- Version: 4.7.0
3
+ Version: 4.8.0
4
4
  Summary: Persistent structural context and ultra-fast repeated analysis for AI coding agents
5
5
  License-File: LICENSE
6
6
  Keywords: agents,ai,codebase,context,developer-tools,llm
@@ -42,7 +42,7 @@ Description-Content-Type: text/markdown
42
42
 
43
43
  **Context · Impact · Migration · Architecture · Review — everything from one structural model.**
44
44
 
45
- ![Version](https://img.shields.io/badge/version-4.7.0-blue)
45
+ ![Version](https://img.shields.io/badge/version-4.8.0-blue)
46
46
  ![Python](https://img.shields.io/badge/python-3.9%2B-green)
47
47
 
48
48
  > **ASK Engine** is the product. The CLI command is **`ask`**. The legacy **`sourcecode`**
@@ -97,7 +97,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
97
97
  # pip / pipx
98
98
  pipx install sourcecode # or: pip install sourcecode
99
99
 
100
- ask version # ask 4.7.0 — and, on a build that has aged,
100
+ ask version # ask 4.8.0 — and, on a build that has aged,
101
101
  # how many releases have probably shipped since
102
102
  ```
103
103
 
@@ -306,13 +306,13 @@ from it.
306
306
  | Command | Tier | Answers | Note |
307
307
  |---|---|---|---|
308
308
  | `posture` | experimental | which beans a profile set wires, and how effective endpoint access differs between two sets | the most differentiated capability here |
309
- | `risk` | experimental | what each defect actually costs, once reach, access, write effect and the shape of the input path are in it | `defect_severity × reachability × auth_verdict × write_effect × query_construction × input_constraints`; every factor names its authority |
309
+ | `risk` | experimental | what each defect actually costs, once reach, access, write effect and the shape of the input path are in it | `defect_severity × reachability × auth_verdict × write_effect × query_construction × input_constraints`; every factor names its authority; `--table --rule SEC-008 --band high --top-n 20` gives audit triage without `jq` |
310
310
  | `enrich` | experimental | another scanner's SARIF findings, ranked by what this repository does with them | `--sarif <log>`; the same composition as `risk`, with the scanner as the severity authority |
311
311
  | `migrate-recipe` | experimental | the migration report as the OpenRewrite recipe that applies it | only recipes a finding named; the manual remainder published beside them; writes nothing without `--write`, and never a runnable command for an empty recipe list |
312
312
  | `data-exposure` | experimental | which routes can carry the data you labelled, and who reaches them | labels declared in `sourcecode.config.json` — never inferred from a name; `signature` and `call_reach` evidence published apart, field-level flow out of scope (NC-008). With nothing declared, `ask data-exposure /path/to/repo` answers `answered: false` and hands back the file, the key and an example to declare — it never reports zero exposed routes |
313
313
  | `endpoints` | core | every REST endpoint, effective path, security policy, confidence | Spring MVC + JAX-RS (~65 % recall on JAX-RS sub-resource locators). `--compact` answers the exposure census without the rows; `--servlets` lists the servlet-mounted surface as its own population; `--client-usage` says which routes the TS/JS client in this repository actually calls |
314
- | `spring-audit` | core | transactional anomalies + security surface + validation gaps | `--ci`, `-f github-comment` |
315
- | `migrate-check` | core | Boot 2→3 readiness: located blockers, per-dimension score, effort | `--blast-radius` orders the re-test plan |
314
+ | `spring-audit` | core | transactional anomalies + security surface + validation gaps | `--ci`, `-f github-comment`; `--table --rule SEC-008 --top-n 20` for human-scale review |
315
+ | `migrate-check` | core | Boot 2→3 readiness: located blockers, per-dimension score, effort | `--blast-radius` orders the re-test plan; `--table --rule MIG-001 --band critical --top-n 20` for blocker triage |
316
316
  | `impact` / `impact-chain` | core | blast radius of a change, to the endpoints it reaches | target the **interface**, not the `Impl` |
317
317
  | `pr-impact` | core | the same, scoped to a PR diff | gating command: `--fail-on`, exit codes |
318
318
  | `verify` | core | does the repo satisfy its declared contracts, **relative to a baseline** | `.ask/contracts.yml`; exit 0/1/2 |
@@ -328,7 +328,7 @@ from it.
328
328
  | `retrieve` | parked | typed knowledge queries over the model | |
329
329
  | `archetype` | experimental | evidence-based architectural archetype | |
330
330
  | `rename-class` / `chunk-file` | supported | word-boundary Java rename; split a large file for an agent | |
331
- | `cache status\|warm\|model\|clear` · `auth` · `telemetry` · `mcp` · `config` · `version` | supported | housekeeping | `activate` too |
331
+ | `cache status\|warm\|model\|clear` · `auth` · `telemetry` · `mcp` · `config` · `version` | supported | housekeeping | `cache model [path]` explains what a warm buys per command; `activate` too |
332
332
 
333
333
  ---
334
334
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  **Context · Impact · Migration · Architecture · Review — everything from one structural model.**
6
6
 
7
- ![Version](https://img.shields.io/badge/version-4.7.0-blue)
7
+ ![Version](https://img.shields.io/badge/version-4.8.0-blue)
8
8
  ![Python](https://img.shields.io/badge/python-3.9%2B-green)
9
9
 
10
10
  > **ASK Engine** is the product. The CLI command is **`ask`**. The legacy **`sourcecode`**
@@ -59,7 +59,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
59
59
  # pip / pipx
60
60
  pipx install sourcecode # or: pip install sourcecode
61
61
 
62
- ask version # ask 4.7.0 — and, on a build that has aged,
62
+ ask version # ask 4.8.0 — and, on a build that has aged,
63
63
  # how many releases have probably shipped since
64
64
  ```
65
65
 
@@ -268,13 +268,13 @@ from it.
268
268
  | Command | Tier | Answers | Note |
269
269
  |---|---|---|---|
270
270
  | `posture` | experimental | which beans a profile set wires, and how effective endpoint access differs between two sets | the most differentiated capability here |
271
- | `risk` | experimental | what each defect actually costs, once reach, access, write effect and the shape of the input path are in it | `defect_severity × reachability × auth_verdict × write_effect × query_construction × input_constraints`; every factor names its authority |
271
+ | `risk` | experimental | what each defect actually costs, once reach, access, write effect and the shape of the input path are in it | `defect_severity × reachability × auth_verdict × write_effect × query_construction × input_constraints`; every factor names its authority; `--table --rule SEC-008 --band high --top-n 20` gives audit triage without `jq` |
272
272
  | `enrich` | experimental | another scanner's SARIF findings, ranked by what this repository does with them | `--sarif <log>`; the same composition as `risk`, with the scanner as the severity authority |
273
273
  | `migrate-recipe` | experimental | the migration report as the OpenRewrite recipe that applies it | only recipes a finding named; the manual remainder published beside them; writes nothing without `--write`, and never a runnable command for an empty recipe list |
274
274
  | `data-exposure` | experimental | which routes can carry the data you labelled, and who reaches them | labels declared in `sourcecode.config.json` — never inferred from a name; `signature` and `call_reach` evidence published apart, field-level flow out of scope (NC-008). With nothing declared, `ask data-exposure /path/to/repo` answers `answered: false` and hands back the file, the key and an example to declare — it never reports zero exposed routes |
275
275
  | `endpoints` | core | every REST endpoint, effective path, security policy, confidence | Spring MVC + JAX-RS (~65 % recall on JAX-RS sub-resource locators). `--compact` answers the exposure census without the rows; `--servlets` lists the servlet-mounted surface as its own population; `--client-usage` says which routes the TS/JS client in this repository actually calls |
276
- | `spring-audit` | core | transactional anomalies + security surface + validation gaps | `--ci`, `-f github-comment` |
277
- | `migrate-check` | core | Boot 2→3 readiness: located blockers, per-dimension score, effort | `--blast-radius` orders the re-test plan |
276
+ | `spring-audit` | core | transactional anomalies + security surface + validation gaps | `--ci`, `-f github-comment`; `--table --rule SEC-008 --top-n 20` for human-scale review |
277
+ | `migrate-check` | core | Boot 2→3 readiness: located blockers, per-dimension score, effort | `--blast-radius` orders the re-test plan; `--table --rule MIG-001 --band critical --top-n 20` for blocker triage |
278
278
  | `impact` / `impact-chain` | core | blast radius of a change, to the endpoints it reaches | target the **interface**, not the `Impl` |
279
279
  | `pr-impact` | core | the same, scoped to a PR diff | gating command: `--fail-on`, exit codes |
280
280
  | `verify` | core | does the repo satisfy its declared contracts, **relative to a baseline** | `.ask/contracts.yml`; exit 0/1/2 |
@@ -290,7 +290,7 @@ from it.
290
290
  | `retrieve` | parked | typed knowledge queries over the model | |
291
291
  | `archetype` | experimental | evidence-based architectural archetype | |
292
292
  | `rename-class` / `chunk-file` | supported | word-boundary Java rename; split a large file for an agent | |
293
- | `cache status\|warm\|model\|clear` · `auth` · `telemetry` · `mcp` · `config` · `version` | supported | housekeeping | `activate` too |
293
+ | `cache status\|warm\|model\|clear` · `auth` · `telemetry` · `mcp` · `config` · `version` | supported | housekeeping | `cache model [path]` explains what a warm buys per command; `activate` too |
294
294
 
295
295
  ---
296
296
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "sourcecode"
7
- version = "4.7.0"
7
+ version = "4.8.0"
8
8
  description = "Persistent structural context and ultra-fast repeated analysis for AI coding agents"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -4,4 +4,4 @@ ASK Engine is the product. ``ask`` is the canonical CLI command; ``sourcecode``
4
4
  the legacy compatibility alias and the Python/PyPI package name. See
5
5
  docs/PRODUCT_IDENTITY.md (normative)."""
6
6
 
7
- __version__ = "4.7.0"
7
+ __version__ = "4.8.0"