sourcecode 5.9.23__tar.gz → 5.9.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 (465) hide show
  1. {sourcecode-5.9.23 → sourcecode-5.9.24}/CHANGELOG.md +24 -0
  2. {sourcecode-5.9.23 → sourcecode-5.9.24}/PKG-INFO +6 -4
  3. {sourcecode-5.9.23 → sourcecode-5.9.24}/README.md +5 -3
  4. sourcecode-5.9.24/docs/AUDIT-2026-09-01-EXTERNAL-5.9.23.md +40 -0
  5. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/DEFECT-LEDGER.md +21 -8
  6. {sourcecode-5.9.23 → sourcecode-5.9.24}/pyproject.toml +1 -1
  7. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/__init__.py +1 -1
  8. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/answer_bounds.py +17 -10
  9. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/cli.py +16 -1
  10. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/release_info.py +1 -1
  11. {sourcecode-5.9.23 → sourcecode-5.9.24}/.github/workflows/build-windows.yml +0 -0
  12. {sourcecode-5.9.23 → sourcecode-5.9.24}/.github/workflows/perf-gate.yml +0 -0
  13. {sourcecode-5.9.23 → sourcecode-5.9.24}/.github/workflows/windows-battery.yml +0 -0
  14. {sourcecode-5.9.23 → sourcecode-5.9.24}/.github/workflows/windows-regression.yml +0 -0
  15. {sourcecode-5.9.23 → sourcecode-5.9.24}/.gitignore +0 -0
  16. {sourcecode-5.9.23 → sourcecode-5.9.24}/.ruff.toml +0 -0
  17. {sourcecode-5.9.23 → sourcecode-5.9.24}/CLAUDE.md +0 -0
  18. {sourcecode-5.9.23 → sourcecode-5.9.24}/CODE_OF_CONDUCT.md +0 -0
  19. {sourcecode-5.9.23 → sourcecode-5.9.24}/CONTRIBUTING.md +0 -0
  20. {sourcecode-5.9.23 → sourcecode-5.9.24}/LICENSE +0 -0
  21. {sourcecode-5.9.23 → sourcecode-5.9.24}/NOTICE +0 -0
  22. {sourcecode-5.9.23 → sourcecode-5.9.24}/SECURITY.md +0 -0
  23. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/AUDIT-2026-08-22-5.8.22.md +0 -0
  24. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/AUDIT-2026-08-23-5.8.24.md +0 -0
  25. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/AUDIT-2026-08-23-COMMERCIAL.md +0 -0
  26. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/AUDIT-2026-08-23-CORPUS-AMPLIADO.md +0 -0
  27. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/AUDIT-2026-08-23-EXTERNAL-5.8.25.md +0 -0
  28. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/AUDIT-2026-08-23-EXTERNAL-5.8.26.md +0 -0
  29. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/AUDIT-2026-08-23-THINGSBOARD-FINDINGS.md +0 -0
  30. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.26.md +0 -0
  31. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.27.md +0 -0
  32. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md +0 -0
  33. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.28.md +0 -0
  34. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.31.md +0 -0
  35. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.32.md +0 -0
  36. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/AUDIT-2026-08-26-EXTERNAL-5.9.0.md +0 -0
  37. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/AUDIT-2026-08-26-MONETIZATION.md +0 -0
  38. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/AUDIT-2026-08-27-EXTERNAL-5.9.2.md +0 -0
  39. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/AUDIT-2026-08-27-EXTERNAL-5.9.3.md +0 -0
  40. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/AUDIT-2026-08-28-EXTERNAL-5.9.10.md +0 -0
  41. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/AUDIT-2026-08-31-EXTERNAL-5.9.16.md +0 -0
  42. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/AUDIT-2026-08-31-EXTERNAL-5.9.17.md +0 -0
  43. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/AUDIT-2026-08-31-REMEDIATION-5.9.18.md +0 -0
  44. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/AUDIT-2026-09-01-EXTERNAL-5.9.22.md +0 -0
  45. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/AUDIT-TESTING-CORPUS-2026-08-22.md +0 -0
  46. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/CACHE.md +0 -0
  47. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/COMMERCIAL-OFFER.md +0 -0
  48. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/CUSTOMER-VALIDATION.md +0 -0
  49. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/DEMO-5MIN.md +0 -0
  50. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/DEVELOPMENT-ROADMAP.md +0 -0
  51. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/DOCUMENTATION-HYGIENE-2026-08-23.md +0 -0
  52. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/EXECUTION-PLAN-12MO.md +0 -0
  53. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/EXECUTIVE-ROADMAP.md +0 -0
  54. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/MANUAL-USUARIO.md +0 -0
  55. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/MODERNIZATION.md +0 -0
  56. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/PRODUCT-ROUTE.md +0 -0
  57. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/PRODUCT_AUDIT.md +0 -0
  58. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/PRODUCT_IDENTITY.md +0 -0
  59. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/PRODUCT_TIERS.md +0 -0
  60. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/RC1-CHECKLIST.md +0 -0
  61. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/RD-JVM-ASK-TRIAGE-2026-08-31.md +0 -0
  62. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/RELEASE-CHECKLIST.md +0 -0
  63. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/RELEASE-VERIFICATION.md +0 -0
  64. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/STRATEGY-2026-08-26-AGENT-CONTEXT.md +0 -0
  65. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/USER_GUIDE.md +0 -0
  66. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/CATALOG-retrieval-intents.md +0 -0
  67. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/DESIGN-assessment-deployment-evidence.md +0 -0
  68. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/DESIGN-assessment-report.md +0 -0
  69. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/DESIGN-build-closure-provenance.md +0 -0
  70. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/DESIGN-knowledge-provider-integration.md +0 -0
  71. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/DESIGN-p5.3b-statement-surface.md +0 -0
  72. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/DESIGN-p5.5-span-index.md +0 -0
  73. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/DESIGN-p6-semantic-impact-engine.md +0 -0
  74. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/DESIGN-p6-semantic-integration-engine.md +0 -0
  75. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/DESIGN-p7-semantic-services.md +0 -0
  76. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/DESIGN-pack-gate-ci.md +0 -0
  77. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/DESIGN-pack-manifest.md +0 -0
  78. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/DESIGN-pack-mcp-api.md +0 -0
  79. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/DESIGN-robustness-security-inference.md +0 -0
  80. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/DESIGN-semantic-retrieval.md +0 -0
  81. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/EPV-p6-class-typeref.md +0 -0
  82. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/REPORT-p6-flow-analyzer-comparison.md +0 -0
  83. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/REPORT-p6-integration-detector-comparison.md +0 -0
  84. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/REPORT-p8-flow-analyzer-migration.md +0 -0
  85. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/REPORT-p9-integration-detector-migration.md +0 -0
  86. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/adr/0001-semantic-ir.md +0 -0
  87. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/adr/0002-source-evidence-boundary.md +0 -0
  88. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/adr/0003-architectural-characterization.md +0 -0
  89. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/adr/0004-semantic-retrieval.md +0 -0
  90. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/adr/0005-evidence-reconciliation.md +0 -0
  91. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/adr/0006-performance-harness.md +0 -0
  92. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/adr/0007-composition-semantics.md +0 -0
  93. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/adr/0008-answer-coherence.md +0 -0
  94. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/consumer-disposition-inventory.md +0 -0
  95. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/overview.md +0 -0
  96. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/product-architecture-review.md +0 -0
  97. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/product-strategy-layering.md +0 -0
  98. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/semantic-ir-consumer-matrix.md +0 -0
  99. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/architecture/semantic-ir-roadmap.md +0 -0
  100. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/baseline-ci.yml +0 -0
  101. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/commercial-pipeline-audit.md +0 -0
  102. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/contracts-ci.yml +0 -0
  103. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/contracts.md +0 -0
  104. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/eval/2026-06-15-petclinic-rest-issue11-vets-pagination.md +0 -0
  105. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/eval/2026-06-15-petclinic-rest-issue147-validation.md +0 -0
  106. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/eval/2026-06-15-petclinic-rest-workflow.md +0 -0
  107. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/eval/2026-06-15-phase18-openapi-surface.md +0 -0
  108. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/eval/2026-06-15-phase20-validation-surface.md +0 -0
  109. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/eval/2026-06-16-broadleaf-checkout-impact-fieldtest.md +0 -0
  110. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/eval/2026-06-16-petclinic-rest-issue11-weakness2-closed.md +0 -0
  111. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/eval/2026-06-16-spring-petclinic-issue2333-dead-vets.md +0 -0
  112. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/licensing-schema.md +0 -0
  113. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/migrate-check.md +0 -0
  114. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/pack-gate-github-actions.yml +0 -0
  115. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/pack-gate-gitlab.yml +0 -0
  116. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/README.md +0 -0
  117. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/REGRESSION-GATE.md +0 -0
  118. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.15/SUMMARY.md +0 -0
  119. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.15/alfresco__ask__cold.json +0 -0
  120. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.15/alfresco__ask__warm.json +0 -0
  121. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.15/broadleaf__ask__cold.json +0 -0
  122. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.15/broadleaf__ask__warm.json +0 -0
  123. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.15/eureka__ask__cold.json +0 -0
  124. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.15/eureka__ask__warm.json +0 -0
  125. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.15/jenkins__ask__cold.json +0 -0
  126. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.15/jenkins__ask__warm.json +0 -0
  127. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.15/jobrunr__ask__cold.json +0 -0
  128. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.15/jobrunr__ask__warm.json +0 -0
  129. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.15/keycloak__ask__cold.json +0 -0
  130. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.15/keycloak__ask__warm.json +0 -0
  131. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.15/neo4j__ask__cold.json +0 -0
  132. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.15/neo4j__ask__warm.json +0 -0
  133. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.15/ofbiz__ask__cold.json +0 -0
  134. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.15/ofbiz__ask__warm.json +0 -0
  135. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.15/openmrs__ask__cold.json +0 -0
  136. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.15/openmrs__ask__warm.json +0 -0
  137. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.15/petclinic__ask__cold.json +0 -0
  138. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.15/petclinic__ask__warm.json +0 -0
  139. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.16/SUMMARY.md +0 -0
  140. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.16/alfresco__ask__cold.json +0 -0
  141. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.16/alfresco__ask__warm.json +0 -0
  142. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.16/broadleaf__ask__cold.json +0 -0
  143. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.16/broadleaf__ask__warm.json +0 -0
  144. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.16/eureka__ask__cold.json +0 -0
  145. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.16/eureka__ask__warm.json +0 -0
  146. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.16/jenkins__ask__cold.json +0 -0
  147. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.16/jenkins__ask__warm.json +0 -0
  148. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.16/jobrunr__ask__cold.json +0 -0
  149. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.16/jobrunr__ask__warm.json +0 -0
  150. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.16/keycloak__ask__cold.json +0 -0
  151. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.16/keycloak__ask__warm.json +0 -0
  152. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.16/neo4j__ask__cold.json +0 -0
  153. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.16/neo4j__ask__warm.json +0 -0
  154. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.16/ofbiz__ask__cold.json +0 -0
  155. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.16/ofbiz__ask__warm.json +0 -0
  156. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.16/openmrs__ask__cold.json +0 -0
  157. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.16/openmrs__ask__warm.json +0 -0
  158. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.16/petclinic__ask__cold.json +0 -0
  159. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/2.5.16/petclinic__ask__warm.json +0 -0
  160. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/5.9.22/petclinic__ask__cold.json +0 -0
  161. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/5.9.22/petclinic__ask__warm.json +0 -0
  162. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/gate-latest/README.md +0 -0
  163. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/gate-latest/broadleaf__ask__warm.json +0 -0
  164. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/gate-latest/broadleaf__endpoints__warm.json +0 -0
  165. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/gate-latest/broadleaf__migrate-check__warm.json +0 -0
  166. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/gate-latest/broadleaf__posture__warm.json +0 -0
  167. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/gate-latest/broadleaf__spring-audit__warm.json +0 -0
  168. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/gate-latest/broadleaf__validation__warm.json +0 -0
  169. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/baselines/reference-best/README.md +0 -0
  170. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/perf/corpus-testing-2026-08-22.md +0 -0
  171. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/posture.md +0 -0
  172. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/privacy.md +0 -0
  173. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/pro-experience-audit.md +0 -0
  174. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/schema.md +0 -0
  175. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/spec/envelope-v1.md +0 -0
  176. {sourcecode-5.9.23 → sourcecode-5.9.24}/docs/spring-audit-ci.yml +0 -0
  177. {sourcecode-5.9.23 → sourcecode-5.9.24}/hatch_build.py +0 -0
  178. {sourcecode-5.9.23 → sourcecode-5.9.24}/scripts/compare_integration_engines.py +0 -0
  179. {sourcecode-5.9.23 → sourcecode-5.9.24}/scripts/context_cost_harness.py +0 -0
  180. {sourcecode-5.9.23 → sourcecode-5.9.24}/scripts/customer_smoke_test.sh +0 -0
  181. {sourcecode-5.9.23 → sourcecode-5.9.24}/scripts/generate_jdk_exports.py +0 -0
  182. {sourcecode-5.9.23 → sourcecode-5.9.24}/scripts/perf_gate.py +0 -0
  183. {sourcecode-5.9.23 → sourcecode-5.9.24}/scripts/perf_harness.py +0 -0
  184. {sourcecode-5.9.23 → sourcecode-5.9.24}/scripts/sync_gate_anchors.py +0 -0
  185. {sourcecode-5.9.23 → sourcecode-5.9.24}/scripts/test_fast.sh +0 -0
  186. {sourcecode-5.9.23 → sourcecode-5.9.24}/scripts/windows_reliability_matrix.py +0 -0
  187. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/__main__.py +0 -0
  188. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/access_drift.py +0 -0
  189. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/adaptive_scanner.py +0 -0
  190. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/analysis_budget.py +0 -0
  191. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/archetype.py +0 -0
  192. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/architectural_baseline.py +0 -0
  193. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/architectural_delta.py +0 -0
  194. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/architecture_analyzer.py +0 -0
  195. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/architecture_summary.py +0 -0
  196. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/ast_extractor.py +0 -0
  197. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/audit_clusters.py +0 -0
  198. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/audit_recipe.py +0 -0
  199. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/audit_report.py +0 -0
  200. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/audit_since.py +0 -0
  201. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/audit_verify.py +0 -0
  202. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/baseline_attestation.py +0 -0
  203. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/baseline_autocapture.py +0 -0
  204. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/breaking_changes.py +0 -0
  205. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/build_modules.py +0 -0
  206. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/build_stamp.py +0 -0
  207. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/bundled_docs.py +0 -0
  208. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/c4_render.py +0 -0
  209. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/cache.py +0 -0
  210. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/cache_model.py +0 -0
  211. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/cache_observation.py +0 -0
  212. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/call_surface.py +0 -0
  213. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/caller_metrics.py +0 -0
  214. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/caller_reach.py +0 -0
  215. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/canonical_ir.py +0 -0
  216. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/chain_rules.py +0 -0
  217. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/change_plan.py +0 -0
  218. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/ci_output.py +0 -0
  219. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/cir_graphs.py +0 -0
  220. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/classifier.py +0 -0
  221. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/click_runtime.py +0 -0
  222. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/client_calls.py +0 -0
  223. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/code_notes_analyzer.py +0 -0
  224. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/compare.py +0 -0
  225. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/confidence_analyzer.py +0 -0
  226. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/constraint_diff.py +0 -0
  227. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/consumer_join.py +0 -0
  228. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/container_wiring.py +0 -0
  229. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/context_cache.py +0 -0
  230. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/context_graph.py +0 -0
  231. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/context_scorer.py +0 -0
  232. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/context_summarizer.py +0 -0
  233. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/contract_diff.py +0 -0
  234. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/contract_init.py +0 -0
  235. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/contract_model.py +0 -0
  236. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/contract_pipeline.py +0 -0
  237. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/coverage_parser.py +0 -0
  238. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/cve_feed.py +0 -0
  239. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/cve_reachability.py +0 -0
  240. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/data_exposure.py +0 -0
  241. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/data_labels.py +0 -0
  242. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/declarations.py +0 -0
  243. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/defect_classes/__init__.py +0 -0
  244. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/defect_classes/registry.json +0 -0
  245. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/defect_identity.py +0 -0
  246. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/degradation.py +0 -0
  247. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/dependency_analyzer.py +0 -0
  248. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/deployment_prefix.py +0 -0
  249. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/detach.py +0 -0
  250. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/detectors/__init__.py +0 -0
  251. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/detectors/base.py +0 -0
  252. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/detectors/csproj_parser.py +0 -0
  253. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/detectors/dart.py +0 -0
  254. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/detectors/dotnet.py +0 -0
  255. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/detectors/elixir.py +0 -0
  256. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/detectors/go.py +0 -0
  257. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/detectors/heuristic.py +0 -0
  258. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/detectors/hybrid.py +0 -0
  259. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/detectors/java.py +0 -0
  260. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/detectors/jvm_ext.py +0 -0
  261. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/detectors/nodejs.py +0 -0
  262. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/detectors/parsers.py +0 -0
  263. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/detectors/php.py +0 -0
  264. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/detectors/project.py +0 -0
  265. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/detectors/python.py +0 -0
  266. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/detectors/ruby.py +0 -0
  267. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/detectors/rust.py +0 -0
  268. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/detectors/systems.py +0 -0
  269. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/detectors/terraform.py +0 -0
  270. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/detectors/tooling.py +0 -0
  271. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/doc_analyzer.py +0 -0
  272. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/dynamic_argument_surface.py +0 -0
  273. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/empty_reach.py +0 -0
  274. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/endpoint_disposition.py +0 -0
  275. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/endpoint_literals.py +0 -0
  276. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/endpoint_metrics.py +0 -0
  277. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/entrypoint_classifier.py +0 -0
  278. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/env_analyzer.py +0 -0
  279. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/envelope.py +0 -0
  280. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/environment_resolution.py +0 -0
  281. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/error_schema.py +0 -0
  282. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/evidence_provider.py +0 -0
  283. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/execution_plan.py +0 -0
  284. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/explain.py +0 -0
  285. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/explain_endpoint.py +0 -0
  286. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/facts/__init__.py +0 -0
  287. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/facts/registry.json +0 -0
  288. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/field_deprecations.py +0 -0
  289. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/file_chunker.py +0 -0
  290. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/file_classifier.py +0 -0
  291. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/filter_surface.py +0 -0
  292. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/findings_baseline.py +0 -0
  293. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/format_contract.py +0 -0
  294. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/fqn_utils.py +0 -0
  295. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/functional_routes.py +0 -0
  296. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/gate_anchors.py +0 -0
  297. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/git_analyzer.py +0 -0
  298. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/git_checkout.py +0 -0
  299. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/github_diff.py +0 -0
  300. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/graph_analyzer.py +0 -0
  301. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/graph_evidence.py +0 -0
  302. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/hibernate_strat.py +0 -0
  303. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/identity_fallback.py +0 -0
  304. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/integration_coordinates.py +0 -0
  305. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/intent_router.py +0 -0
  306. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/jdk_exports.py +0 -0
  307. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/jvm_inventory.py +0 -0
  308. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/license.py +0 -0
  309. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/manifest_cache.py +0 -0
  310. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/mcp/__init__.py +0 -0
  311. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/mcp/dependency_import.py +0 -0
  312. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
  313. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/mcp/onboarding/applier.py +0 -0
  314. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/mcp/onboarding/backup.py +0 -0
  315. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/mcp/onboarding/detector.py +0 -0
  316. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/mcp/onboarding/planner.py +0 -0
  317. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/mcp/orchestrator.py +0 -0
  318. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/mcp/registry.py +0 -0
  319. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/mcp/runner.py +0 -0
  320. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/mcp/server.py +0 -0
  321. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/mcp_nudge.py +0 -0
  322. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/metrics_analyzer.py +0 -0
  323. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/migrate_check.py +0 -0
  324. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/migration_apply.py +0 -0
  325. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/migration_blast.py +0 -0
  326. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/non_coverage.py +0 -0
  327. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/openapi_surface.py +0 -0
  328. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/openrewrite_recipe.py +0 -0
  329. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/output_bounds.py +0 -0
  330. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/output_budget.py +0 -0
  331. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/output_ceiling.py +0 -0
  332. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/output_encoding.py +0 -0
  333. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/output_sink.py +0 -0
  334. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/pack_manifest.py +0 -0
  335. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/packs.py +0 -0
  336. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/parallel.py +0 -0
  337. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/parse_cache.py +0 -0
  338. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/partial_contract.py +0 -0
  339. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/path_admission.py +0 -0
  340. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/path_display.py +0 -0
  341. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/path_filters.py +0 -0
  342. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/perf.py +0 -0
  343. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/phased_run.py +0 -0
  344. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/pipe_contract.py +0 -0
  345. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/posture.py +0 -0
  346. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/pr_comment_renderer.py +0 -0
  347. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/pr_impact.py +0 -0
  348. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/pr_risk.py +0 -0
  349. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/prepare_context.py +0 -0
  350. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/product_info.py +0 -0
  351. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/progress.py +0 -0
  352. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/provenance.py +0 -0
  353. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/ranking_engine.py +0 -0
  354. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/readiness_timeline.py +0 -0
  355. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/readonly.py +0 -0
  356. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/reconciliation.py +0 -0
  357. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/redactor.py +0 -0
  358. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/reference_facts.py +0 -0
  359. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/regress.py +0 -0
  360. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/regulatory_pack.py +0 -0
  361. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/relevance_scorer.py +0 -0
  362. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/remediation_diff.py +0 -0
  363. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/remediation_flow.py +0 -0
  364. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/remediation_report.py +0 -0
  365. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/remedies.py +0 -0
  366. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/rename_refactor.py +0 -0
  367. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/repo_classifier.py +0 -0
  368. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/repository_ir.py +0 -0
  369. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/resource_budget.py +0 -0
  370. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/retrieval/__init__.py +0 -0
  371. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/retrieval/context.py +0 -0
  372. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/retrieval/errors.py +0 -0
  373. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/retrieval/executor.py +0 -0
  374. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/retrieval/planner.py +0 -0
  375. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/retrieval/query.py +0 -0
  376. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/retrieval/request.py +0 -0
  377. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/retrieval/resolution.py +0 -0
  378. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/retrieval/result.py +0 -0
  379. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/retrieval/retriever.py +0 -0
  380. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/retrieval/runtime.py +0 -0
  381. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/retrieval/steps.py +0 -0
  382. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/retrieval/steps_endpoint.py +0 -0
  383. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/retrieval/steps_graph.py +0 -0
  384. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/retrieval/steps_impact.py +0 -0
  385. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/retrieval/steps_intf.py +0 -0
  386. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/retrieval/steps_struct.py +0 -0
  387. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/retrieval/steps_txsec.py +0 -0
  388. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/ris.py +0 -0
  389. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/risk.py +0 -0
  390. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/risk_model.py +0 -0
  391. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/rule_catalog.py +0 -0
  392. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/rule_pass.py +0 -0
  393. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/runs.py +0 -0
  394. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/runtime_classifier.py +0 -0
  395. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/sarif.py +0 -0
  396. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/sarif_emit.py +0 -0
  397. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/scanner.py +0 -0
  398. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/schema.py +0 -0
  399. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/schema_producers.py +0 -0
  400. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/schema_registry.py +0 -0
  401. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/schemas/core-analysis-v1.schema.json +0 -0
  402. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/schemas/cve-reachability-v1.schema.json +0 -0
  403. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/schemas/endpoints-v1.schema.json +0 -0
  404. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/schemas/envelope-v1.schema.json +0 -0
  405. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/schemas/pr-impact-v1.schema.json +0 -0
  406. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/schemas/verify-edit-v1.schema.json +0 -0
  407. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/schemas/verify-v1.schema.json +0 -0
  408. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/security_chain.py +0 -0
  409. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/security_config.py +0 -0
  410. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/security_config_scan.py +0 -0
  411. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/security_posture.py +0 -0
  412. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/selection_contract.py +0 -0
  413. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/self_audit.py +0 -0
  414. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/selftest.py +0 -0
  415. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/semantic_analyzer.py +0 -0
  416. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/semantic_impact_engine.py +0 -0
  417. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/semantic_integration_engine.py +0 -0
  418. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/semantic_services.py +0 -0
  419. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/serializer.py +0 -0
  420. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/servlet_surface.py +0 -0
  421. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/source_text.py +0 -0
  422. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/spring_event_topology.py +0 -0
  423. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/spring_findings.py +0 -0
  424. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/spring_impact.py +0 -0
  425. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/spring_model.py +0 -0
  426. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/spring_profiles.py +0 -0
  427. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/spring_properties.py +0 -0
  428. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/spring_security_audit.py +0 -0
  429. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/spring_semantic.py +0 -0
  430. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/spring_tx_analyzer.py +0 -0
  431. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/sql_taint.py +0 -0
  432. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/summarizer.py +0 -0
  433. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/target_admission.py +0 -0
  434. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/telemetry/__init__.py +0 -0
  435. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/telemetry/config.py +0 -0
  436. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/telemetry/consent.py +0 -0
  437. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/telemetry/events.py +0 -0
  438. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/telemetry/filters.py +0 -0
  439. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/telemetry/transport.py +0 -0
  440. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/test_gap_ranking.py +0 -0
  441. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/test_sources.py +0 -0
  442. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/text_input.py +0 -0
  443. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/timeline.py +0 -0
  444. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/timeline_cache.py +0 -0
  445. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/token_estimate.py +0 -0
  446. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/tree_utils.py +0 -0
  447. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/type_usage_surface.py +0 -0
  448. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/validation_inference.py +0 -0
  449. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/validation_surface.py +0 -0
  450. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/verify_edit.py +0 -0
  451. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/verify_repo.py +0 -0
  452. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/verify_rules.py +0 -0
  453. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/version_check.py +0 -0
  454. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/vex.py +0 -0
  455. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/waivers.py +0 -0
  456. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/watch_loop.py +0 -0
  457. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/wired_surface.py +0 -0
  458. {sourcecode-5.9.23 → sourcecode-5.9.24}/src/sourcecode/workspace.py +0 -0
  459. {sourcecode-5.9.23 → sourcecode-5.9.24}/supabase/functions/README.md +0 -0
  460. {sourcecode-5.9.23 → sourcecode-5.9.24}/supabase/functions/get-license/index.ts +0 -0
  461. {sourcecode-5.9.23 → sourcecode-5.9.24}/supabase/functions/lemonsqueezy-webhook/index.ts +0 -0
  462. {sourcecode-5.9.23 → sourcecode-5.9.24}/supabase/functions/telemetry/index.ts +0 -0
  463. {sourcecode-5.9.23 → sourcecode-5.9.24}/supabase/sql/license_event_ordering.sql +0 -0
  464. {sourcecode-5.9.23 → sourcecode-5.9.24}/supabase/sql/licensing_schema.sql +0 -0
  465. {sourcecode-5.9.23 → sourcecode-5.9.24}/supabase/sql/telemetry_events.sql +0 -0
@@ -1,5 +1,29 @@
1
1
  # Changelog
2
2
 
3
+ ## [5.9.24] — 2026-09-01
4
+
5
+ *Follow-up correction batch after the external 5.9.23 audit.*
6
+
7
+ ### Fixed
8
+
9
+ - Aggregated nested answer-cap contracts so compact output reports rows hidden
10
+ below nested payloads instead of publishing a misleading zero count.
11
+ - Bound `--jobs` to 128 workers, preventing accidental unbounded process-pool
12
+ requests while retaining automatic and explicit parallelism.
13
+ - Removed Rich markup from help output written to a pipe, so scripts and CI logs
14
+ receive plain, parseable text.
15
+ - Accepted an optional repository path on `remediation-report` for consistency
16
+ with repository-oriented command invocation.
17
+
18
+ ### Known Limitations
19
+
20
+ - The external 5.9.23 audit measured rare zero-byte successful answers from
21
+ `risk` and Markdown `audit-report`. This remains a P0 CI blocker: validate
22
+ output bytes until `EMPTY_ANSWER` is enforced globally.
23
+ - `--agent` can reject large repositories after expensive post-hoc RSS sampling,
24
+ and nested workspaces can make root help unacceptably slow. The prioritized
25
+ remediation queue is maintained in the defect ledger.
26
+
3
27
  ## [5.9.23] — 2026-09-01
4
28
 
5
29
  *Regression hardening after the 5.9.22 audit and testing-repository battery.*
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sourcecode
3
- Version: 5.9.23
3
+ Version: 5.9.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
@@ -59,7 +59,7 @@ Description-Content-Type: text/markdown
59
59
  > question. All analysis is local and deterministic; see [Privacy](#configuration--privacy)
60
60
  > before inspecting a repository whose telemetry policy you need to control.
61
61
 
62
- ![Version](https://img.shields.io/badge/version-5.9.23-blue)
62
+ ![Version](https://img.shields.io/badge/version-5.9.24-blue)
63
63
  ![Python](https://img.shields.io/badge/python-3.9%2B-green)
64
64
 
65
65
  Copyright (c) 2026 Dominique Haroun. All rights reserved. ASK Engine 5.7.0 and
@@ -213,10 +213,12 @@ message names the phase it is in and whether that phase has changed, so a slow r
213
213
  is distinguishable from a blocked one.
214
214
 
215
215
  **External audit boundary (2026-09-01).** The latest Windows audit rates the
216
- large-repository experience at **6.6/10** and reports open P0/P1 issues: empty
216
+ large-repository experience at **6.9/10** and reports open P0/P1 issues: empty
217
217
  successful Markdown `audit-report`, silent `risk` termination, multi-gigabyte
218
218
  deep-agent RSS, incomplete parse/coverage disclosure and oversized compact
219
- surfaces. These findings are tracked in the [external audit](docs/AUDIT-2026-09-01-EXTERNAL-5.9.22.md)
219
+ surfaces. The 5.9.23 audit found a CI-blocking empty-output regression that
220
+ remains open in 5.9.24; do not use `risk` or Markdown `audit-report` as
221
+ unattended gates until it is fixed. Findings are tracked in the [external audit](docs/AUDIT-2026-09-01-EXTERNAL-5.9.23.md)
220
222
  and [defect ledger](docs/DEFECT-LEDGER.md); they are not closed by the existing
221
223
  engineering-host measurements.
222
224
 
@@ -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.9.23-blue)
13
+ ![Version](https://img.shields.io/badge/version-5.9.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
@@ -164,10 +164,12 @@ message names the phase it is in and whether that phase has changed, so a slow r
164
164
  is distinguishable from a blocked one.
165
165
 
166
166
  **External audit boundary (2026-09-01).** The latest Windows audit rates the
167
- large-repository experience at **6.6/10** and reports open P0/P1 issues: empty
167
+ large-repository experience at **6.9/10** and reports open P0/P1 issues: empty
168
168
  successful Markdown `audit-report`, silent `risk` termination, multi-gigabyte
169
169
  deep-agent RSS, incomplete parse/coverage disclosure and oversized compact
170
- surfaces. These findings are tracked in the [external audit](docs/AUDIT-2026-09-01-EXTERNAL-5.9.22.md)
170
+ surfaces. The 5.9.23 audit found a CI-blocking empty-output regression that
171
+ remains open in 5.9.24; do not use `risk` or Markdown `audit-report` as
172
+ unattended gates until it is fixed. Findings are tracked in the [external audit](docs/AUDIT-2026-09-01-EXTERNAL-5.9.23.md)
171
173
  and [defect ledger](docs/DEFECT-LEDGER.md); they are not closed by the existing
172
174
  engineering-host measurements.
173
175
 
@@ -0,0 +1,40 @@
1
+ # External Audit - 5.9.23
2
+
3
+ ## Release Status
4
+
5
+ The 5.9.23 re-audit rates ASK Engine at **6.9/10**, down from 7.5. Precision
6
+ remains strong and SEC-010 closes the previously reported concatenated-SQLi
7
+ coverage gap. The release is **not recommended for unattended CI gating** until
8
+ the empty-success invariant is implemented.
9
+
10
+ ## Priority Regressions
11
+
12
+ 1. `NEW-01` P0: `risk` and Markdown `audit-report` were observed exiting 0 with
13
+ zero stdout and stderr. The audit measured 3 occurrences in 47 runs with
14
+ byte counting. Its later controls did not reproduce warm-cache or contention
15
+ causality, so those are not asserted as the root cause.
16
+ 2. `REG-02` Critical: the default 1,536 MB agent ceiling rejects valid large
17
+ repositories only after expensive work; the effective default ceiling is not
18
+ visible in successful-agent metadata.
19
+ 3. `BUG-01` P0: malformed Java can disappear without file-specific disclosure.
20
+ 4. `REG-03` High: warm Spring audit runs were 2.1-3.8x slower despite full CIR
21
+ reuse.
22
+ 5. `NEW-02` High: overloaded endpoint handlers can publish the wrong declaration
23
+ line while claiming a handler-declaration anchor.
24
+
25
+ ## Verified Improvements
26
+
27
+ - SEC-010 emits a dedicated high-severity finding for HTTP input reaching a
28
+ concatenated SQL query sink, with no observed false positives on three clean
29
+ repositories.
30
+ - Compact migration inventory is materially bounded and publishes per-framework
31
+ omission contracts.
32
+ - Help recommendations use repository profile evidence and route aliases were
33
+ restored across the sampled command surface.
34
+
35
+ ## Verification Boundary
36
+
37
+ The audit was performed on Windows 11 / Python 3.10 across 21 repositories and
38
+ about 180 invocations. Reported timings are platform-specific evidence, not
39
+ portable performance guarantees. Its zero-output finding is operationally
40
+ critical even though its precise trigger remains unproven.
@@ -14,22 +14,35 @@ Status values: `open` · `in-progress` · `closed <version>` · `by-design` (wit
14
14
  The facts these rows are keyed to are published: `ask schema facts-v1` prints the registry
15
15
  (authority, definition, consumers, parity test) that the release battery enforces.
16
16
 
17
- ## Current Synchronization — External Audit `5.9.22` (2026-09-01)
17
+ ## Current Synchronization — External Audit `5.9.23`, carried into `5.9.24` (2026-09-01)
18
18
 
19
- The external audit confirms strong precision, determinism and uncertainty
20
- disclosure, but opens a P0/P1 cluster around silent success, incomplete
21
- population disclosure, large-run memory and compact-output contracts. Full
22
- evidence: [`AUDIT-2026-09-01-EXTERNAL-5.9.22.md`](AUDIT-2026-09-01-EXTERNAL-5.9.22.md).
19
+ **Release gate: do not use 5.9.24 as a CI decision gate for these surfaces.** The audit measured
20
+ three `rc=0`, zero-byte answers across `risk` and Markdown `audit-report`.
21
+ The trigger is not yet established; warm-cache and contention hypotheses were
22
+ explicitly tested and did not reproduce it. A global non-empty-output invariant
23
+ is therefore the P0 containment work, not a claim that the root cause is known.
24
+
25
+ Priority order is: `NEW-01` empty successful output; `REG-02` default agent
26
+ memory rejection and post-hoc RSS enforcement; `BUG-01` undeclared parse loss;
27
+ `REG-03` warm-path slowdown; `NEW-02` overloaded endpoint anchors; then
28
+ workspace-help/selftest/plan and output-contract regressions. Full evidence:
29
+ [`AUDIT-2026-09-01-EXTERNAL-5.9.23.md`](AUDIT-2026-09-01-EXTERNAL-5.9.23.md).
23
30
 
24
31
  | ID | Severity | Status | Evidence and required closure |
25
32
  |---|---:|---|---|
26
- | `BUG-01` | Critical maximum | **open, P0** | Full Markdown `audit-report` reproduced with `rc=0` and empty stdout. Add a global non-empty-answer invariant and renderer coverage. |
33
+ | `NEW-01` | Critical maximum | **open, P0 / CI blocker** | `risk` and Markdown `audit-report` can exit `0` with zero bytes on stdout and stderr. The measured rate was 3/47 byte-counted runs; root cause is unknown. Enforce `EMPTY_ANSWER` globally and add byte-counted background-process coverage. |
34
+ | `REG-02` | Critical | **open, regression** | The 1,536 MB default `--agent` ceiling rejects valid large repositories only after spending minutes; it is not published in successful default-agent metadata. Bound projection during construction, sample RSS periodically, and publish the effective ceiling. |
35
+ | `REG-03` | High | **open, regression** | Warm `spring-audit` was measured 2.1–3.8x slower despite a fully reused CIR. Attribute the warm pass before claiming cache benefit. |
36
+ | `REG-01` | High | **open, regression** | Root `ask --help` took 83–86 seconds in a workspace with nested repositories. Help must not perform unbounded repository/profile analysis. |
37
+ | `REG-04` | Medium | **closed 5.9.24** | `_meta.answer_bounds.capped` now aggregates nested cap contracts, so compact answers disclose rows omitted below nested payloads. Regression coverage includes nested dictionaries and lists. |
38
+ | `NEW-02` | High | **open** | Overloaded endpoint handlers can all inherit the final overload's `declaration_line`. Resolve by mapping annotation/signature or publish ambiguity. |
39
+ | `BUG-01` | Critical maximum | **open, P0** | A malformed Java file can disappear without a file-specific declaration. Publish parse failure/recovery in the answer bounds and preserve any affected endpoint gap. |
27
40
  | `BUG-02` | Critical maximum | **open, P0** | Large `risk` ended `rc=127` with no output or structured failure. Add fail-fast resource/process handling and durable partial checkpoints. |
28
41
  | `BUG-12` | Critical maximum | **open, P0** | Deep `--agent` output construction reaches multi-gigabyte RSS before a small answer. Bound projection while building. |
29
- | `BUG-03` | High | **open, P1** | `content_id` changes between cold and warm because cache state is hashed into identity. Separate execution metadata from answer identity. |
42
+ | `BUG-03` | High | **open, P1** | Marginal Spring detection can overstate what a zero-finding result covers. Publish Spring footprint/coverage with the stack-fit claim. |
30
43
  | `BUG-04` | High | **open, P1** | `selftest` publishes `complete=true` with five error rows. Derive bounds from actual results. |
31
44
  | `BUG-05` | High | **open, P1** | Overloaded endpoint handlers can receive the wrong declaration line. Resolve by mapping annotation or publish ambiguity. |
32
- | `BUG-07` | High | **open, P1** | `--compact` remains oversized on `migrate-check` and `spring-audit`. Apply bounded projections with omission metadata. |
45
+ | `BUG-07` | Closed 5.9.23, verification gap | Compact JVM inventory is bounded, but the audit notes no selftest row protects the correction. Add release-battery coverage before treating it as durable closure. |
33
46
  | `BUG-10` | High | **open, P1** | Unsupported routing styles can produce empty coverage gaps. Publish detected-but-unmodeled routing gaps. |
34
47
  | `BUG-11` | High | **open, P1** | Default `pack assessment` can fail on a small Spring repository. Use a bounded default or explicit full mode. |
35
48
  | `BUG-13` | High | **open, P1** | Unscoped `selftest` starts over nested repositories after warning. Refuse and require an explicit path. |
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "sourcecode"
7
- version = "5.9.23"
7
+ version = "5.9.24"
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.9.23"
7
+ __version__ = "5.9.24"
@@ -170,17 +170,24 @@ def _exclusions(payload: "dict[str, Any]") -> "list[dict[str, Any]]":
170
170
 
171
171
  def _caps(payload: "dict[str, Any]") -> "list[dict[str, Any]]":
172
172
  found: "list[dict[str, Any]]" = []
173
+ def walk(value: Any, prefix: str) -> None:
174
+ if isinstance(value, dict):
175
+ for key, child in value.items():
176
+ path = f"{prefix}{key}"
177
+ if key.endswith(_CAP_SUFFIX) and isinstance(child, dict):
178
+ omitted = child.get("omitted")
179
+ if omitted not in (None, 0):
180
+ found.append({"field": path, **{
181
+ axis: child[axis] for axis in ("total", "shown", "omitted")
182
+ if axis in child
183
+ }})
184
+ walk(child, f"{path}.")
185
+ elif isinstance(value, list):
186
+ for index, child in enumerate(value):
187
+ walk(child, f"{prefix}{index}.")
188
+
173
189
  for prefix, block in _blocks(payload):
174
- for key, value in block.items():
175
- if not key.endswith(_CAP_SUFFIX) or not isinstance(value, dict):
176
- continue
177
- omitted = value.get("omitted")
178
- if omitted in (None, 0):
179
- continue
180
- found.append({"field": f"{prefix}{key}", **{
181
- axis: value[axis] for axis in ("total", "shown", "omitted")
182
- if axis in value
183
- }})
190
+ walk(block, prefix)
184
191
  return found
185
192
 
186
193
 
@@ -993,6 +993,9 @@ scope matches; `ask cache model` says exactly what a warm buys per command.
993
993
  [dim cyan]→ ask activate <key>[/dim cyan]
994
994
  """
995
995
 
996
+ if not getattr(sys.stdout, "isatty", lambda: False)():
997
+ # Rich markup is useful interactively but corrupts piped help output.
998
+ return re.sub(r"\[/?(?:bold(?: green)?|dim(?: bold)?|yellow|cyan)\]", "", text)
996
999
  return text
997
1000
 
998
1001
 
@@ -4136,7 +4139,14 @@ def _jobs_option() -> Any:
4136
4139
  capability that makes the rule pass parallel is F-AT, and no help text is a
4137
4140
  substitute for it.
4138
4141
  """
4139
- return typer.Option(None, "--jobs", "-j", min=1, help=JOBS_OPTION_HELP)
4142
+ return typer.Option(
4143
+ None,
4144
+ "--jobs",
4145
+ "-j",
4146
+ min=1,
4147
+ max=128,
4148
+ help=JOBS_OPTION_HELP + " Maximum accepted value: 128.",
4149
+ )
4140
4150
 
4141
4151
 
4142
4152
  def _invoke_command(ctx: typer.Context, command: Any, **named: Any) -> Any:
@@ -17325,6 +17335,10 @@ def _audit_population_for(root: "Path", *, progress: "Any" = None):
17325
17335
 
17326
17336
  @app.command("remediation-report")
17327
17337
  def remediation_report_cmd(
17338
+ path: Optional[Path] = typer.Argument(
17339
+ None,
17340
+ help="Optional repository path accepted for CLI consistency; the bundled ledger is used.",
17341
+ ),
17328
17342
  output_path: Optional[Path] = typer.Option(
17329
17343
  None, "--output", "-o", help="Write output to a file instead of stdout.",
17330
17344
  ),
@@ -17332,6 +17346,7 @@ def remediation_report_cmd(
17332
17346
  copy: bool = _copy_option(),
17333
17347
  ) -> None:
17334
17348
  """Publish a redacted remediation record for this ASK build."""
17349
+ del path
17335
17350
  _enforce_format("remediation-report", format)
17336
17351
  from sourcecode import bundled_docs
17337
17352
 
@@ -27,7 +27,7 @@ from typing import Any, Optional
27
27
  #: The date `__version__` was released, from that version's CHANGELOG entry.
28
28
  #: `tests/test_release_info.py` fails the build if the two disagree, so this is
29
29
  #: a copy of a fact rather than a second authority for it.
30
- RELEASE_DATE = "2026-08-31"
30
+ RELEASE_DATE = "2026-09-01"
31
31
 
32
32
  #: Releases per day, measured over the latest 30 CHANGELOG releases (the same
33
33
  #: computation the test re-runs). The nine-day interval before 5.9.0 lowers
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes