sourcecode 5.8.8__tar.gz → 5.8.10__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (384) hide show
  1. {sourcecode-5.8.8 → sourcecode-5.8.10}/CHANGELOG.md +40 -0
  2. {sourcecode-5.8.8 → sourcecode-5.8.10}/PKG-INFO +3 -3
  3. {sourcecode-5.8.8 → sourcecode-5.8.10}/README.md +2 -2
  4. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/DEFECT-LEDGER.md +75 -2
  5. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/DEVELOPMENT-ROADMAP.md +99 -7
  6. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/EXECUTIVE-ROADMAP.md +52 -3
  7. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/MANUAL-USUARIO.md +1 -1
  8. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/USER_GUIDE.md +1 -1
  9. {sourcecode-5.8.8 → sourcecode-5.8.10}/pyproject.toml +1 -1
  10. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/__init__.py +1 -1
  11. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/change_plan.py +3 -0
  12. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/cli.py +28 -17
  13. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/compare.py +1 -0
  14. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/data_exposure.py +12 -4
  15. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/explain_endpoint.py +7 -1
  16. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/output_ceiling.py +8 -3
  17. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/pr_impact.py +17 -0
  18. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/rule_catalog.py +1 -0
  19. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/security_config_scan.py +22 -0
  20. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/security_posture.py +16 -2
  21. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/selftest.py +31 -6
  22. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/spring_impact.py +4 -0
  23. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/spring_security_audit.py +78 -1
  24. {sourcecode-5.8.8 → sourcecode-5.8.10}/.github/workflows/build-windows.yml +0 -0
  25. {sourcecode-5.8.8 → sourcecode-5.8.10}/.github/workflows/perf-gate.yml +0 -0
  26. {sourcecode-5.8.8 → sourcecode-5.8.10}/.gitignore +0 -0
  27. {sourcecode-5.8.8 → sourcecode-5.8.10}/.ruff.toml +0 -0
  28. {sourcecode-5.8.8 → sourcecode-5.8.10}/CLAUDE.md +0 -0
  29. {sourcecode-5.8.8 → sourcecode-5.8.10}/CONTRIBUTING.md +0 -0
  30. {sourcecode-5.8.8 → sourcecode-5.8.10}/LICENSE +0 -0
  31. {sourcecode-5.8.8 → sourcecode-5.8.10}/NOTICE +0 -0
  32. {sourcecode-5.8.8 → sourcecode-5.8.10}/SECURITY.md +0 -0
  33. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/CACHE.md +0 -0
  34. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/COMMERCIAL-OFFER.md +0 -0
  35. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/CUSTOMER-VALIDATION.md +0 -0
  36. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/DEMO-5MIN.md +0 -0
  37. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/EXECUTION-PLAN-12MO.md +0 -0
  38. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/MODERNIZATION.md +0 -0
  39. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/PRODUCT_AUDIT.md +0 -0
  40. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/PRODUCT_IDENTITY.md +0 -0
  41. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/PRODUCT_TIERS.md +0 -0
  42. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/RC1-CHECKLIST.md +0 -0
  43. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/RELEASE-CHECKLIST.md +0 -0
  44. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/architecture/CATALOG-retrieval-intents.md +0 -0
  45. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/architecture/DESIGN-knowledge-provider-integration.md +0 -0
  46. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/architecture/DESIGN-p5.3b-statement-surface.md +0 -0
  47. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/architecture/DESIGN-p5.5-span-index.md +0 -0
  48. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/architecture/DESIGN-p6-semantic-impact-engine.md +0 -0
  49. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/architecture/DESIGN-p6-semantic-integration-engine.md +0 -0
  50. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/architecture/DESIGN-p7-semantic-services.md +0 -0
  51. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/architecture/DESIGN-robustness-security-inference.md +0 -0
  52. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/architecture/DESIGN-semantic-retrieval.md +0 -0
  53. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/architecture/EPV-p6-class-typeref.md +0 -0
  54. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/architecture/REPORT-p6-flow-analyzer-comparison.md +0 -0
  55. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/architecture/REPORT-p6-integration-detector-comparison.md +0 -0
  56. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/architecture/REPORT-p8-flow-analyzer-migration.md +0 -0
  57. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/architecture/REPORT-p9-integration-detector-migration.md +0 -0
  58. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/architecture/adr/0001-semantic-ir.md +0 -0
  59. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/architecture/adr/0002-source-evidence-boundary.md +0 -0
  60. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/architecture/adr/0003-architectural-characterization.md +0 -0
  61. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/architecture/adr/0004-semantic-retrieval.md +0 -0
  62. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/architecture/adr/0005-evidence-reconciliation.md +0 -0
  63. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/architecture/adr/0006-performance-harness.md +0 -0
  64. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/architecture/adr/0007-composition-semantics.md +0 -0
  65. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/architecture/adr/0008-answer-coherence.md +0 -0
  66. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/architecture/consumer-disposition-inventory.md +0 -0
  67. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/architecture/overview.md +0 -0
  68. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/architecture/product-architecture-review.md +0 -0
  69. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/architecture/product-strategy-layering.md +0 -0
  70. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/architecture/semantic-ir-consumer-matrix.md +0 -0
  71. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/architecture/semantic-ir-roadmap.md +0 -0
  72. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/baseline-ci.yml +0 -0
  73. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/commercial-pipeline-audit.md +0 -0
  74. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/contracts-ci.yml +0 -0
  75. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/contracts.md +0 -0
  76. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/eval/2026-06-15-petclinic-rest-issue11-vets-pagination.md +0 -0
  77. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/eval/2026-06-15-petclinic-rest-issue147-validation.md +0 -0
  78. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/eval/2026-06-15-petclinic-rest-workflow.md +0 -0
  79. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/eval/2026-06-15-phase18-openapi-surface.md +0 -0
  80. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/eval/2026-06-15-phase20-validation-surface.md +0 -0
  81. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/eval/2026-06-16-broadleaf-checkout-impact-fieldtest.md +0 -0
  82. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/eval/2026-06-16-petclinic-rest-issue11-weakness2-closed.md +0 -0
  83. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/eval/2026-06-16-spring-petclinic-issue2333-dead-vets.md +0 -0
  84. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/licensing-schema.md +0 -0
  85. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/migrate-check.md +0 -0
  86. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/README.md +0 -0
  87. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/REGRESSION-GATE.md +0 -0
  88. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.15/SUMMARY.md +0 -0
  89. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.15/alfresco__ask__cold.json +0 -0
  90. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.15/alfresco__ask__warm.json +0 -0
  91. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.15/broadleaf__ask__cold.json +0 -0
  92. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.15/broadleaf__ask__warm.json +0 -0
  93. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.15/eureka__ask__cold.json +0 -0
  94. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.15/eureka__ask__warm.json +0 -0
  95. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.15/jenkins__ask__cold.json +0 -0
  96. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.15/jenkins__ask__warm.json +0 -0
  97. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.15/jobrunr__ask__cold.json +0 -0
  98. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.15/jobrunr__ask__warm.json +0 -0
  99. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.15/keycloak__ask__cold.json +0 -0
  100. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.15/keycloak__ask__warm.json +0 -0
  101. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.15/neo4j__ask__cold.json +0 -0
  102. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.15/neo4j__ask__warm.json +0 -0
  103. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.15/ofbiz__ask__cold.json +0 -0
  104. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.15/ofbiz__ask__warm.json +0 -0
  105. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.15/openmrs__ask__cold.json +0 -0
  106. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.15/openmrs__ask__warm.json +0 -0
  107. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.15/petclinic__ask__cold.json +0 -0
  108. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.15/petclinic__ask__warm.json +0 -0
  109. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.16/SUMMARY.md +0 -0
  110. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.16/alfresco__ask__cold.json +0 -0
  111. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.16/alfresco__ask__warm.json +0 -0
  112. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.16/broadleaf__ask__cold.json +0 -0
  113. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.16/broadleaf__ask__warm.json +0 -0
  114. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.16/eureka__ask__cold.json +0 -0
  115. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.16/eureka__ask__warm.json +0 -0
  116. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.16/jenkins__ask__cold.json +0 -0
  117. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.16/jenkins__ask__warm.json +0 -0
  118. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.16/jobrunr__ask__cold.json +0 -0
  119. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.16/jobrunr__ask__warm.json +0 -0
  120. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.16/keycloak__ask__cold.json +0 -0
  121. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.16/keycloak__ask__warm.json +0 -0
  122. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.16/neo4j__ask__cold.json +0 -0
  123. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.16/neo4j__ask__warm.json +0 -0
  124. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.16/ofbiz__ask__cold.json +0 -0
  125. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.16/ofbiz__ask__warm.json +0 -0
  126. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.16/openmrs__ask__cold.json +0 -0
  127. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.16/openmrs__ask__warm.json +0 -0
  128. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.16/petclinic__ask__cold.json +0 -0
  129. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/2.5.16/petclinic__ask__warm.json +0 -0
  130. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/gate-latest/README.md +0 -0
  131. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/gate-latest/broadleaf__ask__warm.json +0 -0
  132. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/gate-latest/broadleaf__endpoints__warm.json +0 -0
  133. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/gate-latest/broadleaf__migrate-check__warm.json +0 -0
  134. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/gate-latest/broadleaf__posture__warm.json +0 -0
  135. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/gate-latest/broadleaf__spring-audit__warm.json +0 -0
  136. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/gate-latest/broadleaf__validation__warm.json +0 -0
  137. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/perf/baselines/reference-best/README.md +0 -0
  138. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/posture.md +0 -0
  139. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/privacy.md +0 -0
  140. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/pro-experience-audit.md +0 -0
  141. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/schema.md +0 -0
  142. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/spec/envelope-v1.md +0 -0
  143. {sourcecode-5.8.8 → sourcecode-5.8.10}/docs/spring-audit-ci.yml +0 -0
  144. {sourcecode-5.8.8 → sourcecode-5.8.10}/scripts/compare_integration_engines.py +0 -0
  145. {sourcecode-5.8.8 → sourcecode-5.8.10}/scripts/customer_smoke_test.sh +0 -0
  146. {sourcecode-5.8.8 → sourcecode-5.8.10}/scripts/generate_jdk_exports.py +0 -0
  147. {sourcecode-5.8.8 → sourcecode-5.8.10}/scripts/perf_gate.py +0 -0
  148. {sourcecode-5.8.8 → sourcecode-5.8.10}/scripts/perf_harness.py +0 -0
  149. {sourcecode-5.8.8 → sourcecode-5.8.10}/scripts/sync_gate_anchors.py +0 -0
  150. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/adaptive_scanner.py +0 -0
  151. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/answer_bounds.py +0 -0
  152. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/archetype.py +0 -0
  153. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/architectural_baseline.py +0 -0
  154. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/architectural_delta.py +0 -0
  155. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/architecture_analyzer.py +0 -0
  156. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/architecture_summary.py +0 -0
  157. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/ast_extractor.py +0 -0
  158. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/audit_clusters.py +0 -0
  159. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/audit_recipe.py +0 -0
  160. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/audit_report.py +0 -0
  161. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/audit_since.py +0 -0
  162. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/baseline_autocapture.py +0 -0
  163. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/breaking_changes.py +0 -0
  164. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/build_modules.py +0 -0
  165. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/bundled_docs.py +0 -0
  166. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/cache.py +0 -0
  167. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/cache_model.py +0 -0
  168. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/call_surface.py +0 -0
  169. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/caller_metrics.py +0 -0
  170. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/caller_reach.py +0 -0
  171. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/canonical_ir.py +0 -0
  172. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/chain_rules.py +0 -0
  173. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/cir_graphs.py +0 -0
  174. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/classifier.py +0 -0
  175. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/client_calls.py +0 -0
  176. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/code_notes_analyzer.py +0 -0
  177. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/confidence_analyzer.py +0 -0
  178. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/constraint_diff.py +0 -0
  179. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/consumer_join.py +0 -0
  180. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/container_wiring.py +0 -0
  181. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/context_cache.py +0 -0
  182. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/context_graph.py +0 -0
  183. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/context_scorer.py +0 -0
  184. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/context_summarizer.py +0 -0
  185. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/contract_diff.py +0 -0
  186. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/contract_init.py +0 -0
  187. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/contract_model.py +0 -0
  188. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/contract_pipeline.py +0 -0
  189. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/coverage_parser.py +0 -0
  190. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/data_labels.py +0 -0
  191. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/declarations.py +0 -0
  192. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/defect_identity.py +0 -0
  193. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/degradation.py +0 -0
  194. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/dependency_analyzer.py +0 -0
  195. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/deployment_prefix.py +0 -0
  196. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/detach.py +0 -0
  197. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/detectors/__init__.py +0 -0
  198. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/detectors/base.py +0 -0
  199. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/detectors/csproj_parser.py +0 -0
  200. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/detectors/dart.py +0 -0
  201. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/detectors/dotnet.py +0 -0
  202. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/detectors/elixir.py +0 -0
  203. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/detectors/go.py +0 -0
  204. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/detectors/heuristic.py +0 -0
  205. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/detectors/hybrid.py +0 -0
  206. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/detectors/java.py +0 -0
  207. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/detectors/jvm_ext.py +0 -0
  208. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/detectors/nodejs.py +0 -0
  209. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/detectors/parsers.py +0 -0
  210. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/detectors/php.py +0 -0
  211. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/detectors/project.py +0 -0
  212. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/detectors/python.py +0 -0
  213. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/detectors/ruby.py +0 -0
  214. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/detectors/rust.py +0 -0
  215. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/detectors/systems.py +0 -0
  216. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/detectors/terraform.py +0 -0
  217. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/detectors/tooling.py +0 -0
  218. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/doc_analyzer.py +0 -0
  219. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/dynamic_argument_surface.py +0 -0
  220. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/empty_reach.py +0 -0
  221. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/endpoint_disposition.py +0 -0
  222. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/endpoint_literals.py +0 -0
  223. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/endpoint_metrics.py +0 -0
  224. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/entrypoint_classifier.py +0 -0
  225. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/env_analyzer.py +0 -0
  226. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/envelope.py +0 -0
  227. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/environment_resolution.py +0 -0
  228. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/error_schema.py +0 -0
  229. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/evidence_provider.py +0 -0
  230. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/execution_plan.py +0 -0
  231. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/explain.py +0 -0
  232. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/facts/__init__.py +0 -0
  233. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/facts/registry.json +0 -0
  234. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/field_deprecations.py +0 -0
  235. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/file_chunker.py +0 -0
  236. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/file_classifier.py +0 -0
  237. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/filter_surface.py +0 -0
  238. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/format_contract.py +0 -0
  239. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/fqn_utils.py +0 -0
  240. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/functional_routes.py +0 -0
  241. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/gate_anchors.py +0 -0
  242. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/git_analyzer.py +0 -0
  243. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/git_checkout.py +0 -0
  244. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/graph_analyzer.py +0 -0
  245. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/graph_evidence.py +0 -0
  246. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/hibernate_strat.py +0 -0
  247. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/identity_fallback.py +0 -0
  248. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/integration_coordinates.py +0 -0
  249. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/jdk_exports.py +0 -0
  250. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/license.py +0 -0
  251. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/manifest_cache.py +0 -0
  252. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/mcp/__init__.py +0 -0
  253. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/mcp/dependency_import.py +0 -0
  254. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
  255. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/mcp/onboarding/applier.py +0 -0
  256. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/mcp/onboarding/backup.py +0 -0
  257. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/mcp/onboarding/detector.py +0 -0
  258. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/mcp/onboarding/planner.py +0 -0
  259. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/mcp/orchestrator.py +0 -0
  260. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/mcp/registry.py +0 -0
  261. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/mcp/runner.py +0 -0
  262. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/mcp/server.py +0 -0
  263. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/mcp_nudge.py +0 -0
  264. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/metrics_analyzer.py +0 -0
  265. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/migrate_check.py +0 -0
  266. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/migration_blast.py +0 -0
  267. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/non_coverage.py +0 -0
  268. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/openapi_surface.py +0 -0
  269. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/openrewrite_recipe.py +0 -0
  270. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/output_bounds.py +0 -0
  271. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/output_budget.py +0 -0
  272. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/output_encoding.py +0 -0
  273. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/output_sink.py +0 -0
  274. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/parallel.py +0 -0
  275. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/parse_cache.py +0 -0
  276. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/partial_contract.py +0 -0
  277. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/path_admission.py +0 -0
  278. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/path_filters.py +0 -0
  279. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/perf.py +0 -0
  280. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/phased_run.py +0 -0
  281. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/pipe_contract.py +0 -0
  282. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/posture.py +0 -0
  283. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/pr_comment_renderer.py +0 -0
  284. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/prepare_context.py +0 -0
  285. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/product_info.py +0 -0
  286. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/progress.py +0 -0
  287. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/provenance.py +0 -0
  288. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/ranking_engine.py +0 -0
  289. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/readiness_timeline.py +0 -0
  290. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/readonly.py +0 -0
  291. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/reconciliation.py +0 -0
  292. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/redactor.py +0 -0
  293. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/reference_facts.py +0 -0
  294. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/regress.py +0 -0
  295. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/release_info.py +0 -0
  296. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/relevance_scorer.py +0 -0
  297. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/remediation_diff.py +0 -0
  298. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/remedies.py +0 -0
  299. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/rename_refactor.py +0 -0
  300. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/repo_classifier.py +0 -0
  301. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/repository_ir.py +0 -0
  302. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/retrieval/__init__.py +0 -0
  303. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/retrieval/context.py +0 -0
  304. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/retrieval/errors.py +0 -0
  305. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/retrieval/executor.py +0 -0
  306. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/retrieval/planner.py +0 -0
  307. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/retrieval/query.py +0 -0
  308. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/retrieval/request.py +0 -0
  309. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/retrieval/resolution.py +0 -0
  310. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/retrieval/result.py +0 -0
  311. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/retrieval/retriever.py +0 -0
  312. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/retrieval/runtime.py +0 -0
  313. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/retrieval/steps.py +0 -0
  314. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/retrieval/steps_endpoint.py +0 -0
  315. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/retrieval/steps_graph.py +0 -0
  316. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/retrieval/steps_impact.py +0 -0
  317. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/retrieval/steps_intf.py +0 -0
  318. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/retrieval/steps_struct.py +0 -0
  319. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/retrieval/steps_txsec.py +0 -0
  320. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/ris.py +0 -0
  321. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/risk.py +0 -0
  322. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/risk_model.py +0 -0
  323. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/rule_pass.py +0 -0
  324. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/runs.py +0 -0
  325. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/runtime_classifier.py +0 -0
  326. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/sarif.py +0 -0
  327. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/scanner.py +0 -0
  328. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/schema.py +0 -0
  329. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/schema_producers.py +0 -0
  330. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/schema_registry.py +0 -0
  331. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/schemas/core-analysis-v1.schema.json +0 -0
  332. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/schemas/endpoints-v1.schema.json +0 -0
  333. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/schemas/envelope-v1.schema.json +0 -0
  334. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/schemas/pr-impact-v1.schema.json +0 -0
  335. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/schemas/verify-edit-v1.schema.json +0 -0
  336. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/schemas/verify-v1.schema.json +0 -0
  337. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/security_chain.py +0 -0
  338. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/security_config.py +0 -0
  339. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/semantic_analyzer.py +0 -0
  340. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/semantic_impact_engine.py +0 -0
  341. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/semantic_integration_engine.py +0 -0
  342. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/semantic_services.py +0 -0
  343. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/serializer.py +0 -0
  344. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/servlet_surface.py +0 -0
  345. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/source_text.py +0 -0
  346. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/spring_event_topology.py +0 -0
  347. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/spring_findings.py +0 -0
  348. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/spring_model.py +0 -0
  349. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/spring_profiles.py +0 -0
  350. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/spring_properties.py +0 -0
  351. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/spring_semantic.py +0 -0
  352. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/spring_tx_analyzer.py +0 -0
  353. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/sql_taint.py +0 -0
  354. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/summarizer.py +0 -0
  355. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/target_admission.py +0 -0
  356. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/telemetry/__init__.py +0 -0
  357. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/telemetry/config.py +0 -0
  358. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/telemetry/consent.py +0 -0
  359. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/telemetry/events.py +0 -0
  360. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/telemetry/filters.py +0 -0
  361. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/telemetry/transport.py +0 -0
  362. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/test_gap_ranking.py +0 -0
  363. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/test_sources.py +0 -0
  364. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/text_input.py +0 -0
  365. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/timeline.py +0 -0
  366. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/timeline_cache.py +0 -0
  367. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/token_estimate.py +0 -0
  368. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/tree_utils.py +0 -0
  369. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/type_usage_surface.py +0 -0
  370. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/validation_inference.py +0 -0
  371. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/validation_surface.py +0 -0
  372. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/verify_edit.py +0 -0
  373. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/verify_repo.py +0 -0
  374. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/verify_rules.py +0 -0
  375. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/version_check.py +0 -0
  376. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/waivers.py +0 -0
  377. {sourcecode-5.8.8 → sourcecode-5.8.10}/src/sourcecode/workspace.py +0 -0
  378. {sourcecode-5.8.8 → sourcecode-5.8.10}/supabase/functions/README.md +0 -0
  379. {sourcecode-5.8.8 → sourcecode-5.8.10}/supabase/functions/get-license/index.ts +0 -0
  380. {sourcecode-5.8.8 → sourcecode-5.8.10}/supabase/functions/lemonsqueezy-webhook/index.ts +0 -0
  381. {sourcecode-5.8.8 → sourcecode-5.8.10}/supabase/functions/telemetry/index.ts +0 -0
  382. {sourcecode-5.8.8 → sourcecode-5.8.10}/supabase/sql/license_event_ordering.sql +0 -0
  383. {sourcecode-5.8.8 → sourcecode-5.8.10}/supabase/sql/licensing_schema.sql +0 -0
  384. {sourcecode-5.8.8 → sourcecode-5.8.10}/supabase/sql/telemetry_events.sql +0 -0
@@ -1,5 +1,45 @@
1
1
  # Changelog
2
2
 
3
+ ## [5.8.10] — 2026-08-19
4
+
5
+ *Audit-remediation release: the 5.8.9 re-audit defects that were reproducible in
6
+ the repository now have one authority, a regression test and an atomic fix.*
7
+
8
+ ### Fixed
9
+ - A failed `--output` write can no longer be marked delivered by the common
10
+ progress seam; the global promise guard now returns `EXECUTION_FAILED` rather
11
+ than allowing exit 0 without the requested artifact.
12
+ - `selftest` ASK-09 reads `error.code`, `error.hint` and `hint_basis` from both
13
+ supported output-envelope shapes, so a valid ceiling refusal passes its own
14
+ gate.
15
+ - `spring-audit` emits `SEC-009` for active request-chain `permitAll()` rules,
16
+ including static `@Profile` evidence; `permit_all_rules` replaces the ambiguous
17
+ aggregate metadata name.
18
+ - `data-exposure`, `pr-impact`, `plan` and `compare` retain their relevant chain
19
+ decision or container-wiring floor instead of presenting the uncovered surface
20
+ as unaffected.
21
+ - `impact` discloses its independent 50,000-byte stdout budget, and
22
+ `impact-chain` names the population counted by `security_surfaces`.
23
+
24
+ ### Remaining audit work
25
+ - Provider-specific migration disclosure, the residual answer-contract parity
26
+ items, and cost/progress calibration remain tracked in the roadmaps; EclipseLink
27
+ support itself remains a deferred product feature.
28
+
29
+ ## [5.8.9] — 2026-08-19
30
+
31
+ *Feature reconciliation release: the ASK 5.8.8 audit recommendations were
32
+ verified against the current implementation and their deferred work is now
33
+ explicitly recorded.*
34
+
35
+ ### Feature status
36
+ - EclipseLink remains deferred as a product axis; current migration output uses
37
+ the honest `non_coverage` contract rather than inferring Hibernate work.
38
+ - Shared answer contracts, versioned performance baselines, progress controls and
39
+ safe audit-coverage checks are shipped and covered by the regression battery.
40
+ - No new parallel heuristics were introduced for recommendations already served
41
+ by existing authorities.
42
+
3
43
  ## [5.8.8] — 2026-08-19
4
44
 
5
45
  *Follow-up bug fixes after the 5.8.7 audit, with cache correctness, Java source
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sourcecode
3
- Version: 5.8.8
3
+ Version: 5.8.10
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
@@ -49,7 +49,7 @@ Description-Content-Type: text/markdown
49
49
 
50
50
  **Context · Impact · Migration · Architecture · Review — everything from one structural model.**
51
51
 
52
- ![Version](https://img.shields.io/badge/version-5.8.8-blue)
52
+ ![Version](https://img.shields.io/badge/version-5.8.10-blue)
53
53
  ![Python](https://img.shields.io/badge/python-3.9%2B-green)
54
54
 
55
55
  Copyright (c) 2026 Dominique Haroun. All rights reserved. ASK Engine 5.7.0 and
@@ -139,7 +139,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
139
139
  # pip / pipx
140
140
  pipx install sourcecode # or: pip install sourcecode
141
141
 
142
- ask version # ask 5.8.8 — and, on a build that has aged,
142
+ ask version # ask 5.8.10 — and, on a build that has aged,
143
143
  # how many releases have probably shipped since
144
144
  ```
145
145
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  **Context · Impact · Migration · Architecture · Review — everything from one structural model.**
6
6
 
7
- ![Version](https://img.shields.io/badge/version-5.8.8-blue)
7
+ ![Version](https://img.shields.io/badge/version-5.8.10-blue)
8
8
  ![Python](https://img.shields.io/badge/python-3.9%2B-green)
9
9
 
10
10
  Copyright (c) 2026 Dominique Haroun. All rights reserved. ASK Engine 5.7.0 and
@@ -94,7 +94,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
94
94
  # pip / pipx
95
95
  pipx install sourcecode # or: pip install sourcecode
96
96
 
97
- ask version # ask 5.8.8 — and, on a build that has aged,
97
+ ask version # ask 5.8.10 — and, on a build that has aged,
98
98
  # how many releases have probably shipped since
99
99
  ```
100
100
 
@@ -16,8 +16,23 @@ The facts these rows are keyed to are published: `ask schema facts-v1` prints th
16
16
 
17
17
  ## Current Synchronization
18
18
 
19
- **As of 2026-08-19, HEAD `f39432b`:** the latest audit queue was implemented in fourteen
20
- post-5.8.7 commits. These are committed follow-up fixes, not a tagged release. This table is
19
+ **As of 2026-08-19, the `5.8.10` release commit:** this is the current status of
20
+ the 5.8.9 re-audit queue. The audit observations below remain historical evidence;
21
+ only the table here declares present state.
22
+
23
+ | Rows | Current status | Evidence |
24
+ |---|---|---|
25
+ | `AUD-588-B01`, `AUD-589-B01`, `C3-122` | **closed** | `20596c8`; failed writes cannot suppress the global output-promise guard, covering both `risk` and `audit-report` emit paths. |
26
+ | `AUD-588-B03` | **closed** | `16a52cc`; `SEC-009`, static `@Profile` evidence and `permit_all_rules` are emitted with regressions. |
27
+ | `AUD-588-B04` | **closed** | `fd34eb1`; `data-exposure` preserves the chain decision for every route. |
28
+ | `AUD-588-B05` | **closed** | `c15f5b6`; changed container-wired components block a false `unaffected` disposition. |
29
+ | `AUD-588-B07` | **closed** | `5cc6ba7`; ASK-09 reads the envelope error contract and covers the wrapped shape. |
30
+ | `AUD-588-B08` | **closed** | `c084555`; `impact` publishes its independent stdout-byte budget. |
31
+ | `AUD-588-B11` (container/units subset) | **closed** | `ca72b61`, `a49cf6a`; plan/compare publish container wiring and impact-chain names security-surface units. |
32
+ | `AUD-588-B02`, `B06`, B11 residuals, `B12` | **open** | Require provider non-coverage verification, remaining contract parity and controlled cost calibration; no closure is inferred from the release. |
33
+
34
+ **As of 2026-08-19, the `5.8.9` release commit:** the latest audit queue was implemented in
35
+ committed post-5.8.7 fixes. This table is
21
36
  the authoritative status for round 11; detailed rows retain their original findings and
22
37
  acceptance criteria for auditability.
23
38
 
@@ -38,6 +53,64 @@ acceptance criteria for auditability.
38
53
  | `C3-55` | **closed** | `63249df`; below-floor analysis budgets warn in noninteractive runs while execution continues |
39
54
  | `C3-55` regression | **closed** | `f39432b`; above-floor provenance remains quiet off-TTY and is emitted interactively |
40
55
 
56
+ ## Current Audit Intake: 5.8.8
57
+
58
+ The external audit of `ask 5.8.8` against `saint-server` (`HEAD 3dde0376`, 3,342 Java
59
+ files, Windows 11/Git Bash, `ASK_READONLY=1`) scored **75/100** and exercised **53/61
60
+ invocables (87%)**. The repository stayed byte-identical. These findings are new relative
61
+ to the closed round-11 queue and are not marked closed until reproduced and covered here.
62
+
63
+ | ID | Severity | Defect | Initial status |
64
+ |---|---|---|---|
65
+ | `AUD-588-B01` | Critical | `risk` can exit 0 with empty stdout and fail to create `-o`; long runs also vary widely. | **open — reproduce first; require parseable output or typed non-zero error** |
66
+ | `AUD-588-B02` | High | `migrate-check` includes an inapplicable Hibernate axis and publishes ghost effort for an EclipseLink repository. | **open — fix applicability/aggregate; add fixture** |
67
+ | `AUD-588-B03` | High | `spring-audit` lacks an active `permitAll` rule and does not expose security-bean profile activation state. | **open — reuse posture access/profile projection** |
68
+ | `AUD-588-B04` | High | `explain-endpoint` and `data-exposure` discard a derived `permit_all` chain decision and emit `coverage_unknown`. | **open — make verdict consume the chain authority** |
69
+ | `AUD-588-B05` | High | `pr-impact.endpoint_disposition` marks all endpoints unaffected despite container-wired security changes. | **open — propagate to `unknown` or publish a disposition caveat** |
70
+ | `AUD-588-B06` | Medium | `migrate-check` is the only audited command without `non_coverage`, hiding the EclipseLink gap. | **open — disclosure before product expansion** |
71
+ | `AUD-588-B07` | Medium | ASK-09 selftest failure is not reproducible and the row omits its probe command and observed excerpt. | **open — publish probe provenance and assert error code first** |
72
+ | `AUD-588-B08` | Medium | Output-too-large hints recommend a rejected subcommand flag and omit the independent byte budget. | **open — derive flags and disclose both budgets** |
73
+ | `AUD-588-B09` | Medium | `rename-class` reuses `-f` for `--from`, conflicting with the CLI-wide format alias and allowing silent overwrite. | **open — remove collision or reject duplicate destinations** |
74
+ | `AUD-588-B10` | Medium | `baseline diff` lacks `--dir`, breaking the external read-only capture/trend/diff flow. | **open — restore flag parity with regression coverage** |
75
+ | `AUD-588-B11` | Medium | Seven cross-command contract inconsistencies mix naming, units, container-wired warnings, build discovery, populations and tier claims. | **open — solve through shared fact/units authorities** |
76
+ | `AUD-588-B12` | Low/Medium | Cost model is stale by up to 1.74x at warm cache and long commands can be silent until timeout. | **open — remeasure 5.8.8 and add default foreground progress** |
77
+
78
+ ### Re-audit Intake: 5.8.9
79
+
80
+ The same external auditor re-ran the same `saint-server` snapshot under the same
81
+ read-only protocol against 5.8.9. Score: **80/100** (75 previously), still **53/61
82
+ invocables (87%)**. The CIR remained byte-identical. This reopens false closures and
83
+ adds one newly observable zero-output path; it does not duplicate the rows above.
84
+
85
+ | ID / lineage | Status | Evidence and next action |
86
+ |---|---|---|
87
+ | `AUD-588-B01` / `C3-122` | **reopened, critical** | `risk` exits 0 with empty stdout and can omit a promised `-o` file. Fix early/partial composition and enforce a typed failure or parseable answer through the real entry point. |
88
+ | `AUD-588-B02` + `B06` | **open, critical** | EclipseLink still receives a Hibernate axis and `non_coverage` is null. Make `not_applicable_reason` authoritative for applicability, effort and aggregate; publish provider non-coverage. |
89
+ | `AUD-588-B03` | **partial** | `permitAll` evidence and profiles are present, but no rule or per-finding activation state exists; rename `active_permit_all` to an honest per-entry contract. |
90
+ | `AUD-588-B04` | **partial** | `explain-endpoint` is fixed; `data-exposure` still reports `coverage_unknown` for chain-permitted routes. |
91
+ | `AUD-588-B05` | **regression** | `unaffected_basis` claims no blocker while container-wired changes are present. Demote routes or publish a blocker/caveat; preserve `affected + unknown + unaffected = total`. |
92
+ | `AUD-588-B07` | **partial** | Selftest publishes provenance but reads `error.code` at the wrong envelope level, producing a false `error` instead of `pass`. |
93
+ | `AUD-588-B08` | **partial** | `impact` still trims stdout at 50,000 bytes after the token ceiling is raised without naming that second budget. |
94
+ | `AUD-588-B11` | **open, six residuals** | `plan`/`compare` miss container reach; units, build discovery, populations and risk tier still diverge. |
95
+ | `AUD-588-B12` | **partial** | Timeline completes, but cost anchors are stale and long foreground commands remain silent by default. |
96
+ | `AUD-589-B01` | **new, high** | `audit-report` can exit 0 with empty stdout; its `-o` path diverges and leaves partial evidence when killed. Reuse the working `_partial` and output-promise contracts. |
97
+ | `AUD-589-B02` | **unconfirmed performance suspicion** | `data-exposure --config` was measured 2.76x slower with identical output; require convergent controlled measurements before code changes. |
98
+
99
+ ### Recommended Features From This Audit
100
+
101
+ | ID | Recommendation | Classification |
102
+ |---|---|---|
103
+ | `AUD-588-F01` | Explicit EclipseLink/JPA-provider migration axis, including namespace and coordinate changes. | **Deferred**; its prerequisite provider `non_coverage` disclosure is still open. |
104
+ | `AUD-588-F02` | Shared answer-contract layer for units, populations, caveats and container-wired reach. | **Partially covered**; six consumers remain disconnected according to the re-audit. |
105
+ | `AUD-588-F03` | Versioned cost-model calibration by repository size and cache state. | **Partially covered**; schema and dimensions exist, but 5.1.0-era anchors are stale. |
106
+ | `AUD-588-F04` | Default progress/heartbeat for long foreground commands without contaminating machine-readable stdout. | **Explicit opt-in by decision**, not default coverage; update cost advice accordingly. |
107
+ | `AUD-588-F05` | Controlled audit-coverage expansion from 87% to 90% via safe `auth logout`, reversible `telemetry disable` and dirty-tree `verify-edit` checks. | **Locally verified only**; external audit remains at 87% with eight blocked invocables. |
108
+
109
+ **Recommended fix order:** `B01`, `B02`, `B04`, `B03`, `B05/B11`, `B08/B09`, `B07`,
110
+ then `B06/B10/B12`. The dirty-tree `verify-edit` path remains unverified, not confirmed
111
+ broken; the audit's positive results for inheritance, profile posture, caps, non-coverage,
112
+ read-only flows and typed errors are regression anchors for this queue.
113
+
41
114
  The current full-suite exceptions are environmental or pre-existing measurement gaps,
42
115
  not silently accepted fixes: RIS tests cannot write the default `~/.sourcecode/cache`
43
116
  under the managed sandbox; `cold-start` therefore reports `no_ris`. The E-6 module-name
@@ -3,10 +3,24 @@
3
3
  *Chief-engineer development record. This is the internal, dev-facing counterpart to the
4
4
  customer-facing `docs/EXECUTIVE-ROADMAP.md`.*
5
5
 
6
- > **CURRENT STATE — 2026-08-19 — 5.8.8 working tree**
6
+ > **CURRENT STATE — 2026-08-19 — 5.8.10 release**
7
7
  >
8
- > The tagged baseline is `5.8.7` (`9aa9852`); the working version is `5.8.8`. Fourteen follow-up fix commits are now applied
9
- > through `f39432b`; this is post-release work, not a new tagged release.
8
+ > The 5.8.9 re-audit battery closed the reproducible output, envelope, security-chain
9
+ > and container-reach defects in atomic commits. `20596c8` fixes the output-promise
10
+ > seam; `16a52cc` adds `SEC-009` and profile evidence; `fd34eb1`, `c15f5b6`,
11
+ > `5cc6ba7`, `c084555`, `ca72b61` and `a49cf6a` close the independent consumer
12
+ > regressions. Targeted cross-command regression suites pass.
13
+ >
14
+ > Remaining work is explicit: provider-specific migration non-coverage (`B02/B06`),
15
+ > the unresolved portions of answer-contract parity (`B11`), controlled cost-model
16
+ > recalibration and the opt-in progress decision (`B12`). EclipseLink migration support
17
+ > remains a deferred feature, not a bug fix. Historical 5.8.9 intake tables below are
18
+ > superseded by this block where their statuses differ.
19
+
20
+ > **CURRENT STATE — 2026-08-19 — 5.8.9 working tree**
21
+ >
22
+ > The tagged baseline is `5.8.7` (`9aa9852`); the working version is `5.8.9`. The
23
+ > 5.8.8 audit fixes and feature reconciliation are included in this release commit.
10
24
  >
11
25
  > | Scope | Status | Evidence |
12
26
  > |---|---|---|
@@ -24,16 +38,94 @@ customer-facing `docs/EXECUTIVE-ROADMAP.md`.*
24
38
  > **The round-11 bug queue is now closed.** `R2`, `P1-proc`, `C3-127`, `C3-129` and `B21`
25
39
  > were already shipped in 5.8.6; `C3-84` was corrected by measurement and its disclosure
26
40
  > half shipped in the same period. They are not current bugs. Targeted regression tests for
27
- > this queue pass. The full suite still has seven known,
28
- > unrelated failures in polyglot dependency parsing, Java test-module exclusion, RIS/cold-start
29
- > fixtures and the advisory-budget warning fixture; they are not attributed to these commits.
30
- > Four additional fixes are now recorded in the ledger: `af79bb3` (dependency-cache
41
+ > this queue pass. The previous suite exceptions were separately classified as environment
42
+ > or historical-fixture gaps; they are not attributed to these commits. Four additional fixes
43
+ > are recorded in the ledger: `af79bb3` (dependency-cache
31
44
  > identity), `f29312e` (Java `-test`/`-tests` modules), `63249df` and `f39432b` (budget
32
45
  > warning behavior). The full suite still has seven environment or historical-fixture
33
46
  > failures: four E-6 publication assertions, ASK-09 real-scale `cold-start`, and two
34
47
  > RIS/cold-start assertions blocked by the sandbox's unwritable default cache. Everything
35
48
  > below is historical audit evidence unless it explicitly says **CURRENT STATE**.
36
49
 
50
+ > **CURRENT AUDIT INTAKE — 2026-08-19 — ASK 5.8.8 on `saint-server`**
51
+ >
52
+ > External audit score: **75/100**, coverage **53/61 invocables (87%)**, subject snapshot
53
+ > `3dde0376`, Windows 11/Git Bash, `ASK_READONLY=1`. The repository remained byte-identical.
54
+ > This intake supersedes the statement that the current bug queue is empty: the previous
55
+ > round-11 queue is closed, but this new audit reports the following actionable defects.
56
+ >
57
+ > ### Bugs Reported
58
+ >
59
+ > | ID | Priority | Finding | Intake / next action |
60
+ > |---|---|---|---|
61
+ > | `AUD-588-B01` | P0 | `risk` can exit 0 with empty stdout and fail to create `-o`; long runs are also nondeterministic. | Reproduce on a clean single-process fixture; enforce parseable output or typed non-zero error. Add the invariant that exit 0 cannot carry an empty result. |
62
+ > | `AUD-588-B02` | P1 | `migrate-check` includes the Hibernate axis and ghost effort after its evidence says EclipseLink makes it inapplicable. | Make aggregate inputs consult `not_applicable_reason`; add a non-applicable provider fixture. Group the effort removal with this fix. |
63
+ > | `AUD-588-B03` | P1 | `spring-audit` lacks an active `permitAll` rule and does not publish profile activation state for security findings. | Reuse posture's profile/access projection; add the active-chain rule and conditional activation metadata without treating assumptions as certainty. |
64
+ > | `AUD-588-B04` | P1 | `explain-endpoint` and `data-exposure` discard a derived `permit_all` chain decision and publish `coverage_unknown`. | Make the verdict consume the already-derived chain step; preserve `coverage_unknown` only when the chain is undecidable. |
65
+ > | `AUD-588-B05` | P1 | `pr-impact.endpoint_disposition` reports all 3,742 endpoints as unaffected while the same payload marks the changed security component container-wired and high risk. | Propagate container-wired reach into `unknown` or add an explicit disposition caveat while preserving `affected + unknown + unaffected == total`. |
66
+ > | `AUD-588-B06` | P2 | `migrate-check` is the only audited command without `non_coverage`, hiding the EclipseLink product gap. | Add a provider/JPA non-coverage item before implementing new migration logic. |
67
+ > | `AUD-588-B07` | P2 | `selftest` ASK-09 fails for a non-reproducible reason and does not publish the probe command or observed excerpt. | Add `probe_command` and `observed_payload_excerpt` to every row; assert the error code before checking hint fields. |
68
+ > | `AUD-588-B08` | P2 | Output-too-large hints recommend a subcommand-rejected `--max-output-tokens` flag and omit the independent stdout-byte budget. | Derive flags from the command; mention the environment variable for the global token budget and disclose byte trimming separately. |
69
+ > | `AUD-588-B09` | P2 | `rename-class` aliases `-f` to `--from`, conflicting with the CLI-wide `-f/--format` convention and silently overwriting an explicit value. | Remove the conflicting short alias or reject duplicate destinations; add parser regression tests. |
70
+ > | `AUD-588-B10` | P2 | `baseline diff` lacks `--dir` although `capture` and `trend` accept it, breaking the external read-only flow. | Add the parity flag and test capture → trend → diff entirely outside the repository. |
71
+ > | `AUD-588-B11` | P2 | Cross-command contracts diverge: `impact` naming, `impact-chain` security units, container-wired warnings, nested Maven discovery, source-file counts, and `risk` tier classification. | Treat as one shared-fact/units parity initiative, then add consumer-level regressions rather than six isolated patches. |
72
+ > | `AUD-588-B12` | P2 | Cost model is stale by up to 1.74x on warm cache; long commands can run silently until external timeout. | Re-measure 5.8.8 at this scale, publish measurement provenance, and enable progress by default for long foreground commands. |
73
+ >
74
+ > **Recommended order:** `B01` → `B02` → `B04` → `B03` → `B05/B11` → `B08/B09` →
75
+ > `B07` → `B06/B10/B12`. Each code fix must receive its own commit and targeted regression
76
+ > before the next one. The audit's `verify-edit` dirty-tree branch remains unverified; it is
77
+ > a validation gap, not a confirmed defect.
78
+ >
79
+ > ### Recommended Features
80
+ >
81
+ > | ID | Feature | Decision |
82
+ > |---|---|---|
83
+ > | `AUD-588-F01` | Explicit EclipseLink/JPA-provider migration axis, including namespace and coordinate changes. | Product feature, deferred. First ship `B02/B06` so the current answer is honest via `non_coverage`; do not infer Hibernate effort for EclipseLink. |
84
+ > | `AUD-588-F02` | Shared answer-contract layer for units, population names, `non_coverage`, container-wired reach and caveats. | **Partial**; six consumers remain disconnected according to the re-audit. |
85
+ > | `AUD-588-F03` | Versioned cost-model calibration with repository-size and cache-state dimensions. | **Partial**; schema/dimensions exist but anchors are stale. |
86
+ > | `AUD-588-F04` | Default progress/heartbeat for long foreground commands such as `audit-report` and `timeline`. | **Explicit opt-in by decision**, not default coverage. |
87
+ > | `AUD-588-F05` | Expand audit coverage from 87% toward 90% using safe candidates: no-op `auth logout`, reversible `telemetry disable`, and dirty-tree `verify-edit`. | **Locally verified only**; the external audit remains at 87%. |
88
+
89
+ > **RE-AUDIT INTAKE — 2026-08-19 — ASK 5.8.9 on the same `saint-server` snapshot**
90
+ >
91
+ > The external re-audit scored **80/100** (up from 75), with the same 53/61 invocables
92
+ > and the same read-only protocol. It confirms the cheap CLI fixes, but reopens the
93
+ > two priority defects that were incorrectly treated as closed and identifies one
94
+ > correction regression. The CIR is byte-identical across 5.8.8/5.8.9, so these are
95
+ > emission, contract or consumer issues rather than parser drift.
96
+ >
97
+ > | ID / lineage | Status after re-audit | Required action |
98
+ > |---|---|---|
99
+ > | `AUD-588-B01` / `C3-122` | **REOPENED, critical** — `risk` exits 0 with empty stdout and can miss a promised `-o` file. | Fix the early/partial composition path; enforce parseable output or typed non-zero failure through the real entry point. |
100
+ > | `AUD-588-B02` + `B06` | **OPEN, critical** — EclipseLink still receives a Hibernate axis and `non_coverage: null`. | Make `not_applicable_reason` authoritative for applicability, effort and aggregate; publish provider non-coverage. |
101
+ > | `AUD-588-B03` | **PARTIAL** — profile/permit evidence exists, but no security rule or activation state reaches findings. | Add the active-chain rule, per-finding profile condition and honest `permit_all_rules` naming. |
102
+ > | `AUD-588-B04` | **PARTIAL** — `explain-endpoint` is fixed; `data-exposure` still emits `coverage_unknown`. | Bind the independent data-exposure consumer to the chain authority. |
103
+ > | `AUD-588-B05` | **REGRESSION** — `unaffected_basis` says exclusions are safe while container-wired changes are present. | Demote routes or publish a non-empty blocker/caveat; preserve the partition invariant. |
104
+ > | `AUD-588-B07` | **PARTIAL** — provenance is present, but `selftest` reads `error.code` at the wrong envelope level. | Read the nested error contract and gate the four ASK-09 branches. |
105
+ > | `AUD-588-B08` | **PARTIAL** — token hint is fixed; `impact` still has a 50,000-byte stdout trim not named alongside the token budget. | Publish both budgets and make the hint disclose token vs byte behavior. |
106
+ > | `AUD-588-B11` | **OPEN, six residuals** — `plan`/`compare` miss container reach; units, build discovery, populations and risk tier still diverge. | Connect all consumers to shared authorities and add parity tests. |
107
+ > | `AUD-588-B12` | **PARTIAL** — timeline completes, but cost anchors are stale and long commands remain silent by default. | Recalibrate from 5.8.9 measurements; decide default heartbeat and foreground classification. |
108
+ > | `AUD-589-B01` | **NEW, high** — `audit-report` can exit 0 with empty stdout; `-o` follows a different/long partial path. | Reuse the working `_partial` contract and shared output-promise guard with `risk`. |
109
+ > | `AUD-589-B02` | **UNCONFIRMED performance suspicion** — `data-exposure --config` measured 2.76x slower with identical output. | Reproduce with a convergent, controlled multi-run measurement before changing code. |
110
+
111
+ > **Feature status correction:** `F02` is not fully covered while six cross-command
112
+ > consumers remain disconnected; `F03` is not covered by schema versioning alone while
113
+ > its anchors are stale; `F04` remains an explicit opt-in decision and must be reflected
114
+ > in foreground cost advice; `F05` is verified only in controlled local tests, not on the
115
+ > auditor's 8 blocked invocables. `F01` remains deferred, but its `non_coverage` prerequisite
116
+ > is now a confirmed open defect rather than a completed contract.
117
+ >
118
+ > The audit also confirms that inheritance, commented-annotation filtering, profile posture,
119
+ > read-only dry-run flows, endpoint caps, non-coverage and typed errors are working. New work
120
+ > must reuse those authorities rather than introduce parallel heuristics.
121
+
122
+ > **FEATURE BATTERY UPDATE — 2026-08-19 — 5.8.9**
123
+ >
124
+ > `AUD-588-F01` remains deliberately deferred: EclipseLink is a product axis, not a
125
+ > safe alias for Hibernate. `F02` and `F03` are partial, `F04` remains opt-in, and
126
+ > `F05` is locally verified but not externally complete. The feature battery passed
127
+ > its targeted suite; no duplicate implementation was added.
128
+
37
129
  > **PHASE UPDATE 2026-08-19 — auditoría externa de `5.8.7` sobre `saint-server`
38
130
  > (ronda 11), la primera ejecutada entera bajo `ASK_READONLY=1` y con prueba de
39
131
  > no-persistencia: 8,5/10, doce defectos, y ni uno en la capa de análisis.**
@@ -5,9 +5,10 @@ director; no internal implementation knowledge assumed.*
5
5
 
6
6
  > **DOCUMENT STATUS — 2026-08-19**
7
7
  >
8
- > The latest tagged baseline is **5.8.7** (`9aa9852`); the working version is **5.8.8**. The repository currently contains
9
- > fourteen committed post-release fixes through `f39432b`; they are follow-up engineering work,
10
- > not yet a tagged release. The 5.8.7 findings below must be read with this current status.
8
+ > The current release is **5.8.10**. It closes the reproducible output-delivery,
9
+ > security-chain, selftest-envelope and container-reach defects from the 5.8.9
10
+ > re-audit. The 5.8.7 and 5.8.9 findings below are historical evidence and must be
11
+ > read with this status block.
11
12
  >
12
13
  > **Closed in the current working tree:** `B23`, `B24`, `B25`, `B26`, `B27`, `B28`, the
13
14
  > `C4-25` residual, `C4-27`, `C4-28`, additive `C1-49`, and `C3-130` for `plan`/`cold-start`,
@@ -18,6 +19,54 @@ director; no internal implementation knowledge assumed.*
18
19
  > profiling, compatibility-window or host-specific CI work, not an unresolved bug from that
19
20
  > audit. Historical scores and release claims below remain historical; this block is current.
20
21
 
22
+ > **5.8.10 AUDIT REMEDIATION**
23
+ >
24
+ > A requested output file now either exists or the command returns a typed failure;
25
+ > `selftest` can validate a genuine output-ceiling refusal; security exceptions and
26
+ > their static profile conditions are visible as findings; and change-planning views
27
+ > retain container-driven reach instead of treating it as an empty call cone. The
28
+ > release also distinguishes the token ceiling from `impact`'s independent byte cap.
29
+ >
30
+ > The open roadmap is narrower: provider-specific EclipseLink migration disclosure,
31
+ > residual cross-command parity and controlled cost calibration. EclipseLink migration
32
+ > automation remains a future product capability rather than a claim of this release.
33
+
34
+ > **NEW AUDIT INTAKE — ASK 5.8.8 / `saint-server` — 2026-08-19**
35
+ >
36
+ > A fresh external audit scored the tool **75/100** with **53/61 invocables exercised (87%)**.
37
+ > It found no repository mutation, but it opens a new engineering queue with twelve grouped
38
+ > findings. The highest-risk items are: `risk` returning exit 0 with no output; migration
39
+ > readiness charging an inapplicable Hibernate axis to an EclipseLink repository; security
40
+ > audit and endpoint explanation missing active `permitAll` behavior; and `pr-impact`
41
+ > publishing all container-wired endpoints as unaffected. These are new 5.8.8 findings,
42
+ > not reversals of the closed round-11 queue.
43
+ >
44
+ > **Next bug battery:** `AUD-588-B01` through `B05` first, then output-hint and flag defects
45
+ > (`B07`–`B10`), followed by cross-command contract parity and cost/progress calibration
46
+ > (`B11`–`B12`). The development roadmap contains the acceptance direction and commit order.
47
+ >
48
+ > **Feature battery status for 5.8.9:** the EclipseLink migration axis remains deferred;
49
+ > non-coverage is the honest current answer. Shared answer contracts, versioned cost/cache
50
+ > calibration, explicit progress controls and the safe audit-coverage candidates are already
51
+ > covered and regression-tested. No duplicate heuristics were added.
52
+
53
+ > **RE-AUDIT UPDATE — ASK 5.8.9 / `saint-server` — 2026-08-19**
54
+ >
55
+ > The same external audit scored **80/100**, up from 75, with unchanged coverage at
56
+ > **53/61 invocables (87%)** and a byte-identical CIR. The release improved CLI ergonomics
57
+ > and timeline completion, but the two highest-priority issues remain open: `risk` can
58
+ > exit 0 with no answer or promised file, and `migrate-check` still bills Hibernate work
59
+ > to an EclipseLink repository. A new high-priority sibling is `audit-report` returning
60
+ > exit 0 with empty stdout. `pr-impact` also introduced a correction regression by saying
61
+ > exclusions are safe while container-wired changes are present.
62
+ >
63
+ > **Roadmap correction:** `B01`/`C3-122` is reopened first, followed by the shared silent-
64
+ > composition path (`risk` and `audit-report`), `B02` plus provider non-coverage, the
65
+ > `pr-impact` regression, `data-exposure` chain binding, Spring security activation
66
+ > findings, then the remaining cross-command parity and cost calibration. `F02` and `F03`
67
+ > are partial rather than complete; `F04` is an explicit opt-in product decision; `F05`
68
+ > is locally verified but not externally covered. EclipseLink remains deferred.
69
+
21
70
  ---
22
71
 
23
72
  ## What ASK Engine is
@@ -812,7 +812,7 @@ ask rename-class . --from OldName --to NewName --output rename-audit.json
812
812
  **Recomendación:** usa **siempre `--dry-run` primero** para revisar qué cambiaría antes de escribir nada.
813
813
 
814
814
  **Opciones:**
815
- - `--from` / `-f` (**obligatorio**): nombre actual de la clase (PascalCase, p. ej. `ServiceA`).
815
+ - `--from` (**obligatorio**): nombre actual de la clase (PascalCase, p. ej. `ServiceA`).
816
816
  - `--to` / `-t` (**obligatorio**): nombre nuevo (PascalCase, p. ej. `ServiceB`).
817
817
  - `--dry-run`: calcula los cambios pero **no escribe ni renombra** nada en disco.
818
818
  - `--no-tests`: excluye los ficheros de test del rename (solo `src/main`).
@@ -136,7 +136,7 @@ pipx install sourcecode # isolated install, no venv needed
136
136
 
137
137
  # Verify
138
138
  ask version
139
- # ask 5.8.8
139
+ # ask 5.8.10
140
140
  ```
141
141
 
142
142
  Requires Python 3.9+.
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "sourcecode"
7
- version = "5.8.8"
7
+ version = "5.8.10"
8
8
  description = "Persistent structural context and ultra-fast repeated analysis for AI coding agents"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -4,4 +4,4 @@ ASK Engine is the product. ``ask`` is the canonical CLI command; ``sourcecode``
4
4
  the legacy compatibility alias and the Python/PyPI package name. See
5
5
  docs/PRODUCT_IDENTITY.md (normative)."""
6
6
 
7
- __version__ = "5.8.8"
7
+ __version__ = "5.8.10"
@@ -28,6 +28,7 @@ from typing import TYPE_CHECKING
28
28
 
29
29
  from sourcecode import non_coverage as _non_coverage
30
30
  from sourcecode.canonical_ir import project_blast_radius
31
+ from sourcecode.container_wiring import detect_classes
31
32
  from sourcecode.repository_ir import _all_callers_from_rg
32
33
  from sourcecode.security_posture import _graph_nodes
33
34
  from sourcecode.path_filters import is_test_path
@@ -139,6 +140,7 @@ def build_change_plan(
139
140
  }
140
141
 
141
142
  seeds = list(blast["matched_fqns"])
143
+ container_wired = [w.to_dict() for w in detect_classes(cir, seeds)]
142
144
  meta = _node_meta(cir)
143
145
  affected = _dependents_closure(cir.reverse_graph or {}, seeds, max_depth, _NODE_CAP)
144
146
 
@@ -221,6 +223,7 @@ def build_change_plan(
221
223
  "count": len(prod),
222
224
  "components": prod[:_LIST_CAP],
223
225
  },
226
+ "container_wired": container_wired,
224
227
  "covering_tests": (
225
228
  {
226
229
  "count": len(tests),
@@ -2112,12 +2112,14 @@ def _emit_command_output(
2112
2112
  raise typer.Exit(1)
2113
2113
  if output_path is not None:
2114
2114
  _receipt = _safe_write_file(output_path, content)
2115
- _mark_output_delivered()
2116
2115
  if not _receipt.get("written"):
2117
2116
  # B15: the answer was produced and thrown away, on request. Saying
2118
2117
  # "written to nul" would be the one thing worse than the error this
2119
2118
  # used to raise.
2120
2119
  typer.echo(_receipt.get("note") or f"Discarded to {output_path}")
2120
+ # A failed write is never delivery. The guard separately exempts
2121
+ # discard sinks and existing files by path, so no state flag is
2122
+ # needed here.
2121
2123
  elif success_msg:
2122
2124
  # C3-26/C3-18: the payload went to the file, so stdout is free and
2123
2125
  # this confirmation is the run's whole answer — `cache warm` and
@@ -2126,12 +2128,14 @@ def _emit_command_output(
2126
2128
  # stderr battery listed its commands by hand. Measured before the
2127
2129
  # fix on spring-petclinic: stdout 0 bytes, stderr 155.
2128
2130
  typer.echo(success_msg)
2131
+ _mark_output_delivered()
2129
2132
  else:
2130
2133
  # C3-122: a command whose emit seam carries no sentence of its own
2131
2134
  # confirmed a 444-second run with total silence. The receipt is a
2132
2135
  # notice, so a pipeline and a PowerShell capture stay exactly as
2133
2136
  # they were (C3-26) and a person at a terminal is told.
2134
2137
  _notice(f"✓ {_receipt.get('bytes', 0)} bytes written to {output_path}")
2138
+ _mark_output_delivered()
2135
2139
  else:
2136
2140
  try:
2137
2141
  sys.stdout.buffer.write(content.encode("utf-8"))
@@ -2154,7 +2158,8 @@ def _emit_command_output(
2154
2158
  _notice("✓ copied to clipboard")
2155
2159
  # The answer has been handed over. Any `done (Xs)` a command deferred is now
2156
2160
  # a true claim and prints here — never before this line (C3-54).
2157
- _progress_output_emitted()
2161
+ if _OUTPUT_DELIVERED:
2162
+ _progress_output_emitted()
2158
2163
 
2159
2164
 
2160
2165
  def _emit_text_output(
@@ -2860,15 +2865,10 @@ COMMANDS_WITHOUT_FORMAT: "frozenset[str]" = frozenset({
2860
2865
  "version", # a version string
2861
2866
  })
2862
2867
 
2863
- #: `--format` binds `-f` everywhere except here the `COMMANDS_WITHOUT_COPY_
2864
- #: SHORTHAND` precedent, for the same reason. `rename-class` bound `-f` to
2865
- #: `--from` before this rule existed, and `ask rename-class . -f OldName` is a
2866
- #: documented invocation: rebinding it would silently give the reader a format
2867
- #: parser for a class name. The long `--format` works; the short form moves at
2868
- #: the next major.
2869
- COMMANDS_WITHOUT_FORMAT_SHORTHAND: "frozenset[str]" = frozenset({
2870
- "rename-class",
2871
- })
2868
+ #: Every payload command uses the same `--format/-f` spelling. A previous
2869
+ #: exception let `rename-class -f` overwrite `--from` silently; removing that
2870
+ #: alias is safer than making one short flag mean two unrelated facts.
2871
+ COMMANDS_WITHOUT_FORMAT_SHORTHAND: "frozenset[str]" = frozenset()
2872
2872
 
2873
2873
 
2874
2874
  #: The one help string for `--progress`, for the same reason as COPY_OPTION_HELP.
@@ -6988,6 +6988,16 @@ def impact_cmd(
6988
6988
  cir._raw_ir, target, max_depth=depth, list_limit=0 if _to_file else None,
6989
6989
  root=root, covered_types=_covered_types,
6990
6990
  )
6991
+ # Token ceilings and this command's byte budget are independent controls.
6992
+ # Publish both at the point where the impact answer is shaped so raising
6993
+ # ASK_MAX_OUTPUT_TOKENS cannot be mistaken for disabling stdout trimming.
6994
+ result["stdout_byte_budget"] = BUDGET_IMPACT if not _to_file else None
6995
+ result["stdout_byte_budget_basis"] = (
6996
+ "impact stdout rendering is capped independently at 50,000 UTF-8 bytes; "
6997
+ "ASK_MAX_OUTPUT_TOKENS does not disable this byte budget"
6998
+ if not _to_file else
6999
+ "No stdout byte budget applies when --output writes the complete answer."
7000
+ )
6991
7001
  result = _apply_budget(result, BUDGET_IMPACT, label="impact", output_path=output_path)
6992
7002
  if _misread and result.get("resolution") == "not_found":
6993
7003
  result["analysis_warnings"] = [*(result.get("analysis_warnings") or []), _misread]
@@ -8722,6 +8732,10 @@ def baseline_diff_cmd(
8722
8732
  Path("."),
8723
8733
  help="Repository root to diff against the stored baseline (default: cwd).",
8724
8734
  ),
8735
+ history_dir: Optional[Path] = typer.Option(
8736
+ None, "--dir", "--history-dir",
8737
+ help="Directory containing stored architectural-baseline-v1 artifacts.",
8738
+ ),
8725
8739
  baseline_file: Optional[Path] = typer.Option(
8726
8740
  None, "--baseline", "-b",
8727
8741
  help="Path to a stored architectural-baseline-v1 JSON artifact. Omit it to "
@@ -8767,7 +8781,7 @@ def baseline_diff_cmd(
8767
8781
  if baseline_file is None:
8768
8782
  from sourcecode.architectural_baseline import latest_baseline_path
8769
8783
 
8770
- history = _resolve_history_dir(target_dir)
8784
+ history = _resolve_history_dir((history_dir or target_dir).resolve())
8771
8785
  latest = latest_baseline_path(history)
8772
8786
  if latest is None:
8773
8787
  _emit_error_json(
@@ -13330,7 +13344,7 @@ def rename_class_cmd(
13330
13344
  help="Repository root to operate on (default: current directory)",
13331
13345
  ),
13332
13346
  old_name: str = typer.Option(
13333
- ..., "--from", "-f",
13347
+ ..., "--from",
13334
13348
  help="Current class name (PascalCase, e.g. ServiceA)",
13335
13349
  ),
13336
13350
  new_name: str = typer.Option(
@@ -13350,10 +13364,7 @@ def rename_class_cmd(
13350
13364
  help="Write change audit JSON to a file instead of stdout.",
13351
13365
  ),
13352
13366
  copy: bool = _copy_option(),
13353
- # `-f` is `--from` on this command and has been since before `--format`
13354
- # existed: rebinding it would hand a class name to a format parser.
13355
- # On the record in cli.COMMANDS_WITHOUT_FORMAT_SHORTHAND (C3-59).
13356
- format: str = _format_option(help="Output format: json (default) or yaml.", shorthand=False),
13367
+ format: str = _format_option(help="Output format: json (default) or yaml."),
13357
13368
  progress_mode: Optional[str] = _progress_option(),
13358
13369
  ) -> None:
13359
13370
  """Rename a Java class throughout the repository.
@@ -262,6 +262,7 @@ def build_comparison(
262
262
  "resolution": resolution,
263
263
  "resolved": resolved,
264
264
  "cost": cost,
265
+ "container_wired": plan.get("container_wired") if resolved else None,
265
266
  "why": _evidence_trail(cost, blast, resolved, plan),
266
267
  }
267
268
  # C1-13/C2-1: when the walk was capped, some magnitudes are floors. The
@@ -83,6 +83,7 @@ class ExposedRoute:
83
83
  verdict: str
84
84
  access: Optional[str] = None
85
85
  access_decision: Optional[str] = None
86
+ chain_decision: Optional[str] = None
86
87
 
87
88
  def to_dict(self) -> dict:
88
89
  out = {
@@ -100,6 +101,8 @@ class ExposedRoute:
100
101
  if self.access is not None:
101
102
  out["access_under_profile"] = self.access
102
103
  out["access_decision"] = self.access_decision
104
+ if self.chain_decision is not None:
105
+ out["chain_decision"] = self.chain_decision
103
106
  return out
104
107
 
105
108
 
@@ -232,12 +235,13 @@ def build_data_exposure(
232
235
  from sourcecode.security_posture import endpoint_security_surface
233
236
  from sourcecode.spring_impact import run_impact_chain
234
237
 
235
- surface = endpoint_security_surface(cir, root=root)
236
238
  profile_access: dict[str, str] = {}
237
- if profiles:
238
- from sourcecode.posture import endpoint_access_under
239
+ from sourcecode.posture import endpoint_access_under
239
240
 
240
- profile_access = endpoint_access_under(root, set(profiles), cir=cir)
241
+ profile_access = endpoint_access_under(root, set(profiles or ()), cir=cir)
242
+ surface = endpoint_security_surface(
243
+ cir, root=root, access_decisions=profile_access,
244
+ )
241
245
 
242
246
  handlers = {
243
247
  str(getattr(e, "handler_symbol", "") or (e.get("handler_symbol") if isinstance(e, dict) else "")): e
@@ -374,6 +378,10 @@ def _finish_route(
374
378
  verdict=verdict,
375
379
  access=access,
376
380
  access_decision=decision,
381
+ chain_decision=(
382
+ str(bound["chain_decision"])
383
+ if bound.get("chain_decision") is not None else None
384
+ ),
377
385
  )
378
386
 
379
387