sourcecode 5.9.19__tar.gz → 5.9.23__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.
- {sourcecode-5.9.19 → sourcecode-5.9.23}/CHANGELOG.md +70 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/PKG-INFO +16 -8
- {sourcecode-5.9.19 → sourcecode-5.9.23}/README.md +15 -7
- sourcecode-5.9.23/docs/AUDIT-2026-09-01-EXTERNAL-5.9.22.md +71 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/DEFECT-LEDGER.md +26 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/DEVELOPMENT-ROADMAP.md +35 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/PRODUCT_TIERS.md +1 -1
- sourcecode-5.9.23/docs/RD-JVM-ASK-TRIAGE-2026-08-31.md +78 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/USER_GUIDE.md +9 -6
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/migrate-check.md +24 -0
- sourcecode-5.9.23/docs/perf/baselines/5.9.22/petclinic__ask__cold.json +59 -0
- sourcecode-5.9.23/docs/perf/baselines/5.9.22/petclinic__ask__warm.json +47 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/pyproject.toml +1 -1
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/__init__.py +1 -1
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/answer_bounds.py +10 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/canonical_ir.py +12 -4
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/cli.py +113 -23
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/context_graph.py +24 -18
- sourcecode-5.9.23/src/sourcecode/jvm_inventory.py +294 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/migrate_check.py +21 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/non_coverage.py +17 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/output_budget.py +18 -4
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/parallel.py +3 -11
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/repository_ir.py +139 -21
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/resource_budget.py +10 -5
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/risk.py +3 -2
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/rule_catalog.py +1 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/schema_registry.py +2 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/spring_findings.py +4 -3
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/spring_security_audit.py +57 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/.github/workflows/build-windows.yml +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/.github/workflows/perf-gate.yml +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/.github/workflows/windows-battery.yml +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/.github/workflows/windows-regression.yml +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/.gitignore +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/.ruff.toml +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/CLAUDE.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/CODE_OF_CONDUCT.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/CONTRIBUTING.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/LICENSE +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/NOTICE +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/SECURITY.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/AUDIT-2026-08-22-5.8.22.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/AUDIT-2026-08-23-5.8.24.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/AUDIT-2026-08-23-COMMERCIAL.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/AUDIT-2026-08-23-CORPUS-AMPLIADO.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/AUDIT-2026-08-23-EXTERNAL-5.8.25.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/AUDIT-2026-08-23-EXTERNAL-5.8.26.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/AUDIT-2026-08-23-THINGSBOARD-FINDINGS.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.26.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.27.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.28.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.31.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.32.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/AUDIT-2026-08-26-EXTERNAL-5.9.0.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/AUDIT-2026-08-26-MONETIZATION.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/AUDIT-2026-08-27-EXTERNAL-5.9.2.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/AUDIT-2026-08-27-EXTERNAL-5.9.3.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/AUDIT-2026-08-28-EXTERNAL-5.9.10.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/AUDIT-2026-08-31-EXTERNAL-5.9.16.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/AUDIT-2026-08-31-EXTERNAL-5.9.17.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/AUDIT-2026-08-31-REMEDIATION-5.9.18.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/AUDIT-TESTING-CORPUS-2026-08-22.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/CACHE.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/COMMERCIAL-OFFER.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/CUSTOMER-VALIDATION.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/DEMO-5MIN.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/DOCUMENTATION-HYGIENE-2026-08-23.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/EXECUTION-PLAN-12MO.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/EXECUTIVE-ROADMAP.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/MANUAL-USUARIO.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/MODERNIZATION.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/PRODUCT-ROUTE.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/PRODUCT_AUDIT.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/PRODUCT_IDENTITY.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/RC1-CHECKLIST.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/RELEASE-CHECKLIST.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/RELEASE-VERIFICATION.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/STRATEGY-2026-08-26-AGENT-CONTEXT.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/CATALOG-retrieval-intents.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/DESIGN-assessment-deployment-evidence.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/DESIGN-assessment-report.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/DESIGN-build-closure-provenance.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/DESIGN-knowledge-provider-integration.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/DESIGN-p5.3b-statement-surface.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/DESIGN-p5.5-span-index.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/DESIGN-p6-semantic-impact-engine.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/DESIGN-p6-semantic-integration-engine.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/DESIGN-p7-semantic-services.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/DESIGN-pack-gate-ci.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/DESIGN-pack-manifest.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/DESIGN-pack-mcp-api.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/DESIGN-robustness-security-inference.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/DESIGN-semantic-retrieval.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/EPV-p6-class-typeref.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/REPORT-p6-flow-analyzer-comparison.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/REPORT-p6-integration-detector-comparison.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/REPORT-p8-flow-analyzer-migration.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/REPORT-p9-integration-detector-migration.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/adr/0001-semantic-ir.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/adr/0002-source-evidence-boundary.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/adr/0003-architectural-characterization.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/adr/0004-semantic-retrieval.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/adr/0005-evidence-reconciliation.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/adr/0006-performance-harness.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/adr/0007-composition-semantics.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/adr/0008-answer-coherence.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/consumer-disposition-inventory.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/overview.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/product-architecture-review.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/product-strategy-layering.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/semantic-ir-consumer-matrix.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/architecture/semantic-ir-roadmap.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/baseline-ci.yml +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/commercial-pipeline-audit.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/contracts-ci.yml +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/contracts.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/eval/2026-06-15-petclinic-rest-issue11-vets-pagination.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/eval/2026-06-15-petclinic-rest-issue147-validation.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/eval/2026-06-15-petclinic-rest-workflow.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/eval/2026-06-15-phase18-openapi-surface.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/eval/2026-06-15-phase20-validation-surface.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/eval/2026-06-16-broadleaf-checkout-impact-fieldtest.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/eval/2026-06-16-petclinic-rest-issue11-weakness2-closed.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/eval/2026-06-16-spring-petclinic-issue2333-dead-vets.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/licensing-schema.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/pack-gate-github-actions.yml +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/pack-gate-gitlab.yml +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/README.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/REGRESSION-GATE.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.15/SUMMARY.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.15/alfresco__ask__cold.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.15/alfresco__ask__warm.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.15/broadleaf__ask__cold.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.15/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.15/eureka__ask__cold.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.15/eureka__ask__warm.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.15/jenkins__ask__cold.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.15/jenkins__ask__warm.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.15/jobrunr__ask__cold.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.15/jobrunr__ask__warm.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.15/keycloak__ask__cold.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.15/keycloak__ask__warm.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.15/neo4j__ask__cold.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.15/neo4j__ask__warm.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.15/ofbiz__ask__cold.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.15/ofbiz__ask__warm.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.15/openmrs__ask__cold.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.15/openmrs__ask__warm.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.15/petclinic__ask__cold.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.15/petclinic__ask__warm.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.16/SUMMARY.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.16/alfresco__ask__cold.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.16/alfresco__ask__warm.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.16/broadleaf__ask__cold.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.16/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.16/eureka__ask__cold.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.16/eureka__ask__warm.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.16/jenkins__ask__cold.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.16/jenkins__ask__warm.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.16/jobrunr__ask__cold.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.16/jobrunr__ask__warm.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.16/keycloak__ask__cold.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.16/keycloak__ask__warm.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.16/neo4j__ask__cold.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.16/neo4j__ask__warm.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.16/ofbiz__ask__cold.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.16/ofbiz__ask__warm.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.16/openmrs__ask__cold.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.16/openmrs__ask__warm.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.16/petclinic__ask__cold.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/2.5.16/petclinic__ask__warm.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/gate-latest/README.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/gate-latest/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/gate-latest/broadleaf__endpoints__warm.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/gate-latest/broadleaf__migrate-check__warm.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/gate-latest/broadleaf__posture__warm.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/gate-latest/broadleaf__spring-audit__warm.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/gate-latest/broadleaf__validation__warm.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/baselines/reference-best/README.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/perf/corpus-testing-2026-08-22.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/posture.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/privacy.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/pro-experience-audit.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/schema.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/spec/envelope-v1.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/docs/spring-audit-ci.yml +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/hatch_build.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/scripts/compare_integration_engines.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/scripts/context_cost_harness.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/scripts/customer_smoke_test.sh +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/scripts/generate_jdk_exports.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/scripts/perf_gate.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/scripts/perf_harness.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/scripts/sync_gate_anchors.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/scripts/test_fast.sh +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/scripts/windows_reliability_matrix.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/__main__.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/access_drift.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/adaptive_scanner.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/analysis_budget.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/archetype.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/architectural_baseline.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/architectural_delta.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/architecture_analyzer.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/architecture_summary.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/ast_extractor.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/audit_clusters.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/audit_recipe.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/audit_report.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/audit_since.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/audit_verify.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/baseline_attestation.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/baseline_autocapture.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/breaking_changes.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/build_modules.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/build_stamp.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/bundled_docs.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/c4_render.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/cache.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/cache_model.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/cache_observation.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/call_surface.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/caller_metrics.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/caller_reach.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/chain_rules.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/change_plan.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/ci_output.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/cir_graphs.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/classifier.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/click_runtime.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/client_calls.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/code_notes_analyzer.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/compare.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/confidence_analyzer.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/constraint_diff.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/consumer_join.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/container_wiring.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/context_cache.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/context_scorer.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/context_summarizer.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/contract_diff.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/contract_init.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/contract_model.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/contract_pipeline.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/coverage_parser.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/cve_feed.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/cve_reachability.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/data_exposure.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/data_labels.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/declarations.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/defect_classes/__init__.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/defect_classes/registry.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/defect_identity.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/degradation.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/dependency_analyzer.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/deployment_prefix.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/detach.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/detectors/__init__.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/detectors/base.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/detectors/csproj_parser.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/detectors/dart.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/detectors/dotnet.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/detectors/elixir.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/detectors/go.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/detectors/heuristic.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/detectors/hybrid.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/detectors/java.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/detectors/jvm_ext.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/detectors/nodejs.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/detectors/parsers.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/detectors/php.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/detectors/project.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/detectors/python.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/detectors/ruby.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/detectors/rust.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/detectors/systems.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/detectors/terraform.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/detectors/tooling.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/doc_analyzer.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/dynamic_argument_surface.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/empty_reach.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/endpoint_disposition.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/endpoint_literals.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/endpoint_metrics.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/entrypoint_classifier.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/env_analyzer.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/envelope.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/environment_resolution.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/error_schema.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/evidence_provider.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/execution_plan.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/explain.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/explain_endpoint.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/facts/__init__.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/facts/registry.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/field_deprecations.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/file_chunker.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/file_classifier.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/filter_surface.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/findings_baseline.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/format_contract.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/fqn_utils.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/functional_routes.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/gate_anchors.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/git_analyzer.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/git_checkout.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/github_diff.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/graph_analyzer.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/graph_evidence.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/hibernate_strat.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/identity_fallback.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/integration_coordinates.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/intent_router.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/jdk_exports.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/license.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/manifest_cache.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/mcp/__init__.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/mcp/dependency_import.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/mcp/onboarding/applier.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/mcp/onboarding/backup.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/mcp/onboarding/detector.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/mcp/onboarding/planner.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/mcp/orchestrator.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/mcp/registry.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/mcp/runner.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/mcp/server.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/mcp_nudge.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/metrics_analyzer.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/migration_apply.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/migration_blast.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/openapi_surface.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/openrewrite_recipe.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/output_bounds.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/output_ceiling.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/output_encoding.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/output_sink.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/pack_manifest.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/packs.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/parse_cache.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/partial_contract.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/path_admission.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/path_display.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/path_filters.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/perf.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/phased_run.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/pipe_contract.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/posture.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/pr_comment_renderer.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/pr_impact.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/pr_risk.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/prepare_context.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/product_info.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/progress.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/provenance.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/ranking_engine.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/readiness_timeline.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/readonly.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/reconciliation.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/redactor.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/reference_facts.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/regress.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/regulatory_pack.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/release_info.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/relevance_scorer.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/remediation_diff.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/remediation_flow.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/remediation_report.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/remedies.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/rename_refactor.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/repo_classifier.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/retrieval/__init__.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/retrieval/context.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/retrieval/errors.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/retrieval/executor.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/retrieval/planner.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/retrieval/query.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/retrieval/request.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/retrieval/resolution.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/retrieval/result.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/retrieval/retriever.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/retrieval/runtime.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/retrieval/steps.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/retrieval/steps_endpoint.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/retrieval/steps_graph.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/retrieval/steps_impact.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/retrieval/steps_intf.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/retrieval/steps_struct.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/retrieval/steps_txsec.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/ris.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/risk_model.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/rule_pass.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/runs.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/runtime_classifier.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/sarif.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/sarif_emit.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/scanner.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/schema.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/schema_producers.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/schemas/core-analysis-v1.schema.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/schemas/cve-reachability-v1.schema.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/schemas/endpoints-v1.schema.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/schemas/envelope-v1.schema.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/schemas/pr-impact-v1.schema.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/schemas/verify-edit-v1.schema.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/schemas/verify-v1.schema.json +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/security_chain.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/security_config.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/security_config_scan.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/security_posture.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/selection_contract.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/self_audit.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/selftest.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/semantic_analyzer.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/semantic_impact_engine.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/semantic_integration_engine.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/semantic_services.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/serializer.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/servlet_surface.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/source_text.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/spring_event_topology.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/spring_impact.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/spring_model.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/spring_profiles.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/spring_properties.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/spring_semantic.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/spring_tx_analyzer.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/sql_taint.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/summarizer.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/target_admission.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/telemetry/__init__.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/telemetry/config.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/telemetry/consent.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/telemetry/events.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/telemetry/filters.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/telemetry/transport.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/test_gap_ranking.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/test_sources.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/text_input.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/timeline.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/timeline_cache.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/token_estimate.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/tree_utils.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/type_usage_surface.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/validation_inference.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/validation_surface.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/verify_edit.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/verify_repo.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/verify_rules.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/version_check.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/vex.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/waivers.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/watch_loop.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/wired_surface.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/src/sourcecode/workspace.py +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/supabase/functions/README.md +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/supabase/functions/get-license/index.ts +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/supabase/functions/lemonsqueezy-webhook/index.ts +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/supabase/functions/telemetry/index.ts +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/supabase/sql/license_event_ordering.sql +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/supabase/sql/licensing_schema.sql +0 -0
- {sourcecode-5.9.19 → sourcecode-5.9.23}/supabase/sql/telemetry_events.sql +0 -0
|
@@ -1,5 +1,75 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [5.9.23] — 2026-09-01
|
|
4
|
+
|
|
5
|
+
*Regression hardening after the 5.9.22 audit and testing-repository battery.*
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- `--compact` and `--agent` reserve envelope metadata before trimming, so their
|
|
10
|
+
published 30 KB and 40 KB stdout ceilings remain true after final rendering.
|
|
11
|
+
- `--agent` now has a 1,536 MB default RSS ceiling, reports context construction
|
|
12
|
+
accurately in progress output, and rejects Java repositories above 10,000 files
|
|
13
|
+
with `AGENT_SCOPE_TOO_LARGE` before an unbounded deep analysis can be killed.
|
|
14
|
+
- Agent mode no longer builds a module graph implicitly; callers can still request
|
|
15
|
+
it explicitly with `--graph-modules`.
|
|
16
|
+
|
|
17
|
+
### Documentation
|
|
18
|
+
|
|
19
|
+
- Added the Windows large-repository audit with measured P0/P1 regressions,
|
|
20
|
+
performance boundaries and explicit closure requirements.
|
|
21
|
+
- Synchronized the defect ledger and README so silent-success, incomplete
|
|
22
|
+
coverage, compact-output, cache-growth and deep-agent memory risks are visible
|
|
23
|
+
rather than implied closed by smaller-repository measurements.
|
|
24
|
+
|
|
25
|
+
## [5.9.22] — 2026-08-31
|
|
26
|
+
|
|
27
|
+
*Large-repository route projection performance.*
|
|
28
|
+
|
|
29
|
+
### Fixed
|
|
30
|
+
|
|
31
|
+
- Inherited route projection now resolves parent candidates through a module/name
|
|
32
|
+
index instead of scanning every class for every child. The ambiguity rule and
|
|
33
|
+
emitted routes remain unchanged, while cold `--agent --full` improved from about
|
|
34
|
+
20.5 to 19.6 seconds on openmrs-core and from 32.0 to 30.8 seconds on Jenkins.
|
|
35
|
+
|
|
36
|
+
### Verification Boundary
|
|
37
|
+
|
|
38
|
+
- Endpoint, inheritance, canonical IR and migration regression tests pass. Large
|
|
39
|
+
cold runs remain memory-heavy; reducing the duplicated canonical/raw model is
|
|
40
|
+
still required before claiming the 8/10 performance target.
|
|
41
|
+
|
|
42
|
+
## [5.9.21] — 2026-08-31
|
|
43
|
+
|
|
44
|
+
*Cold-path memory and JVM inventory performance follow-up.*
|
|
45
|
+
|
|
46
|
+
### Fixed
|
|
47
|
+
|
|
48
|
+
- Full CIR builds no longer retain every Java source body in the per-file linking
|
|
49
|
+
queue; the linking pass rereads source only when needed and keeps repository
|
|
50
|
+
constants and annotation references as compact metadata.
|
|
51
|
+
- Completed linking drops pass-local containers before canonical projection, reducing
|
|
52
|
+
overlap between raw IR assembly and the canonical model.
|
|
53
|
+
- `migrate-check` JVM inventory reuses the already discovered Java file list instead
|
|
54
|
+
of walking and rescanning the source tree a second time.
|
|
55
|
+
|
|
56
|
+
### Verification Boundary
|
|
57
|
+
|
|
58
|
+
- Focused JVM, CIR cache-equivalence, canonical IR, source-span and migration tests
|
|
59
|
+
pass. Cold `--agent --full` remains memory-heavy on large repositories: the latest
|
|
60
|
+
controlled run measured about 710 MB on openmrs-core and 1.24 GB on Jenkins; this
|
|
61
|
+
release does not claim that the 8/10 performance target is fully reached.
|
|
62
|
+
|
|
63
|
+
## [5.9.20] — 2026-08-31
|
|
64
|
+
|
|
65
|
+
*JVM ecosystem evidence and local SBOM inventory.*
|
|
66
|
+
|
|
67
|
+
### Added
|
|
68
|
+
|
|
69
|
+
- `migrate-check` now publishes bounded `jvm_inventory` evidence for JVM frameworks, Java runtime declarations in CI/containers, modern JVM patterns and local CycloneDX/SPDX JSON documents.
|
|
70
|
+
- Added deterministic, negative-control and schema-registry coverage for the new inventory.
|
|
71
|
+
- Documented the accepted JVM R&D scope and its explicit no-network/non-coverage boundaries.
|
|
72
|
+
|
|
3
73
|
## [5.9.19] — 2026-08-31
|
|
4
74
|
|
|
5
75
|
*Critical `pack gate --since` compatibility correction.*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sourcecode
|
|
3
|
-
Version: 5.9.
|
|
3
|
+
Version: 5.9.23
|
|
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
|
-

|
|
63
63
|

|
|
64
64
|
|
|
65
65
|
Copyright (c) 2026 Dominique Haroun. All rights reserved. ASK Engine 5.7.0 and
|
|
@@ -191,12 +191,12 @@ must not be gated on this variable; their budget applicability remains visible i
|
|
|
191
191
|
the [defect ledger](docs/DEFECT-LEDGER.md).
|
|
192
192
|
|
|
193
193
|
**Memory is measurable and bounded.** Repository-scoped JSON answers publish
|
|
194
|
-
`_meta.memory.peak_rss_mb` and the configured ceiling.
|
|
195
|
-
set `ASK_MAX_RSS_MB=<megabytes
|
|
196
|
-
|
|
197
|
-
|
|
194
|
+
`_meta.memory.peak_rss_mb` and the configured ceiling. `--agent` applies a
|
|
195
|
+
1,536 MB ceiling by default; set `ASK_MAX_RSS_MB=<megabytes>` to override it or
|
|
196
|
+
`ASK_MAX_RSS_MB=0` to disable it explicitly. If the process exceeds the ceiling,
|
|
197
|
+
ASK refuses the answer with `MEMORY_TOO_LARGE`, including the observed peak and limit.
|
|
198
198
|
|
|
199
|
-
**Current performance status.** Release 5.9.
|
|
199
|
+
**Current performance status.** Release 5.9.22 retains the shared Canonical IR
|
|
200
200
|
path used by `validation` and now passes that same CIR into labelled `data-exposure`
|
|
201
201
|
runs; the no-label path remains parse-free. These are implementation properties,
|
|
202
202
|
not duration promises. It also removes two repeated walks of the same file tree in
|
|
@@ -212,6 +212,14 @@ exit 75 (`--allow-partial` accepts one deliberately). The long-run progress
|
|
|
212
212
|
message names the phase it is in and whether that phase has changed, so a slow run
|
|
213
213
|
is distinguishable from a blocked one.
|
|
214
214
|
|
|
215
|
+
**External audit boundary (2026-09-01).** The latest Windows audit rates the
|
|
216
|
+
large-repository experience at **6.6/10** and reports open P0/P1 issues: empty
|
|
217
|
+
successful Markdown `audit-report`, silent `risk` termination, multi-gigabyte
|
|
218
|
+
deep-agent RSS, incomplete parse/coverage disclosure and oversized compact
|
|
219
|
+
surfaces. These findings are tracked in the [external audit](docs/AUDIT-2026-09-01-EXTERNAL-5.9.22.md)
|
|
220
|
+
and [defect ledger](docs/DEFECT-LEDGER.md); they are not closed by the existing
|
|
221
|
+
engineering-host measurements.
|
|
222
|
+
|
|
215
223
|
The current external audit still records two open availability limits, and they
|
|
216
224
|
are held open deliberately: `audit-report --format markdown` under contention, and
|
|
217
225
|
the root compact flow under strict timeouts on very large monorepos. Neither
|
|
@@ -276,7 +284,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
|
|
|
276
284
|
# pip / pipx
|
|
277
285
|
pipx install sourcecode # or: pip install sourcecode
|
|
278
286
|
|
|
279
|
-
ask version # ask 5.9.
|
|
287
|
+
ask version # ask 5.9.22 — and, on a build that has aged,
|
|
280
288
|
# how many releases have probably shipped since
|
|
281
289
|
```
|
|
282
290
|
|
|
@@ -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
|
-

|
|
14
14
|

|
|
15
15
|
|
|
16
16
|
Copyright (c) 2026 Dominique Haroun. All rights reserved. ASK Engine 5.7.0 and
|
|
@@ -142,12 +142,12 @@ must not be gated on this variable; their budget applicability remains visible i
|
|
|
142
142
|
the [defect ledger](docs/DEFECT-LEDGER.md).
|
|
143
143
|
|
|
144
144
|
**Memory is measurable and bounded.** Repository-scoped JSON answers publish
|
|
145
|
-
`_meta.memory.peak_rss_mb` and the configured ceiling.
|
|
146
|
-
set `ASK_MAX_RSS_MB=<megabytes
|
|
147
|
-
|
|
148
|
-
|
|
145
|
+
`_meta.memory.peak_rss_mb` and the configured ceiling. `--agent` applies a
|
|
146
|
+
1,536 MB ceiling by default; set `ASK_MAX_RSS_MB=<megabytes>` to override it or
|
|
147
|
+
`ASK_MAX_RSS_MB=0` to disable it explicitly. If the process exceeds the ceiling,
|
|
148
|
+
ASK refuses the answer with `MEMORY_TOO_LARGE`, including the observed peak and limit.
|
|
149
149
|
|
|
150
|
-
**Current performance status.** Release 5.9.
|
|
150
|
+
**Current performance status.** Release 5.9.22 retains the shared Canonical IR
|
|
151
151
|
path used by `validation` and now passes that same CIR into labelled `data-exposure`
|
|
152
152
|
runs; the no-label path remains parse-free. These are implementation properties,
|
|
153
153
|
not duration promises. It also removes two repeated walks of the same file tree in
|
|
@@ -163,6 +163,14 @@ exit 75 (`--allow-partial` accepts one deliberately). The long-run progress
|
|
|
163
163
|
message names the phase it is in and whether that phase has changed, so a slow run
|
|
164
164
|
is distinguishable from a blocked one.
|
|
165
165
|
|
|
166
|
+
**External audit boundary (2026-09-01).** The latest Windows audit rates the
|
|
167
|
+
large-repository experience at **6.6/10** and reports open P0/P1 issues: empty
|
|
168
|
+
successful Markdown `audit-report`, silent `risk` termination, multi-gigabyte
|
|
169
|
+
deep-agent RSS, incomplete parse/coverage disclosure and oversized compact
|
|
170
|
+
surfaces. These findings are tracked in the [external audit](docs/AUDIT-2026-09-01-EXTERNAL-5.9.22.md)
|
|
171
|
+
and [defect ledger](docs/DEFECT-LEDGER.md); they are not closed by the existing
|
|
172
|
+
engineering-host measurements.
|
|
173
|
+
|
|
166
174
|
The current external audit still records two open availability limits, and they
|
|
167
175
|
are held open deliberately: `audit-report --format markdown` under contention, and
|
|
168
176
|
the root compact flow under strict timeouts on very large monorepos. Neither
|
|
@@ -227,7 +235,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
|
|
|
227
235
|
# pip / pipx
|
|
228
236
|
pipx install sourcecode # or: pip install sourcecode
|
|
229
237
|
|
|
230
|
-
ask version # ask 5.9.
|
|
238
|
+
ask version # ask 5.9.22 — and, on a build that has aged,
|
|
231
239
|
# how many releases have probably shipped since
|
|
232
240
|
```
|
|
233
241
|
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# External Audit — ASK Engine 5.9.22
|
|
2
|
+
|
|
3
|
+
**Received:** 2026-09-01
|
|
4
|
+
**Audited build:** `5.9.22` (`64c8b3e429eadd7a12d34eb1e5eefa0c08e430e4`)
|
|
5
|
+
**Platform:** Windows 11, Python 3.10, Git Bash
|
|
6
|
+
**Corpus:** repositories under `laboratorioDePruebas/testing/`; the largest
|
|
7
|
+
reported target contains 3,342 Java files.
|
|
8
|
+
|
|
9
|
+
This document records external observations. An observation is not a closure:
|
|
10
|
+
the defect ledger remains authoritative until a fix, all affected consumers and
|
|
11
|
+
a regression assertion exist.
|
|
12
|
+
|
|
13
|
+
## Executive Result
|
|
14
|
+
|
|
15
|
+
The audit rates ASK Engine **6.6/10** on the large MSAS corpus and **7.5/10** on
|
|
16
|
+
the smaller nine-axis assessment. The measurements agree on the main risk:
|
|
17
|
+
source analysis is accurate and unusually explicit about uncertainty, but large
|
|
18
|
+
repository execution and several output contracts are not yet reliable enough
|
|
19
|
+
for interactive or unattended security use.
|
|
20
|
+
|
|
21
|
+
Strengths confirmed: endpoint extraction, effective access resolution,
|
|
22
|
+
determinism, structured input errors, cache warm-up and bounded CI-oriented
|
|
23
|
+
flows. The principal gaps are silent success, incomplete parse disclosure,
|
|
24
|
+
SQL-injection recall, memory, and inconsistent CLI contracts.
|
|
25
|
+
|
|
26
|
+
## Priority Findings
|
|
27
|
+
|
|
28
|
+
| ID | Priority | Status | Finding and closure requirement |
|
|
29
|
+
|---|---|---|---|
|
|
30
|
+
| `BUG-01` | P0 | Open | `audit-report --format markdown` reproduced with `rc=0` and empty stdout. Add a non-empty-answer invariant and full/partial renderer coverage. |
|
|
31
|
+
| `BUG-02` | P0 | Open | Large `risk` ended `rc=127` with no output or structured error. Add fail-fast resource/process handling and durable partial checkpoints. |
|
|
32
|
+
| `BUG-12` | P0 | Open | Deep `--agent` output construction reaches multi-gigabyte RSS before producing a small answer. Bound projection while building, not after materialization. |
|
|
33
|
+
| `BUG-03` | P1 | Open | `content_id` changes between cold and warm because cache state is hashed into the answer. Separate execution metadata from answer identity. |
|
|
34
|
+
| `BUG-04` | P1 | Open | `selftest` publishes `complete=true` with five error rows. Derive bounds from its actual result population. |
|
|
35
|
+
| `BUG-04b` | P1 | Open | `selftest` uses a fixed 120-second deadline not covered by the documented analysis budget. Make it configurable or refuse unscoped large runs. |
|
|
36
|
+
| `BUG-05` | P1 | Open | Overloaded endpoint handlers can receive the wrong declaration line. Resolve by mapping annotation or publish ambiguity. |
|
|
37
|
+
| `BUG-06` | P1 | Open | The `repo-ir --budget-tokens 12000` help example is below the measured minimum view (~20,367 tokens) on the audited corpus. |
|
|
38
|
+
| `BUG-07` | P1 | Open | `--compact` exceeds the published size expectation on `migrate-check` and `spring-audit`. Apply bounded projections with omission metadata. |
|
|
39
|
+
| `BUG-08` | P1 | Open | Root help claims universal `--path`, `--repo` and `--dir` aliases, but sampled commands reject them. Align implementation and help. |
|
|
40
|
+
| `BUG-09` | P2 | Open | Related diff commands disagree on `--base`, `--base-ref`, `--since`, `--repo` and `--path`. Accept compatible aliases or publish one vocabulary. |
|
|
41
|
+
| `BUG-10` | P1 | Open | Unsupported routing styles can produce `coverage.gaps=[]`. Publish detected-but-unmodeled routing gaps. |
|
|
42
|
+
| `BUG-11` | P1 | Open | Default `pack assessment` can fail on a small Spring repository. Use a bounded default or explicit full mode. |
|
|
43
|
+
| `BUG-13` | P1 | Open | Unscoped `selftest` starts over nested repositories after warning. Refuse and require an explicit repository path. |
|
|
44
|
+
| `BUG-15` | P2 | Open | Non-terminal help output contains visible markup/control text. Strip markup when stdout is not a TTY. |
|
|
45
|
+
| `BUG-16` | P1 | Open | Context-cache growth is not bounded or documented; about 1.5 GB was measured. Add a published budget, eviction policy and status. |
|
|
46
|
+
| `BUG-19` | P2 | Open | Unknown-command errors use plain text instead of the JSON error envelope. Normalize command admission errors. |
|
|
47
|
+
| `BUG-20` | P2 | Open | `--detach` can report the unresolved user path while writing to a resolved Windows path. Publish the actual absolute output path. |
|
|
48
|
+
| `BUG-21` | P2 | Open | `--jobs 999` is silently clipped. Publish the effective limit or reject out-of-range values. |
|
|
49
|
+
| `BUG-22` | P1 | Open | RSS ceilings are checked post-hoc; a 50 MB ceiling was reported only after ~768 MB. Add periodic in-flight sampling and orderly abort. |
|
|
50
|
+
| `BUG-23` | P2 / coverage | Open | Micronaut is detected but unsupported and its controllers are not modeled as endpoints. Add a scoped coverage contract. |
|
|
51
|
+
|
|
52
|
+
## Performance Evidence
|
|
53
|
+
|
|
54
|
+
The audit measured `--agent` on ThingsBoard at **182.6 s / 2,088 MB RSS** and
|
|
55
|
+
`spring-audit` at **164.2 s cold**. On the larger MSAS corpus it reports
|
|
56
|
+
`ask . --agent` at **447 s**, `contract-diff` at **329 s**, `delta` at **187 s**,
|
|
57
|
+
and `validation --compact` at **91 s**. Warm root compact analysis can be below
|
|
58
|
+
one second; these are cold/deep-path costs.
|
|
59
|
+
|
|
60
|
+
Until the P0/P1 rows close, do not market `risk`, full `audit-report` or full
|
|
61
|
+
`--agent` as interactive guarantees for 3,000+ Java-file repositories. The
|
|
62
|
+
target remains bounded interactive views below 20 s and peak RSS below 400 MB
|
|
63
|
+
on the reference large-repository tier.
|
|
64
|
+
|
|
65
|
+
## Required Closure Bar
|
|
66
|
+
|
|
67
|
+
Each P0/P1 row requires a focused regression test, output/exit-code assertions,
|
|
68
|
+
cold/warm/concurrent runs on the affected platform, and a ledger entry naming
|
|
69
|
+
the fix commit and remaining verification boundary. Documentation alone never
|
|
70
|
+
closes a defect.
|
|
71
|
+
|
|
@@ -14,6 +14,32 @@ Status values: `open` · `in-progress` · `closed <version>` · `by-design` (wit
|
|
|
14
14
|
The facts these rows are keyed to are published: `ask schema facts-v1` prints the registry
|
|
15
15
|
(authority, definition, consumers, parity test) that the release battery enforces.
|
|
16
16
|
|
|
17
|
+
## Current Synchronization — External Audit `5.9.22` (2026-09-01)
|
|
18
|
+
|
|
19
|
+
The external audit confirms strong precision, determinism and uncertainty
|
|
20
|
+
disclosure, but opens a P0/P1 cluster around silent success, incomplete
|
|
21
|
+
population disclosure, large-run memory and compact-output contracts. Full
|
|
22
|
+
evidence: [`AUDIT-2026-09-01-EXTERNAL-5.9.22.md`](AUDIT-2026-09-01-EXTERNAL-5.9.22.md).
|
|
23
|
+
|
|
24
|
+
| ID | Severity | Status | Evidence and required closure |
|
|
25
|
+
|---|---:|---|---|
|
|
26
|
+
| `BUG-01` | Critical maximum | **open, P0** | Full Markdown `audit-report` reproduced with `rc=0` and empty stdout. Add a global non-empty-answer invariant and renderer coverage. |
|
|
27
|
+
| `BUG-02` | Critical maximum | **open, P0** | Large `risk` ended `rc=127` with no output or structured failure. Add fail-fast resource/process handling and durable partial checkpoints. |
|
|
28
|
+
| `BUG-12` | Critical maximum | **open, P0** | Deep `--agent` output construction reaches multi-gigabyte RSS before a small answer. Bound projection while building. |
|
|
29
|
+
| `BUG-03` | High | **open, P1** | `content_id` changes between cold and warm because cache state is hashed into identity. Separate execution metadata from answer identity. |
|
|
30
|
+
| `BUG-04` | High | **open, P1** | `selftest` publishes `complete=true` with five error rows. Derive bounds from actual results. |
|
|
31
|
+
| `BUG-05` | High | **open, P1** | Overloaded endpoint handlers can receive the wrong declaration line. Resolve by mapping annotation or publish ambiguity. |
|
|
32
|
+
| `BUG-07` | High | **open, P1** | `--compact` remains oversized on `migrate-check` and `spring-audit`. Apply bounded projections with omission metadata. |
|
|
33
|
+
| `BUG-10` | High | **open, P1** | Unsupported routing styles can produce empty coverage gaps. Publish detected-but-unmodeled routing gaps. |
|
|
34
|
+
| `BUG-11` | High | **open, P1** | Default `pack assessment` can fail on a small Spring repository. Use a bounded default or explicit full mode. |
|
|
35
|
+
| `BUG-13` | High | **open, P1** | Unscoped `selftest` starts over nested repositories after warning. Refuse and require an explicit path. |
|
|
36
|
+
| `BUG-16` | High | **open, P1** | Context-cache growth has no published budget or eviction contract; about 1.5 GB was measured. |
|
|
37
|
+
| `BUG-22` | High | **open, P1** | RSS ceilings are checked post-hoc. Add periodic sampling and orderly abort. |
|
|
38
|
+
|
|
39
|
+
The remaining `BUG-04b`, `BUG-06`, `BUG-08`, `BUG-09`, `BUG-15`, `BUG-19`,
|
|
40
|
+
`BUG-20`, `BUG-21` and `BUG-23` findings are open P2/coverage follow-ups in
|
|
41
|
+
the audit document. None is closed by documentation alone.
|
|
42
|
+
|
|
17
43
|
## Current Synchronization — External Audit `AUD-621`
|
|
18
44
|
|
|
19
45
|
**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.
|
|
@@ -1,11 +1,46 @@
|
|
|
1
1
|
# ASK — Development Roadmap
|
|
2
2
|
|
|
3
|
+
### Release 5.9.20 — JVM evidence inventory
|
|
4
|
+
|
|
5
|
+
The accepted JVM R&D scope is implemented in `migrate-check`: local framework,
|
|
6
|
+
toolchain, runtime-pattern and Docker/CI evidence plus bounded CycloneDX/SPDX JSON
|
|
7
|
+
reading. The output is advisory and additive; no network, dependency resolution,
|
|
8
|
+
CVE lookup, signature verification or runtime recommendation is performed.
|
|
9
|
+
|
|
10
|
+
### Performance pass — 2026-08-31
|
|
11
|
+
|
|
12
|
+
The JVM inventory no longer rediscovers the Java tree inside `migrate-check`: the
|
|
13
|
+
command reuses its already-resolved source population and only discovers local
|
|
14
|
+
configuration, CI, container and SBOM candidates. On the current testing corpus,
|
|
15
|
+
fresh measurements were approximately 4.8 s for `openmrs-core` and 7.6 s for
|
|
16
|
+
`jenkins` using `migrate-check --compact`; no output or readiness semantics changed.
|
|
17
|
+
|
|
18
|
+
This is a bounded improvement, not closure of the performance target. The remaining
|
|
19
|
+
8/10 work is the cold/full-graph path and high-cost `--agent`, `posture`, `risk` and
|
|
20
|
+
`impact-chain` cases. Those require separate profiling and memory measurements before
|
|
21
|
+
claiming a broad speedup.
|
|
22
|
+
|
|
3
23
|
### Release 5.9.19 — `AUD-621` remediation
|
|
4
24
|
|
|
5
25
|
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
26
|
|
|
7
27
|
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
28
|
|
|
29
|
+
### JVM I+D triage — accepted scope from 2026-08-31
|
|
30
|
+
|
|
31
|
+
The external JVM report has been depurated against primary sources and the current
|
|
32
|
+
ASK route. It receives a limited green light: extend `migrate-check` with a
|
|
33
|
+
source-backed JDK/build/framework inventory (P0), then add small detectors for
|
|
34
|
+
virtual threads, `ScopedValue`, modules, native-image/jlink/jpackage and Java
|
|
35
|
+
versions declared by CI or containers (P1). The decision record, accepted facts,
|
|
36
|
+
rejected scope and sources are in
|
|
37
|
+
[`RD-JVM-ASK-TRIAGE-2026-08-31.md`](RD-JVM-ASK-TRIAGE-2026-08-31.md).
|
|
38
|
+
|
|
39
|
+
This does not authorize embeddings, hosted vector search, APM/repository
|
|
40
|
+
integrations, Sigstore verification, CVE database work or prescriptive runtime
|
|
41
|
+
tuning. A local CycloneDX/SPDX reader remains a conditional P2 experiment and
|
|
42
|
+
must preserve ASK's no-network, source-evidence and non-coverage contracts.
|
|
43
|
+
|
|
9
44
|
### External Audit Intake — `AUD-621` re-audit, release 5.9.17
|
|
10
45
|
|
|
11
46
|
The 2026-08-31 re-audit corrects the optimistic interpretation of the previous
|
|
@@ -59,7 +59,7 @@ single-repo, offline.**
|
|
|
59
59
|
| **Modernization planning** | `ask modernize .` | Hotspots, callerless types (with `unknown` where a framework may dispatch), coupling tangles, refactor roadmap |
|
|
60
60
|
| **Git-churn ranking** | `--rank-by git-churn` | File volatility via git history |
|
|
61
61
|
| **No truncation limits** | `--full` | Full transactional boundaries, DTO mappers, large result sets |
|
|
62
|
-
| **Spring semantic audit** | `ask spring-audit .` | TX-001..006 anomalies + SEC-001..
|
|
62
|
+
| **Spring semantic audit** | `ask spring-audit .` | TX-001..006 anomalies + SEC-001..010 security surface; JAVA/SPRING only |
|
|
63
63
|
| **Impact chain + opt-in TX/SEC findings** | `ask impact-chain <symbol>` (`--with-findings` for audit findings) | Systemic blast radius with transaction boundary and security surfaces per hop |
|
|
64
64
|
| **Event topology** | `ask impact-chain <event> --type events` | Publisher → event → consumer graph; AFTER_COMMIT/BEFORE_COMMIT TX phase |
|
|
65
65
|
| RIS bootstrap context | `ask cold-start .` | Repository Intelligence Snapshot; instant return from persisted cache |
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Depuracion I+D JVM para ASK
|
|
2
|
+
|
|
3
|
+
**Fecha:** 2026-08-31
|
|
4
|
+
**Entrada:** informe externo sobre novedades del ecosistema JVM 2025-2026
|
|
5
|
+
**Decision:** luz verde parcial para inventario y deteccion estructural; no para ampliar ASK a busqueda vectorial, APM o integraciones externas.
|
|
6
|
+
|
|
7
|
+
## Criterio
|
|
8
|
+
|
|
9
|
+
Una propuesta entra en el roadmap solo si cumple las cuatro condiciones siguientes:
|
|
10
|
+
|
|
11
|
+
- aporta un hecho que ASK pueda verificar localmente;
|
|
12
|
+
- puede publicarse con ruta y linea de evidencia;
|
|
13
|
+
- no requiere red, credenciales ni una base externa durante el analisis;
|
|
14
|
+
- mejora una pregunta que ASK ya responde sobre modernizacion, arquitectura o seguridad del cambio.
|
|
15
|
+
|
|
16
|
+
El informe original es util como lista de hipotesis, pero no como inventario de actualidad: mezcla releases confirmadas, roadmaps, previsiones y afirmaciones de proveedor sin enlaces reproducibles. Las versiones concretas no se convierten en reglas hasta que exista una fuente primaria y una prueba sobre un repositorio fixture.
|
|
17
|
+
|
|
18
|
+
## Hechos aceptados
|
|
19
|
+
|
|
20
|
+
| Area | Hecho verificable | Uso en ASK |
|
|
21
|
+
|---|---|---|
|
|
22
|
+
| JDK 25 | `import module` esta finalizado en JEP 511; los archivos fuente compactos y los `main` de instancia pertenecen a JEP 512. | Detectar sintaxis y declarar el nivel de lenguaje observado, sin recomendar una migracion automaticamente. |
|
|
23
|
+
| Spring | Spring Framework 7 y Spring Boot 4.0 mantienen Java 17 como baseline y adoptan Java 25 como foco. | Extender la evidencia de version/framework de `migrate-check` y separar Boot 3/4. |
|
|
24
|
+
| Quarkus | Quarkus 3.31 declara soporte para Java 25, incluyendo runtime images y native builds con Mandrel. | Reconocer toolchain y empaquetado, sin inferir que Java 25 sea una recomendacion para todos los proyectos. |
|
|
25
|
+
| Jakarta EE | Jakarta EE 11 requiere Java 17 o superior e incorpora Jakarta Data 1.0, soporte para records y recursos basados en virtual threads. | Mejorar la lectura de stack y de requisitos de plataforma. |
|
|
26
|
+
| Gradle | Gradle 9 requiere JVM 17 o superior para ejecutar el daemon; toolchains permiten compilar para niveles diferentes. | Separar JVM del build y nivel de compilacion en el inventario. |
|
|
27
|
+
| SBOM | CycloneDX 1.7 y SPDX 3.0 son formatos publicos con esquemas y serializaciones verificables. | Posible entrada local futura; no implica una base CVE ni una integracion de repositorio. |
|
|
28
|
+
|
|
29
|
+
Fuentes primarias: [JEP 511](https://openjdk.org/jeps/8344700), [Spring Framework 7](https://spring.io/blog/2025/11/13/spring-framework-7-0-general-availability), [Spring Boot 4.0](https://spring.io/blog/2025/11/20/spring-boot-4-0-0-available-now), [Quarkus 3.31](https://quarkus.io/blog/quarkus-3-31-released/), [Jakarta EE 11](https://jakarta.ee/specifications/platform/11/), [Gradle 9](https://docs.gradle.org/current/userguide/upgrading_major_version_9.html), [CycloneDX](https://cyclonedx.org/specification/overview/) y [SPDX](https://spdx.dev/use/specifications/).
|
|
30
|
+
|
|
31
|
+
## Propuestas aceptadas
|
|
32
|
+
|
|
33
|
+
### P0 — Inventario de toolchain y framework
|
|
34
|
+
|
|
35
|
+
Ampliar el inventario existente de `migrate-check` para publicar, cuando haya evidencia:
|
|
36
|
+
|
|
37
|
+
- version de lenguaje/JDK objetivo y version de runtime declarada;
|
|
38
|
+
- proveedor o distribucion JDK solo cuando aparece de forma explicita;
|
|
39
|
+
- Maven/Gradle, wrapper, plugin y toolchain;
|
|
40
|
+
- Spring Boot, Spring Framework, Hibernate, Jakarta EE, Quarkus y Micronaut;
|
|
41
|
+
- separacion entre "declarado por build", "detectado en codigo" y "no observado".
|
|
42
|
+
|
|
43
|
+
No se debe resolver una version consultando Maven Central ni inferir el proveedor a partir de una imagen generica. La salida debe conservar el modelo actual de ASK: hecho, fuente, confianza y no cobertura.
|
|
44
|
+
|
|
45
|
+
### P1 — Patrones JVM con evidencia
|
|
46
|
+
|
|
47
|
+
Añadir detecciones pequenas y especificas para:
|
|
48
|
+
|
|
49
|
+
- `Thread.ofVirtual`, `Executors.newVirtualThreadPerTaskExecutor` y APIs equivalentes;
|
|
50
|
+
- `ScopedValue`;
|
|
51
|
+
- `module-info.java` e instrucciones de empaquetado `jlink`, `jpackage` y `native-image`;
|
|
52
|
+
- version de Java en Dockerfiles y pipelines CI cuando el fichero esta en el repositorio.
|
|
53
|
+
|
|
54
|
+
Cada detector debe producir una observacion `archivo:linea`, evitar recomendaciones normativas y no alterar las poblaciones actuales de endpoints, riesgo o impacto. Si un patron no puede confirmarse, debe quedar como `unknown` o no observado, nunca como ausencia.
|
|
55
|
+
|
|
56
|
+
### P2 — Entrada local de SBOM, incorporada
|
|
57
|
+
|
|
58
|
+
Se incorpora el parseo local de SBOM CycloneDX/SPDX en JSON ya presentes en el repositorio. El alcance se limita a formato, version y coordenadas de componentes. Quedan fuera la consulta de CVEs, la validacion de licencias, la verificacion Sigstore, la conexion con Artifactory/Nexus y el almacenamiento de claves.
|
|
59
|
+
|
|
60
|
+
La implementacion se ejecuta sin red y con limites de tamano. No confunde "componente declarado" con "vulnerabilidad explotable"; XML y documentos no reconocidos permanecen fuera del alcance explicito.
|
|
61
|
+
|
|
62
|
+
## No aprobado
|
|
63
|
+
|
|
64
|
+
- Embeddings, Qdrant/Pinecone y busqueda semantica como camino principal: coste, deriva y falta de evidencia de que la busqueda estructural actual sea el cuello de botella.
|
|
65
|
+
- Subida o correlacion de perfiles JFR/async-profiler: superficie de privacidad y operacion fuera del producto actual.
|
|
66
|
+
- Plugins directos para APM, Artifactory, Nexus, Sigstore o proveedores JDK: dependencia externa y coste de mantenimiento desproporcionado.
|
|
67
|
+
- Recomendaciones automaticas de GC, Java 25 o framework: el repositorio no prueba por si solo la carga de produccion ni la compatibilidad operacional.
|
|
68
|
+
- Extender ASK a Docker/Kubernetes/Go como analizador general: no es una consecuencia de detectar un fichero de pipeline o una imagen base.
|
|
69
|
+
|
|
70
|
+
## Criterios de cierre
|
|
71
|
+
|
|
72
|
+
La iniciativa no se considera hecha por reconocer una cadena. Debe aportar fixtures de Maven y Gradle, al menos un proyecto Spring Boot, uno Quarkus o Jakarta, un Dockerfile/CI con version Java y controles negativos. La bateria debe comprobar:
|
|
73
|
+
|
|
74
|
+
- evidencia de archivo y linea;
|
|
75
|
+
- determinismo frio/caliente y ausencia de red;
|
|
76
|
+
- distincion entre declarado, observado y desconocido;
|
|
77
|
+
- no regresion byte a byte de los payloads existentes cuando los nuevos campos no aplican;
|
|
78
|
+
- limites de salida y no mutacion del repositorio.
|
|
@@ -332,7 +332,7 @@ value in field use, and they are the ones to learn first:
|
|
|
332
332
|
| `ask posture . --diff dev:prod` | The only command that answers *"what changes about effective access between two profile sets, across every endpoint at once"*. Experimental, and the most differentiated capability in the product. |
|
|
333
333
|
| `ask endpoints .` | Every REST endpoint with its **effective path** (context-path + `spring.mvc.servlet.path` resolved), inferred security policy and per-endpoint confidence. Turns "audit the API" into a list. |
|
|
334
334
|
| `ask spring-audit .` | Transactional anomalies that a compiler cannot see — `@Transactional` on a private method is a silent CGLIB no-op — plus the security surface. |
|
|
335
|
-
| `ask migrate-check . --compact` | Boot 2→3 readiness plus Java LTS/licensing inventory: blockers, effort, target JDK evidence and explicit licensing-review signals. |
|
|
335
|
+
| `ask migrate-check . --compact` | Boot 2→3 readiness plus Java LTS/licensing and local JVM ecosystem inventory: blockers, effort, target JDK evidence, framework/runtime signals and explicit licensing-review signals. |
|
|
336
336
|
|
|
337
337
|
Everything else is either a projection of the same model (`impact`, `export`, `explain`) or an
|
|
338
338
|
agent-facing packaging of it (`--compact`, `--agent`, `prepare-context`). The full surface is
|
|
@@ -382,6 +382,9 @@ Output: detected stacks, entry points, dependencies, transactional boundaries (S
|
|
|
382
382
|
### `ask --agent`
|
|
383
383
|
|
|
384
384
|
More structured version of `--compact`. Designed for AI agent system prompt injection.
|
|
385
|
+
It is bounded to 40 KB on stdout and admits repositories up to 10,000 Java files;
|
|
386
|
+
larger repositories return `AGENT_SCOPE_TOO_LARGE` before expensive analysis. Use
|
|
387
|
+
`--compact` or narrow the path in that case.
|
|
385
388
|
|
|
386
389
|
```bash
|
|
387
390
|
ask /repo --agent --output context.json
|
|
@@ -528,7 +531,7 @@ disabled changes runtime behaviour nobody measured; a diff is how a person makes
|
|
|
528
531
|
call with the evidence in front of them.
|
|
529
532
|
|
|
530
533
|
**TX patterns (TX-001..TX-006):** proxy bypass, nested transactions, readOnly propagation, NOT_SUPPORTED in active TX, exception swallowing, self-invocation of a `@Transactional` sibling.
|
|
531
|
-
**SEC patterns (SEC-001..SEC-
|
|
534
|
+
**SEC patterns (SEC-001..SEC-010):** unsecured endpoints, CVE-2025-41248 `@PreAuthorize` inheritance bypass, `@Transactional` on controllers, passwords stored under a fast unsalted digest, CSRF disabled under session-bearing authentication, cookies created without the Secure attribute, credentials stored in a deployment descriptor, SQL built by MyBatis string interpolation, anonymous request-chain exceptions, and HTTP input reaching a concatenated known query sink through bounded positional in-repository calls. **DEAD-001** reports a security control that is present only in comments and therefore disabled.
|
|
532
535
|
**GATE patterns (GATE-001..GATE-004):** custom AOP/security-gate risks over the same custom-gate authority published in `security_posture`: proxy bypass (`private`/`final`/self-invocation), advice that appears to fail open, disabled or tautological annotation attributes, and fragile `args[0]`/reflection binding.
|
|
533
536
|
|
|
534
537
|
Each finding includes `severity`, `confidence`, `symbol`, `source_file`, `evidence`, `explanation`, and `fix_hint`. JAVA/SPRING ONLY.
|
|
@@ -1812,10 +1815,10 @@ stops at 1 408 files inside the `SEC-004` group and ends at 5.1s.
|
|
|
1812
1815
|
**Memory budget.** Repository-scoped JSON answers include `_meta.memory` with
|
|
1813
1816
|
`unit: "MB"`, the observed `peak_rss_mb`, the `peak_rss_basis` it was sampled
|
|
1814
1817
|
from, `configured_max_rss_mb`, and `ceiling_enforceable`. To bound long analyses
|
|
1815
|
-
on a CI or supervised runner, set `ASK_MAX_RSS_MB=<megabytes>`.
|
|
1816
|
-
ceiling produces exit code `1`
|
|
1817
|
-
|
|
1818
|
-
|
|
1818
|
+
on a CI or supervised runner, set `ASK_MAX_RSS_MB=<megabytes>`. `--agent` uses
|
|
1819
|
+
1,536 MB when the variable is unset. Exceeding the ceiling produces exit code `1`
|
|
1820
|
+
and a structured `MEMORY_TOO_LARGE` error with the peak and configured limit; no
|
|
1821
|
+
partial answer is published. Set the variable to `0` to disable this ceiling.
|
|
1819
1822
|
|
|
1820
1823
|
Where the platform exposes no footprint sample, `peak_rss_mb` is `null` and
|
|
1821
1824
|
`peak_rss_basis` says why — never `0`, which would read as a measured floor. A
|
|
@@ -97,6 +97,30 @@ resolved for this field, and ASK does not make a legal entitlement claim. If the
|
|
|
97
97
|
not declare a Java version, the inventory reports `java_version_unknown`; it never treats missing
|
|
98
98
|
evidence as ready for the target LTS.
|
|
99
99
|
|
|
100
|
+
## JVM ecosystem inventory (`jvm_inventory`)
|
|
101
|
+
|
|
102
|
+
The report also includes `jvm_inventory` (`jvm-inventory-v1`), a bounded and
|
|
103
|
+
advisory evidence block for modernization planning. It records local build
|
|
104
|
+
coordinates and source imports for Spring Boot/Framework, Hibernate, Jakarta EE,
|
|
105
|
+
Quarkus and Micronaut, plus evidence for virtual threads, `ScopedValue`, Java
|
|
106
|
+
modules, `native-image`, `jlink`, `jpackage`, and Java versions declared in Docker
|
|
107
|
+
or CI files. Source/build evidence includes a POSIX path and line number; SBOM
|
|
108
|
+
documents include their local path and format/version.
|
|
109
|
+
|
|
110
|
+
Frameworks are classified as `declared_only`, `observed_only`,
|
|
111
|
+
`declared_and_observed`, or `unobserved`; missing evidence is not a positive claim.
|
|
112
|
+
The scanner reads local text only, caps its file/evidence population, does not
|
|
113
|
+
execute Maven/Gradle, resolve dependencies, access the network, inspect a CVE
|
|
114
|
+
database, or make runtime recommendations. It is additive and does not affect
|
|
115
|
+
readiness, findings, effort, or existing endpoint populations.
|
|
116
|
+
|
|
117
|
+
The conditional P2 SBOM reader is available under `jvm_inventory.sbom` for
|
|
118
|
+
local CycloneDX JSON (`bomFormat`) and SPDX JSON (`spdxVersion`) documents. It
|
|
119
|
+
reports document format/version and bounded component coordinates only. It does
|
|
120
|
+
not query CVE or license databases, verify signatures, contact artifact
|
|
121
|
+
repositories, or make a supply-chain verdict. XML SBOMs and unrecognized JSON
|
|
122
|
+
remain outside this reader and are not interpreted.
|
|
123
|
+
|
|
100
124
|
## Claim provenance (`evidence_manifest`)
|
|
101
125
|
|
|
102
126
|
Every JSON report also includes `evidence_manifest`: a compact index of the claims already
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "perf-baseline-v1",
|
|
3
|
+
"tool_version": "5.9.22",
|
|
4
|
+
"captured_at": "2026-09-01T08:51:30Z",
|
|
5
|
+
"command": "ask",
|
|
6
|
+
"repo": {
|
|
7
|
+
"name": "spring-petclinic",
|
|
8
|
+
"commit": "45649e0",
|
|
9
|
+
"files": 47,
|
|
10
|
+
"bytes": 123264,
|
|
11
|
+
"classes": 25,
|
|
12
|
+
"methods": 72
|
|
13
|
+
},
|
|
14
|
+
"scale_dimensions": {
|
|
15
|
+
"files": 47,
|
|
16
|
+
"classes": 25,
|
|
17
|
+
"methods": 72
|
|
18
|
+
},
|
|
19
|
+
"scale_dimensions_basis": "The repository axes this timing is expected to scale over. A performance claim without these dimensions is not comparable across repositories.",
|
|
20
|
+
"mode": "cold",
|
|
21
|
+
"runs": 2,
|
|
22
|
+
"wall_ms": {
|
|
23
|
+
"p50": 742.306,
|
|
24
|
+
"p95": 753.485,
|
|
25
|
+
"min": 729.885,
|
|
26
|
+
"max": 754.727
|
|
27
|
+
},
|
|
28
|
+
"phase_ms": {
|
|
29
|
+
"discovery": {
|
|
30
|
+
"p50": 6.152,
|
|
31
|
+
"p95": 6.238
|
|
32
|
+
},
|
|
33
|
+
"detection": {
|
|
34
|
+
"p50": 19.386,
|
|
35
|
+
"p95": 19.954
|
|
36
|
+
},
|
|
37
|
+
"analysis": {
|
|
38
|
+
"p50": 126.555,
|
|
39
|
+
"p95": 127.517
|
|
40
|
+
},
|
|
41
|
+
"serialize": {
|
|
42
|
+
"p50": 0.898,
|
|
43
|
+
"p95": 0.906
|
|
44
|
+
},
|
|
45
|
+
"unattributed_p50": 589.315
|
|
46
|
+
},
|
|
47
|
+
"rss_peak_bytes": {
|
|
48
|
+
"p50": 75284480.0,
|
|
49
|
+
"p95": 75284480.0
|
|
50
|
+
},
|
|
51
|
+
"env": {
|
|
52
|
+
"python": "3.14.6",
|
|
53
|
+
"os": "darwin",
|
|
54
|
+
"cpu": "arm",
|
|
55
|
+
"cores": 8,
|
|
56
|
+
"hostname_hash": "3972fec0",
|
|
57
|
+
"host_id_declared": false
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "perf-baseline-v1",
|
|
3
|
+
"tool_version": "5.9.22",
|
|
4
|
+
"captured_at": "2026-09-01T08:51:32Z",
|
|
5
|
+
"command": "ask",
|
|
6
|
+
"repo": {
|
|
7
|
+
"name": "spring-petclinic",
|
|
8
|
+
"commit": "45649e0",
|
|
9
|
+
"files": 47,
|
|
10
|
+
"bytes": 123264,
|
|
11
|
+
"classes": 25,
|
|
12
|
+
"methods": 72
|
|
13
|
+
},
|
|
14
|
+
"scale_dimensions": {
|
|
15
|
+
"files": 47,
|
|
16
|
+
"classes": 25,
|
|
17
|
+
"methods": 72
|
|
18
|
+
},
|
|
19
|
+
"scale_dimensions_basis": "The repository axes this timing is expected to scale over. A performance claim without these dimensions is not comparable across repositories.",
|
|
20
|
+
"mode": "warm",
|
|
21
|
+
"runs": 2,
|
|
22
|
+
"wall_ms": {
|
|
23
|
+
"p50": 352.405,
|
|
24
|
+
"p95": 356.578,
|
|
25
|
+
"min": 347.768,
|
|
26
|
+
"max": 357.042
|
|
27
|
+
},
|
|
28
|
+
"phase_ms": {
|
|
29
|
+
"discovery": null,
|
|
30
|
+
"detection": null,
|
|
31
|
+
"analysis": null,
|
|
32
|
+
"serialize": null,
|
|
33
|
+
"instrumentation": "absent"
|
|
34
|
+
},
|
|
35
|
+
"rss_peak_bytes": {
|
|
36
|
+
"p50": 75284480.0,
|
|
37
|
+
"p95": 75284480.0
|
|
38
|
+
},
|
|
39
|
+
"env": {
|
|
40
|
+
"python": "3.14.6",
|
|
41
|
+
"os": "darwin",
|
|
42
|
+
"cpu": "arm",
|
|
43
|
+
"cores": 8,
|
|
44
|
+
"hostname_hash": "3972fec0",
|
|
45
|
+
"host_id_declared": false
|
|
46
|
+
}
|
|
47
|
+
}
|