sourcecode 5.8.29__tar.gz → 5.8.30__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of sourcecode might be problematic. Click here for more details.
- {sourcecode-5.8.29 → sourcecode-5.8.30}/CHANGELOG.md +7 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/PKG-INFO +6 -6
- {sourcecode-5.8.29 → sourcecode-5.8.30}/README.md +5 -5
- sourcecode-5.8.30/docs/AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md +35 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/DEFECT-LEDGER.md +12 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/DEVELOPMENT-ROADMAP.md +7 -1
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/EXECUTIVE-ROADMAP.md +10 -1
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/USER_GUIDE.md +6 -5
- {sourcecode-5.8.29 → sourcecode-5.8.30}/pyproject.toml +1 -1
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/__init__.py +1 -1
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/cli.py +23 -11
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/packs.py +9 -3
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/pr_impact.py +28 -3
- {sourcecode-5.8.29 → sourcecode-5.8.30}/.github/workflows/build-windows.yml +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/.github/workflows/perf-gate.yml +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/.github/workflows/windows-battery.yml +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/.gitignore +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/.ruff.toml +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/CLAUDE.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/CODE_OF_CONDUCT.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/CONTRIBUTING.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/LICENSE +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/NOTICE +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/SECURITY.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/AUDIT-2026-08-22-5.8.22.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/AUDIT-2026-08-23-5.8.24.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/AUDIT-2026-08-23-COMMERCIAL.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/AUDIT-2026-08-23-CORPUS-AMPLIADO.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/AUDIT-2026-08-23-EXTERNAL-5.8.25.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/AUDIT-2026-08-23-EXTERNAL-5.8.26.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/AUDIT-2026-08-23-THINGSBOARD-FINDINGS.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.26.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.27.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.28.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/AUDIT-TESTING-CORPUS-2026-08-22.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/CACHE.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/COMMERCIAL-OFFER.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/CUSTOMER-VALIDATION.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/DEMO-5MIN.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/DOCUMENTATION-HYGIENE-2026-08-23.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/EXECUTION-PLAN-12MO.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/MANUAL-USUARIO.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/MODERNIZATION.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/PRODUCT-ROUTE.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/PRODUCT_AUDIT.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/PRODUCT_IDENTITY.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/PRODUCT_TIERS.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/RC1-CHECKLIST.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/RELEASE-CHECKLIST.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/CATALOG-retrieval-intents.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/DESIGN-assessment-deployment-evidence.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/DESIGN-assessment-report.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/DESIGN-build-closure-provenance.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/DESIGN-knowledge-provider-integration.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/DESIGN-p5.3b-statement-surface.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/DESIGN-p5.5-span-index.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/DESIGN-p6-semantic-impact-engine.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/DESIGN-p6-semantic-integration-engine.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/DESIGN-p7-semantic-services.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/DESIGN-pack-gate-ci.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/DESIGN-pack-manifest.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/DESIGN-pack-mcp-api.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/DESIGN-robustness-security-inference.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/DESIGN-semantic-retrieval.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/EPV-p6-class-typeref.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/REPORT-p6-flow-analyzer-comparison.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/REPORT-p6-integration-detector-comparison.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/REPORT-p8-flow-analyzer-migration.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/REPORT-p9-integration-detector-migration.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/adr/0001-semantic-ir.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/adr/0002-source-evidence-boundary.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/adr/0003-architectural-characterization.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/adr/0004-semantic-retrieval.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/adr/0005-evidence-reconciliation.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/adr/0006-performance-harness.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/adr/0007-composition-semantics.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/adr/0008-answer-coherence.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/consumer-disposition-inventory.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/overview.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/product-architecture-review.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/product-strategy-layering.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/semantic-ir-consumer-matrix.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/semantic-ir-roadmap.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/baseline-ci.yml +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/commercial-pipeline-audit.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/contracts-ci.yml +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/contracts.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/eval/2026-06-15-petclinic-rest-issue11-vets-pagination.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/eval/2026-06-15-petclinic-rest-issue147-validation.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/eval/2026-06-15-petclinic-rest-workflow.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/eval/2026-06-15-phase18-openapi-surface.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/eval/2026-06-15-phase20-validation-surface.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/eval/2026-06-16-broadleaf-checkout-impact-fieldtest.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/eval/2026-06-16-petclinic-rest-issue11-weakness2-closed.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/eval/2026-06-16-spring-petclinic-issue2333-dead-vets.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/licensing-schema.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/migrate-check.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/pack-gate-github-actions.yml +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/pack-gate-gitlab.yml +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/README.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/REGRESSION-GATE.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.15/SUMMARY.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.15/alfresco__ask__cold.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.15/alfresco__ask__warm.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.15/broadleaf__ask__cold.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.15/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.15/eureka__ask__cold.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.15/eureka__ask__warm.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.15/jenkins__ask__cold.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.15/jenkins__ask__warm.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.15/jobrunr__ask__cold.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.15/jobrunr__ask__warm.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.15/keycloak__ask__cold.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.15/keycloak__ask__warm.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.15/neo4j__ask__cold.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.15/neo4j__ask__warm.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.15/ofbiz__ask__cold.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.15/ofbiz__ask__warm.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.15/openmrs__ask__cold.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.15/openmrs__ask__warm.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.15/petclinic__ask__cold.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.15/petclinic__ask__warm.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.16/SUMMARY.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.16/alfresco__ask__cold.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.16/alfresco__ask__warm.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.16/broadleaf__ask__cold.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.16/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.16/eureka__ask__cold.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.16/eureka__ask__warm.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.16/jenkins__ask__cold.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.16/jenkins__ask__warm.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.16/jobrunr__ask__cold.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.16/jobrunr__ask__warm.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.16/keycloak__ask__cold.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.16/keycloak__ask__warm.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.16/neo4j__ask__cold.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.16/neo4j__ask__warm.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.16/ofbiz__ask__cold.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.16/ofbiz__ask__warm.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.16/openmrs__ask__cold.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.16/openmrs__ask__warm.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.16/petclinic__ask__cold.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/2.5.16/petclinic__ask__warm.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/gate-latest/README.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/gate-latest/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/gate-latest/broadleaf__endpoints__warm.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/gate-latest/broadleaf__migrate-check__warm.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/gate-latest/broadleaf__posture__warm.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/gate-latest/broadleaf__spring-audit__warm.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/gate-latest/broadleaf__validation__warm.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/baselines/reference-best/README.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/perf/corpus-testing-2026-08-22.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/posture.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/privacy.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/pro-experience-audit.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/schema.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/spec/envelope-v1.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/docs/spring-audit-ci.yml +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/hatch_build.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/scripts/compare_integration_engines.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/scripts/customer_smoke_test.sh +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/scripts/generate_jdk_exports.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/scripts/perf_gate.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/scripts/perf_harness.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/scripts/sync_gate_anchors.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/scripts/test_fast.sh +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/__main__.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/adaptive_scanner.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/analysis_budget.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/answer_bounds.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/archetype.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/architectural_baseline.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/architectural_delta.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/architecture_analyzer.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/architecture_summary.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/ast_extractor.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/audit_clusters.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/audit_recipe.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/audit_report.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/audit_since.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/baseline_autocapture.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/breaking_changes.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/build_modules.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/build_stamp.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/bundled_docs.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/cache.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/cache_model.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/cache_observation.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/call_surface.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/caller_metrics.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/caller_reach.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/canonical_ir.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/chain_rules.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/change_plan.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/ci_output.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/cir_graphs.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/classifier.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/client_calls.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/code_notes_analyzer.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/compare.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/confidence_analyzer.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/constraint_diff.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/consumer_join.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/container_wiring.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/context_cache.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/context_graph.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/context_scorer.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/context_summarizer.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/contract_diff.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/contract_init.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/contract_model.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/contract_pipeline.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/coverage_parser.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/data_exposure.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/data_labels.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/declarations.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/defect_classes/__init__.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/defect_classes/registry.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/defect_identity.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/degradation.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/dependency_analyzer.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/deployment_prefix.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/detach.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/detectors/__init__.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/detectors/base.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/detectors/csproj_parser.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/detectors/dart.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/detectors/dotnet.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/detectors/elixir.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/detectors/go.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/detectors/heuristic.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/detectors/hybrid.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/detectors/java.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/detectors/jvm_ext.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/detectors/nodejs.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/detectors/parsers.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/detectors/php.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/detectors/project.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/detectors/python.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/detectors/ruby.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/detectors/rust.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/detectors/systems.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/detectors/terraform.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/detectors/tooling.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/doc_analyzer.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/dynamic_argument_surface.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/empty_reach.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/endpoint_disposition.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/endpoint_literals.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/endpoint_metrics.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/entrypoint_classifier.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/env_analyzer.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/envelope.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/environment_resolution.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/error_schema.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/evidence_provider.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/execution_plan.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/explain.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/explain_endpoint.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/facts/__init__.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/facts/registry.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/field_deprecations.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/file_chunker.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/file_classifier.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/filter_surface.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/format_contract.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/fqn_utils.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/functional_routes.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/gate_anchors.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/git_analyzer.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/git_checkout.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/github_diff.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/graph_analyzer.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/graph_evidence.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/hibernate_strat.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/identity_fallback.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/integration_coordinates.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/jdk_exports.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/license.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/manifest_cache.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/mcp/__init__.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/mcp/dependency_import.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/mcp/onboarding/applier.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/mcp/onboarding/backup.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/mcp/onboarding/detector.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/mcp/onboarding/planner.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/mcp/orchestrator.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/mcp/registry.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/mcp/runner.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/mcp/server.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/mcp_nudge.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/metrics_analyzer.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/migrate_check.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/migration_apply.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/migration_blast.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/non_coverage.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/openapi_surface.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/openrewrite_recipe.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/output_bounds.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/output_budget.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/output_ceiling.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/output_encoding.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/output_sink.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/pack_manifest.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/parallel.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/parse_cache.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/partial_contract.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/path_admission.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/path_display.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/path_filters.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/perf.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/phased_run.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/pipe_contract.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/posture.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/pr_comment_renderer.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/prepare_context.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/product_info.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/progress.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/provenance.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/ranking_engine.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/readiness_timeline.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/readonly.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/reconciliation.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/redactor.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/reference_facts.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/regress.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/release_info.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/relevance_scorer.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/remediation_diff.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/remedies.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/rename_refactor.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/repo_classifier.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/repository_ir.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/resource_budget.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/retrieval/__init__.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/retrieval/context.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/retrieval/errors.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/retrieval/executor.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/retrieval/planner.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/retrieval/query.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/retrieval/request.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/retrieval/resolution.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/retrieval/result.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/retrieval/retriever.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/retrieval/runtime.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/retrieval/steps.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/retrieval/steps_endpoint.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/retrieval/steps_graph.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/retrieval/steps_impact.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/retrieval/steps_intf.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/retrieval/steps_struct.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/retrieval/steps_txsec.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/ris.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/risk.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/risk_model.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/rule_catalog.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/rule_pass.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/runs.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/runtime_classifier.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/sarif.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/sarif_emit.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/scanner.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/schema.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/schema_producers.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/schema_registry.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/schemas/core-analysis-v1.schema.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/schemas/endpoints-v1.schema.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/schemas/envelope-v1.schema.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/schemas/pr-impact-v1.schema.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/schemas/verify-edit-v1.schema.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/schemas/verify-v1.schema.json +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/security_chain.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/security_config.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/security_config_scan.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/security_posture.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/selection_contract.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/selftest.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/semantic_analyzer.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/semantic_impact_engine.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/semantic_integration_engine.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/semantic_services.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/serializer.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/servlet_surface.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/source_text.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/spring_event_topology.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/spring_findings.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/spring_impact.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/spring_model.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/spring_profiles.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/spring_properties.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/spring_security_audit.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/spring_semantic.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/spring_tx_analyzer.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/sql_taint.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/summarizer.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/target_admission.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/telemetry/__init__.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/telemetry/config.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/telemetry/consent.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/telemetry/events.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/telemetry/filters.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/telemetry/transport.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/test_gap_ranking.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/test_sources.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/text_input.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/timeline.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/timeline_cache.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/token_estimate.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/tree_utils.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/type_usage_surface.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/validation_inference.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/validation_surface.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/verify_edit.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/verify_repo.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/verify_rules.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/version_check.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/waivers.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/wired_surface.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/src/sourcecode/workspace.py +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/supabase/functions/README.md +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/supabase/functions/get-license/index.ts +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/supabase/functions/lemonsqueezy-webhook/index.ts +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/supabase/functions/telemetry/index.ts +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/supabase/sql/license_event_ordering.sql +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/supabase/sql/licensing_schema.sql +0 -0
- {sourcecode-5.8.29 → sourcecode-5.8.30}/supabase/sql/telemetry_events.sql +0 -0
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [5.8.30] — 2026-08-26
|
|
4
|
+
|
|
5
|
+
*Pack audit remediation release. Unresolved test-only Java files no longer broaden
|
|
6
|
+
`pack gate` endpoint uncertainty, and foreground `pack assessment` now reports
|
|
7
|
+
component progress through the stderr-only heartbeat contract. Documentation and
|
|
8
|
+
release evidence are synchronized with the AUD-605 fixes.*
|
|
9
|
+
|
|
3
10
|
## [5.8.29] — 2026-08-26
|
|
4
11
|
|
|
5
12
|
*Release synchronization for the external `5.8.28` audit. The posture diff now
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sourcecode
|
|
3
|
-
Version: 5.8.
|
|
3
|
+
Version: 5.8.30
|
|
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
|
|
@@ -177,14 +177,14 @@ set `ASK_MAX_RSS_MB=<megabytes>`; if the process exceeds it, ASK refuses the
|
|
|
177
177
|
answer with `MEMORY_TOO_LARGE`, including the observed peak and limit. Leave it
|
|
178
178
|
unset, or set it to `0`, to disable the ceiling explicitly.
|
|
179
179
|
|
|
180
|
-
**Current performance status.** Release 5.8.
|
|
180
|
+
**Current performance status.** Release 5.8.30 retains the shared Canonical IR
|
|
181
181
|
path used by `validation` and now passes that same CIR into labelled `data-exposure`
|
|
182
182
|
runs; the no-label path remains parse-free. These are implementation properties,
|
|
183
183
|
not duration promises. A controlled external warm-path audit has opened performance
|
|
184
184
|
and bounded-output regressions for this release; use `ask cache model <repo>` and
|
|
185
185
|
`--progress stderr` for supervised runs, and consult the
|
|
186
|
-
[active audit intake](docs/AUDIT-2026-08-26-EXTERNAL-5.8.
|
|
187
|
-
historical timing or bounded flag as a current guarantee.
|
|
186
|
+
[active pack audit intake](docs/AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md) before
|
|
187
|
+
treating a historical timing or bounded flag as a current guarantee.
|
|
188
188
|
|
|
189
189
|
**What a warm actually covers.** `ask cache warm` runs the compact analysis: it rebuilds the
|
|
190
190
|
shared structural layers (L1/L2 + the Repository Intelligence Snapshot + the shared Canonical
|
|
@@ -210,7 +210,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
|
|
|
210
210
|
# pip / pipx
|
|
211
211
|
pipx install sourcecode # or: pip install sourcecode
|
|
212
212
|
|
|
213
|
-
ask version # ask 5.8.
|
|
213
|
+
ask version # ask 5.8.30 — and, on a build that has aged,
|
|
214
214
|
# how many releases have probably shipped since
|
|
215
215
|
```
|
|
216
216
|
|
|
@@ -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
|
|
@@ -128,14 +128,14 @@ set `ASK_MAX_RSS_MB=<megabytes>`; if the process exceeds it, ASK refuses the
|
|
|
128
128
|
answer with `MEMORY_TOO_LARGE`, including the observed peak and limit. Leave it
|
|
129
129
|
unset, or set it to `0`, to disable the ceiling explicitly.
|
|
130
130
|
|
|
131
|
-
**Current performance status.** Release 5.8.
|
|
131
|
+
**Current performance status.** Release 5.8.30 retains the shared Canonical IR
|
|
132
132
|
path used by `validation` and now passes that same CIR into labelled `data-exposure`
|
|
133
133
|
runs; the no-label path remains parse-free. These are implementation properties,
|
|
134
134
|
not duration promises. A controlled external warm-path audit has opened performance
|
|
135
135
|
and bounded-output regressions for this release; use `ask cache model <repo>` and
|
|
136
136
|
`--progress stderr` for supervised runs, and consult the
|
|
137
|
-
[active audit intake](docs/AUDIT-2026-08-26-EXTERNAL-5.8.
|
|
138
|
-
historical timing or bounded flag as a current guarantee.
|
|
137
|
+
[active pack audit intake](docs/AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md) before
|
|
138
|
+
treating a historical timing or bounded flag as a current guarantee.
|
|
139
139
|
|
|
140
140
|
**What a warm actually covers.** `ask cache warm` runs the compact analysis: it rebuilds the
|
|
141
141
|
shared structural layers (L1/L2 + the Repository Intelligence Snapshot + the shared Canonical
|
|
@@ -161,7 +161,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
|
|
|
161
161
|
# pip / pipx
|
|
162
162
|
pipx install sourcecode # or: pip install sourcecode
|
|
163
163
|
|
|
164
|
-
ask version # ask 5.8.
|
|
164
|
+
ask version # ask 5.8.30 — and, on a build that has aged,
|
|
165
165
|
# how many releases have probably shipped since
|
|
166
166
|
```
|
|
167
167
|
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# ASK Engine 5.8.28 - External Pack Audit Intake
|
|
2
|
+
|
|
3
|
+
**Received:** 2026-08-26
|
|
4
|
+
**Audited surface:** `pack list`, `pack assessment` and `pack gate` on
|
|
5
|
+
`spring-petclinic`
|
|
6
|
+
**Related release:** `5.8.28` (remediation release: `5.8.30`)
|
|
7
|
+
|
|
8
|
+
## Findings
|
|
9
|
+
|
|
10
|
+
| ID | Priority | Status | Finding and acceptance criterion |
|
|
11
|
+
|---|---:|---|---|
|
|
12
|
+
| `AUD-605-G01` | P2 | implemented in current checkout | `pack gate --since HEAD~3` marked unrelated endpoints `unknown` when a changed Java test file contributed no CIR symbols. Unresolved test files remain evidence, while only unresolved production files can broaden endpoint uncertainty. Regression coverage is in `tests/test_pr_impact.py`; release-artifact verification remains pending. |
|
|
13
|
+
| `AUD-605-U01` | P2 | implemented in current checkout | Foreground `pack assessment` emitted no `ASK_PROGRESS` heartbeat for more than five minutes while its subprocess components ran. The parent now reports components `1/6` through `6/6` through the existing stderr-only progress contract, preserving JSON stdout and component attribution. Regression coverage is in `tests/test_packs.py`; release-artifact verification remains pending. |
|
|
14
|
+
|
|
15
|
+
## Existing Signal, Not A New Row
|
|
16
|
+
|
|
17
|
+
`pack gate --since` took about 49 s, with posture accounting for about 44 s.
|
|
18
|
+
This is additional evidence for `AUD-604-P01` / the controlled cold-cost follow-up,
|
|
19
|
+
not a separate regression: the audit did not provide a matched release benchmark
|
|
20
|
+
or an attributable profile. Pack list, assessment's verdict composition and
|
|
21
|
+
`no_contracts_declared` handling were otherwise correct.
|
|
22
|
+
|
|
23
|
+
The SARIF repository URL observation was verified as a false positive. No new
|
|
24
|
+
security, traceback, write-leakage or process-zombie defect was found.
|
|
25
|
+
|
|
26
|
+
## Order
|
|
27
|
+
|
|
28
|
+
1. `AUD-605-G01` - narrow unresolved-file uncertainty to its actual production reach.
|
|
29
|
+
2. `AUD-605-U01` - forward coarse progress from pack components.
|
|
30
|
+
|
|
31
|
+
## Remediation Evidence
|
|
32
|
+
|
|
33
|
+
- `52bcc36` - `fix(pr-impact): ignore test-only unresolved files`
|
|
34
|
+
- `f89ae18` - `fix(pack): report assessment component progress`
|
|
35
|
+
- Focused batteries: 49 impact/disposition tests and 49 pack/heartbeat/stderr tests passed.
|
|
@@ -16,6 +16,18 @@ The facts these rows are keyed to are published: `ask schema facts-v1` prints th
|
|
|
16
16
|
|
|
17
17
|
## Current Synchronization
|
|
18
18
|
|
|
19
|
+
**External pack audit received, 2026-08-26 - `AUD-605`.**
|
|
20
|
+
[`AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md`](AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md)
|
|
21
|
+
adds two rows: `AUD-605-G01`, where an unresolved test file broadened pack-gate unknown
|
|
22
|
+
endpoints beyond its real production reach, and `AUD-605-U01`, where foreground `pack
|
|
23
|
+
assessment` did not forward component progress. Both are implemented in the current
|
|
24
|
+
checkout by `52bcc36` and `f89ae18`, with focused regression batteries passing; release
|
|
25
|
+
artefact verification remains pending. The pack's `--since` timing is additional evidence
|
|
26
|
+
for `AUD-604-P01`, not a duplicate performance finding.
|
|
27
|
+
|
|
28
|
+
**Current `5.8.30` queue:** artefact verification for `AUD-604-R01`; the two `AUD-605`
|
|
29
|
+
fixes are included in this release and await release-artefact verification.
|
|
30
|
+
|
|
19
31
|
**External `5.8.28` audit received, 2026-08-26 - `AUD-604`.**
|
|
20
32
|
[`AUDIT-2026-08-26-EXTERNAL-5.8.28.md`](AUDIT-2026-08-26-EXTERNAL-5.8.28.md) confirms the
|
|
21
33
|
semantic fixes from the previous round and adds three actionable rows: `AUD-604-O01`
|
|
@@ -3,12 +3,18 @@
|
|
|
3
3
|
*Chief-engineer development record. This is the internal, dev-facing counterpart to the
|
|
4
4
|
customer-facing `docs/EXECUTIVE-ROADMAP.md`.*
|
|
5
5
|
|
|
6
|
-
> **CURRENT QUEUE — release `5.8.
|
|
6
|
+
> **CURRENT QUEUE — release `5.8.30`, following the external pack audit of `5.8.28`, received 2026-08-26.** `AUD-605-G01` (P2,
|
|
7
|
+
> unresolved test files broadened pack-gate uncertainty to unrelated endpoints) and `AUD-605-U01` (P2, pack assessment did not
|
|
8
|
+
> forward foreground progress) are implemented in the current checkout in commits `52bcc36` and `f89ae18`; focused batteries pass.
|
|
9
|
+
> The pack audit adds evidence to `AUD-604-P01`, but does not open a duplicate performance row.
|
|
10
|
+
> `AUD-604-R01` remains an artefact-level
|
|
7
11
|
> Windows verification item; its current source implementation is executable. `AUD-604-S01`,
|
|
8
12
|
> `AUD-604-D01`, `AUD-604-U02`, `AUD-604-O01` and `AUD-604-U01` are closed in `5.8.28`.
|
|
9
13
|
> `AUD-604-P01` is closed as an unconfirmed, non-attributable signal after controlled profiling.
|
|
10
14
|
> Full evidence is
|
|
11
15
|
> in [`AUDIT-2026-08-26-EXTERNAL-5.8.28.md`](AUDIT-2026-08-26-EXTERNAL-5.8.28.md).
|
|
16
|
+
> Pack evidence is in [`AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md`](AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md). Release-artifact
|
|
17
|
+
> verification of the two pack fixes remains after `AUD-604-R01`.
|
|
12
18
|
|
|
13
19
|
> **Previous queue — external audit of `5.8.27`, received 2026-08-26.** `AUD-603-R01` (P1,
|
|
14
20
|
> detached worker exits because the module entry point is not invoked) -> `AUD-603-S01`
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
> `pack assessment` and `pack gate`, and make evidence and safe change the
|
|
6
6
|
> product surface. This roadmap must not introduce a competing product thesis.
|
|
7
7
|
|
|
8
|
-
> **CURRENT STATUS — release `5.8.
|
|
8
|
+
> **CURRENT STATUS — release `5.8.30`, following the `5.8.28` external audit intake, 2026-08-26.** The semantic
|
|
9
9
|
> regression matrix remains green: detached execution, DEAD-001 comment handling,
|
|
10
10
|
> Boot 3 applicability, non-interactive selftest scope communication, nested diff
|
|
11
11
|
> bounding and help timing guidance are confirmed fixed. The reported cold-cost signal
|
|
@@ -19,6 +19,15 @@
|
|
|
19
19
|
> evidence, not an unverified claim of a new source defect. WebScripts and root-only
|
|
20
20
|
> subcommand `--compact` remain excluded by design/evidence status.
|
|
21
21
|
|
|
22
|
+
> **PACK AUDIT UPDATE — `AUD-605`, 2026-08-26.** Two pack-specific issues were identified:
|
|
23
|
+
> a test-only unresolved Java file could broaden `pack gate` uncertainty to unrelated
|
|
24
|
+
> endpoints, and foreground `pack assessment` did not show component progress. Both are
|
|
25
|
+
> implemented in the current checkout (`52bcc36`, `f89ae18`) with focused batteries green;
|
|
26
|
+
> release-artifact verification remains pending. The
|
|
27
|
+
> pack's slower `--since` run is evidence for the existing cold-cost investigation,
|
|
28
|
+
> not a separate regression claim. Details are in
|
|
29
|
+
> [`AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md`](AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md).
|
|
30
|
+
|
|
22
31
|
> **CURRENT STATUS — `5.8.26` external audit intake, 2026-08-23.** The active engineering
|
|
23
32
|
> queue is `impact-chain` bounded-output regression, `posture --diff --compact` usability,
|
|
24
33
|
> deterministic root fingerprints, sustained warm-path performance and closure-provenance
|
|
@@ -46,13 +46,14 @@ CLI commands — impact, endpoints, spring-audit, explain, … each a pro
|
|
|
46
46
|
The key idea: the extraction is **content-addressed**. Commands reuse the parse cache and,
|
|
47
47
|
where their analysed scope matches, the shared Canonical IR; `ask cache model` names what a
|
|
48
48
|
warm buys for each command rather than implying that every projection costs the same. In
|
|
49
|
-
5.8.
|
|
49
|
+
5.8.30, `validation` enters through that shared CIR and `data-exposure` reuses one semantic
|
|
50
50
|
model across all declared label seeds. (The extraction and consumption contract is fixed in
|
|
51
51
|
the architecture ADRs 0001–0004 under `docs/architecture/`.)
|
|
52
52
|
|
|
53
|
-
The current external audit intake is tracked in
|
|
54
|
-
[`AUDIT-2026-08-26-EXTERNAL-5.8.
|
|
55
|
-
|
|
53
|
+
The current external pack audit intake is tracked in
|
|
54
|
+
[`AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md`](AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md);
|
|
55
|
+
the two pack fixes are included in release 5.8.30, with release-artifact verification
|
|
56
|
+
remaining for detached execution and pack evidence.
|
|
56
57
|
|
|
57
58
|
---
|
|
58
59
|
|
|
@@ -182,7 +183,7 @@ pipx install sourcecode # isolated install, no venv needed
|
|
|
182
183
|
|
|
183
184
|
# Verify
|
|
184
185
|
ask version
|
|
185
|
-
# ask 5.8.
|
|
186
|
+
# ask 5.8.30
|
|
186
187
|
```
|
|
187
188
|
|
|
188
189
|
Requires Python 3.9+.
|
|
@@ -4357,22 +4357,34 @@ def pack_assessment_cmd(
|
|
|
4357
4357
|
)
|
|
4358
4358
|
raise typer.Exit(code=2)
|
|
4359
4359
|
_enforce_format("pack-assessment", format)
|
|
4360
|
-
|
|
4361
|
-
|
|
4362
|
-
|
|
4360
|
+
_progress = Progress().start("pack assessment")
|
|
4361
|
+
try:
|
|
4362
|
+
data = run_assessment(
|
|
4363
|
+
root, profile=profile, deployment=deployment, compact=compact, output_dir=output_dir,
|
|
4364
|
+
progress=lambda done, total, component: _progress.work(
|
|
4365
|
+
done, total, stage=f"pack assessment: {component}",
|
|
4366
|
+
unit="components", estimate=False,
|
|
4367
|
+
),
|
|
4368
|
+
)
|
|
4369
|
+
except BaseException:
|
|
4370
|
+
_progress.stop()
|
|
4371
|
+
raise
|
|
4363
4372
|
output = render_assessment_markdown(data) if format == "markdown" else _serialize_dict(data, format)
|
|
4364
4373
|
# AUD-600-D01: when the pack decided at t=0 that it may not write into the
|
|
4365
4374
|
# analysed tree, the aggregate must not be routed there either — the same
|
|
4366
4375
|
# decision, one destination later.
|
|
4367
4376
|
_dir = None if data.get("no_write_substitution") else output_dir
|
|
4368
|
-
|
|
4369
|
-
|
|
4370
|
-
|
|
4371
|
-
|
|
4372
|
-
|
|
4373
|
-
|
|
4374
|
-
|
|
4375
|
-
|
|
4377
|
+
try:
|
|
4378
|
+
_emit_command_output(
|
|
4379
|
+
output,
|
|
4380
|
+
_pack_output_path(_dir, output_path, format),
|
|
4381
|
+
copy,
|
|
4382
|
+
stamp_envelope=(format != "markdown"),
|
|
4383
|
+
)
|
|
4384
|
+
if data["verdict"] == "UNVERIFIED":
|
|
4385
|
+
raise typer.Exit(code=2)
|
|
4386
|
+
finally:
|
|
4387
|
+
_progress.finish()
|
|
4376
4388
|
|
|
4377
4389
|
|
|
4378
4390
|
@pack_app.command("gate")
|
|
@@ -24,7 +24,7 @@ import sys
|
|
|
24
24
|
import tempfile
|
|
25
25
|
import time
|
|
26
26
|
from pathlib import Path
|
|
27
|
-
from typing import Any, Optional
|
|
27
|
+
from typing import Any, Callable, Optional
|
|
28
28
|
|
|
29
29
|
from sourcecode import pack_manifest
|
|
30
30
|
from sourcecode.partial_contract import PARTIAL_EXIT_CODE
|
|
@@ -771,7 +771,8 @@ def _carrier(result: "dict[str, Any]") -> "dict[str, Any]":
|
|
|
771
771
|
def run_assessment(root: Path, *, profile: Optional[str] = None,
|
|
772
772
|
deployment: Optional[list[Path]] = None,
|
|
773
773
|
compact: bool = False,
|
|
774
|
-
output_dir: Optional[Path] = None
|
|
774
|
+
output_dir: Optional[Path] = None,
|
|
775
|
+
progress: Optional[Callable[[int, int, str], None]] = None) -> dict[str, Any]:
|
|
775
776
|
"""Build the assessment pack from existing analysis commands."""
|
|
776
777
|
no_write = _no_write_substitution("assessment", output_dir)
|
|
777
778
|
if no_write is not None:
|
|
@@ -781,7 +782,10 @@ def run_assessment(root: Path, *, profile: Optional[str] = None,
|
|
|
781
782
|
artifacts: dict[str, Optional[str]] = {}
|
|
782
783
|
with tempfile.TemporaryDirectory(prefix="ask-assessment-") as temp:
|
|
783
784
|
temp_root = Path(temp)
|
|
784
|
-
|
|
785
|
+
total_components = len(commands) + 1 # the aggregate audit-report is a component too
|
|
786
|
+
for index, command in enumerate(commands, start=1):
|
|
787
|
+
if progress:
|
|
788
|
+
progress(index, total_components, command)
|
|
785
789
|
extra: list[str] = []
|
|
786
790
|
if compact and command in {"migrate-check", "posture", "endpoints", "spring-audit"}:
|
|
787
791
|
extra.append("--compact")
|
|
@@ -800,6 +804,8 @@ def run_assessment(root: Path, *, profile: Optional[str] = None,
|
|
|
800
804
|
report_extra = ["--from-risk", str(temp_root / "risk.json")]
|
|
801
805
|
if profile:
|
|
802
806
|
report_extra.extend(["--profile", profile])
|
|
807
|
+
if progress:
|
|
808
|
+
progress(total_components, total_components, "audit-report")
|
|
803
809
|
report = _run_command("audit-report", root, temp_root / "audit-report.json", report_extra)
|
|
804
810
|
# The composed `--from-risk` path is a temporary file; what the manifest
|
|
805
811
|
# publishes is the reproducible form, which is `risk`'s own artifact.
|
|
@@ -43,6 +43,15 @@ _RISK_LABEL: dict[int, str] = {
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
|
|
46
|
+
def _split_unresolved_files(paths: list[str]) -> tuple[list[str], list[str]]:
|
|
47
|
+
"""Separate unresolved production files from test-only evidence."""
|
|
48
|
+
from sourcecode.repository_ir import is_test_source_file
|
|
49
|
+
|
|
50
|
+
productive = [path for path in paths if not is_test_source_file(path)]
|
|
51
|
+
test_sources = [path for path in paths if is_test_source_file(path)]
|
|
52
|
+
return productive, test_sources
|
|
53
|
+
|
|
54
|
+
|
|
46
55
|
# ---------------------------------------------------------------------------
|
|
47
56
|
# Output model
|
|
48
57
|
# ---------------------------------------------------------------------------
|
|
@@ -669,6 +678,17 @@ def _run_pr_impact_internal(
|
|
|
669
678
|
changed_files, file_class_index, root
|
|
670
679
|
)
|
|
671
680
|
warnings.extend(file_warnings)
|
|
681
|
+
# A changed test source can be absent from the production CIR by design. It
|
|
682
|
+
# remains evidence in `unresolved_files`, but it must not turn every
|
|
683
|
+
# production endpoint into `unknown` or inflate the blast-radius verdict.
|
|
684
|
+
# Keep the classification in the same authority used by the source walk.
|
|
685
|
+
unresolved_productive, unresolved_excluded = _split_unresolved_files(unresolved_java)
|
|
686
|
+
if unresolved_excluded:
|
|
687
|
+
warnings.append(
|
|
688
|
+
f"{len(unresolved_excluded)} changed test-source file(s) were not mapped "
|
|
689
|
+
"to production classes by design; they do not broaden endpoint "
|
|
690
|
+
"uncertainty."
|
|
691
|
+
)
|
|
672
692
|
non_java_changes = _classify_non_java(non_java)
|
|
673
693
|
|
|
674
694
|
if not class_fqns:
|
|
@@ -694,6 +714,8 @@ def _run_pr_impact_internal(
|
|
|
694
714
|
"changed_files_count": len(changed_files),
|
|
695
715
|
"classes_analyzed": 0,
|
|
696
716
|
"unresolved_java_count": len(unresolved_java),
|
|
717
|
+
"unresolved_productive_count": len(unresolved_productive),
|
|
718
|
+
"unresolved_test_source_count": len(unresolved_excluded),
|
|
697
719
|
"non_java_count": len(non_java_changes),
|
|
698
720
|
},
|
|
699
721
|
)
|
|
@@ -785,7 +807,7 @@ def _run_pr_impact_internal(
|
|
|
785
807
|
event_consumers,
|
|
786
808
|
tx_methods,
|
|
787
809
|
individual_risks,
|
|
788
|
-
|
|
810
|
+
unresolved_productive,
|
|
789
811
|
container_wired=wired,
|
|
790
812
|
risk_by_class=risk_by_class,
|
|
791
813
|
)
|
|
@@ -841,11 +863,12 @@ def _run_pr_impact_internal(
|
|
|
841
863
|
"outside it is undetermined rather than excluded"
|
|
842
864
|
),
|
|
843
865
|
))
|
|
844
|
-
if
|
|
866
|
+
if unresolved_productive:
|
|
845
867
|
disposition_blockers.append(_disposition.Blocker(
|
|
846
868
|
reason=_disposition.REASON_UNRESOLVED_CHANGED_FILE,
|
|
847
869
|
detail=(
|
|
848
|
-
f"{len(
|
|
870
|
+
f"{len(unresolved_productive)} changed production Java file(s) mapped "
|
|
871
|
+
"to no class, "
|
|
849
872
|
"so part of the diff was never analysed and the surface it might "
|
|
850
873
|
"reach is unknown by construction"
|
|
851
874
|
),
|
|
@@ -904,6 +927,8 @@ def _run_pr_impact_internal(
|
|
|
904
927
|
"route population (`endpoints.total`)"
|
|
905
928
|
),
|
|
906
929
|
"unresolved_java_count": len(unresolved_java),
|
|
930
|
+
"unresolved_productive_count": len(unresolved_productive),
|
|
931
|
+
"unresolved_test_source_count": len(unresolved_excluded),
|
|
907
932
|
"non_java_count": len(non_java_changes),
|
|
908
933
|
"analysis_time_ms": elapsed_ms,
|
|
909
934
|
},
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/DESIGN-assessment-deployment-evidence.md
RENAMED
|
File without changes
|
|
File without changes
|
{sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/DESIGN-build-closure-provenance.md
RENAMED
|
File without changes
|
{sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/DESIGN-knowledge-provider-integration.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/DESIGN-p6-semantic-impact-engine.md
RENAMED
|
File without changes
|
{sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/DESIGN-p6-semantic-integration-engine.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/DESIGN-robustness-security-inference.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/REPORT-p6-flow-analyzer-comparison.md
RENAMED
|
File without changes
|
|
File without changes
|
{sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/REPORT-p8-flow-analyzer-migration.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/adr/0002-source-evidence-boundary.md
RENAMED
|
File without changes
|
{sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/adr/0003-architectural-characterization.md
RENAMED
|
File without changes
|
|
File without changes
|
{sourcecode-5.8.29 → sourcecode-5.8.30}/docs/architecture/adr/0005-evidence-reconciliation.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sourcecode-5.8.29 → sourcecode-5.8.30}/docs/eval/2026-06-15-petclinic-rest-issue147-validation.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sourcecode-5.8.29 → sourcecode-5.8.30}/docs/eval/2026-06-16-broadleaf-checkout-impact-fieldtest.md
RENAMED
|
File without changes
|
|
File without changes
|
{sourcecode-5.8.29 → sourcecode-5.8.30}/docs/eval/2026-06-16-spring-petclinic-issue2333-dead-vets.md
RENAMED
|
File without changes
|
|
File without changes
|