sourcecode 5.8.23__tar.gz → 5.8.24__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 (412) hide show
  1. {sourcecode-5.8.23 → sourcecode-5.8.24}/CHANGELOG.md +60 -0
  2. {sourcecode-5.8.23 → sourcecode-5.8.24}/PKG-INFO +4 -4
  3. {sourcecode-5.8.23 → sourcecode-5.8.24}/README.md +3 -3
  4. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/CACHE.md +16 -6
  5. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/DEFECT-LEDGER.md +264 -37
  6. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/DEVELOPMENT-ROADMAP.md +130 -3
  7. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/EXECUTIVE-ROADMAP.md +81 -2
  8. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/PRODUCT-ROUTE.md +20 -2
  9. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/USER_GUIDE.md +2 -2
  10. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/REGRESSION-GATE.md +1 -2
  11. {sourcecode-5.8.23 → sourcecode-5.8.24}/pyproject.toml +1 -1
  12. {sourcecode-5.8.23 → sourcecode-5.8.24}/scripts/perf_harness.py +5 -0
  13. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/__init__.py +1 -1
  14. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/audit_report.py +8 -1
  15. sourcecode-5.8.24/src/sourcecode/build_stamp.py +185 -0
  16. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/cache_model.py +219 -5
  17. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/cli.py +422 -94
  18. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/data_exposure.py +16 -0
  19. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/execution_plan.py +7 -3
  20. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/field_deprecations.py +48 -3
  21. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/migrate_check.py +204 -4
  22. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/output_bounds.py +11 -0
  23. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/output_ceiling.py +148 -6
  24. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/pack_manifest.py +39 -0
  25. sourcecode-5.8.24/src/sourcecode/packs.py +906 -0
  26. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/perf.py +24 -2
  27. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/phased_run.py +84 -0
  28. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/product_info.py +43 -1
  29. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/readonly.py +19 -0
  30. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/regress.py +5 -1
  31. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/rename_refactor.py +63 -0
  32. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/schema_registry.py +23 -0
  33. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/validation_surface.py +9 -0
  34. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/verify_edit.py +25 -2
  35. sourcecode-5.8.23/src/sourcecode/build_stamp.py +0 -105
  36. sourcecode-5.8.23/src/sourcecode/packs.py +0 -386
  37. {sourcecode-5.8.23 → sourcecode-5.8.24}/.github/workflows/build-windows.yml +0 -0
  38. {sourcecode-5.8.23 → sourcecode-5.8.24}/.github/workflows/perf-gate.yml +0 -0
  39. {sourcecode-5.8.23 → sourcecode-5.8.24}/.gitignore +0 -0
  40. {sourcecode-5.8.23 → sourcecode-5.8.24}/.ruff.toml +0 -0
  41. {sourcecode-5.8.23 → sourcecode-5.8.24}/CLAUDE.md +0 -0
  42. {sourcecode-5.8.23 → sourcecode-5.8.24}/CONTRIBUTING.md +0 -0
  43. {sourcecode-5.8.23 → sourcecode-5.8.24}/LICENSE +0 -0
  44. {sourcecode-5.8.23 → sourcecode-5.8.24}/NOTICE +0 -0
  45. {sourcecode-5.8.23 → sourcecode-5.8.24}/SECURITY.md +0 -0
  46. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/AUDIT-2026-08-22-5.8.22.md +0 -0
  47. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/AUDIT-TESTING-CORPUS-2026-08-22.md +0 -0
  48. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/COMMERCIAL-OFFER.md +0 -0
  49. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/CUSTOMER-VALIDATION.md +0 -0
  50. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/DEMO-5MIN.md +0 -0
  51. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/EXECUTION-PLAN-12MO.md +0 -0
  52. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/MANUAL-USUARIO.md +0 -0
  53. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/MODERNIZATION.md +0 -0
  54. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/PRODUCT_AUDIT.md +0 -0
  55. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/PRODUCT_IDENTITY.md +0 -0
  56. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/PRODUCT_TIERS.md +0 -0
  57. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/RC1-CHECKLIST.md +0 -0
  58. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/RELEASE-CHECKLIST.md +0 -0
  59. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/CATALOG-retrieval-intents.md +0 -0
  60. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/DESIGN-assessment-deployment-evidence.md +0 -0
  61. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/DESIGN-assessment-report.md +0 -0
  62. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/DESIGN-build-closure-provenance.md +0 -0
  63. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/DESIGN-knowledge-provider-integration.md +0 -0
  64. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/DESIGN-p5.3b-statement-surface.md +0 -0
  65. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/DESIGN-p5.5-span-index.md +0 -0
  66. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/DESIGN-p6-semantic-impact-engine.md +0 -0
  67. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/DESIGN-p6-semantic-integration-engine.md +0 -0
  68. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/DESIGN-p7-semantic-services.md +0 -0
  69. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/DESIGN-pack-gate-ci.md +0 -0
  70. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/DESIGN-pack-manifest.md +0 -0
  71. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/DESIGN-pack-mcp-api.md +0 -0
  72. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/DESIGN-robustness-security-inference.md +0 -0
  73. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/DESIGN-semantic-retrieval.md +0 -0
  74. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/EPV-p6-class-typeref.md +0 -0
  75. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/REPORT-p6-flow-analyzer-comparison.md +0 -0
  76. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/REPORT-p6-integration-detector-comparison.md +0 -0
  77. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/REPORT-p8-flow-analyzer-migration.md +0 -0
  78. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/REPORT-p9-integration-detector-migration.md +0 -0
  79. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/adr/0001-semantic-ir.md +0 -0
  80. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/adr/0002-source-evidence-boundary.md +0 -0
  81. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/adr/0003-architectural-characterization.md +0 -0
  82. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/adr/0004-semantic-retrieval.md +0 -0
  83. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/adr/0005-evidence-reconciliation.md +0 -0
  84. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/adr/0006-performance-harness.md +0 -0
  85. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/adr/0007-composition-semantics.md +0 -0
  86. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/adr/0008-answer-coherence.md +0 -0
  87. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/consumer-disposition-inventory.md +0 -0
  88. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/overview.md +0 -0
  89. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/product-architecture-review.md +0 -0
  90. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/product-strategy-layering.md +0 -0
  91. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/semantic-ir-consumer-matrix.md +0 -0
  92. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/architecture/semantic-ir-roadmap.md +0 -0
  93. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/baseline-ci.yml +0 -0
  94. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/commercial-pipeline-audit.md +0 -0
  95. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/contracts-ci.yml +0 -0
  96. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/contracts.md +0 -0
  97. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/eval/2026-06-15-petclinic-rest-issue11-vets-pagination.md +0 -0
  98. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/eval/2026-06-15-petclinic-rest-issue147-validation.md +0 -0
  99. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/eval/2026-06-15-petclinic-rest-workflow.md +0 -0
  100. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/eval/2026-06-15-phase18-openapi-surface.md +0 -0
  101. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/eval/2026-06-15-phase20-validation-surface.md +0 -0
  102. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/eval/2026-06-16-broadleaf-checkout-impact-fieldtest.md +0 -0
  103. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/eval/2026-06-16-petclinic-rest-issue11-weakness2-closed.md +0 -0
  104. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/eval/2026-06-16-spring-petclinic-issue2333-dead-vets.md +0 -0
  105. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/licensing-schema.md +0 -0
  106. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/migrate-check.md +0 -0
  107. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/pack-gate-github-actions.yml +0 -0
  108. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/pack-gate-gitlab.yml +0 -0
  109. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/README.md +0 -0
  110. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.15/SUMMARY.md +0 -0
  111. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.15/alfresco__ask__cold.json +0 -0
  112. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.15/alfresco__ask__warm.json +0 -0
  113. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.15/broadleaf__ask__cold.json +0 -0
  114. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.15/broadleaf__ask__warm.json +0 -0
  115. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.15/eureka__ask__cold.json +0 -0
  116. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.15/eureka__ask__warm.json +0 -0
  117. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.15/jenkins__ask__cold.json +0 -0
  118. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.15/jenkins__ask__warm.json +0 -0
  119. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.15/jobrunr__ask__cold.json +0 -0
  120. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.15/jobrunr__ask__warm.json +0 -0
  121. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.15/keycloak__ask__cold.json +0 -0
  122. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.15/keycloak__ask__warm.json +0 -0
  123. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.15/neo4j__ask__cold.json +0 -0
  124. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.15/neo4j__ask__warm.json +0 -0
  125. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.15/ofbiz__ask__cold.json +0 -0
  126. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.15/ofbiz__ask__warm.json +0 -0
  127. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.15/openmrs__ask__cold.json +0 -0
  128. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.15/openmrs__ask__warm.json +0 -0
  129. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.15/petclinic__ask__cold.json +0 -0
  130. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.15/petclinic__ask__warm.json +0 -0
  131. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.16/SUMMARY.md +0 -0
  132. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.16/alfresco__ask__cold.json +0 -0
  133. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.16/alfresco__ask__warm.json +0 -0
  134. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.16/broadleaf__ask__cold.json +0 -0
  135. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.16/broadleaf__ask__warm.json +0 -0
  136. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.16/eureka__ask__cold.json +0 -0
  137. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.16/eureka__ask__warm.json +0 -0
  138. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.16/jenkins__ask__cold.json +0 -0
  139. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.16/jenkins__ask__warm.json +0 -0
  140. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.16/jobrunr__ask__cold.json +0 -0
  141. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.16/jobrunr__ask__warm.json +0 -0
  142. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.16/keycloak__ask__cold.json +0 -0
  143. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.16/keycloak__ask__warm.json +0 -0
  144. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.16/neo4j__ask__cold.json +0 -0
  145. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.16/neo4j__ask__warm.json +0 -0
  146. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.16/ofbiz__ask__cold.json +0 -0
  147. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.16/ofbiz__ask__warm.json +0 -0
  148. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.16/openmrs__ask__cold.json +0 -0
  149. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.16/openmrs__ask__warm.json +0 -0
  150. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.16/petclinic__ask__cold.json +0 -0
  151. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/2.5.16/petclinic__ask__warm.json +0 -0
  152. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/gate-latest/README.md +0 -0
  153. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/gate-latest/broadleaf__ask__warm.json +0 -0
  154. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/gate-latest/broadleaf__endpoints__warm.json +0 -0
  155. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/gate-latest/broadleaf__migrate-check__warm.json +0 -0
  156. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/gate-latest/broadleaf__posture__warm.json +0 -0
  157. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/gate-latest/broadleaf__spring-audit__warm.json +0 -0
  158. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/gate-latest/broadleaf__validation__warm.json +0 -0
  159. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/baselines/reference-best/README.md +0 -0
  160. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/perf/corpus-testing-2026-08-22.md +0 -0
  161. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/posture.md +0 -0
  162. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/privacy.md +0 -0
  163. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/pro-experience-audit.md +0 -0
  164. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/schema.md +0 -0
  165. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/spec/envelope-v1.md +0 -0
  166. {sourcecode-5.8.23 → sourcecode-5.8.24}/docs/spring-audit-ci.yml +0 -0
  167. {sourcecode-5.8.23 → sourcecode-5.8.24}/hatch_build.py +0 -0
  168. {sourcecode-5.8.23 → sourcecode-5.8.24}/scripts/compare_integration_engines.py +0 -0
  169. {sourcecode-5.8.23 → sourcecode-5.8.24}/scripts/customer_smoke_test.sh +0 -0
  170. {sourcecode-5.8.23 → sourcecode-5.8.24}/scripts/generate_jdk_exports.py +0 -0
  171. {sourcecode-5.8.23 → sourcecode-5.8.24}/scripts/perf_gate.py +0 -0
  172. {sourcecode-5.8.23 → sourcecode-5.8.24}/scripts/sync_gate_anchors.py +0 -0
  173. {sourcecode-5.8.23 → sourcecode-5.8.24}/scripts/test_fast.sh +0 -0
  174. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/adaptive_scanner.py +0 -0
  175. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/analysis_budget.py +0 -0
  176. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/answer_bounds.py +0 -0
  177. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/archetype.py +0 -0
  178. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/architectural_baseline.py +0 -0
  179. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/architectural_delta.py +0 -0
  180. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/architecture_analyzer.py +0 -0
  181. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/architecture_summary.py +0 -0
  182. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/ast_extractor.py +0 -0
  183. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/audit_clusters.py +0 -0
  184. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/audit_recipe.py +0 -0
  185. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/audit_since.py +0 -0
  186. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/baseline_autocapture.py +0 -0
  187. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/breaking_changes.py +0 -0
  188. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/build_modules.py +0 -0
  189. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/bundled_docs.py +0 -0
  190. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/cache.py +0 -0
  191. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/call_surface.py +0 -0
  192. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/caller_metrics.py +0 -0
  193. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/caller_reach.py +0 -0
  194. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/canonical_ir.py +0 -0
  195. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/chain_rules.py +0 -0
  196. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/change_plan.py +0 -0
  197. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/ci_output.py +0 -0
  198. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/cir_graphs.py +0 -0
  199. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/classifier.py +0 -0
  200. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/client_calls.py +0 -0
  201. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/code_notes_analyzer.py +0 -0
  202. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/compare.py +0 -0
  203. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/confidence_analyzer.py +0 -0
  204. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/constraint_diff.py +0 -0
  205. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/consumer_join.py +0 -0
  206. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/container_wiring.py +0 -0
  207. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/context_cache.py +0 -0
  208. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/context_graph.py +0 -0
  209. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/context_scorer.py +0 -0
  210. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/context_summarizer.py +0 -0
  211. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/contract_diff.py +0 -0
  212. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/contract_init.py +0 -0
  213. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/contract_model.py +0 -0
  214. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/contract_pipeline.py +0 -0
  215. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/coverage_parser.py +0 -0
  216. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/data_labels.py +0 -0
  217. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/declarations.py +0 -0
  218. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/defect_classes/__init__.py +0 -0
  219. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/defect_classes/registry.json +0 -0
  220. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/defect_identity.py +0 -0
  221. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/degradation.py +0 -0
  222. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/dependency_analyzer.py +0 -0
  223. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/deployment_prefix.py +0 -0
  224. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/detach.py +0 -0
  225. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/detectors/__init__.py +0 -0
  226. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/detectors/base.py +0 -0
  227. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/detectors/csproj_parser.py +0 -0
  228. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/detectors/dart.py +0 -0
  229. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/detectors/dotnet.py +0 -0
  230. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/detectors/elixir.py +0 -0
  231. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/detectors/go.py +0 -0
  232. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/detectors/heuristic.py +0 -0
  233. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/detectors/hybrid.py +0 -0
  234. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/detectors/java.py +0 -0
  235. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/detectors/jvm_ext.py +0 -0
  236. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/detectors/nodejs.py +0 -0
  237. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/detectors/parsers.py +0 -0
  238. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/detectors/php.py +0 -0
  239. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/detectors/project.py +0 -0
  240. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/detectors/python.py +0 -0
  241. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/detectors/ruby.py +0 -0
  242. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/detectors/rust.py +0 -0
  243. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/detectors/systems.py +0 -0
  244. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/detectors/terraform.py +0 -0
  245. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/detectors/tooling.py +0 -0
  246. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/doc_analyzer.py +0 -0
  247. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/dynamic_argument_surface.py +0 -0
  248. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/empty_reach.py +0 -0
  249. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/endpoint_disposition.py +0 -0
  250. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/endpoint_literals.py +0 -0
  251. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/endpoint_metrics.py +0 -0
  252. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/entrypoint_classifier.py +0 -0
  253. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/env_analyzer.py +0 -0
  254. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/envelope.py +0 -0
  255. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/environment_resolution.py +0 -0
  256. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/error_schema.py +0 -0
  257. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/evidence_provider.py +0 -0
  258. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/explain.py +0 -0
  259. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/explain_endpoint.py +0 -0
  260. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/facts/__init__.py +0 -0
  261. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/facts/registry.json +0 -0
  262. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/file_chunker.py +0 -0
  263. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/file_classifier.py +0 -0
  264. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/filter_surface.py +0 -0
  265. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/format_contract.py +0 -0
  266. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/fqn_utils.py +0 -0
  267. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/functional_routes.py +0 -0
  268. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/gate_anchors.py +0 -0
  269. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/git_analyzer.py +0 -0
  270. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/git_checkout.py +0 -0
  271. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/github_diff.py +0 -0
  272. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/graph_analyzer.py +0 -0
  273. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/graph_evidence.py +0 -0
  274. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/hibernate_strat.py +0 -0
  275. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/identity_fallback.py +0 -0
  276. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/integration_coordinates.py +0 -0
  277. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/jdk_exports.py +0 -0
  278. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/license.py +0 -0
  279. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/manifest_cache.py +0 -0
  280. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/mcp/__init__.py +0 -0
  281. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/mcp/dependency_import.py +0 -0
  282. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
  283. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/mcp/onboarding/applier.py +0 -0
  284. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/mcp/onboarding/backup.py +0 -0
  285. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/mcp/onboarding/detector.py +0 -0
  286. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/mcp/onboarding/planner.py +0 -0
  287. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/mcp/orchestrator.py +0 -0
  288. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/mcp/registry.py +0 -0
  289. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/mcp/runner.py +0 -0
  290. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/mcp/server.py +0 -0
  291. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/mcp_nudge.py +0 -0
  292. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/metrics_analyzer.py +0 -0
  293. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/migration_apply.py +0 -0
  294. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/migration_blast.py +0 -0
  295. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/non_coverage.py +0 -0
  296. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/openapi_surface.py +0 -0
  297. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/openrewrite_recipe.py +0 -0
  298. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/output_budget.py +0 -0
  299. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/output_encoding.py +0 -0
  300. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/output_sink.py +0 -0
  301. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/parallel.py +0 -0
  302. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/parse_cache.py +0 -0
  303. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/partial_contract.py +0 -0
  304. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/path_admission.py +0 -0
  305. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/path_filters.py +0 -0
  306. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/pipe_contract.py +0 -0
  307. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/posture.py +0 -0
  308. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/pr_comment_renderer.py +0 -0
  309. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/pr_impact.py +0 -0
  310. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/prepare_context.py +0 -0
  311. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/progress.py +0 -0
  312. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/provenance.py +0 -0
  313. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/ranking_engine.py +0 -0
  314. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/readiness_timeline.py +0 -0
  315. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/reconciliation.py +0 -0
  316. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/redactor.py +0 -0
  317. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/reference_facts.py +0 -0
  318. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/release_info.py +0 -0
  319. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/relevance_scorer.py +0 -0
  320. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/remediation_diff.py +0 -0
  321. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/remedies.py +0 -0
  322. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/repo_classifier.py +0 -0
  323. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/repository_ir.py +0 -0
  324. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/resource_budget.py +0 -0
  325. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/retrieval/__init__.py +0 -0
  326. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/retrieval/context.py +0 -0
  327. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/retrieval/errors.py +0 -0
  328. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/retrieval/executor.py +0 -0
  329. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/retrieval/planner.py +0 -0
  330. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/retrieval/query.py +0 -0
  331. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/retrieval/request.py +0 -0
  332. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/retrieval/resolution.py +0 -0
  333. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/retrieval/result.py +0 -0
  334. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/retrieval/retriever.py +0 -0
  335. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/retrieval/runtime.py +0 -0
  336. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/retrieval/steps.py +0 -0
  337. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/retrieval/steps_endpoint.py +0 -0
  338. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/retrieval/steps_graph.py +0 -0
  339. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/retrieval/steps_impact.py +0 -0
  340. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/retrieval/steps_intf.py +0 -0
  341. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/retrieval/steps_struct.py +0 -0
  342. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/retrieval/steps_txsec.py +0 -0
  343. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/ris.py +0 -0
  344. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/risk.py +0 -0
  345. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/risk_model.py +0 -0
  346. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/rule_catalog.py +0 -0
  347. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/rule_pass.py +0 -0
  348. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/runs.py +0 -0
  349. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/runtime_classifier.py +0 -0
  350. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/sarif.py +0 -0
  351. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/scanner.py +0 -0
  352. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/schema.py +0 -0
  353. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/schema_producers.py +0 -0
  354. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/schemas/core-analysis-v1.schema.json +0 -0
  355. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/schemas/endpoints-v1.schema.json +0 -0
  356. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/schemas/envelope-v1.schema.json +0 -0
  357. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/schemas/pr-impact-v1.schema.json +0 -0
  358. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/schemas/verify-edit-v1.schema.json +0 -0
  359. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/schemas/verify-v1.schema.json +0 -0
  360. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/security_chain.py +0 -0
  361. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/security_config.py +0 -0
  362. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/security_config_scan.py +0 -0
  363. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/security_posture.py +0 -0
  364. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/selection_contract.py +0 -0
  365. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/selftest.py +0 -0
  366. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/semantic_analyzer.py +0 -0
  367. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/semantic_impact_engine.py +0 -0
  368. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/semantic_integration_engine.py +0 -0
  369. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/semantic_services.py +0 -0
  370. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/serializer.py +0 -0
  371. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/servlet_surface.py +0 -0
  372. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/source_text.py +0 -0
  373. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/spring_event_topology.py +0 -0
  374. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/spring_findings.py +0 -0
  375. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/spring_impact.py +0 -0
  376. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/spring_model.py +0 -0
  377. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/spring_profiles.py +0 -0
  378. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/spring_properties.py +0 -0
  379. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/spring_security_audit.py +0 -0
  380. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/spring_semantic.py +0 -0
  381. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/spring_tx_analyzer.py +0 -0
  382. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/sql_taint.py +0 -0
  383. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/summarizer.py +0 -0
  384. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/target_admission.py +0 -0
  385. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/telemetry/__init__.py +0 -0
  386. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/telemetry/config.py +0 -0
  387. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/telemetry/consent.py +0 -0
  388. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/telemetry/events.py +0 -0
  389. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/telemetry/filters.py +0 -0
  390. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/telemetry/transport.py +0 -0
  391. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/test_gap_ranking.py +0 -0
  392. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/test_sources.py +0 -0
  393. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/text_input.py +0 -0
  394. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/timeline.py +0 -0
  395. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/timeline_cache.py +0 -0
  396. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/token_estimate.py +0 -0
  397. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/tree_utils.py +0 -0
  398. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/type_usage_surface.py +0 -0
  399. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/validation_inference.py +0 -0
  400. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/verify_repo.py +0 -0
  401. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/verify_rules.py +0 -0
  402. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/version_check.py +0 -0
  403. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/waivers.py +0 -0
  404. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/wired_surface.py +0 -0
  405. {sourcecode-5.8.23 → sourcecode-5.8.24}/src/sourcecode/workspace.py +0 -0
  406. {sourcecode-5.8.23 → sourcecode-5.8.24}/supabase/functions/README.md +0 -0
  407. {sourcecode-5.8.23 → sourcecode-5.8.24}/supabase/functions/get-license/index.ts +0 -0
  408. {sourcecode-5.8.23 → sourcecode-5.8.24}/supabase/functions/lemonsqueezy-webhook/index.ts +0 -0
  409. {sourcecode-5.8.23 → sourcecode-5.8.24}/supabase/functions/telemetry/index.ts +0 -0
  410. {sourcecode-5.8.23 → sourcecode-5.8.24}/supabase/sql/license_event_ordering.sql +0 -0
  411. {sourcecode-5.8.23 → sourcecode-5.8.24}/supabase/sql/licensing_schema.sql +0 -0
  412. {sourcecode-5.8.23 → sourcecode-5.8.24}/supabase/sql/telemetry_events.sql +0 -0
@@ -1,5 +1,65 @@
1
1
  # Changelog
2
2
 
3
+ ## [5.8.24] — 2026-08-22
4
+
5
+ *The thirteenth audit-pass queue is closed entire: all six rows as separate
6
+ commits, the regression first, with the full suite green at 12 329 tests. Three
7
+ of the reported mechanisms are wider than reported and are corrected against
8
+ measurement; one defect was found by the battery rather than by either.*
9
+
10
+ ### Fixed — the regression the pass led with
11
+
12
+ - **`cache warm` warms every root view (`AUD-600-R01`)** — the warm built the
13
+ compact view only, so the first `--agent` call after an explicit warm paid a
14
+ full analysis: measured on `mall` (524 Java files) `--agent` 7.59 s → 0.34 s
15
+ (×22) and the raw contract view 3.20 s → 0.33 s (×9.7), against `--compact`
16
+ flat at 0.34 s. The field measured ×49.2 at ~3 000 files. Each view turns a
17
+ different set of analysers on and therefore has its own L1 core;
18
+ `cache_model.ROOT_VIEWS` is now the one authority the warm iterates and
19
+ `cache model` publishes a row per view. `--views` warms a subset, and a view
20
+ left cold is named rather than discovered by its first call.
21
+
22
+ ### Fixed — the new pack surface
23
+
24
+ - **The gate composes `verify-edit` (`AUD-600-B01`)** — a pack named *Change
25
+ Safety Gate* did not compose the change-safety command, so a working tree
26
+ that had just gained `GET /internal/dump-config` returning `System.getenv(key)`
27
+ answered `NO_CHANGES` / exit 0. It now answers `UNVERIFIED` / exit 2 with the
28
+ route and its `access_policy`. The general half is the rule: every pack
29
+ publishes a `non_coverage` block, in its payload and in `pack list`, and the
30
+ battery asserts it over the axis and rule catalogues.
31
+ - **`--compact` bounds the assessment pack (`AUD-600-B02`)** — the flag was
32
+ forwarded to the children and nothing else. It now substitutes each
33
+ component's own decision summary for its body: `mall` 608 K → 42 K estimated
34
+ tokens, `thingsboard` 8.5 K, both under the ceiling. A refusal may not deny a
35
+ variant the command declares, so `--format markdown` is derived as the
36
+ bounded rendering it is.
37
+ - **The report keeps the figures the pack carries (`AUD-600-B03`)** — three
38
+ cells read `unknown` while the figure sat in a component payload the same
39
+ pack had written. One catalogue, `MARKDOWN_FIGURES`, read with the same
40
+ reader the bounded projection uses; every remaining `unknown` names what it
41
+ looked for.
42
+ - **A write refusal is decided from `argv` (`AUD-600-D01`)** — `--output-dir`
43
+ inside a read-only tree cost 47.9 s before refusing. The destination is now
44
+ decided before any component runs and the run is served without its artefacts,
45
+ the shape `verify --init --no-write` established. Nothing is created inside
46
+ the analysed tree and every refusal is still announced with its path and type.
47
+
48
+ ### Added
49
+
50
+ - **`ask schema packs-v1` (`AUD-600-D02`)** — what each pack composes, what it
51
+ does not, its verdict vocabulary, its exit codes and the aggregation rule that
52
+ produced the verdict, generated from the pack declarations. The rule was
53
+ inferable from one run and published nowhere.
54
+ - **Per-component timing in the pack manifest** — `duration_ms` per component
55
+ and a `timing` rollup naming the slowest one, so a 47 s gate can be attributed
56
+ from outside. A clock is never an answer: `timing` is excluded from
57
+ `content_id`, or two runs of an unchanged tree would disagree.
58
+ - **The fourth exit code for packs** — when every unverified component was cut
59
+ short by its budget the pack leaves with `75` and names them in
60
+ `components_cut_short`. A mixed run keeps the stronger `2` and the verdict
61
+ word never moves.
62
+
3
63
  ## [5.8.23] — 2026-08-22
4
64
 
5
65
  *The external corpus follow-up is closed: pack output is durable by default,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sourcecode
3
- Version: 5.8.23
3
+ Version: 5.8.24
4
4
  Summary: Persistent structural context and ultra-fast repeated analysis for AI coding agents
5
5
  Project-URL: Homepage, https://github.com/HarounDominique/sourcecode
6
6
  Project-URL: Repository, https://github.com/HarounDominique/sourcecode
@@ -58,7 +58,7 @@ Description-Content-Type: text/markdown
58
58
  > question. All analysis is local and deterministic; see [Privacy](#configuration--privacy)
59
59
  > before inspecting a repository whose telemetry policy you need to control.
60
60
 
61
- ![Version](https://img.shields.io/badge/version-5.8.23-blue)
61
+ ![Version](https://img.shields.io/badge/version-5.8.24-blue)
62
62
  ![Python](https://img.shields.io/badge/python-3.9%2B-green)
63
63
 
64
64
  Copyright (c) 2026 Dominique Haroun. All rights reserved. ASK Engine 5.7.0 and
@@ -176,7 +176,7 @@ set `ASK_MAX_RSS_MB=<megabytes>`; if the process exceeds it, ASK refuses the
176
176
  answer with `MEMORY_TOO_LARGE`, including the observed peak and limit. Leave it
177
177
  unset, or set it to `0`, to disable the ceiling explicitly.
178
178
 
179
- **Current performance status.** Release 5.8.23 retains the shared Canonical IR
179
+ **Current performance status.** Release 5.8.24 retains the shared Canonical IR
180
180
  path used by `validation` and now passes that same CIR into labelled `data-exposure`
181
181
  runs; the no-label path remains parse-free. The one-model-per-declared-label path is
182
182
  also retained. These are implementation properties, not duration promises:
@@ -210,7 +210,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
210
210
  # pip / pipx
211
211
  pipx install sourcecode # or: pip install sourcecode
212
212
 
213
- ask version # ask 5.8.23 — and, on a build that has aged,
213
+ ask version # ask 5.8.24 — and, on a build that has aged,
214
214
  # how many releases have probably shipped since
215
215
  ```
216
216
 
@@ -10,7 +10,7 @@
10
10
  > question. All analysis is local and deterministic; see [Privacy](#configuration--privacy)
11
11
  > before inspecting a repository whose telemetry policy you need to control.
12
12
 
13
- ![Version](https://img.shields.io/badge/version-5.8.23-blue)
13
+ ![Version](https://img.shields.io/badge/version-5.8.24-blue)
14
14
  ![Python](https://img.shields.io/badge/python-3.9%2B-green)
15
15
 
16
16
  Copyright (c) 2026 Dominique Haroun. All rights reserved. ASK Engine 5.7.0 and
@@ -128,7 +128,7 @@ set `ASK_MAX_RSS_MB=<megabytes>`; if the process exceeds it, ASK refuses the
128
128
  answer with `MEMORY_TOO_LARGE`, including the observed peak and limit. Leave it
129
129
  unset, or set it to `0`, to disable the ceiling explicitly.
130
130
 
131
- **Current performance status.** Release 5.8.23 retains the shared Canonical IR
131
+ **Current performance status.** Release 5.8.24 retains the shared Canonical IR
132
132
  path used by `validation` and now passes that same CIR into labelled `data-exposure`
133
133
  runs; the no-label path remains parse-free. The one-model-per-declared-label path is
134
134
  also retained. These are implementation properties, not duration promises:
@@ -162,7 +162,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
162
162
  # pip / pipx
163
163
  pipx install sourcecode # or: pip install sourcecode
164
164
 
165
- ask version # ask 5.8.23 — and, on a build that has aged,
165
+ ask version # ask 5.8.24 — and, on a build that has aged,
166
166
  # how many releases have probably shipped since
167
167
  ```
168
168
 
@@ -18,12 +18,14 @@ Before optimising a workflow, ask the model that ships with the installed CLI:
18
18
  ```bash
19
19
  ask cache status . # what this repository already has
20
20
  ask cache model . # whether a warm helps each command
21
- ask cache warm . # compact view plus shared structural layers
22
- ask cache warm . --agent # add the agent view when that is what the workflow reads
21
+ ask cache warm . # every root view plus shared structural layers
22
+ ask cache warm . --views compact # one view only, when that is all the workflow reads
23
23
  ```
24
24
 
25
- `cache warm` is not a general acceleration switch. It warms the compact view and shared
26
- layers for the exact tree and scope you name. A command may receive the finished answer,
25
+ `cache warm` is not a general acceleration switch. It warms every declared view of the
26
+ root analysis and the shared layers for the exact tree and scope you name each view
27
+ has its own core, so a warm that built one left the others paying a full analysis on
28
+ their first call (AUD-600-R01); the warm names the views it built and any it skipped. A command may receive the finished answer,
27
29
  reuse only shared work, or receive no benefit; `cache model` names which. Any analysed-file
28
30
  change, committed or not, creates a different cache identity. In CI, persist the ASK cache
29
31
  directory only when the job policy allows it; otherwise budget a cold run and use
@@ -79,13 +81,21 @@ the enclosing monorepo, and `cache status` / `cache clear` resolve to that same
79
81
  <!-- BEGIN GENERATED: ask cache model --markdown -->
80
82
  | Layer | What it stores | What invalidates it | `cache warm` | Written by |
81
83
  |---|---|---|---|---|
82
- | `snapshot` | the rendered answer of the root command (L1 core analysis + L2 view) | tree state · analyzer fingerprint · analysis flags (--env-map, --depth, --docs, --exclude, …) for the core; presentation flags (--compact, --agent, --full, --format, …) for the view | built for the compact view (`--agent` also builds the agent view) | the root analysis alone — `ask <repo>` and `ask cache warm`. AUD-591-Q01: `cache_layers.snapshot` read `cold` in all 240 field invocations across 16 repositories, including after `cache clear --all -y` plus two runs, because every one of those runs was of another command. No other command writes `core-*.json.gz`, so on any run but the root analysis this layer is `cold` by construction and its being cold says nothing about the cache. |
84
+ | `snapshot` | the rendered answer of the root command (L1 core analysis + L2 view) | tree state · analyzer fingerprint · analysis flags (--env-map, --depth, --docs, --exclude, …) for the core; presentation flags (--compact, --agent, --full, --format, …) for the view | built for every declared root view (compact, agent, standard) one core each, because each view turns a different set of analysers on | the root analysis alone — `ask <repo>` and `ask cache warm`. AUD-591-Q01: `cache_layers.snapshot` read `cold` in all 240 field invocations across 16 repositories, including after `cache clear --all -y` plus two runs, because every one of those runs was of another command. No other command writes `core-*.json.gz`, so on any run but the root analysis this layer is `cold` by construction and its being cold says nothing about the cache. |
83
85
  | `ris` | the Repository Intelligence Snapshot — structural index, endpoint index, summaries | tree state (the snapshot records the tree it describes) | rebuilt on every warm | every command that reads it |
84
86
  | `cir` | the shared Canonical IR — the Java parse every knowledge command reuses | tree state · analyzer fingerprint · schema version | built | every command that reads it |
85
87
  | `task` | one `prepare-context` task answer, per task and per option set | tree state · task · --symptom / --all / --include-config / --format | never — a warm does not run any task | every command that reads it |
86
88
  | `timeline-samples` | one watched metric as measured at one sampled commit, so a series re-run over an overlapping range measures only what is new (C3-129) | the analyzer fingerprint and the commit sha, both in the key. The tree at a sha never changes, so an entry is never stale — the fingerprint is what keeps a corrected analysis from being served from a previous release. `timeline --no-cache` (or `ASK_TIMELINE_NO_SAMPLE_CACHE=1`) measures every sample again | never — a warm analyses the working tree, not history | every command that reads it |
87
89
  | `parse` | the symbol extraction of one file, keyed by its bytes | the file's own bytes and the extractor's source — content-addressed, so it is never stale and never needs invalidating. Bounded by `ASK_PARSE_CACHE_MAX_MB` (default 512 MB, least-recently-used, swept every 32 MB written rather than on every write, and the last interval before a process exits is never swept — so the store rests up to one interval per writing process above its budget, and the figure to size a disk by is the ceiling `cache status` publishes beside it, not the budget itself (ASK-15)) and reported in `cache status` (F-AR) | filled for every Java file the warm parses | every command that reads it |
88
90
 
91
+ | Root view | Invocation | Its own core | `cache warm` |
92
+ |---|---|---|---|
93
+ | `compact` | `ask <repo> --compact` | turns dependencies, env map, code notes and architecture on; bounded, and the view the front page recommends first | builds it |
94
+ | `agent` | `ask <repo> --agent` | everything the compact core has plus the module import graph, and it drops the file tree — a different core, not a different rendering. This is the view the root help recommends to AI agents | builds it |
95
+ | `standard` | `ask <repo> (and `ask <repo> --full`, which is this view with the display caps raised)` | the raw contract view: none of the compact analysers run, so its core is neither of the two above and a warm of either leaves it cold | builds it |
96
+
97
+ Each view turns a different set of analysers on, so each has its own L1 core: a warm that builds one leaves the others paying a full analysis on their first call (AUD-600-R01).
98
+
89
99
  Measured on BroadleafCommerce (2 000+ Java files, dirty tree), warm machine, 3.2.2, each command in isolation.
90
100
 
91
101
  Measured on release 3.2.2. Figures are that build's on that repository, not a prediction for yours; the nightly performance gate (`docs/perf/REGRESSION-GATE.md`) is what re-measures them.
@@ -96,7 +106,7 @@ The second anchor is the field one, and it carries its own build for the same re
96
106
  |---|---|---|---|---|---|
97
107
  | `ask (root)` | the answer | --compact 13.3 s cold → 0.3 s warm (cold re-measured on 3.7.0: was 19.3 s, C3-6); --agent --full --env-map --depth 20 34.7 s → 33.9 s (no gain) | yes | `snapshot`, `ris`, `parse` | `--compact` is what a warm stores by default; `--agent` needs `cache warm --agent`. `--env-map`, `--depth N` and `--exclude` change the *analysis*, so they miss the warmed core and rescan — the 171 s the field measured after a 103 s warm on 4.10.4. Eval #23 timed the same invocation at 72,3 s from a purged cache, and then paid 71,7 s again for `--agent` on the state it had just analysed (C3-103). |
98
108
  | `posture` | the shared work | 10.1 s → 1.6 s | no | `cir`, `parse` | Resolves the conditional bean graph on every run, over the shared CIR a warm builds — the parse it used to repeat for itself. `--diff` compares two profile sets over that one IR, so the second side costs the resolution only. |
99
- | `risk` | the shared work | not measured on the battery yet — the composition is bounded by the `spring-audit` + `impact-chain` costs listed here, not by new analysis | no | `cir`, `parse` | Composes what the audit, impact-chain and the posture already answer, so it pays each of their costs once over the shared CIR a warm builds — one parse for the whole composition, and the reachability query is cached per symbol within the run. |
109
+ | `risk` | the shared work | 240.1 s on the audited monolith (13th pass, rc 0, 178 171 B). The two rounds before it exhausted every budget they gave it 301 s under a 300 s budget (5.8.20) and 401 s under 400 s (5.8.22) — and the refusal with its budget is the honest anchor for a run that does not finish, never a smaller number measured somewhere else | no | `cir`, `parse` | Composes what the audit, impact-chain and the posture already answer, so it pays each of their costs once over the shared CIR a warm builds — one parse for the whole composition, and the reachability query is cached per symbol within the run. |
100
110
  | `enrich` | the shared work | not measured on the battery yet — bounded by the `risk` composition, plus reading one JSON file | no | `cir`, `parse` | Runs the same composition as `risk` over the repository, then joins a SARIF log to it. Reading the log is negligible; everything a warm helps with is the repository side, so what it buys is what it buys `risk`. |
101
111
  | `audit-report` | the shared work | not measured on the battery yet — bounded by `risk` + `posture`, or by `posture` when `--from-risk` is supplied | no | `cir`, `parse` | Packages `risk` and `posture` evidence. A warm helps the repository side; `--from-risk risk.json` skips risk recomputation entirely and only builds the posture/report projection. |
102
112
  | `migrate-recipe` | the shared work | not measured on the battery yet — bounded by `migrate-check` on the same repository (openmrs-core ~2 s) | no | `parse` | Runs the same scan as `migrate-check` and projects its findings into an OpenRewrite recipe, so it buys exactly what a warm buys `migrate-check`: the parse, not the rule pass. |