sourcecode 5.9.18__tar.gz → 5.9.19__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 (459) hide show
  1. {sourcecode-5.9.18 → sourcecode-5.9.19}/CHANGELOG.md +13 -0
  2. {sourcecode-5.9.18 → sourcecode-5.9.19}/PKG-INFO +18 -9
  3. {sourcecode-5.9.18 → sourcecode-5.9.19}/README.md +17 -8
  4. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/AUDIT-2026-08-31-REMEDIATION-5.9.18.md +10 -1
  5. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/DEFECT-LEDGER.md +4 -2
  6. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/DEVELOPMENT-ROADMAP.md +2 -2
  7. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/EXECUTIVE-ROADMAP.md +1 -1
  8. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/USER_GUIDE.md +12 -7
  9. {sourcecode-5.9.18 → sourcecode-5.9.19}/pyproject.toml +1 -1
  10. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/__init__.py +1 -1
  11. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/git_checkout.py +8 -1
  12. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/release_info.py +1 -1
  13. {sourcecode-5.9.18 → sourcecode-5.9.19}/.github/workflows/build-windows.yml +0 -0
  14. {sourcecode-5.9.18 → sourcecode-5.9.19}/.github/workflows/perf-gate.yml +0 -0
  15. {sourcecode-5.9.18 → sourcecode-5.9.19}/.github/workflows/windows-battery.yml +0 -0
  16. {sourcecode-5.9.18 → sourcecode-5.9.19}/.github/workflows/windows-regression.yml +0 -0
  17. {sourcecode-5.9.18 → sourcecode-5.9.19}/.gitignore +0 -0
  18. {sourcecode-5.9.18 → sourcecode-5.9.19}/.ruff.toml +0 -0
  19. {sourcecode-5.9.18 → sourcecode-5.9.19}/CLAUDE.md +0 -0
  20. {sourcecode-5.9.18 → sourcecode-5.9.19}/CODE_OF_CONDUCT.md +0 -0
  21. {sourcecode-5.9.18 → sourcecode-5.9.19}/CONTRIBUTING.md +0 -0
  22. {sourcecode-5.9.18 → sourcecode-5.9.19}/LICENSE +0 -0
  23. {sourcecode-5.9.18 → sourcecode-5.9.19}/NOTICE +0 -0
  24. {sourcecode-5.9.18 → sourcecode-5.9.19}/SECURITY.md +0 -0
  25. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/AUDIT-2026-08-22-5.8.22.md +0 -0
  26. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/AUDIT-2026-08-23-5.8.24.md +0 -0
  27. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/AUDIT-2026-08-23-COMMERCIAL.md +0 -0
  28. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/AUDIT-2026-08-23-CORPUS-AMPLIADO.md +0 -0
  29. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/AUDIT-2026-08-23-EXTERNAL-5.8.25.md +0 -0
  30. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/AUDIT-2026-08-23-EXTERNAL-5.8.26.md +0 -0
  31. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/AUDIT-2026-08-23-THINGSBOARD-FINDINGS.md +0 -0
  32. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.26.md +0 -0
  33. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.27.md +0 -0
  34. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md +0 -0
  35. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.28.md +0 -0
  36. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.31.md +0 -0
  37. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.32.md +0 -0
  38. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/AUDIT-2026-08-26-EXTERNAL-5.9.0.md +0 -0
  39. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/AUDIT-2026-08-26-MONETIZATION.md +0 -0
  40. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/AUDIT-2026-08-27-EXTERNAL-5.9.2.md +0 -0
  41. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/AUDIT-2026-08-27-EXTERNAL-5.9.3.md +0 -0
  42. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/AUDIT-2026-08-28-EXTERNAL-5.9.10.md +0 -0
  43. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/AUDIT-2026-08-31-EXTERNAL-5.9.16.md +0 -0
  44. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/AUDIT-2026-08-31-EXTERNAL-5.9.17.md +0 -0
  45. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/AUDIT-TESTING-CORPUS-2026-08-22.md +0 -0
  46. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/CACHE.md +0 -0
  47. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/COMMERCIAL-OFFER.md +0 -0
  48. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/CUSTOMER-VALIDATION.md +0 -0
  49. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/DEMO-5MIN.md +0 -0
  50. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/DOCUMENTATION-HYGIENE-2026-08-23.md +0 -0
  51. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/EXECUTION-PLAN-12MO.md +0 -0
  52. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/MANUAL-USUARIO.md +0 -0
  53. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/MODERNIZATION.md +0 -0
  54. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/PRODUCT-ROUTE.md +0 -0
  55. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/PRODUCT_AUDIT.md +0 -0
  56. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/PRODUCT_IDENTITY.md +0 -0
  57. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/PRODUCT_TIERS.md +0 -0
  58. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/RC1-CHECKLIST.md +0 -0
  59. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/RELEASE-CHECKLIST.md +0 -0
  60. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/RELEASE-VERIFICATION.md +0 -0
  61. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/STRATEGY-2026-08-26-AGENT-CONTEXT.md +0 -0
  62. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/CATALOG-retrieval-intents.md +0 -0
  63. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/DESIGN-assessment-deployment-evidence.md +0 -0
  64. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/DESIGN-assessment-report.md +0 -0
  65. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/DESIGN-build-closure-provenance.md +0 -0
  66. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/DESIGN-knowledge-provider-integration.md +0 -0
  67. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/DESIGN-p5.3b-statement-surface.md +0 -0
  68. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/DESIGN-p5.5-span-index.md +0 -0
  69. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/DESIGN-p6-semantic-impact-engine.md +0 -0
  70. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/DESIGN-p6-semantic-integration-engine.md +0 -0
  71. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/DESIGN-p7-semantic-services.md +0 -0
  72. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/DESIGN-pack-gate-ci.md +0 -0
  73. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/DESIGN-pack-manifest.md +0 -0
  74. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/DESIGN-pack-mcp-api.md +0 -0
  75. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/DESIGN-robustness-security-inference.md +0 -0
  76. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/DESIGN-semantic-retrieval.md +0 -0
  77. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/EPV-p6-class-typeref.md +0 -0
  78. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/REPORT-p6-flow-analyzer-comparison.md +0 -0
  79. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/REPORT-p6-integration-detector-comparison.md +0 -0
  80. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/REPORT-p8-flow-analyzer-migration.md +0 -0
  81. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/REPORT-p9-integration-detector-migration.md +0 -0
  82. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/adr/0001-semantic-ir.md +0 -0
  83. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/adr/0002-source-evidence-boundary.md +0 -0
  84. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/adr/0003-architectural-characterization.md +0 -0
  85. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/adr/0004-semantic-retrieval.md +0 -0
  86. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/adr/0005-evidence-reconciliation.md +0 -0
  87. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/adr/0006-performance-harness.md +0 -0
  88. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/adr/0007-composition-semantics.md +0 -0
  89. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/adr/0008-answer-coherence.md +0 -0
  90. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/consumer-disposition-inventory.md +0 -0
  91. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/overview.md +0 -0
  92. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/product-architecture-review.md +0 -0
  93. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/product-strategy-layering.md +0 -0
  94. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/semantic-ir-consumer-matrix.md +0 -0
  95. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/architecture/semantic-ir-roadmap.md +0 -0
  96. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/baseline-ci.yml +0 -0
  97. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/commercial-pipeline-audit.md +0 -0
  98. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/contracts-ci.yml +0 -0
  99. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/contracts.md +0 -0
  100. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/eval/2026-06-15-petclinic-rest-issue11-vets-pagination.md +0 -0
  101. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/eval/2026-06-15-petclinic-rest-issue147-validation.md +0 -0
  102. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/eval/2026-06-15-petclinic-rest-workflow.md +0 -0
  103. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/eval/2026-06-15-phase18-openapi-surface.md +0 -0
  104. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/eval/2026-06-15-phase20-validation-surface.md +0 -0
  105. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/eval/2026-06-16-broadleaf-checkout-impact-fieldtest.md +0 -0
  106. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/eval/2026-06-16-petclinic-rest-issue11-weakness2-closed.md +0 -0
  107. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/eval/2026-06-16-spring-petclinic-issue2333-dead-vets.md +0 -0
  108. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/licensing-schema.md +0 -0
  109. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/migrate-check.md +0 -0
  110. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/pack-gate-github-actions.yml +0 -0
  111. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/pack-gate-gitlab.yml +0 -0
  112. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/README.md +0 -0
  113. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/REGRESSION-GATE.md +0 -0
  114. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/SUMMARY.md +0 -0
  115. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/alfresco__ask__cold.json +0 -0
  116. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/alfresco__ask__warm.json +0 -0
  117. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/broadleaf__ask__cold.json +0 -0
  118. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/broadleaf__ask__warm.json +0 -0
  119. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/eureka__ask__cold.json +0 -0
  120. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/eureka__ask__warm.json +0 -0
  121. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/jenkins__ask__cold.json +0 -0
  122. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/jenkins__ask__warm.json +0 -0
  123. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/jobrunr__ask__cold.json +0 -0
  124. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/jobrunr__ask__warm.json +0 -0
  125. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/keycloak__ask__cold.json +0 -0
  126. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/keycloak__ask__warm.json +0 -0
  127. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/neo4j__ask__cold.json +0 -0
  128. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/neo4j__ask__warm.json +0 -0
  129. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/ofbiz__ask__cold.json +0 -0
  130. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/ofbiz__ask__warm.json +0 -0
  131. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/openmrs__ask__cold.json +0 -0
  132. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/openmrs__ask__warm.json +0 -0
  133. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/petclinic__ask__cold.json +0 -0
  134. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/petclinic__ask__warm.json +0 -0
  135. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/SUMMARY.md +0 -0
  136. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/alfresco__ask__cold.json +0 -0
  137. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/alfresco__ask__warm.json +0 -0
  138. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/broadleaf__ask__cold.json +0 -0
  139. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/broadleaf__ask__warm.json +0 -0
  140. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/eureka__ask__cold.json +0 -0
  141. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/eureka__ask__warm.json +0 -0
  142. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/jenkins__ask__cold.json +0 -0
  143. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/jenkins__ask__warm.json +0 -0
  144. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/jobrunr__ask__cold.json +0 -0
  145. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/jobrunr__ask__warm.json +0 -0
  146. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/keycloak__ask__cold.json +0 -0
  147. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/keycloak__ask__warm.json +0 -0
  148. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/neo4j__ask__cold.json +0 -0
  149. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/neo4j__ask__warm.json +0 -0
  150. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/ofbiz__ask__cold.json +0 -0
  151. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/ofbiz__ask__warm.json +0 -0
  152. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/openmrs__ask__cold.json +0 -0
  153. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/openmrs__ask__warm.json +0 -0
  154. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/petclinic__ask__cold.json +0 -0
  155. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/petclinic__ask__warm.json +0 -0
  156. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/gate-latest/README.md +0 -0
  157. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/gate-latest/broadleaf__ask__warm.json +0 -0
  158. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/gate-latest/broadleaf__endpoints__warm.json +0 -0
  159. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/gate-latest/broadleaf__migrate-check__warm.json +0 -0
  160. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/gate-latest/broadleaf__posture__warm.json +0 -0
  161. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/gate-latest/broadleaf__spring-audit__warm.json +0 -0
  162. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/gate-latest/broadleaf__validation__warm.json +0 -0
  163. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/baselines/reference-best/README.md +0 -0
  164. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/perf/corpus-testing-2026-08-22.md +0 -0
  165. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/posture.md +0 -0
  166. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/privacy.md +0 -0
  167. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/pro-experience-audit.md +0 -0
  168. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/schema.md +0 -0
  169. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/spec/envelope-v1.md +0 -0
  170. {sourcecode-5.9.18 → sourcecode-5.9.19}/docs/spring-audit-ci.yml +0 -0
  171. {sourcecode-5.9.18 → sourcecode-5.9.19}/hatch_build.py +0 -0
  172. {sourcecode-5.9.18 → sourcecode-5.9.19}/scripts/compare_integration_engines.py +0 -0
  173. {sourcecode-5.9.18 → sourcecode-5.9.19}/scripts/context_cost_harness.py +0 -0
  174. {sourcecode-5.9.18 → sourcecode-5.9.19}/scripts/customer_smoke_test.sh +0 -0
  175. {sourcecode-5.9.18 → sourcecode-5.9.19}/scripts/generate_jdk_exports.py +0 -0
  176. {sourcecode-5.9.18 → sourcecode-5.9.19}/scripts/perf_gate.py +0 -0
  177. {sourcecode-5.9.18 → sourcecode-5.9.19}/scripts/perf_harness.py +0 -0
  178. {sourcecode-5.9.18 → sourcecode-5.9.19}/scripts/sync_gate_anchors.py +0 -0
  179. {sourcecode-5.9.18 → sourcecode-5.9.19}/scripts/test_fast.sh +0 -0
  180. {sourcecode-5.9.18 → sourcecode-5.9.19}/scripts/windows_reliability_matrix.py +0 -0
  181. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/__main__.py +0 -0
  182. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/access_drift.py +0 -0
  183. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/adaptive_scanner.py +0 -0
  184. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/analysis_budget.py +0 -0
  185. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/answer_bounds.py +0 -0
  186. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/archetype.py +0 -0
  187. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/architectural_baseline.py +0 -0
  188. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/architectural_delta.py +0 -0
  189. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/architecture_analyzer.py +0 -0
  190. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/architecture_summary.py +0 -0
  191. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/ast_extractor.py +0 -0
  192. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/audit_clusters.py +0 -0
  193. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/audit_recipe.py +0 -0
  194. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/audit_report.py +0 -0
  195. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/audit_since.py +0 -0
  196. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/audit_verify.py +0 -0
  197. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/baseline_attestation.py +0 -0
  198. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/baseline_autocapture.py +0 -0
  199. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/breaking_changes.py +0 -0
  200. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/build_modules.py +0 -0
  201. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/build_stamp.py +0 -0
  202. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/bundled_docs.py +0 -0
  203. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/c4_render.py +0 -0
  204. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/cache.py +0 -0
  205. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/cache_model.py +0 -0
  206. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/cache_observation.py +0 -0
  207. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/call_surface.py +0 -0
  208. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/caller_metrics.py +0 -0
  209. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/caller_reach.py +0 -0
  210. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/canonical_ir.py +0 -0
  211. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/chain_rules.py +0 -0
  212. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/change_plan.py +0 -0
  213. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/ci_output.py +0 -0
  214. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/cir_graphs.py +0 -0
  215. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/classifier.py +0 -0
  216. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/cli.py +0 -0
  217. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/click_runtime.py +0 -0
  218. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/client_calls.py +0 -0
  219. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/code_notes_analyzer.py +0 -0
  220. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/compare.py +0 -0
  221. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/confidence_analyzer.py +0 -0
  222. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/constraint_diff.py +0 -0
  223. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/consumer_join.py +0 -0
  224. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/container_wiring.py +0 -0
  225. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/context_cache.py +0 -0
  226. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/context_graph.py +0 -0
  227. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/context_scorer.py +0 -0
  228. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/context_summarizer.py +0 -0
  229. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/contract_diff.py +0 -0
  230. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/contract_init.py +0 -0
  231. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/contract_model.py +0 -0
  232. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/contract_pipeline.py +0 -0
  233. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/coverage_parser.py +0 -0
  234. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/cve_feed.py +0 -0
  235. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/cve_reachability.py +0 -0
  236. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/data_exposure.py +0 -0
  237. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/data_labels.py +0 -0
  238. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/declarations.py +0 -0
  239. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/defect_classes/__init__.py +0 -0
  240. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/defect_classes/registry.json +0 -0
  241. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/defect_identity.py +0 -0
  242. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/degradation.py +0 -0
  243. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/dependency_analyzer.py +0 -0
  244. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/deployment_prefix.py +0 -0
  245. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/detach.py +0 -0
  246. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/detectors/__init__.py +0 -0
  247. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/detectors/base.py +0 -0
  248. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/detectors/csproj_parser.py +0 -0
  249. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/detectors/dart.py +0 -0
  250. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/detectors/dotnet.py +0 -0
  251. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/detectors/elixir.py +0 -0
  252. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/detectors/go.py +0 -0
  253. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/detectors/heuristic.py +0 -0
  254. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/detectors/hybrid.py +0 -0
  255. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/detectors/java.py +0 -0
  256. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/detectors/jvm_ext.py +0 -0
  257. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/detectors/nodejs.py +0 -0
  258. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/detectors/parsers.py +0 -0
  259. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/detectors/php.py +0 -0
  260. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/detectors/project.py +0 -0
  261. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/detectors/python.py +0 -0
  262. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/detectors/ruby.py +0 -0
  263. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/detectors/rust.py +0 -0
  264. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/detectors/systems.py +0 -0
  265. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/detectors/terraform.py +0 -0
  266. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/detectors/tooling.py +0 -0
  267. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/doc_analyzer.py +0 -0
  268. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/dynamic_argument_surface.py +0 -0
  269. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/empty_reach.py +0 -0
  270. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/endpoint_disposition.py +0 -0
  271. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/endpoint_literals.py +0 -0
  272. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/endpoint_metrics.py +0 -0
  273. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/entrypoint_classifier.py +0 -0
  274. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/env_analyzer.py +0 -0
  275. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/envelope.py +0 -0
  276. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/environment_resolution.py +0 -0
  277. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/error_schema.py +0 -0
  278. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/evidence_provider.py +0 -0
  279. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/execution_plan.py +0 -0
  280. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/explain.py +0 -0
  281. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/explain_endpoint.py +0 -0
  282. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/facts/__init__.py +0 -0
  283. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/facts/registry.json +0 -0
  284. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/field_deprecations.py +0 -0
  285. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/file_chunker.py +0 -0
  286. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/file_classifier.py +0 -0
  287. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/filter_surface.py +0 -0
  288. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/findings_baseline.py +0 -0
  289. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/format_contract.py +0 -0
  290. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/fqn_utils.py +0 -0
  291. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/functional_routes.py +0 -0
  292. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/gate_anchors.py +0 -0
  293. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/git_analyzer.py +0 -0
  294. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/github_diff.py +0 -0
  295. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/graph_analyzer.py +0 -0
  296. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/graph_evidence.py +0 -0
  297. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/hibernate_strat.py +0 -0
  298. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/identity_fallback.py +0 -0
  299. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/integration_coordinates.py +0 -0
  300. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/intent_router.py +0 -0
  301. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/jdk_exports.py +0 -0
  302. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/license.py +0 -0
  303. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/manifest_cache.py +0 -0
  304. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/mcp/__init__.py +0 -0
  305. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/mcp/dependency_import.py +0 -0
  306. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
  307. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/mcp/onboarding/applier.py +0 -0
  308. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/mcp/onboarding/backup.py +0 -0
  309. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/mcp/onboarding/detector.py +0 -0
  310. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/mcp/onboarding/planner.py +0 -0
  311. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/mcp/orchestrator.py +0 -0
  312. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/mcp/registry.py +0 -0
  313. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/mcp/runner.py +0 -0
  314. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/mcp/server.py +0 -0
  315. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/mcp_nudge.py +0 -0
  316. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/metrics_analyzer.py +0 -0
  317. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/migrate_check.py +0 -0
  318. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/migration_apply.py +0 -0
  319. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/migration_blast.py +0 -0
  320. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/non_coverage.py +0 -0
  321. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/openapi_surface.py +0 -0
  322. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/openrewrite_recipe.py +0 -0
  323. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/output_bounds.py +0 -0
  324. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/output_budget.py +0 -0
  325. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/output_ceiling.py +0 -0
  326. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/output_encoding.py +0 -0
  327. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/output_sink.py +0 -0
  328. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/pack_manifest.py +0 -0
  329. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/packs.py +0 -0
  330. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/parallel.py +0 -0
  331. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/parse_cache.py +0 -0
  332. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/partial_contract.py +0 -0
  333. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/path_admission.py +0 -0
  334. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/path_display.py +0 -0
  335. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/path_filters.py +0 -0
  336. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/perf.py +0 -0
  337. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/phased_run.py +0 -0
  338. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/pipe_contract.py +0 -0
  339. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/posture.py +0 -0
  340. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/pr_comment_renderer.py +0 -0
  341. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/pr_impact.py +0 -0
  342. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/pr_risk.py +0 -0
  343. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/prepare_context.py +0 -0
  344. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/product_info.py +0 -0
  345. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/progress.py +0 -0
  346. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/provenance.py +0 -0
  347. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/ranking_engine.py +0 -0
  348. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/readiness_timeline.py +0 -0
  349. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/readonly.py +0 -0
  350. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/reconciliation.py +0 -0
  351. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/redactor.py +0 -0
  352. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/reference_facts.py +0 -0
  353. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/regress.py +0 -0
  354. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/regulatory_pack.py +0 -0
  355. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/relevance_scorer.py +0 -0
  356. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/remediation_diff.py +0 -0
  357. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/remediation_flow.py +0 -0
  358. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/remediation_report.py +0 -0
  359. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/remedies.py +0 -0
  360. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/rename_refactor.py +0 -0
  361. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/repo_classifier.py +0 -0
  362. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/repository_ir.py +0 -0
  363. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/resource_budget.py +0 -0
  364. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/retrieval/__init__.py +0 -0
  365. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/retrieval/context.py +0 -0
  366. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/retrieval/errors.py +0 -0
  367. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/retrieval/executor.py +0 -0
  368. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/retrieval/planner.py +0 -0
  369. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/retrieval/query.py +0 -0
  370. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/retrieval/request.py +0 -0
  371. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/retrieval/resolution.py +0 -0
  372. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/retrieval/result.py +0 -0
  373. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/retrieval/retriever.py +0 -0
  374. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/retrieval/runtime.py +0 -0
  375. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/retrieval/steps.py +0 -0
  376. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/retrieval/steps_endpoint.py +0 -0
  377. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/retrieval/steps_graph.py +0 -0
  378. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/retrieval/steps_impact.py +0 -0
  379. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/retrieval/steps_intf.py +0 -0
  380. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/retrieval/steps_struct.py +0 -0
  381. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/retrieval/steps_txsec.py +0 -0
  382. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/ris.py +0 -0
  383. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/risk.py +0 -0
  384. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/risk_model.py +0 -0
  385. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/rule_catalog.py +0 -0
  386. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/rule_pass.py +0 -0
  387. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/runs.py +0 -0
  388. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/runtime_classifier.py +0 -0
  389. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/sarif.py +0 -0
  390. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/sarif_emit.py +0 -0
  391. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/scanner.py +0 -0
  392. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/schema.py +0 -0
  393. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/schema_producers.py +0 -0
  394. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/schema_registry.py +0 -0
  395. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/schemas/core-analysis-v1.schema.json +0 -0
  396. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/schemas/cve-reachability-v1.schema.json +0 -0
  397. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/schemas/endpoints-v1.schema.json +0 -0
  398. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/schemas/envelope-v1.schema.json +0 -0
  399. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/schemas/pr-impact-v1.schema.json +0 -0
  400. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/schemas/verify-edit-v1.schema.json +0 -0
  401. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/schemas/verify-v1.schema.json +0 -0
  402. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/security_chain.py +0 -0
  403. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/security_config.py +0 -0
  404. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/security_config_scan.py +0 -0
  405. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/security_posture.py +0 -0
  406. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/selection_contract.py +0 -0
  407. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/self_audit.py +0 -0
  408. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/selftest.py +0 -0
  409. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/semantic_analyzer.py +0 -0
  410. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/semantic_impact_engine.py +0 -0
  411. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/semantic_integration_engine.py +0 -0
  412. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/semantic_services.py +0 -0
  413. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/serializer.py +0 -0
  414. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/servlet_surface.py +0 -0
  415. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/source_text.py +0 -0
  416. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/spring_event_topology.py +0 -0
  417. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/spring_findings.py +0 -0
  418. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/spring_impact.py +0 -0
  419. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/spring_model.py +0 -0
  420. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/spring_profiles.py +0 -0
  421. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/spring_properties.py +0 -0
  422. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/spring_security_audit.py +0 -0
  423. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/spring_semantic.py +0 -0
  424. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/spring_tx_analyzer.py +0 -0
  425. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/sql_taint.py +0 -0
  426. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/summarizer.py +0 -0
  427. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/target_admission.py +0 -0
  428. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/telemetry/__init__.py +0 -0
  429. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/telemetry/config.py +0 -0
  430. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/telemetry/consent.py +0 -0
  431. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/telemetry/events.py +0 -0
  432. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/telemetry/filters.py +0 -0
  433. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/telemetry/transport.py +0 -0
  434. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/test_gap_ranking.py +0 -0
  435. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/test_sources.py +0 -0
  436. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/text_input.py +0 -0
  437. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/timeline.py +0 -0
  438. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/timeline_cache.py +0 -0
  439. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/token_estimate.py +0 -0
  440. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/tree_utils.py +0 -0
  441. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/type_usage_surface.py +0 -0
  442. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/validation_inference.py +0 -0
  443. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/validation_surface.py +0 -0
  444. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/verify_edit.py +0 -0
  445. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/verify_repo.py +0 -0
  446. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/verify_rules.py +0 -0
  447. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/version_check.py +0 -0
  448. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/vex.py +0 -0
  449. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/waivers.py +0 -0
  450. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/watch_loop.py +0 -0
  451. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/wired_surface.py +0 -0
  452. {sourcecode-5.9.18 → sourcecode-5.9.19}/src/sourcecode/workspace.py +0 -0
  453. {sourcecode-5.9.18 → sourcecode-5.9.19}/supabase/functions/README.md +0 -0
  454. {sourcecode-5.9.18 → sourcecode-5.9.19}/supabase/functions/get-license/index.ts +0 -0
  455. {sourcecode-5.9.18 → sourcecode-5.9.19}/supabase/functions/lemonsqueezy-webhook/index.ts +0 -0
  456. {sourcecode-5.9.18 → sourcecode-5.9.19}/supabase/functions/telemetry/index.ts +0 -0
  457. {sourcecode-5.9.18 → sourcecode-5.9.19}/supabase/sql/license_event_ordering.sql +0 -0
  458. {sourcecode-5.9.18 → sourcecode-5.9.19}/supabase/sql/licensing_schema.sql +0 -0
  459. {sourcecode-5.9.18 → sourcecode-5.9.19}/supabase/sql/telemetry_events.sql +0 -0
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## [5.9.19] — 2026-08-31
4
+
5
+ *Critical `pack gate --since` compatibility correction.*
6
+
7
+ ### Fixed
8
+
9
+ - Git-ref materialization now extracts tar members compatibly on Python 3.9–3.11 while retaining `filter="data"` on Python 3.12+.
10
+ - Added regression coverage for the legacy and current tarfile APIs and strengthened the pack stderr forwarding assertion.
11
+
12
+ ### Verification Boundary
13
+
14
+ - Focused pack, ref-materialization and output-contract tests pass. Native Windows repetition remains required for the broader `AUD-621` reliability findings.
15
+
3
16
  ## [5.9.18] — 2026-08-31
4
17
 
5
18
  *Windows reliability remediation follow-up.*
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sourcecode
3
- Version: 5.9.18
3
+ Version: 5.9.19
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.18-blue)
62
+ ![Version](https://img.shields.io/badge/version-5.9.19-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
@@ -221,6 +221,12 @@ there. Use `ask cache model <repo>`, `--progress stderr`, `audit-report
221
221
  [current reliability queue](docs/DEVELOPMENT-ROADMAP.md#external-audit-intake--aud-616-re-audit-release-5910)
222
222
  before treating a historical timing or bounded flag as a current guarantee.
223
223
 
224
+ A post-remediation re-audit of `5.9.18` also found a separate `pack gate --since`
225
+ regression on Windows: the git-ref materialization path could resolve to Python
226
+ 3.10 and fail in `tarfile` before the stderr-forwarding fix mattered. Release
227
+ `5.9.19` adds the version-compatible extraction path; native Windows repetition
228
+ is still required before treating `pack gate` as production CI evidence.
229
+
224
230
  **CI delivery and workspace licensing.** `migrate-check --format sarif` emits
225
231
  ASK-owned migration findings with source locations and provenance; it does not
226
232
  re-emit imported scanner findings. `ask auth workspace <repo>...` previews the
@@ -236,11 +242,14 @@ entitlement errors in CI and does not change per-repository gates or billing.
236
242
 
237
243
  Release 5.9.17 also carries the boundary-contract hardening: missing consumer repositories,
238
244
  malformed CVE feeds and unresolved `pack gate --since` refs fail as structured
239
- input errors; duplicate same-commit baselines are never overwritten. `posture
240
- --diff` validates unknown profiles when the repository declares profiles. In
241
- `endpoints --compact`, an empty `endpoints` list is explicitly marked as an
242
- intentional omission, not an empty API; unresolved `impact` and `impact-chain`
243
- queries exit non-zero, including on repositories without Java sources.
245
+ input errors; duplicate same-commit baselines are never overwritten. That
246
+ contract is still not enough to make `pack gate` CI-safe on Windows, because the
247
+ materialization path can still hit a Python 3.10 tarfile mismatch in mixed
248
+ environments. `posture --diff` validates unknown profiles when the repository
249
+ declares profiles. In `endpoints --compact`, an empty `endpoints` list is
250
+ explicitly marked as an intentional omission, not an empty API; unresolved
251
+ `impact` and `impact-chain` queries exit non-zero, including on repositories
252
+ without Java sources.
244
253
 
245
254
  **What a warm actually covers.** `ask cache warm` rebuilds the declared root views and their
246
255
  shared structural layers (L1/L2 + the Repository Intelligence Snapshot + the shared Canonical
@@ -267,11 +276,11 @@ brew tap haroundominique/sourcecode && brew install sourcecode
267
276
  # pip / pipx
268
277
  pipx install sourcecode # or: pip install sourcecode
269
278
 
270
- ask version # ask 5.9.18 — and, on a build that has aged,
279
+ ask version # ask 5.9.19 — and, on a build that has aged,
271
280
  # how many releases have probably shipped since
272
281
  ```
273
282
 
274
- > **Package vs. command.** The install package is named `sourcecode` this release
283
+ > **Package vs. command.** The install package is named `sourcecode` in this release
275
284
  > (renaming the distribution is a separate, breaking change). Installing it gives you the
276
285
  > canonical **`ask`** command plus the deprecated **`sourcecode`** alias.
277
286
 
@@ -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.18-blue)
13
+ ![Version](https://img.shields.io/badge/version-5.9.19-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
@@ -172,6 +172,12 @@ there. Use `ask cache model <repo>`, `--progress stderr`, `audit-report
172
172
  [current reliability queue](docs/DEVELOPMENT-ROADMAP.md#external-audit-intake--aud-616-re-audit-release-5910)
173
173
  before treating a historical timing or bounded flag as a current guarantee.
174
174
 
175
+ A post-remediation re-audit of `5.9.18` also found a separate `pack gate --since`
176
+ regression on Windows: the git-ref materialization path could resolve to Python
177
+ 3.10 and fail in `tarfile` before the stderr-forwarding fix mattered. Release
178
+ `5.9.19` adds the version-compatible extraction path; native Windows repetition
179
+ is still required before treating `pack gate` as production CI evidence.
180
+
175
181
  **CI delivery and workspace licensing.** `migrate-check --format sarif` emits
176
182
  ASK-owned migration findings with source locations and provenance; it does not
177
183
  re-emit imported scanner findings. `ask auth workspace <repo>...` previews the
@@ -187,11 +193,14 @@ entitlement errors in CI and does not change per-repository gates or billing.
187
193
 
188
194
  Release 5.9.17 also carries the boundary-contract hardening: missing consumer repositories,
189
195
  malformed CVE feeds and unresolved `pack gate --since` refs fail as structured
190
- input errors; duplicate same-commit baselines are never overwritten. `posture
191
- --diff` validates unknown profiles when the repository declares profiles. In
192
- `endpoints --compact`, an empty `endpoints` list is explicitly marked as an
193
- intentional omission, not an empty API; unresolved `impact` and `impact-chain`
194
- queries exit non-zero, including on repositories without Java sources.
196
+ input errors; duplicate same-commit baselines are never overwritten. That
197
+ contract is still not enough to make `pack gate` CI-safe on Windows, because the
198
+ materialization path can still hit a Python 3.10 tarfile mismatch in mixed
199
+ environments. `posture --diff` validates unknown profiles when the repository
200
+ declares profiles. In `endpoints --compact`, an empty `endpoints` list is
201
+ explicitly marked as an intentional omission, not an empty API; unresolved
202
+ `impact` and `impact-chain` queries exit non-zero, including on repositories
203
+ without Java sources.
195
204
 
196
205
  **What a warm actually covers.** `ask cache warm` rebuilds the declared root views and their
197
206
  shared structural layers (L1/L2 + the Repository Intelligence Snapshot + the shared Canonical
@@ -218,11 +227,11 @@ brew tap haroundominique/sourcecode && brew install sourcecode
218
227
  # pip / pipx
219
228
  pipx install sourcecode # or: pip install sourcecode
220
229
 
221
- ask version # ask 5.9.18 — and, on a build that has aged,
230
+ ask version # ask 5.9.19 — and, on a build that has aged,
222
231
  # how many releases have probably shipped since
223
232
  ```
224
233
 
225
- > **Package vs. command.** The install package is named `sourcecode` this release
234
+ > **Package vs. command.** The install package is named `sourcecode` in this release
226
235
  > (renaming the distribution is a separate, breaking change). Installing it gives you the
227
236
  > canonical **`ask`** command plus the deprecated **`sourcecode`** alias.
228
237
 
@@ -7,7 +7,7 @@
7
7
 
8
8
  | Finding | Change | Evidence in this checkout |
9
9
  |---|---|---|
10
- | `AUD-621-PACK-STDERR` | Pack child stderr uses UTF-8 with replacement; the forwarding loop cannot terminate on a decode exception. | Pack progress and manifest tests pass; a regression test asserts the subprocess decoding contract. |
10
+ | `AUD-621-PACK-STDERR` | Pack child stderr uses UTF-8 with replacement; the forwarding loop cannot terminate on a decode exception. | Pack progress and manifest tests pass; a regression test asserts the subprocess decoding contract. This fixes one failure mode only. |
11
11
  | `AUD-621-R` | Windows parse-worker construction is forbidden, backing up the existing sequential fallback. | Parallel Windows-contract tests pass; the six-command reliability matrix completes on the engineering host. |
12
12
  | Validation regression found during verification | Expected `typer.Exit` validation exits bypass the analysis-failure wrapper. | `risk` and `audit-report` invalid-profile regressions pass with `INVALID_INPUT` and exit 2. |
13
13
 
@@ -18,3 +18,12 @@
18
18
  - `AUD-621-CONTEXT`: phase profile and intermediate-size benchmark before a performance claim for the 24,073-file corpus.
19
19
 
20
20
  Release `5.9.18` is therefore suitable only for bounded, supervised use until those gates are met.
21
+
22
+ ## Post-remediation regression
23
+
24
+ A 2026-08-31 re-audit found a separate `pack gate --since` failure that is not the
25
+ stderr-forwarding bug above: the git-ref materialization path can execute under
26
+ Python 3.10 and raise `TypeError: TarFile.extract() got an unexpected keyword
27
+ argument 'filter'` when `tarfile` is called with `filter="data"`. That makes the
28
+ pack path unsafe in mixed-Python Windows environments until the interpreter is
29
+ pinned and the tar extraction call is version-guarded.
@@ -16,7 +16,7 @@ The facts these rows are keyed to are published: `ask schema facts-v1` prints th
16
16
 
17
17
  ## Current Synchronization — External Audit `AUD-621`
18
18
 
19
- **Release `5.9.18` remediation.** `AUD-621-PACK-STDERR` is corrected in code: the child pipe is read as UTF-8 with replacement and the forwarding loop retains a decode-failure guard. `AUD-621-R` has a second Windows barrier at process-pool construction, complementing the sequential fallback. Both findings remain open until their required native Windows evidence is recorded; `AUD-621-CONTEXT` and `AUD-621-WIN-PROC` are unchanged.
19
+ **Release `5.9.19` remediation.** The stderr-decoding fix for `AUD-621-PACK-STDERR` remains in code, and the distinct `pack gate --since` crash found by the post-remediation re-audit is corrected with a Python 3.9–3.11-compatible tar extraction path. `AUD-621-R` has a second Windows barrier at process-pool construction, complementing the sequential fallback. The broader findings remain open until their required native Windows evidence is recorded; `AUD-621-CONTEXT` and `AUD-621-WIN-PROC` are unchanged.
20
20
 
21
21
  **Re-audit of release `5.9.17`, received 2026-08-31.** Four independent
22
22
  Windows measurements overturn the apparent partial recovery of the shared
@@ -31,7 +31,9 @@ The audit also isolates a new, high-confidence Windows defect in `pack gate`:
31
31
  the `_forward_stderr` thread decodes child output using the active codepage,
32
32
  raises `UnicodeDecodeError` on UTF-8 bytes, then stops draining the pipe. The
33
33
  child can block once that pipe fills. Two independent forks captured the same
34
- traceback. The full evidence is
34
+ traceback. A separate re-audit then found that `pack gate --since` can still
35
+ fail earlier in `git_checkout.py` under Python 3.10, so the stderr fix is
36
+ necessary but not sufficient. The full evidence is
35
37
  [`AUDIT-2026-08-31-EXTERNAL-5.9.17.md`](AUDIT-2026-08-31-EXTERNAL-5.9.17.md).
36
38
 
37
39
  | ID | Severity | Status | Evidence and required closure |
@@ -1,8 +1,8 @@
1
1
  # ASK — Development Roadmap
2
2
 
3
- ### Release 5.9.18 — `AUD-621` remediation
3
+ ### Release 5.9.19 — `AUD-621` remediation
4
4
 
5
- Release `5.9.18` adds two deterministic Windows safeguards: no shared parse worker can be constructed on Windows, and pack-child stderr is decoded as UTF-8 with replacement so the forwarding pipe remains drained. It also preserves expected validation exits through the structured analysis-error boundary.
5
+ Release `5.9.19` carries the `5.9.18` Windows safeguards and fixes the separate `pack gate --since` crash caused by calling the Python 3.12-only tarfile filter API on Python 3.10. The compatibility path is covered by regression tests; native Windows repetition remains required for the broader reliability findings.
6
6
 
7
7
  These code changes do not replace the required native evidence. `AUD-621-R` and `AUD-621-WIN-PROC` remain open until the repetition matrix and process-tree cases pass on native Windows; `AUD-621-CONTEXT` remains profiling work.
8
8
 
@@ -5,7 +5,7 @@
5
5
  > `pack assessment` and `pack gate`, and make evidence and safe change the
6
6
  > product surface. This roadmap must not introduce a competing product thesis.
7
7
 
8
- > **CURRENT UPDATE — release `5.9.18`, remediation.** Windows parse workers are now forbidden at their construction point and `pack gate` drains UTF-8 child stderr safely. Expected validation exits remain typed input errors. These are code fixes, not native-Windows closure evidence: keep bounded pilots until the required repetition and process-lifecycle measurements complete.
8
+ > **CURRENT UPDATE — release `5.9.19`, remediation.** Windows parse workers are now forbidden at their construction point, `pack gate` drains UTF-8 child stderr safely, and `pack gate --since` extracts git refs compatibly on Python 3.9–3.14. Expected validation exits remain typed input errors. These are code fixes, not native-Windows closure evidence: keep bounded pilots until the required repetition and process-lifecycle measurements complete.
9
9
 
10
10
  > **CURRENT UPDATE — release `5.9.17`, external re-audit.** The restored command
11
11
  > surface and prior validation fixes remain stable, but the shared Windows worker
@@ -46,16 +46,18 @@ 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.9.18, `validation` enters through that shared CIR and `data-exposure` reuses one semantic
49
+ 5.9.19, `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
 
53
53
  The current external pack audit intake is tracked in
54
54
  [`AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md`](AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md);
55
- the two pack fixes are included in release 5.9.18, with release-artifact verification
56
- remaining for detached execution and pack evidence.
55
+ the two pack fixes were tracked in release 5.9.18 as intended changes, and
56
+ release 5.9.19 adds the tarfile compatibility correction found by the later
57
+ re-audit. Release-artifact verification remains for detached execution and pack
58
+ evidence, and native Windows reliability evidence is still required.
57
59
 
58
- ### Reliability contracts in 5.9.18
60
+ ### Reliability contracts in 5.9.19
59
61
 
60
62
  **Failures must be visible.** `risk`, `verify`, `audit-report` and
61
63
  `migrate-check` turn unexpected analysis failures into structured
@@ -67,8 +69,11 @@ closing platform-specific findings.
67
69
  **Current Windows limitation.** The `5.9.17` external audit reproduced the
68
70
  shared worker-start failure in `risk`, `verify`, `audit-report`, `spring-audit`,
69
71
  `migrate-check` and `migrate-apply`. Do not use these commands as a production
70
- CI gate on Windows until the native matrix closes them. `pack gate --since` now
71
- uses safe UTF-8 stderr forwarding, but still requires native repeat evidence. See the
72
+ CI gate on Windows until the native matrix closes them. A 2026-08-31 re-audit
73
+ also found a separate `pack gate --since` crash in the git-ref materialization
74
+ path when the subprocess resolves to Python 3.10 and hits the Python 3.12-only
75
+ `TarFile.extract(..., filter="data")` API. Release 5.9.19 adds a compatible
76
+ fallback; the command still requires native repeat evidence. See the
72
77
  [development roadmap](DEVELOPMENT-ROADMAP.md#external-audit-intake--aud-621-re-audit-release-5917).
73
78
 
74
79
  **A deadline the root analysis honours.** `ASK_MAX_ANALYSIS_SECONDS=<seconds>` now
@@ -274,7 +279,7 @@ pipx install sourcecode # isolated install, no venv needed
274
279
 
275
280
  # Verify
276
281
  ask version
277
- # ask 5.9.17
282
+ # ask 5.9.19
278
283
  ```
279
284
 
280
285
  Requires Python 3.9+.
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "sourcecode"
7
- version = "5.9.18"
7
+ version = "5.9.19"
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.18"
7
+ __version__ = "5.9.19"
@@ -27,6 +27,7 @@ after it borrowed a parent's ref once (C3-27).
27
27
  from __future__ import annotations
28
28
 
29
29
  import subprocess
30
+ import sys
30
31
  import tarfile
31
32
  import tempfile
32
33
  from contextlib import contextmanager
@@ -149,4 +150,10 @@ def _extract_safely(tar: tarfile.TarFile, dest: Path) -> None:
149
150
  resolved = (root / member.name).resolve()
150
151
  if not str(resolved).startswith(str(root)):
151
152
  continue
152
- tar.extract(member, dest, filter="data")
153
+ # `filter` was added in Python 3.12 (PEP 706). The explicit path and
154
+ # link checks above provide the compatibility-safe extraction policy
155
+ # for the Python versions still supported by this project.
156
+ if sys.version_info >= (3, 12):
157
+ tar.extract(member, dest, filter="data")
158
+ else:
159
+ tar.extract(member, dest)
@@ -33,7 +33,7 @@ RELEASE_DATE = "2026-08-31"
33
33
  #: computation the test re-runs). The nine-day interval before 5.9.0 lowers
34
34
  #: that window to 29 releases over 18 days, so the constant follows the current
35
35
  #: measurement rather than preserving the former short-burst cadence.
36
- RELEASE_RATE_PER_DAY = 1.61
36
+ RELEASE_RATE_PER_DAY = 3.22
37
37
 
38
38
  #: How many releases behind is worth telling the operator about. Four, which on
39
39
  #: the measured cadence is about three days: one release is under a day and warning
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes