sourcecode 5.8.15__tar.gz → 5.8.16__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.

Potentially problematic release.


This version of sourcecode might be problematic. Click here for more details.

Files changed (387) hide show
  1. {sourcecode-5.8.15 → sourcecode-5.8.16}/CHANGELOG.md +19 -0
  2. {sourcecode-5.8.15 → sourcecode-5.8.16}/PKG-INFO +4 -4
  3. {sourcecode-5.8.15 → sourcecode-5.8.16}/README.md +3 -3
  4. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/DEFECT-LEDGER.md +27 -6
  5. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/DEVELOPMENT-ROADMAP.md +29 -12
  6. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/EXECUTIVE-ROADMAP.md +27 -18
  7. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/MANUAL-USUARIO.md +1 -1
  8. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/USER_GUIDE.md +2 -2
  9. {sourcecode-5.8.15 → sourcecode-5.8.16}/pyproject.toml +1 -1
  10. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/__init__.py +1 -1
  11. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/cli.py +13 -0
  12. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/manifest_cache.py +1 -1
  13. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/prepare_context.py +23 -0
  14. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/verify_edit.py +39 -1
  15. {sourcecode-5.8.15 → sourcecode-5.8.16}/.github/workflows/build-windows.yml +0 -0
  16. {sourcecode-5.8.15 → sourcecode-5.8.16}/.github/workflows/perf-gate.yml +0 -0
  17. {sourcecode-5.8.15 → sourcecode-5.8.16}/.gitignore +0 -0
  18. {sourcecode-5.8.15 → sourcecode-5.8.16}/.ruff.toml +0 -0
  19. {sourcecode-5.8.15 → sourcecode-5.8.16}/CLAUDE.md +0 -0
  20. {sourcecode-5.8.15 → sourcecode-5.8.16}/CONTRIBUTING.md +0 -0
  21. {sourcecode-5.8.15 → sourcecode-5.8.16}/LICENSE +0 -0
  22. {sourcecode-5.8.15 → sourcecode-5.8.16}/NOTICE +0 -0
  23. {sourcecode-5.8.15 → sourcecode-5.8.16}/SECURITY.md +0 -0
  24. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/CACHE.md +0 -0
  25. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/COMMERCIAL-OFFER.md +0 -0
  26. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/CUSTOMER-VALIDATION.md +0 -0
  27. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/DEMO-5MIN.md +0 -0
  28. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/EXECUTION-PLAN-12MO.md +0 -0
  29. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/MODERNIZATION.md +0 -0
  30. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/PRODUCT_AUDIT.md +0 -0
  31. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/PRODUCT_IDENTITY.md +0 -0
  32. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/PRODUCT_TIERS.md +0 -0
  33. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/RC1-CHECKLIST.md +0 -0
  34. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/RELEASE-CHECKLIST.md +0 -0
  35. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/architecture/CATALOG-retrieval-intents.md +0 -0
  36. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/architecture/DESIGN-knowledge-provider-integration.md +0 -0
  37. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/architecture/DESIGN-p5.3b-statement-surface.md +0 -0
  38. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/architecture/DESIGN-p5.5-span-index.md +0 -0
  39. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/architecture/DESIGN-p6-semantic-impact-engine.md +0 -0
  40. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/architecture/DESIGN-p6-semantic-integration-engine.md +0 -0
  41. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/architecture/DESIGN-p7-semantic-services.md +0 -0
  42. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/architecture/DESIGN-robustness-security-inference.md +0 -0
  43. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/architecture/DESIGN-semantic-retrieval.md +0 -0
  44. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/architecture/EPV-p6-class-typeref.md +0 -0
  45. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/architecture/REPORT-p6-flow-analyzer-comparison.md +0 -0
  46. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/architecture/REPORT-p6-integration-detector-comparison.md +0 -0
  47. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/architecture/REPORT-p8-flow-analyzer-migration.md +0 -0
  48. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/architecture/REPORT-p9-integration-detector-migration.md +0 -0
  49. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/architecture/adr/0001-semantic-ir.md +0 -0
  50. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/architecture/adr/0002-source-evidence-boundary.md +0 -0
  51. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/architecture/adr/0003-architectural-characterization.md +0 -0
  52. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/architecture/adr/0004-semantic-retrieval.md +0 -0
  53. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/architecture/adr/0005-evidence-reconciliation.md +0 -0
  54. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/architecture/adr/0006-performance-harness.md +0 -0
  55. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/architecture/adr/0007-composition-semantics.md +0 -0
  56. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/architecture/adr/0008-answer-coherence.md +0 -0
  57. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/architecture/consumer-disposition-inventory.md +0 -0
  58. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/architecture/overview.md +0 -0
  59. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/architecture/product-architecture-review.md +0 -0
  60. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/architecture/product-strategy-layering.md +0 -0
  61. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/architecture/semantic-ir-consumer-matrix.md +0 -0
  62. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/architecture/semantic-ir-roadmap.md +0 -0
  63. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/baseline-ci.yml +0 -0
  64. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/commercial-pipeline-audit.md +0 -0
  65. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/contracts-ci.yml +0 -0
  66. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/contracts.md +0 -0
  67. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/eval/2026-06-15-petclinic-rest-issue11-vets-pagination.md +0 -0
  68. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/eval/2026-06-15-petclinic-rest-issue147-validation.md +0 -0
  69. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/eval/2026-06-15-petclinic-rest-workflow.md +0 -0
  70. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/eval/2026-06-15-phase18-openapi-surface.md +0 -0
  71. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/eval/2026-06-15-phase20-validation-surface.md +0 -0
  72. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/eval/2026-06-16-broadleaf-checkout-impact-fieldtest.md +0 -0
  73. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/eval/2026-06-16-petclinic-rest-issue11-weakness2-closed.md +0 -0
  74. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/eval/2026-06-16-spring-petclinic-issue2333-dead-vets.md +0 -0
  75. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/licensing-schema.md +0 -0
  76. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/migrate-check.md +0 -0
  77. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/README.md +0 -0
  78. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/REGRESSION-GATE.md +0 -0
  79. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.15/SUMMARY.md +0 -0
  80. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.15/alfresco__ask__cold.json +0 -0
  81. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.15/alfresco__ask__warm.json +0 -0
  82. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.15/broadleaf__ask__cold.json +0 -0
  83. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.15/broadleaf__ask__warm.json +0 -0
  84. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.15/eureka__ask__cold.json +0 -0
  85. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.15/eureka__ask__warm.json +0 -0
  86. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.15/jenkins__ask__cold.json +0 -0
  87. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.15/jenkins__ask__warm.json +0 -0
  88. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.15/jobrunr__ask__cold.json +0 -0
  89. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.15/jobrunr__ask__warm.json +0 -0
  90. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.15/keycloak__ask__cold.json +0 -0
  91. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.15/keycloak__ask__warm.json +0 -0
  92. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.15/neo4j__ask__cold.json +0 -0
  93. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.15/neo4j__ask__warm.json +0 -0
  94. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.15/ofbiz__ask__cold.json +0 -0
  95. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.15/ofbiz__ask__warm.json +0 -0
  96. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.15/openmrs__ask__cold.json +0 -0
  97. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.15/openmrs__ask__warm.json +0 -0
  98. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.15/petclinic__ask__cold.json +0 -0
  99. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.15/petclinic__ask__warm.json +0 -0
  100. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.16/SUMMARY.md +0 -0
  101. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.16/alfresco__ask__cold.json +0 -0
  102. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.16/alfresco__ask__warm.json +0 -0
  103. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.16/broadleaf__ask__cold.json +0 -0
  104. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.16/broadleaf__ask__warm.json +0 -0
  105. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.16/eureka__ask__cold.json +0 -0
  106. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.16/eureka__ask__warm.json +0 -0
  107. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.16/jenkins__ask__cold.json +0 -0
  108. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.16/jenkins__ask__warm.json +0 -0
  109. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.16/jobrunr__ask__cold.json +0 -0
  110. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.16/jobrunr__ask__warm.json +0 -0
  111. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.16/keycloak__ask__cold.json +0 -0
  112. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.16/keycloak__ask__warm.json +0 -0
  113. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.16/neo4j__ask__cold.json +0 -0
  114. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.16/neo4j__ask__warm.json +0 -0
  115. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.16/ofbiz__ask__cold.json +0 -0
  116. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.16/ofbiz__ask__warm.json +0 -0
  117. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.16/openmrs__ask__cold.json +0 -0
  118. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.16/openmrs__ask__warm.json +0 -0
  119. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.16/petclinic__ask__cold.json +0 -0
  120. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/2.5.16/petclinic__ask__warm.json +0 -0
  121. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/gate-latest/README.md +0 -0
  122. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/gate-latest/broadleaf__ask__warm.json +0 -0
  123. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/gate-latest/broadleaf__endpoints__warm.json +0 -0
  124. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/gate-latest/broadleaf__migrate-check__warm.json +0 -0
  125. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/gate-latest/broadleaf__posture__warm.json +0 -0
  126. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/gate-latest/broadleaf__spring-audit__warm.json +0 -0
  127. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/gate-latest/broadleaf__validation__warm.json +0 -0
  128. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/perf/baselines/reference-best/README.md +0 -0
  129. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/posture.md +0 -0
  130. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/privacy.md +0 -0
  131. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/pro-experience-audit.md +0 -0
  132. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/schema.md +0 -0
  133. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/spec/envelope-v1.md +0 -0
  134. {sourcecode-5.8.15 → sourcecode-5.8.16}/docs/spring-audit-ci.yml +0 -0
  135. {sourcecode-5.8.15 → sourcecode-5.8.16}/scripts/compare_integration_engines.py +0 -0
  136. {sourcecode-5.8.15 → sourcecode-5.8.16}/scripts/customer_smoke_test.sh +0 -0
  137. {sourcecode-5.8.15 → sourcecode-5.8.16}/scripts/generate_jdk_exports.py +0 -0
  138. {sourcecode-5.8.15 → sourcecode-5.8.16}/scripts/perf_gate.py +0 -0
  139. {sourcecode-5.8.15 → sourcecode-5.8.16}/scripts/perf_harness.py +0 -0
  140. {sourcecode-5.8.15 → sourcecode-5.8.16}/scripts/sync_gate_anchors.py +0 -0
  141. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/adaptive_scanner.py +0 -0
  142. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/answer_bounds.py +0 -0
  143. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/archetype.py +0 -0
  144. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/architectural_baseline.py +0 -0
  145. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/architectural_delta.py +0 -0
  146. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/architecture_analyzer.py +0 -0
  147. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/architecture_summary.py +0 -0
  148. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/ast_extractor.py +0 -0
  149. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/audit_clusters.py +0 -0
  150. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/audit_recipe.py +0 -0
  151. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/audit_report.py +0 -0
  152. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/audit_since.py +0 -0
  153. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/baseline_autocapture.py +0 -0
  154. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/breaking_changes.py +0 -0
  155. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/build_modules.py +0 -0
  156. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/bundled_docs.py +0 -0
  157. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/cache.py +0 -0
  158. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/cache_model.py +0 -0
  159. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/call_surface.py +0 -0
  160. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/caller_metrics.py +0 -0
  161. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/caller_reach.py +0 -0
  162. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/canonical_ir.py +0 -0
  163. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/chain_rules.py +0 -0
  164. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/change_plan.py +0 -0
  165. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/ci_output.py +0 -0
  166. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/cir_graphs.py +0 -0
  167. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/classifier.py +0 -0
  168. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/client_calls.py +0 -0
  169. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/code_notes_analyzer.py +0 -0
  170. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/compare.py +0 -0
  171. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/confidence_analyzer.py +0 -0
  172. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/constraint_diff.py +0 -0
  173. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/consumer_join.py +0 -0
  174. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/container_wiring.py +0 -0
  175. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/context_cache.py +0 -0
  176. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/context_graph.py +0 -0
  177. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/context_scorer.py +0 -0
  178. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/context_summarizer.py +0 -0
  179. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/contract_diff.py +0 -0
  180. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/contract_init.py +0 -0
  181. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/contract_model.py +0 -0
  182. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/contract_pipeline.py +0 -0
  183. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/coverage_parser.py +0 -0
  184. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/data_exposure.py +0 -0
  185. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/data_labels.py +0 -0
  186. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/declarations.py +0 -0
  187. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/defect_identity.py +0 -0
  188. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/degradation.py +0 -0
  189. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/dependency_analyzer.py +0 -0
  190. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/deployment_prefix.py +0 -0
  191. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/detach.py +0 -0
  192. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/detectors/__init__.py +0 -0
  193. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/detectors/base.py +0 -0
  194. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/detectors/csproj_parser.py +0 -0
  195. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/detectors/dart.py +0 -0
  196. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/detectors/dotnet.py +0 -0
  197. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/detectors/elixir.py +0 -0
  198. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/detectors/go.py +0 -0
  199. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/detectors/heuristic.py +0 -0
  200. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/detectors/hybrid.py +0 -0
  201. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/detectors/java.py +0 -0
  202. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/detectors/jvm_ext.py +0 -0
  203. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/detectors/nodejs.py +0 -0
  204. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/detectors/parsers.py +0 -0
  205. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/detectors/php.py +0 -0
  206. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/detectors/project.py +0 -0
  207. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/detectors/python.py +0 -0
  208. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/detectors/ruby.py +0 -0
  209. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/detectors/rust.py +0 -0
  210. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/detectors/systems.py +0 -0
  211. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/detectors/terraform.py +0 -0
  212. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/detectors/tooling.py +0 -0
  213. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/doc_analyzer.py +0 -0
  214. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/dynamic_argument_surface.py +0 -0
  215. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/empty_reach.py +0 -0
  216. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/endpoint_disposition.py +0 -0
  217. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/endpoint_literals.py +0 -0
  218. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/endpoint_metrics.py +0 -0
  219. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/entrypoint_classifier.py +0 -0
  220. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/env_analyzer.py +0 -0
  221. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/envelope.py +0 -0
  222. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/environment_resolution.py +0 -0
  223. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/error_schema.py +0 -0
  224. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/evidence_provider.py +0 -0
  225. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/execution_plan.py +0 -0
  226. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/explain.py +0 -0
  227. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/explain_endpoint.py +0 -0
  228. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/facts/__init__.py +0 -0
  229. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/facts/registry.json +0 -0
  230. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/field_deprecations.py +0 -0
  231. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/file_chunker.py +0 -0
  232. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/file_classifier.py +0 -0
  233. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/filter_surface.py +0 -0
  234. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/format_contract.py +0 -0
  235. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/fqn_utils.py +0 -0
  236. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/functional_routes.py +0 -0
  237. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/gate_anchors.py +0 -0
  238. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/git_analyzer.py +0 -0
  239. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/git_checkout.py +0 -0
  240. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/github_diff.py +0 -0
  241. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/graph_analyzer.py +0 -0
  242. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/graph_evidence.py +0 -0
  243. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/hibernate_strat.py +0 -0
  244. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/identity_fallback.py +0 -0
  245. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/integration_coordinates.py +0 -0
  246. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/jdk_exports.py +0 -0
  247. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/license.py +0 -0
  248. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/mcp/__init__.py +0 -0
  249. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/mcp/dependency_import.py +0 -0
  250. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
  251. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/mcp/onboarding/applier.py +0 -0
  252. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/mcp/onboarding/backup.py +0 -0
  253. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/mcp/onboarding/detector.py +0 -0
  254. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/mcp/onboarding/planner.py +0 -0
  255. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/mcp/orchestrator.py +0 -0
  256. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/mcp/registry.py +0 -0
  257. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/mcp/runner.py +0 -0
  258. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/mcp/server.py +0 -0
  259. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/mcp_nudge.py +0 -0
  260. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/metrics_analyzer.py +0 -0
  261. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/migrate_check.py +0 -0
  262. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/migration_apply.py +0 -0
  263. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/migration_blast.py +0 -0
  264. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/non_coverage.py +0 -0
  265. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/openapi_surface.py +0 -0
  266. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/openrewrite_recipe.py +0 -0
  267. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/output_bounds.py +0 -0
  268. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/output_budget.py +0 -0
  269. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/output_ceiling.py +0 -0
  270. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/output_encoding.py +0 -0
  271. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/output_sink.py +0 -0
  272. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/parallel.py +0 -0
  273. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/parse_cache.py +0 -0
  274. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/partial_contract.py +0 -0
  275. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/path_admission.py +0 -0
  276. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/path_filters.py +0 -0
  277. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/perf.py +0 -0
  278. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/phased_run.py +0 -0
  279. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/pipe_contract.py +0 -0
  280. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/posture.py +0 -0
  281. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/pr_comment_renderer.py +0 -0
  282. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/pr_impact.py +0 -0
  283. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/product_info.py +0 -0
  284. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/progress.py +0 -0
  285. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/provenance.py +0 -0
  286. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/ranking_engine.py +0 -0
  287. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/readiness_timeline.py +0 -0
  288. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/readonly.py +0 -0
  289. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/reconciliation.py +0 -0
  290. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/redactor.py +0 -0
  291. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/reference_facts.py +0 -0
  292. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/regress.py +0 -0
  293. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/release_info.py +0 -0
  294. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/relevance_scorer.py +0 -0
  295. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/remediation_diff.py +0 -0
  296. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/remedies.py +0 -0
  297. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/rename_refactor.py +0 -0
  298. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/repo_classifier.py +0 -0
  299. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/repository_ir.py +0 -0
  300. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/retrieval/__init__.py +0 -0
  301. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/retrieval/context.py +0 -0
  302. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/retrieval/errors.py +0 -0
  303. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/retrieval/executor.py +0 -0
  304. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/retrieval/planner.py +0 -0
  305. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/retrieval/query.py +0 -0
  306. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/retrieval/request.py +0 -0
  307. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/retrieval/resolution.py +0 -0
  308. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/retrieval/result.py +0 -0
  309. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/retrieval/retriever.py +0 -0
  310. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/retrieval/runtime.py +0 -0
  311. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/retrieval/steps.py +0 -0
  312. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/retrieval/steps_endpoint.py +0 -0
  313. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/retrieval/steps_graph.py +0 -0
  314. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/retrieval/steps_impact.py +0 -0
  315. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/retrieval/steps_intf.py +0 -0
  316. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/retrieval/steps_struct.py +0 -0
  317. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/retrieval/steps_txsec.py +0 -0
  318. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/ris.py +0 -0
  319. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/risk.py +0 -0
  320. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/risk_model.py +0 -0
  321. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/rule_catalog.py +0 -0
  322. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/rule_pass.py +0 -0
  323. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/runs.py +0 -0
  324. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/runtime_classifier.py +0 -0
  325. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/sarif.py +0 -0
  326. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/scanner.py +0 -0
  327. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/schema.py +0 -0
  328. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/schema_producers.py +0 -0
  329. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/schema_registry.py +0 -0
  330. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/schemas/core-analysis-v1.schema.json +0 -0
  331. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/schemas/endpoints-v1.schema.json +0 -0
  332. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/schemas/envelope-v1.schema.json +0 -0
  333. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/schemas/pr-impact-v1.schema.json +0 -0
  334. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/schemas/verify-edit-v1.schema.json +0 -0
  335. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/schemas/verify-v1.schema.json +0 -0
  336. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/security_chain.py +0 -0
  337. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/security_config.py +0 -0
  338. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/security_config_scan.py +0 -0
  339. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/security_posture.py +0 -0
  340. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/selftest.py +0 -0
  341. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/semantic_analyzer.py +0 -0
  342. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/semantic_impact_engine.py +0 -0
  343. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/semantic_integration_engine.py +0 -0
  344. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/semantic_services.py +0 -0
  345. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/serializer.py +0 -0
  346. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/servlet_surface.py +0 -0
  347. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/source_text.py +0 -0
  348. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/spring_event_topology.py +0 -0
  349. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/spring_findings.py +0 -0
  350. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/spring_impact.py +0 -0
  351. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/spring_model.py +0 -0
  352. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/spring_profiles.py +0 -0
  353. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/spring_properties.py +0 -0
  354. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/spring_security_audit.py +0 -0
  355. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/spring_semantic.py +0 -0
  356. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/spring_tx_analyzer.py +0 -0
  357. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/sql_taint.py +0 -0
  358. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/summarizer.py +0 -0
  359. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/target_admission.py +0 -0
  360. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/telemetry/__init__.py +0 -0
  361. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/telemetry/config.py +0 -0
  362. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/telemetry/consent.py +0 -0
  363. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/telemetry/events.py +0 -0
  364. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/telemetry/filters.py +0 -0
  365. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/telemetry/transport.py +0 -0
  366. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/test_gap_ranking.py +0 -0
  367. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/test_sources.py +0 -0
  368. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/text_input.py +0 -0
  369. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/timeline.py +0 -0
  370. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/timeline_cache.py +0 -0
  371. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/token_estimate.py +0 -0
  372. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/tree_utils.py +0 -0
  373. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/type_usage_surface.py +0 -0
  374. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/validation_inference.py +0 -0
  375. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/validation_surface.py +0 -0
  376. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/verify_repo.py +0 -0
  377. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/verify_rules.py +0 -0
  378. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/version_check.py +0 -0
  379. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/waivers.py +0 -0
  380. {sourcecode-5.8.15 → sourcecode-5.8.16}/src/sourcecode/workspace.py +0 -0
  381. {sourcecode-5.8.15 → sourcecode-5.8.16}/supabase/functions/README.md +0 -0
  382. {sourcecode-5.8.15 → sourcecode-5.8.16}/supabase/functions/get-license/index.ts +0 -0
  383. {sourcecode-5.8.15 → sourcecode-5.8.16}/supabase/functions/lemonsqueezy-webhook/index.ts +0 -0
  384. {sourcecode-5.8.15 → sourcecode-5.8.16}/supabase/functions/telemetry/index.ts +0 -0
  385. {sourcecode-5.8.15 → sourcecode-5.8.16}/supabase/sql/license_event_ordering.sql +0 -0
  386. {sourcecode-5.8.15 → sourcecode-5.8.16}/supabase/sql/licensing_schema.sql +0 -0
  387. {sourcecode-5.8.15 → sourcecode-5.8.16}/supabase/sql/telemetry_events.sql +0 -0
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## [5.8.16] — 2026-08-20
4
+
5
+ *Post-audit correction release with cache and compact-output hardening.*
6
+
7
+ ### Fixed
8
+ - `cold-start --compact` now preserves its immutable identity contract even when
9
+ no Repository Intelligence Snapshot exists; unknown identity fields remain
10
+ explicit instead of being silently omitted.
11
+ - Dependency manifest cache keys now include `requirements.txt` and
12
+ `requirements-dev.txt`, preventing stale empty results after Python dependency
13
+ manifests are added or changed.
14
+
15
+ ### Verified
16
+ - ASK exercised against all 36 repositories under `documents/workspace/testing`
17
+ across context, endpoint inventory and migration-check workflows: 108/108 runs
18
+ returned valid JSON with exit code 0.
19
+ - Focused regression coverage for compact identity, RIS, manifest caching and the
20
+ prior correction battery passes.
21
+
3
22
  ## [5.8.15] — 2026-08-20
4
23
 
5
24
  *Correction battery release based on the fifth 5.8.14 audit.*
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sourcecode
3
- Version: 5.8.15
3
+ Version: 5.8.16
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
@@ -55,7 +55,7 @@ Description-Content-Type: text/markdown
55
55
  > question. All analysis is local and deterministic; see [Privacy](#configuration--privacy)
56
56
  > before inspecting a repository whose telemetry policy you need to control.
57
57
 
58
- ![Version](https://img.shields.io/badge/version-5.8.15-blue)
58
+ ![Version](https://img.shields.io/badge/version-5.8.16-blue)
59
59
  ![Python](https://img.shields.io/badge/python-3.9%2B-green)
60
60
 
61
61
  Copyright (c) 2026 Dominique Haroun. All rights reserved. ASK Engine 5.7.0 and
@@ -125,7 +125,7 @@ stops at 1 408 files and ends at 5.1s. Commands outside that phase-runner set
125
125
  must not be gated on this variable; their budget applicability remains visible in
126
126
  the [defect ledger](docs/DEFECT-LEDGER.md).
127
127
 
128
- **Current performance status.** Release 5.8.15 retains the shared Canonical IR
128
+ **Current performance status.** Release 5.8.16 retains the shared Canonical IR
129
129
  path used by `validation` and now passes that same CIR into labelled `data-exposure`
130
130
  runs; the no-label path remains parse-free. The one-model-per-declared-label path is
131
131
  also retained. These are implementation properties, not duration promises:
@@ -159,7 +159,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
159
159
  # pip / pipx
160
160
  pipx install sourcecode # or: pip install sourcecode
161
161
 
162
- ask version # ask 5.8.15 — and, on a build that has aged,
162
+ ask version # ask 5.8.16 — and, on a build that has aged,
163
163
  # how many releases have probably shipped since
164
164
  ```
165
165
 
@@ -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.15-blue)
13
+ ![Version](https://img.shields.io/badge/version-5.8.16-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
@@ -80,7 +80,7 @@ stops at 1 408 files and ends at 5.1s. Commands outside that phase-runner set
80
80
  must not be gated on this variable; their budget applicability remains visible in
81
81
  the [defect ledger](docs/DEFECT-LEDGER.md).
82
82
 
83
- **Current performance status.** Release 5.8.15 retains the shared Canonical IR
83
+ **Current performance status.** Release 5.8.16 retains the shared Canonical IR
84
84
  path used by `validation` and now passes that same CIR into labelled `data-exposure`
85
85
  runs; the no-label path remains parse-free. The one-model-per-declared-label path is
86
86
  also retained. These are implementation properties, not duration promises:
@@ -114,7 +114,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
114
114
  # pip / pipx
115
115
  pipx install sourcecode # or: pip install sourcecode
116
116
 
117
- ask version # ask 5.8.15 — and, on a build that has aged,
117
+ ask version # ask 5.8.16 — and, on a build that has aged,
118
118
  # how many releases have probably shipped since
119
119
  ```
120
120
 
@@ -16,22 +16,43 @@ The facts these rows are keyed to are published: `ask schema facts-v1` prints th
16
16
 
17
17
  ## Current Synchronization
18
18
 
19
- **Latest attached audit of release `5.8.14`; correction battery targets `5.8.15`:** score **93/100**, coverage **53/61
20
- invocables (87%)**, byte-identical CIR across five versions, and no functional-result
21
- regression. One reproducible performance regression is now the primary release concern;
22
- the historical `risk` P0 remains open because five successful runs do not disprove two
23
- earlier exit-0/no-output failures. Only the fifth-pass section below declares present
24
- state; older audit rounds remain below for traceability.
19
+ **Latest attached audit of release `5.8.15`:** score **90/100**, coverage **54/62
20
+ invocables (87%)**, byte-identical CIR across six versions, and no longitudinal functional
21
+ regression. A new P1 affects dirty-tree `verify-edit`; BUG-1 is reproduced on the
22
+ Windows/NTFS audit host. The historical `risk` P0 remains open because nine successful
23
+ runs do not disprove two earlier exit-0/no-output failures. Only the sixth-pass section
24
+ below declares present state; older audit rounds remain for traceability.
25
25
 
26
26
  **Release status:** entries marked “pending `5.8.14`” in their historical wording are
27
27
  shipped in `5.8.14`; the correction battery fixes listed above are included in `5.8.15`.
28
28
 
29
+ **Current release:** `5.8.16` includes two post-audit corrections: compact cold-start
30
+ identity is preserved for `no_ris`, and manifest-cache keys include Python requirements
31
+ files. The testing-repository hygiene exercise changed no external repository; it
32
+ completed 108/108 read-only workflow runs with valid JSON and exit code 0.
33
+
29
34
  The battery also closed the following reproducible contract defects in `5.8.15`:
30
35
  `migrate-apply` is registered across help, progress, path-admission, output-purity,
31
36
  cache and schema authorities (`1d00ba2`); endpoint census output distinguishes excluded
32
37
  test modules from retained test-fixture routes (`f65336d`, `014dec7`, `1c6cd0b`);
33
38
  and compact posture output retains counts while omitting unresolved bodies (`dad5dad`).
34
39
 
40
+ The sixth audit supersedes the previous queue where it has stronger evidence: BUG-3 is
41
+ closed in stable-cache regime, BUG-1 is reproduced on the audit host, and BUG-4a is
42
+ partial because `onboard` still has no machine-readable population block.
43
+
44
+ ### Sixth Audit Pass: `5.8.15` / `saint-server` / 2026-08-20
45
+
46
+ | ID | Severity | Current status | Required direction |
47
+ |---|---|---|---|
48
+ | `BUG-6` / `AUD-588-F02` | P1 | **implemented in working tree** (`26b4ab0`), external clone integration pending: removed security findings now count as changes and both-direction unit coverage passes. | Prove the real `authenticated() -> permitAll()` clone case before release; access opening remains the gate. |
49
+ | `BUG-1` / `AUD-511-R02`, `AUD-589-B02`, `AUD-513-N06` | P1 | **reproduced on Windows/NTFS**: `spring-audit` x1.66, `modernize` x1.67, `migrate-check` x1.90, `cache warm` x2.82 versus 5.8.13; output remains byte-identical. | Profile the target host and isolate the shared slow path; add a cross-host performance guard. |
50
+ | `BUG-3` / `443b345` | P1 | **closed in stable-cache regime**: `data-exposure` is 15.6s median, 7.2s best versus 41–44s historically, with identical output. | Preserve shared-CIR reuse and record host/cache provenance. |
51
+ | `BUG-4a` / `24b4185` | P2 | **implemented in working tree** (`89ee4a5`): the RIS fast path now publishes population/unit/total like the full path. | Validate and reconcile the 6939 versus 6947 scopes/bases before release. |
52
+ | `BUG-2` / `b5acc63` | P0 | **open, hardened**: 4/4 current runs delivered artifacts; historical failures remain unrefuted. | Keep the real subprocess invariant and reproduce historical failure conditions before closure. |
53
+ | `BUG-5` / `AUD-588-B12`, `AUD-588-F03` | P2 | **open**: cost anchors remain stale; `risk` model 77.2s versus ~305s observed, warm 166.7s versus 316s. | Rebuild anchors with host, cache state, version and sample provenance. |
54
+ | `AUD-588-F05` | Validation gap | **partially covered**: dirty-tree `verify-edit` is covered; seven mutating/denied invocables remain. | Finish the clone-based matrix without modifying the original repository. |
55
+
35
56
  ### Fifth Audit Pass: `5.8.14` / `saint-server` / 2026-08-20
36
57
 
37
58
  | ID | Severity | Current status | Required direction |
@@ -3,36 +3,53 @@
3
3
  *Chief-engineer development record. This is the internal, dev-facing counterpart to the
4
4
  customer-facing `docs/EXECUTIVE-ROADMAP.md`.*
5
5
 
6
- > **CURRENT STATE — correction battery for 5.8.15, based on the fifth 5.8.14 audit, `saint-server`, 2026-08-20**
6
+ > **CURRENT STATE — sixth audit of 5.8.15, `saint-server`, 2026-08-20**
7
7
  >
8
- > The audit scores **93/100** (`75 → 80 → 78 → 90 → 93`), covers **53/61 invocables
9
- > (87%)**, and reports a byte-identical CIR across five versions. There are no new
10
- > functional-result regressions. The correction battery reproduced no BUG-1/BUG-2
11
- > regression locally; six-run steady `risk` converged at 6.56s with a clean control.
8
+ > The audit scores **90/100** (`75 → 80 → 78 → 90 → 93 → 90`), covers **54/62 invocables
9
+ > (87%)**, and reports a byte-identical CIR across six versions. It found a new P1 in
10
+ > dirty-tree `verify-edit` and reproduced BUG-1 on the Windows/NTFS audit host; the
11
+ > longitudinal functional anchors remain unchanged.
12
12
  >
13
13
  > The posture bean anchor intentionally changed from 6,667 unconditional types to
14
14
  > **1,904 Spring IoC bean definitions** (`conditional=5`, `active=3`, `inactive=2`,
15
15
  > `unconditional=1,899`). This is a corrected population with explicit units, not a
16
16
  > regression. The current correction/performance queue is:
17
17
 
18
- > The reproducible contract gaps found while executing the battery are also shipped in
19
- > `5.8.15`: `migrate-apply` is integrated in help/progress/admission/schema matrices;
18
+ > The reproducible contract gaps found while executing the battery are shipped in
19
+ > `5.8.16`: `migrate-apply` is integrated in help/progress/admission/schema matrices;
20
20
  > endpoint output names excluded test modules and preserves test-fixture scope;
21
21
  > `posture --compact` bounds unresolved bodies without changing summary counts; and
22
22
  > `cold-start` is treated as a bounded RIS projection rather than an artificial ceiling
23
23
  > overflow case.
24
+
25
+ > **POST-AUDIT CORRECTION RELEASE — 5.8.16:** `cold-start --compact` now preserves
26
+ > immutable identity fields when no RIS exists, and manifest-cache invalidation includes
27
+ > `requirements.txt` and `requirements-dev.txt`. The 36-repository testing exercise
28
+ > completed 108/108 context, endpoint and migration-check runs with valid JSON and
29
+ > exit code 0. The unrelated `tests/test_cli.py` double-preprocessing case remains a
30
+ > test-harness issue and is not classified as a product defect.
31
+
32
+ > The sixth audit verifies BUG-3 closed in stable-cache regime (`data-exposure` 15.6s
33
+ > median, 7.2s best, byte-equivalent output), but downgrades BUG-4a to partial because
34
+ > `onboard` still has no machine-readable population block. It reports that
35
+ > `verify-edit` returns `security_delta.changed=false` and `pass` for both
36
+ > `permitAll() -> authenticated()` and the dangerous reverse direction. It also
37
+ > reproduces the cost regression: `spring-audit` x1.66, `modernize` x1.67,
38
+ > `migrate-check` x1.90 and `cache warm` x2.82 versus 5.8.13.
24
39
  >
25
40
  > | Priority | Work | Acceptance direction |
26
41
  > |---|---|---|
27
- > | P1 | **BUG-1 / `AUD-511-R02`, `AUD-589-B02`, `AUD-513-N06`**: reported performance regression not reproduced by the local idle-host/interleaved controls. | Repeat the six-run 5.8.13/5.8.15 comparison on the audit host before changing code; preserve byte-identical output and the corrected posture population. |
42
+ > | P1 | **BUG-6 / `AUD-588-F02`**: dirty-tree `verify-edit` misses active security-chain changes in both directions. | **Implemented in working tree** (`26b4ab0`): removed security findings are now treated as changes; added/removed regression tests pass. Release it only after the clone-based integration case proves access opening. |
43
+ > | P1 | **BUG-1 / `AUD-511-R02`, `AUD-589-B02`, `AUD-513-N06`**: reproduced on Windows/NTFS: `spring-audit` x1.66, `modernize` x1.67, `migrate-check` x1.90, `cache warm` x2.82 versus 5.8.13. | Reproduce and profile on the target host; preserve byte-identical output and isolate the shared slow path. |
28
44
  > | P0 | **BUG-2 / `AUD-588-B01`, `AUD-589-B01`, `C3-122`**: historical `risk` exit-0/no-output failures were not reproduced locally. | Keep the real-entry-point invariant and require external cold/shared-cache reproduction before closure. Hardening remains `b5acc63`. |
29
- > | P1 | **BUG-3 / `AUD-511-R02`, `AUD-589-B02`, `AUD-513-N06`**: historical `data-exposure --config` cost remained high despite byte-equivalent output. | **Fixed in 5.8.15** (`443b345`): labelled CLI runs reuse the shared CIR; the no-label fast path remains parse-free. Re-run the external benchmark before claiming a numeric improvement. |
30
- > | P2 | **BUG-4a/4b**: population units and risk-tier wording were inconsistent. | **Fixed in 5.8.15** (`24b4185`, `0376350`): `onboard`/`archetype` publish source populations and help/tier authority agrees. |
45
+ > | P1 | **BUG-3 / `443b345`**: historical `data-exposure --config` cost remained high. | **Closed in stable-cache regime**: 15.6s median and 7.2s best versus 41–44s historically, with identical output. Preserve provenance-bearing anchors. |
46
+ > | P2 | **BUG-4a/4b**: population units and risk-tier wording were inconsistent. | **4b closed** (`0376350`). **4a implemented in working tree** (`89ee4a5`): the RIS fast path now publishes the same population block as the full onboarding path; validate against the external 6939/6947 scope discrepancy before release. |
31
47
  > | P2 / product decision | **BUG-4c**: `SEC-009` severity for active `anyRequest().permitAll()` with CSRF disabled remains `medium`. | **Resolved by design in 5.8.15** (`fb7632a`): severity remains medium and is pinned by calibration; active/profile evidence remains the decision context. |
32
48
  > | P2 | **BUG-5 / `AUD-588-B12`, `AUD-588-F03`**: cost anchors are stale in both directions, worst for `risk` (77.2s model versus 461–846s measured). | Recalibrate only from provenance-bearing measurements: repository, cache state, host, samples, version and command. Align foreground advice with the explicit progress policy. |
33
- > | Validation gap | **`AUD-588-F05`**: dirty-tree `verify-edit` and eight mutating/denied invocables remain unexercised externally. | Use a cloned Git repository, not an extracted archive, to test the dirty-tree path without touching the audited tree. |
49
+ > | Validation gap | **`AUD-588-F05`**: dirty-tree `verify-edit` is covered, but seven mutating/denied invocables and several long commands remain unverified. | Keep the no-hardlinks clone protocol and finish the matrix without touching the audited tree. |
34
50
  >
35
- > **Remaining order:** external BUG-1/BUG-2 reproduction → BUG-5 portable cost-anchor calibration.
51
+ > **Remaining order:** BUG-6 `verify-edit.security_delta` → BUG-1 Windows cost isolation →
52
+ > BUG-4a onboarding population contract → BUG-5 portable cost-anchor calibration.
36
53
  > Keep the risk P0 open until the real subprocess invariant is exercised again. EclipseLink
37
54
  > migration automation remains deferred; provider non-coverage is the correct current answer.
38
55
  >
@@ -3,35 +3,44 @@
3
3
  *A software-knowledge platform for large codebases. Written for an engineering
4
4
  director; no internal implementation knowledge assumed.*
5
5
 
6
- > **DOCUMENT STATUS — correction battery for `5.8.15`, based on the fifth audit of `5.8.14`, `saint-server`, 2026-08-20**
6
+ > **DOCUMENT STATUS — sixth audit of `5.8.15`, `saint-server`, 2026-08-20**
7
7
  >
8
- > The latest audit scores **93/100**, covers **53/61 invocables (87%)**, and reports a
9
- > byte-identical CIR across five versions. No functional-result regression is reported.
10
- > The confirmed regression is performance: `spring-audit` and `modernize` are about 1.7x
11
- > slower, `migrate-check` 1.83x slower, and `cache warm` 2.20x slower than 5.8.13.
12
- > `risk`'s historical P0 remains open because successful local runs do not disprove two
13
- > earlier exit-0/no-output failures.
8
+ > The latest audit scores **90/100**, covers **54/62 invocables (87%)**, and reports a
9
+ > byte-identical CIR across six versions. It found a new high-priority functional defect:
10
+ > dirty-tree `verify-edit` misses security-chain changes and passes both tightening and
11
+ > the dangerous access-opening direction. It also reproduces the performance regression
12
+ > on Windows/NTFS: `spring-audit` x1.66, `modernize` x1.67, `migrate-check` x1.90 and
13
+ > `cache warm` x2.82 versus 5.8.13. `data-exposure` is now closed in stable-cache regime;
14
+ > `risk`'s historical P0 remains open.
14
15
  >
15
- > **Current queue:** repeat the external performance controls and risk output invariant;
16
- > confirm the `data-exposure --config` improvement externally after shared-CIR reuse; then
17
- > recalibrate cost anchors with portable provenance. Dirty-tree
18
- > `verify-edit` and eight mutating or denied commands remain validation gaps, not asserted
19
- > failures. EclipseLink migration automation remains deferred behind honest non-coverage.
16
+ > **Current queue:** fix `verify-edit.security_delta` by consuming the posture/spring-audit
17
+ > authority, isolate BUG-1 on the target Windows host, add the missing `onboard` population
18
+ > contract, and recalibrate cost anchors with portable provenance. Seven mutating or denied
19
+ > commands remain validation gaps. EclipseLink migration automation remains deferred behind
20
+ > honest non-coverage.
20
21
 
21
22
  > **CURRENT PRIORITY**
22
23
  >
23
- > 1. Repeat BUG-1/BUG-2 controls on the audit host.
24
- > 2. Re-run `data-exposure --config` externally after shared-CIR reuse.
25
- > 3. Recalibrate cost anchors with repository, cache, host, samples and version.
26
- > 4. Keep the locally verified F05 validation gap visible until external coverage exists.
24
+ > 1. Fix and gate `verify-edit.security_delta`, especially access opening.
25
+ > 2. Reproduce and isolate BUG-1 on Windows/NTFS, including cache warm and long-tail variability.
26
+ > 3. Add shared machine-readable population fields to `onboard`.
27
+ > 4. Recalibrate cost anchors with repository, cache, host, samples and version.
28
+ > 5. Finish the remaining F05 mutating/denied command validation.
29
+
30
+ > **RELEASED IN 5.8.16:** compact cold-start output now remains attributable when no
31
+ > RIS exists, and Python requirements manifests participate in dependency-cache
32
+ > invalidation. A 36-repository hygiene exercise completed 108/108 read-only workflow
33
+ > runs successfully.
27
34
 
28
35
  > **RECOMMENDED FEATURES**
29
36
  >
30
37
  > The audit recommends timing/cache provenance, a unified cache-state authority, compact/agent
31
38
  > sibling-view disclosure or parity, bounded-budget semantics, shared population units, a
32
39
  > reusable fuzzy symbol resolver, and automated breaking-change registry enforcement. These
33
- > continue `AUD-588-F02`/`F03`; EclipseLink automation remains deferred behind provider
34
- > non-coverage disclosure (`AUD-588-F01`).
40
+ > continue `AUD-588-F02`/`F03`. The sixth pass adds security-diff parity for `verify-edit`,
41
+ > Windows/NTFS performance isolation, and a shared onboarding population contract. Long-tail
42
+ > latency in `validation` and `data-exposure` must be measured before attribution. EclipseLink
43
+ > automation remains deferred behind provider non-coverage disclosure (`AUD-588-F01`).
35
44
 
36
45
  > **FIFTH-PASS INTERPRETATION:** `posture.summary` intentionally changed to the corrected
37
46
  > Spring IoC population: `1,904` beans (`5` conditional, `3` active, `2` inactive,
@@ -1,6 +1,6 @@
1
1
  # Manual de usuario — ASK Engine
2
2
 
3
- > Versión de la herramienta: **5.8.15** · El comando que se ejecuta es `ask`.
3
+ > Versión de la herramienta: **5.8.16** · El comando que se ejecuta es `ask`.
4
4
  > (`sourcecode` sigue funcionando como alias en desactivación y reenvía a `ask`.)
5
5
  > Público: personas que van a usar `ask` por primera vez, sin conocimiento previo.
6
6
 
@@ -46,7 +46,7 @@ CLI commands — impact, endpoints, spring-audit, explain, … each a pro
46
46
  The key idea: the extraction is **content-addressed**. Commands reuse the parse cache and,
47
47
  where their analysed scope matches, the shared Canonical IR; `ask cache model` names what a
48
48
  warm buys for each command rather than implying that every projection costs the same. In
49
- 5.8.15, `validation` enters through that shared CIR and `data-exposure` reuses one semantic
49
+ 5.8.16, `validation` enters through that shared CIR and `data-exposure` reuses one semantic
50
50
  model across all declared label seeds. (The extraction and consumption contract is fixed in
51
51
  the architecture ADRs 0001–0004 under `docs/architecture/`.)
52
52
 
@@ -142,7 +142,7 @@ pipx install sourcecode # isolated install, no venv needed
142
142
 
143
143
  # Verify
144
144
  ask version
145
- # ask 5.8.15
145
+ # ask 5.8.16
146
146
  ```
147
147
 
148
148
  Requires Python 3.9+.
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "sourcecode"
7
- version = "5.8.15"
7
+ version = "5.8.16"
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__ = "5.8.15"
7
+ __version__ = "5.8.16"
@@ -15468,6 +15468,19 @@ def cold_start_cmd(
15468
15468
  # so. All three are the shared bound now, not a rule invented here.
15469
15469
  from sourcecode.output_bounds import compact_document, declare_cap
15470
15470
 
15471
+ # Keep the compact contract attributable even when there is no RIS yet.
15472
+ # There is no repository identity to recover in this case, so publish
15473
+ # explicit unknowns rather than letting the `no_ris` stub lose the
15474
+ # immutable provenance fields during compaction.
15475
+ if result.get("status") == "no_ris":
15476
+ result = {
15477
+ "schema_version": "1.1",
15478
+ "status": "no_ris",
15479
+ "repo_id": None,
15480
+ "git_head": None,
15481
+ "current_git_head": None,
15482
+ }
15483
+
15471
15484
  _CS_ORIENTATION = (
15472
15485
  "summary", "entrypoints", "endpoints", "project_type", "validation",
15473
15486
  )
@@ -22,7 +22,7 @@ def _key(root: Path) -> str:
22
22
  names = {
23
23
  "pom.xml", "build.gradle", "build.gradle.kts", "package.json",
24
24
  "package-lock.json", "pyproject.toml", "Cargo.toml", "go.mod",
25
- "composer.json", "Gemfile",
25
+ "requirements.txt", "requirements-dev.txt", "composer.json", "Gemfile",
26
26
  "*.csproj", "packages.lock.json",
27
27
  }
28
28
  paths: set[Path] = set()
@@ -1171,6 +1171,24 @@ class TaskContextBuilder:
1171
1171
  if spec.enable_dependencies and not _ris_key_deps:
1172
1172
  return None
1173
1173
 
1174
+ # The RIS fast path used to omit the population block that the full
1175
+ # onboarding scan publishes. That made a warm `onboard` answer
1176
+ # unverifiable and left its prose count without a declared basis.
1177
+ from sourcecode.path_filters import analysis_reads
1178
+
1179
+ source_total = 0
1180
+ for candidate in self.root.rglob("*"):
1181
+ if not candidate.is_file():
1182
+ continue
1183
+ try:
1184
+ relative = candidate.relative_to(self.root).as_posix()
1185
+ except ValueError:
1186
+ continue
1187
+ if not analysis_reads(relative) or self._is_test(relative):
1188
+ continue
1189
+ if self._is_source(relative):
1190
+ source_total += 1
1191
+
1174
1192
  return TaskOutput(
1175
1193
  task=task_name,
1176
1194
  goal=spec.goal,
@@ -1185,6 +1203,11 @@ class TaskContextBuilder:
1185
1203
  limitations=[],
1186
1204
  confidence=compact.get("confidence") or compact.get("confidence_summary") or "high",
1187
1205
  gaps=_gap_strs,
1206
+ population={
1207
+ "name": "source files",
1208
+ "unit": "non-test source files in the scanned repository tree",
1209
+ "total": source_total,
1210
+ },
1188
1211
  )
1189
1212
  except Exception:
1190
1213
  return None
@@ -664,7 +664,45 @@ def _tx_axis(cir_head: Any, cir_working: Any, root: Path) -> AxisResult:
664
664
 
665
665
  def _security_axis(cir_head: Any, cir_working: Any, root: Path) -> AxisResult:
666
666
  from sourcecode.spring_security_audit import run_security_audit
667
- return _spring_finding_diff(cir_head, cir_working, root, run_security_audit)
667
+ try:
668
+ head_res = run_security_audit(cir_head, root=root)
669
+ work_res = run_security_audit(cir_working, root=root)
670
+ except Exception as exc:
671
+ return AxisResult(None, f"analyzer error: {exc}")
672
+
673
+ head_by_id = {finding.id: finding for finding in head_res.findings}
674
+ work_by_id = {finding.id: finding for finding in work_res.findings}
675
+ introduced = [work_by_id[key] for key in sorted(set(work_by_id) - set(head_by_id))]
676
+ removed = [head_by_id[key] for key in sorted(set(head_by_id) - set(work_by_id))]
677
+ if not introduced and not removed:
678
+ return AxisResult(False)
679
+
680
+ items = tuple(
681
+ {
682
+ "change": "introduced",
683
+ "pattern_id": finding.pattern_id,
684
+ "symbol": finding.symbol,
685
+ "severity": finding.severity,
686
+ "title": finding.title,
687
+ "source_file": finding.source_file,
688
+ }
689
+ for finding in introduced
690
+ ) + tuple(
691
+ {
692
+ "change": "removed",
693
+ "pattern_id": finding.pattern_id,
694
+ "symbol": finding.symbol,
695
+ "severity": finding.severity,
696
+ "title": finding.title,
697
+ "source_file": finding.source_file,
698
+ }
699
+ for finding in removed
700
+ )
701
+ return AxisResult(
702
+ True,
703
+ f"{len(items)} security finding(s) changed",
704
+ items,
705
+ )
668
706
 
669
707
 
670
708
  # ── bean-wiring axis (injects-graph diff) ───────────────────────────────────────
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes