sourcecode 5.8.18__tar.gz → 5.8.21__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.8.18 → sourcecode-5.8.21}/.gitignore +5 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/CHANGELOG.md +128 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/CONTRIBUTING.md +12 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/PKG-INFO +15 -6
- {sourcecode-5.8.18 → sourcecode-5.8.21}/README.md +10 -4
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/DEFECT-LEDGER.md +381 -45
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/DEVELOPMENT-ROADMAP.md +251 -96
- sourcecode-5.8.21/docs/EXECUTION-PLAN-12MO.md +190 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/EXECUTIVE-ROADMAP.md +285 -63
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/MANUAL-USUARIO.md +9 -1
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/USER_GUIDE.md +15 -6
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/spec/envelope-v1.md +2 -0
- sourcecode-5.8.21/hatch_build.py +31 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/pyproject.toml +13 -2
- sourcecode-5.8.21/scripts/test_fast.sh +15 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/__init__.py +1 -1
- sourcecode-5.8.21/src/sourcecode/analysis_budget.py +27 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/audit_report.py +18 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/baseline_autocapture.py +18 -1
- sourcecode-5.8.21/src/sourcecode/build_stamp.py +49 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/cache_model.py +4 -2
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/caller_metrics.py +47 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/canonical_ir.py +41 -5
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/cli.py +819 -146
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/compare.py +3 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/container_wiring.py +66 -8
- sourcecode-5.8.21/src/sourcecode/defect_classes/__init__.py +179 -0
- sourcecode-5.8.21/src/sourcecode/defect_classes/registry.json +157 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/envelope.py +81 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/error_schema.py +5 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/execution_plan.py +32 -5
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/explain.py +5 -1
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/explain_endpoint.py +7 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/migrate_check.py +211 -114
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/non_coverage.py +44 -11
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/output_bounds.py +13 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/output_budget.py +27 -8
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/parse_cache.py +42 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/partial_contract.py +48 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/path_filters.py +67 -4
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/perf.py +54 -2
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/phased_run.py +28 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/posture.py +35 -6
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/pr_impact.py +18 -1
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/prepare_context.py +91 -12
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/product_info.py +16 -1
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/release_info.py +1 -1
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/rename_refactor.py +26 -8
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/repository_ir.py +357 -28
- sourcecode-5.8.21/src/sourcecode/resource_budget.py +77 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/risk.py +159 -10
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/schema_registry.py +21 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/schemas/endpoints-v1.schema.json +15 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/schemas/envelope-v1.schema.json +10 -0
- sourcecode-5.8.21/src/sourcecode/selection_contract.py +52 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/selftest.py +318 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/serializer.py +123 -7
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/spring_findings.py +32 -8
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/spring_impact.py +31 -6
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/spring_security_audit.py +23 -11
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/summarizer.py +148 -9
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/validation_surface.py +8 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/verify_edit.py +242 -37
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/verify_repo.py +22 -2
- sourcecode-5.8.21/src/sourcecode/wired_surface.py +312 -0
- sourcecode-5.8.18/docs/EXECUTION-PLAN-12MO.md +0 -173
- {sourcecode-5.8.18 → sourcecode-5.8.21}/.github/workflows/build-windows.yml +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/.github/workflows/perf-gate.yml +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/.ruff.toml +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/CLAUDE.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/LICENSE +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/NOTICE +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/SECURITY.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/CACHE.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/COMMERCIAL-OFFER.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/CUSTOMER-VALIDATION.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/DEMO-5MIN.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/MODERNIZATION.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/PRODUCT_AUDIT.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/PRODUCT_IDENTITY.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/PRODUCT_TIERS.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/RC1-CHECKLIST.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/RELEASE-CHECKLIST.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/architecture/CATALOG-retrieval-intents.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/architecture/DESIGN-knowledge-provider-integration.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/architecture/DESIGN-p5.3b-statement-surface.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/architecture/DESIGN-p5.5-span-index.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/architecture/DESIGN-p6-semantic-impact-engine.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/architecture/DESIGN-p6-semantic-integration-engine.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/architecture/DESIGN-p7-semantic-services.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/architecture/DESIGN-robustness-security-inference.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/architecture/DESIGN-semantic-retrieval.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/architecture/EPV-p6-class-typeref.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/architecture/REPORT-p6-flow-analyzer-comparison.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/architecture/REPORT-p6-integration-detector-comparison.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/architecture/REPORT-p8-flow-analyzer-migration.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/architecture/REPORT-p9-integration-detector-migration.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/architecture/adr/0001-semantic-ir.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/architecture/adr/0002-source-evidence-boundary.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/architecture/adr/0003-architectural-characterization.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/architecture/adr/0004-semantic-retrieval.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/architecture/adr/0005-evidence-reconciliation.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/architecture/adr/0006-performance-harness.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/architecture/adr/0007-composition-semantics.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/architecture/adr/0008-answer-coherence.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/architecture/consumer-disposition-inventory.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/architecture/overview.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/architecture/product-architecture-review.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/architecture/product-strategy-layering.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/architecture/semantic-ir-consumer-matrix.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/architecture/semantic-ir-roadmap.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/baseline-ci.yml +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/commercial-pipeline-audit.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/contracts-ci.yml +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/contracts.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/eval/2026-06-15-petclinic-rest-issue11-vets-pagination.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/eval/2026-06-15-petclinic-rest-issue147-validation.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/eval/2026-06-15-petclinic-rest-workflow.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/eval/2026-06-15-phase18-openapi-surface.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/eval/2026-06-15-phase20-validation-surface.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/eval/2026-06-16-broadleaf-checkout-impact-fieldtest.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/eval/2026-06-16-petclinic-rest-issue11-weakness2-closed.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/eval/2026-06-16-spring-petclinic-issue2333-dead-vets.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/licensing-schema.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/migrate-check.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/README.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/REGRESSION-GATE.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.15/SUMMARY.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.15/alfresco__ask__cold.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.15/alfresco__ask__warm.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.15/broadleaf__ask__cold.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.15/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.15/eureka__ask__cold.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.15/eureka__ask__warm.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.15/jenkins__ask__cold.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.15/jenkins__ask__warm.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.15/jobrunr__ask__cold.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.15/jobrunr__ask__warm.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.15/keycloak__ask__cold.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.15/keycloak__ask__warm.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.15/neo4j__ask__cold.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.15/neo4j__ask__warm.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.15/ofbiz__ask__cold.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.15/ofbiz__ask__warm.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.15/openmrs__ask__cold.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.15/openmrs__ask__warm.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.15/petclinic__ask__cold.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.15/petclinic__ask__warm.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.16/SUMMARY.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.16/alfresco__ask__cold.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.16/alfresco__ask__warm.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.16/broadleaf__ask__cold.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.16/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.16/eureka__ask__cold.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.16/eureka__ask__warm.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.16/jenkins__ask__cold.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.16/jenkins__ask__warm.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.16/jobrunr__ask__cold.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.16/jobrunr__ask__warm.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.16/keycloak__ask__cold.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.16/keycloak__ask__warm.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.16/neo4j__ask__cold.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.16/neo4j__ask__warm.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.16/ofbiz__ask__cold.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.16/ofbiz__ask__warm.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.16/openmrs__ask__cold.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.16/openmrs__ask__warm.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.16/petclinic__ask__cold.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/2.5.16/petclinic__ask__warm.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/gate-latest/README.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/gate-latest/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/gate-latest/broadleaf__endpoints__warm.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/gate-latest/broadleaf__migrate-check__warm.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/gate-latest/broadleaf__posture__warm.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/gate-latest/broadleaf__spring-audit__warm.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/gate-latest/broadleaf__validation__warm.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/perf/baselines/reference-best/README.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/posture.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/privacy.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/pro-experience-audit.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/schema.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/docs/spring-audit-ci.yml +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/scripts/compare_integration_engines.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/scripts/customer_smoke_test.sh +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/scripts/generate_jdk_exports.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/scripts/perf_gate.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/scripts/perf_harness.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/scripts/sync_gate_anchors.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/adaptive_scanner.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/answer_bounds.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/archetype.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/architectural_baseline.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/architectural_delta.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/architecture_analyzer.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/architecture_summary.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/ast_extractor.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/audit_clusters.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/audit_recipe.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/audit_since.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/breaking_changes.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/build_modules.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/bundled_docs.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/cache.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/call_surface.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/caller_reach.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/chain_rules.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/change_plan.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/ci_output.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/cir_graphs.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/classifier.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/client_calls.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/code_notes_analyzer.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/confidence_analyzer.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/constraint_diff.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/consumer_join.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/context_cache.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/context_graph.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/context_scorer.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/context_summarizer.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/contract_diff.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/contract_init.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/contract_model.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/contract_pipeline.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/coverage_parser.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/data_exposure.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/data_labels.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/declarations.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/defect_identity.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/degradation.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/dependency_analyzer.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/deployment_prefix.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/detach.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/detectors/__init__.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/detectors/base.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/detectors/csproj_parser.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/detectors/dart.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/detectors/dotnet.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/detectors/elixir.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/detectors/go.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/detectors/heuristic.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/detectors/hybrid.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/detectors/java.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/detectors/jvm_ext.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/detectors/nodejs.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/detectors/parsers.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/detectors/php.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/detectors/project.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/detectors/python.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/detectors/ruby.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/detectors/rust.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/detectors/systems.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/detectors/terraform.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/detectors/tooling.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/doc_analyzer.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/dynamic_argument_surface.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/empty_reach.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/endpoint_disposition.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/endpoint_literals.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/endpoint_metrics.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/entrypoint_classifier.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/env_analyzer.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/environment_resolution.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/evidence_provider.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/facts/__init__.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/facts/registry.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/field_deprecations.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/file_chunker.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/file_classifier.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/filter_surface.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/format_contract.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/fqn_utils.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/functional_routes.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/gate_anchors.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/git_analyzer.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/git_checkout.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/github_diff.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/graph_analyzer.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/graph_evidence.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/hibernate_strat.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/identity_fallback.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/integration_coordinates.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/jdk_exports.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/license.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/manifest_cache.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/mcp/__init__.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/mcp/dependency_import.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/mcp/onboarding/applier.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/mcp/onboarding/backup.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/mcp/onboarding/detector.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/mcp/onboarding/planner.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/mcp/orchestrator.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/mcp/registry.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/mcp/runner.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/mcp/server.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/mcp_nudge.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/metrics_analyzer.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/migration_apply.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/migration_blast.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/openapi_surface.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/openrewrite_recipe.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/output_ceiling.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/output_encoding.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/output_sink.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/parallel.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/path_admission.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/pipe_contract.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/pr_comment_renderer.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/progress.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/provenance.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/ranking_engine.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/readiness_timeline.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/readonly.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/reconciliation.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/redactor.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/reference_facts.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/regress.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/relevance_scorer.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/remediation_diff.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/remedies.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/repo_classifier.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/retrieval/__init__.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/retrieval/context.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/retrieval/errors.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/retrieval/executor.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/retrieval/planner.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/retrieval/query.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/retrieval/request.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/retrieval/resolution.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/retrieval/result.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/retrieval/retriever.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/retrieval/runtime.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/retrieval/steps.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/retrieval/steps_endpoint.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/retrieval/steps_graph.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/retrieval/steps_impact.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/retrieval/steps_intf.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/retrieval/steps_struct.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/retrieval/steps_txsec.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/ris.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/risk_model.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/rule_catalog.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/rule_pass.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/runs.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/runtime_classifier.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/sarif.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/scanner.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/schema.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/schema_producers.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/schemas/core-analysis-v1.schema.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/schemas/pr-impact-v1.schema.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/schemas/verify-edit-v1.schema.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/schemas/verify-v1.schema.json +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/security_chain.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/security_config.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/security_config_scan.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/security_posture.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/semantic_analyzer.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/semantic_impact_engine.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/semantic_integration_engine.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/semantic_services.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/servlet_surface.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/source_text.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/spring_event_topology.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/spring_model.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/spring_profiles.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/spring_properties.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/spring_semantic.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/spring_tx_analyzer.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/sql_taint.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/target_admission.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/telemetry/__init__.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/telemetry/config.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/telemetry/consent.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/telemetry/events.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/telemetry/filters.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/telemetry/transport.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/test_gap_ranking.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/test_sources.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/text_input.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/timeline.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/timeline_cache.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/token_estimate.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/tree_utils.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/type_usage_surface.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/validation_inference.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/verify_rules.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/version_check.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/waivers.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/src/sourcecode/workspace.py +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/supabase/functions/README.md +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/supabase/functions/get-license/index.ts +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/supabase/functions/lemonsqueezy-webhook/index.ts +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/supabase/functions/telemetry/index.ts +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/supabase/sql/license_event_ordering.sql +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/supabase/sql/licensing_schema.sql +0 -0
- {sourcecode-5.8.18 → sourcecode-5.8.21}/supabase/sql/telemetry_events.sql +0 -0
|
@@ -12,6 +12,8 @@ build/
|
|
|
12
12
|
.mypy_cache/
|
|
13
13
|
.ruff_cache/
|
|
14
14
|
.pytest_cache/
|
|
15
|
+
.testmondata
|
|
16
|
+
.testmondata-*
|
|
15
17
|
src/*.egg-info/
|
|
16
18
|
|
|
17
19
|
# Editor / IDE
|
|
@@ -43,3 +45,6 @@ tests/contextgraph_baseline/baseline/artifacts/
|
|
|
43
45
|
supabase/.temp/
|
|
44
46
|
# Internal agent playbook (not distributed)
|
|
45
47
|
docs/PLAYBOOK_V2.md
|
|
48
|
+
|
|
49
|
+
# AUD-592-D04: written by hatch_build.py during a build, never by hand.
|
|
50
|
+
src/sourcecode/_build_commit.py
|
|
@@ -1,5 +1,133 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [5.8.21] — 2026-08-22
|
|
4
|
+
|
|
5
|
+
*The tenth audit-pass queue is closed: seven remaining P3 fixes shipped as
|
|
6
|
+
separate commits, with the release documentation synchronized to the shipped
|
|
7
|
+
contracts.*
|
|
8
|
+
|
|
9
|
+
### Fixed — answer contracts and operational safety
|
|
10
|
+
|
|
11
|
+
- **Repository identity (`AUD-596-D01`)** — the common response envelope now
|
|
12
|
+
publishes `repo_id` and `git_head` for repository-scoped JSON answers.
|
|
13
|
+
- **Validation figures (`AUD-596-D03`)** — route constraint figures publish their
|
|
14
|
+
unit and counted population instead of relying on ambiguous field names.
|
|
15
|
+
- **Compare candidates (`AUD-596-D08`)** — directory candidates are rejected
|
|
16
|
+
before model construction, and comparison results publish resolved counts.
|
|
17
|
+
- **Grammar errors (`AUD-596-D11`)** — invalid command usage is now
|
|
18
|
+
`INVALID_USAGE`; semantic input failures remain `INVALID_INPUT`.
|
|
19
|
+
- **Actionable hints (`AUD-596-D12`)** — rename, endpoint explanation and
|
|
20
|
+
regression inputs validate their shapes and provide next steps that can work.
|
|
21
|
+
- **Schema pinning (`AUD-596-D14`)** — ambiguous identifiers such as `1.0`
|
|
22
|
+
publish `pinnable: false` and the canonical names to pin instead.
|
|
23
|
+
- **Peak memory (`AUD-596-D10`)** — JSON answers publish `_meta.memory` with
|
|
24
|
+
peak RSS, and costly analyses enforce `ASK_MAX_RSS_MB` with a structured
|
|
25
|
+
`MEMORY_TOO_LARGE` refusal. Unset or `0` leaves the ceiling disabled.
|
|
26
|
+
|
|
27
|
+
### Documentation
|
|
28
|
+
|
|
29
|
+
- Updated the README, English and Spanish user guides, release metadata and
|
|
30
|
+
roadmap status to 5.8.21.
|
|
31
|
+
- The generated `ask --help` remains the authority for command options and
|
|
32
|
+
now reports the installed 5.8.21 version.
|
|
33
|
+
|
|
34
|
+
## [5.8.20] — 2026-08-21
|
|
35
|
+
|
|
36
|
+
*`C1-36` is closed on all four remedies. The row was opened by two field
|
|
37
|
+
evaluations, reproduced on two builds, and returned twice under other numbers
|
|
38
|
+
(`E-24`, `E-28`); its last remedy stayed open for nine releases because the
|
|
39
|
+
first three were correct and none of them measured anything.*
|
|
40
|
+
|
|
41
|
+
### Fixed — the last open false negative in a `core` command
|
|
42
|
+
|
|
43
|
+
- **`C1-36` remedy (4) / `F-Y`** — a container-wired component publishes the
|
|
44
|
+
routes it is in front of. **pointcut → surface**: an `@Aspect` reaches the
|
|
45
|
+
handlers its pointcut selects, so `@Around("@annotation(X)")` is measured
|
|
46
|
+
against the routes carrying `X` instead of against a call graph that has no
|
|
47
|
+
edge to them. **matcher → routes**: a chain covers the routes its matchers
|
|
48
|
+
select, read through `chain_rules` — the authority `posture` already uses —
|
|
49
|
+
rather than a second extractor. One authority (`wired_surface`), three
|
|
50
|
+
consumers (`impact` / `plan` / `compare`, `impact-chain`, `pr-impact`), and an
|
|
51
|
+
assertion that the first two publish the same count for one symbol.
|
|
52
|
+
- The verdict is **unchanged on purpose**: `risk_level` stays `high` and
|
|
53
|
+
`risk_score` stays `null` (`C1-41`). The band is a floor established without
|
|
54
|
+
the fan-in, and measuring the reach is not a licence to lower it.
|
|
55
|
+
- A component that declares neither mechanism publishes `null`, never `0`, and
|
|
56
|
+
a matcher rule this analysis does not evaluate is counted `undecided`, never
|
|
57
|
+
covered. `NC-010` now names what is measured and what is still not.
|
|
58
|
+
- **`CL-16`** — `pr-impact` keeps `core` on the evidence the tier promises. The
|
|
59
|
+
row's condition (*"while this is open, `pr-impact` cannot honestly stay in
|
|
60
|
+
core"*) is discharged rather than argued.
|
|
61
|
+
|
|
62
|
+
### Added — process
|
|
63
|
+
|
|
64
|
+
- **`defect-classes-v1`**, a published registry: one sweep per defect class,
|
|
65
|
+
over a population named as `module:symbol`, with the guard asserted to *bind*
|
|
66
|
+
to that symbol. Answers, over the population it names, "12 classes registered,
|
|
67
|
+
10 swept, 6 recurrences over 12 closures". The rate carries its own basis and
|
|
68
|
+
population, because a rate over a chosen subset published as the product's
|
|
69
|
+
rate is the confident figure this registry exists to refuse.
|
|
70
|
+
- `container_wiring` publishes `KINDS`. Five loose constants were never a
|
|
71
|
+
population, which is the mechanism behind this release's headline row closing
|
|
72
|
+
three times.
|
|
73
|
+
- `ask schema <name>` resolves each registry to **its own** document. It matched
|
|
74
|
+
on "is a registry" and printed the fact registry for every one of them —
|
|
75
|
+
correct while a single registry reached it.
|
|
76
|
+
|
|
77
|
+
## [5.8.19] — 2026-08-21
|
|
78
|
+
|
|
79
|
+
*The ninth audit pass is closed: all twelve rows, one atomic commit each with a
|
|
80
|
+
regression assertion written over the catalogue rather than over the reported
|
|
81
|
+
symbol. No row in this pass was a regression, and the suite is green end to end
|
|
82
|
+
(11 008 passing) rather than carrying the pre-existing failure the last release
|
|
83
|
+
shipped with.*
|
|
84
|
+
|
|
85
|
+
### Fixed — contracts
|
|
86
|
+
|
|
87
|
+
- **`AUD-594-X01`** — `ASK_MAX_ANALYSIS_SECONDS` is described from one authority.
|
|
88
|
+
Three hand-written sentences still named three commands where the generated
|
|
89
|
+
line names eight, and one told the reader the repository-wide analysis *"must
|
|
90
|
+
not be CI-gated"*, which `AUD-590-B04` had made false.
|
|
91
|
+
- **`AUD-595-A03`** — a budget-cut run publishes `gate_exit_code`, `exit_code`
|
|
92
|
+
and their basis, from the same decision function the exit paths read, and
|
|
93
|
+
`--allow-partial` lets a gating pipeline accept a cut answer deliberately. The
|
|
94
|
+
reported premise is half refuted: `--ci` already exited 75.
|
|
95
|
+
- **`AUD-595-A02`** — every Java-file count names its population, and the audit
|
|
96
|
+
payload publishes `java_population_count` beside `java_population`. Sixth
|
|
97
|
+
report; the two figures count different populations, which is why the obvious
|
|
98
|
+
one-line fix would have been a second falsehood.
|
|
99
|
+
- **`AUD-594-X03`** — every catalogued fan-in figure emits `*_unit` **and**
|
|
100
|
+
`*_population`. The sweep found four more figures shipping one tag, none of
|
|
101
|
+
them reported.
|
|
102
|
+
- **`AUD-594-X02`** — `--agent` publishes the ceiling it already enforced.
|
|
103
|
+
`--agent` was never over budget; the earlier `+61 %` measured against a band
|
|
104
|
+
that has since been deleted.
|
|
105
|
+
- **`AUD-594-N04`** — `sibling_view` names the blocks it omitted, computed from
|
|
106
|
+
both view constructors, and `--compact` gains the reciprocal pointer.
|
|
107
|
+
- **`AUD-592-D02`** — `--min-band` publishes the same `_filter` disclosure in
|
|
108
|
+
`risk` and in `enrich`, from one module.
|
|
109
|
+
- **`AUD-595-A05`** — `endpoints` publishes `scope` and `repo_id`, and says *"the
|
|
110
|
+
analysed tree"* where the tree is not one repository.
|
|
111
|
+
- **`AUD-595-A07`** — the analysis cap and the sizing scan's cap each name the
|
|
112
|
+
walk they bound.
|
|
113
|
+
- **`E-39`** — the MyBatis pairing lists declare their cap and publish their
|
|
114
|
+
zero instead of vanishing; this also closes criterion 3 of `B-1`, unverifiable
|
|
115
|
+
for four reports for want of a fixture.
|
|
116
|
+
- **`AUD-595-B01`** — `cache_layers` distinguishes validated reuse from mere
|
|
117
|
+
presence, and the parse store publishes counted lookups. This is the field that
|
|
118
|
+
caused three retracted performance regressions in three passes.
|
|
119
|
+
|
|
120
|
+
### Fixed — provenance and process
|
|
121
|
+
|
|
122
|
+
- **`AUD-592-D04`** — the build stamps the commit it was made from. The reader
|
|
123
|
+
shipped five reports ago; nothing wrote it, and an installed wheel has no
|
|
124
|
+
checkout to fall back to.
|
|
125
|
+
- **`AUD-594-X04`** — a ledger row filed under a *"closed in X"* heading can no
|
|
126
|
+
longer ship reading `open`, enforced by the release battery.
|
|
127
|
+
- **`AUD-595-Q01`** — `selftest` grows from 7 rows to 10, covering `repo_id`
|
|
128
|
+
cardinality, cross-command fan-in agreement, and the unit/population contract.
|
|
129
|
+
Third request.
|
|
130
|
+
|
|
3
131
|
## [5.8.18] — 2026-08-21
|
|
4
132
|
|
|
5
133
|
*The eighth audit pass is closed. Every reported fix in that queue is shipped in
|
|
@@ -48,6 +48,18 @@ ask . prepare-context explain
|
|
|
48
48
|
pytest tests/
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
+
For the normal edit loop, use the incremental runner. The first run builds a
|
|
52
|
+
local dependency map; later runs execute only tests affected by changed code:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
scripts/test_fast.sh
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Pass normal pytest arguments through when needed, for example
|
|
59
|
+
`scripts/test_fast.sh tests/test_cli.py -x`. Run `pytest tests/` before merging
|
|
60
|
+
or when changing shared infrastructure, because the incremental selection is a
|
|
61
|
+
feedback optimization and the full suite remains the final regression gate.
|
|
62
|
+
|
|
51
63
|
Run a single file:
|
|
52
64
|
```bash
|
|
53
65
|
pytest tests/test_detector_nodejs.py -v
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sourcecode
|
|
3
|
-
Version: 5.8.
|
|
3
|
+
Version: 5.8.21
|
|
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
|
|
@@ -36,8 +36,11 @@ Provides-Extra: dev
|
|
|
36
36
|
Requires-Dist: jsonschema>=4.18; extra == 'dev'
|
|
37
37
|
Requires-Dist: mcp<2,>=1.2; extra == 'dev'
|
|
38
38
|
Requires-Dist: mypy>=1.10; extra == 'dev'
|
|
39
|
+
Requires-Dist: pytest-testmon<2.2,>=2.1.4; (python_version < '3.10') and extra == 'dev'
|
|
40
|
+
Requires-Dist: pytest-testmon>=2.2; (python_version >= '3.10') and extra == 'dev'
|
|
39
41
|
Requires-Dist: pytest-xdist>=3.8; extra == 'dev'
|
|
40
|
-
Requires-Dist: pytest
|
|
42
|
+
Requires-Dist: pytest<9,>=8; (python_version < '3.10') and extra == 'dev'
|
|
43
|
+
Requires-Dist: pytest>=8; (python_version >= '3.10') and extra == 'dev'
|
|
41
44
|
Requires-Dist: ruff>=0.15; extra == 'dev'
|
|
42
45
|
Provides-Extra: mcp
|
|
43
46
|
Requires-Dist: mcp<2,>=1.2; extra == 'mcp'
|
|
@@ -55,7 +58,7 @@ Description-Content-Type: text/markdown
|
|
|
55
58
|
> question. All analysis is local and deterministic; see [Privacy](#configuration--privacy)
|
|
56
59
|
> before inspecting a repository whose telemetry policy you need to control.
|
|
57
60
|
|
|
58
|
-

|
|
59
62
|

|
|
60
63
|
|
|
61
64
|
Copyright (c) 2026 Dominique Haroun. All rights reserved. ASK Engine 5.7.0 and
|
|
@@ -125,7 +128,13 @@ stops at 1 408 files and ends at 5.1s. Commands outside that phase-runner set
|
|
|
125
128
|
must not be gated on this variable; their budget applicability remains visible in
|
|
126
129
|
the [defect ledger](docs/DEFECT-LEDGER.md).
|
|
127
130
|
|
|
128
|
-
**
|
|
131
|
+
**Memory is measurable and bounded.** Repository-scoped JSON answers publish
|
|
132
|
+
`_meta.memory.peak_rss_mb` and the configured ceiling. For a supervised deep run,
|
|
133
|
+
set `ASK_MAX_RSS_MB=<megabytes>`; if the process exceeds it, ASK refuses the
|
|
134
|
+
answer with `MEMORY_TOO_LARGE`, including the observed peak and limit. Leave it
|
|
135
|
+
unset, or set it to `0`, to disable the ceiling explicitly.
|
|
136
|
+
|
|
137
|
+
**Current performance status.** Release 5.8.21 retains the shared Canonical IR
|
|
129
138
|
path used by `validation` and now passes that same CIR into labelled `data-exposure`
|
|
130
139
|
runs; the no-label path remains parse-free. The one-model-per-declared-label path is
|
|
131
140
|
also retained. These are implementation properties, not duration promises:
|
|
@@ -159,7 +168,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
|
|
|
159
168
|
# pip / pipx
|
|
160
169
|
pipx install sourcecode # or: pip install sourcecode
|
|
161
170
|
|
|
162
|
-
ask version # ask 5.8.
|
|
171
|
+
ask version # ask 5.8.21 — and, on a build that has aged,
|
|
163
172
|
# how many releases have probably shipped since
|
|
164
173
|
```
|
|
165
174
|
|
|
@@ -480,7 +489,7 @@ reading JSON sees the same boundary a buyer reads here.
|
|
|
480
489
|
|
|
481
490
|
| Not covered | Why | What answers it |
|
|
482
491
|
|---|---|---|
|
|
483
|
-
| **General request-input-to-sink taint analysis.** | `ask risk` includes two bounded slices for annotated HTTP parameters and positional calls in repository Java sources: known query sinks, and MyBatis statements that splice a value into their SQL. Anything broader needs value flow through a program, which is a different analysis with a different failure mode: an unsound one produces confident findings that are wrong, and every claim here is meant to be checkable against the line that produced it. | A dataflow scanner (Semgrep, CodeQL) for complete taint. What this product adds on top is reachability and, for the two bounded slices, whether an annotated HTTP input reaches a known concatenated query sink or a spliced SQL statement — the latter with a three-state verdict that says `undecidable` rather than clearing a route it could not follow. |
|
|
492
|
+
| **General request-input-to-sink taint analysis.** | `ask risk` includes two bounded slices for annotated HTTP parameters and positional calls in repository Java sources: known query sinks, and MyBatis statements that splice a value into their SQL. “Known” is a published list — `risk` prints it as `query_sink_vocabulary`, with the calls it deliberately leaves out and why — so a concatenation into a call outside that list is not a miss to be discovered, it is a stated boundary. Anything broader needs value flow through a program, which is a different analysis with a different failure mode: an unsound one produces confident findings that are wrong, and every claim here is meant to be checkable against the line that produced it. | A dataflow scanner (Semgrep, CodeQL) for complete taint. What this product adds on top is reachability and, for the two bounded slices, whether an annotated HTTP input reaches a known concatenated query sink or a spliced SQL statement — the latter with a three-state verdict that says `undecidable` rather than clearing a route it could not follow. |
|
|
484
493
|
| **Secrets outside Java, Spring configuration and the deployment descriptors — a Helm value, a CI variable file, a shell script.** | The file population this analyzer reads is the Java source, the Spring configuration convention and the descriptors it already parses to resolve an environment. A secret elsewhere is not missed by a weak rule; it is outside the set of files anything here opens. Narrowed by CL-10: a credential stored in `web.xml` or a Spring XML context IS reported (SEC-007), because those files were already being read. | A dedicated secret scanner over the whole tree (gitleaks, trufflehog). |
|
|
485
494
|
| **Filter-chain order and per-filter URL patterns — the presence of a custom filter is structural only.** | Which filter runs first is decided by bean ordering this analyzer does not resolve. Where two active configurations both match a request, the answer published is `undecided` rather than a guess. | `ask posture --profile <set>` states per endpoint what the readable rules decide and what they leave undecided. |
|
|
486
495
|
| **Known vulnerabilities in dependencies — no CVE database, no version advisory matching.** | Enriching a vulnerability feed is a different product with a different update cadence; a stale embedded database is worse than no database, because it reads as a clean bill of health. | A dependency scanner (Trivy, OWASP Dependency-Check). `impact-chain` then answers which of its findings anything actually reaches. |
|
|
@@ -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
|
|
@@ -80,7 +80,13 @@ stops at 1 408 files and ends at 5.1s. Commands outside that phase-runner set
|
|
|
80
80
|
must not be gated on this variable; their budget applicability remains visible in
|
|
81
81
|
the [defect ledger](docs/DEFECT-LEDGER.md).
|
|
82
82
|
|
|
83
|
-
**
|
|
83
|
+
**Memory is measurable and bounded.** Repository-scoped JSON answers publish
|
|
84
|
+
`_meta.memory.peak_rss_mb` and the configured ceiling. For a supervised deep run,
|
|
85
|
+
set `ASK_MAX_RSS_MB=<megabytes>`; if the process exceeds it, ASK refuses the
|
|
86
|
+
answer with `MEMORY_TOO_LARGE`, including the observed peak and limit. Leave it
|
|
87
|
+
unset, or set it to `0`, to disable the ceiling explicitly.
|
|
88
|
+
|
|
89
|
+
**Current performance status.** Release 5.8.21 retains the shared Canonical IR
|
|
84
90
|
path used by `validation` and now passes that same CIR into labelled `data-exposure`
|
|
85
91
|
runs; the no-label path remains parse-free. The one-model-per-declared-label path is
|
|
86
92
|
also retained. These are implementation properties, not duration promises:
|
|
@@ -114,7 +120,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
|
|
|
114
120
|
# pip / pipx
|
|
115
121
|
pipx install sourcecode # or: pip install sourcecode
|
|
116
122
|
|
|
117
|
-
ask version # ask 5.8.
|
|
123
|
+
ask version # ask 5.8.21 — and, on a build that has aged,
|
|
118
124
|
# how many releases have probably shipped since
|
|
119
125
|
```
|
|
120
126
|
|
|
@@ -435,7 +441,7 @@ reading JSON sees the same boundary a buyer reads here.
|
|
|
435
441
|
|
|
436
442
|
| Not covered | Why | What answers it |
|
|
437
443
|
|---|---|---|
|
|
438
|
-
| **General request-input-to-sink taint analysis.** | `ask risk` includes two bounded slices for annotated HTTP parameters and positional calls in repository Java sources: known query sinks, and MyBatis statements that splice a value into their SQL. Anything broader needs value flow through a program, which is a different analysis with a different failure mode: an unsound one produces confident findings that are wrong, and every claim here is meant to be checkable against the line that produced it. | A dataflow scanner (Semgrep, CodeQL) for complete taint. What this product adds on top is reachability and, for the two bounded slices, whether an annotated HTTP input reaches a known concatenated query sink or a spliced SQL statement — the latter with a three-state verdict that says `undecidable` rather than clearing a route it could not follow. |
|
|
444
|
+
| **General request-input-to-sink taint analysis.** | `ask risk` includes two bounded slices for annotated HTTP parameters and positional calls in repository Java sources: known query sinks, and MyBatis statements that splice a value into their SQL. “Known” is a published list — `risk` prints it as `query_sink_vocabulary`, with the calls it deliberately leaves out and why — so a concatenation into a call outside that list is not a miss to be discovered, it is a stated boundary. Anything broader needs value flow through a program, which is a different analysis with a different failure mode: an unsound one produces confident findings that are wrong, and every claim here is meant to be checkable against the line that produced it. | A dataflow scanner (Semgrep, CodeQL) for complete taint. What this product adds on top is reachability and, for the two bounded slices, whether an annotated HTTP input reaches a known concatenated query sink or a spliced SQL statement — the latter with a three-state verdict that says `undecidable` rather than clearing a route it could not follow. |
|
|
439
445
|
| **Secrets outside Java, Spring configuration and the deployment descriptors — a Helm value, a CI variable file, a shell script.** | The file population this analyzer reads is the Java source, the Spring configuration convention and the descriptors it already parses to resolve an environment. A secret elsewhere is not missed by a weak rule; it is outside the set of files anything here opens. Narrowed by CL-10: a credential stored in `web.xml` or a Spring XML context IS reported (SEC-007), because those files were already being read. | A dedicated secret scanner over the whole tree (gitleaks, trufflehog). |
|
|
440
446
|
| **Filter-chain order and per-filter URL patterns — the presence of a custom filter is structural only.** | Which filter runs first is decided by bean ordering this analyzer does not resolve. Where two active configurations both match a request, the answer published is `undecided` rather than a guess. | `ask posture --profile <set>` states per endpoint what the readable rules decide and what they leave undecided. |
|
|
441
447
|
| **Known vulnerabilities in dependencies — no CVE database, no version advisory matching.** | Enriching a vulnerability feed is a different product with a different update cadence; a stale embedded database is worse than no database, because it reads as a clean bill of health. | A dependency scanner (Trivy, OWASP Dependency-Check). `impact-chain` then answers which of its findings anything actually reaches. |
|