sourcecode 5.8.25__tar.gz → 5.8.27__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.25 → sourcecode-5.8.27}/.github/workflows/windows-battery.yml +21 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/CHANGELOG.md +28 -12
- sourcecode-5.8.27/CODE_OF_CONDUCT.md +27 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/CONTRIBUTING.md +5 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/PKG-INFO +19 -22
- {sourcecode-5.8.25 → sourcecode-5.8.27}/README.md +16 -20
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/AUDIT-2026-08-22-5.8.22.md +3 -3
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/AUDIT-2026-08-23-5.8.24.md +3 -3
- sourcecode-5.8.27/docs/AUDIT-2026-08-23-CORPUS-AMPLIADO.md +63 -0
- sourcecode-5.8.27/docs/AUDIT-2026-08-23-EXTERNAL-5.8.25.md +121 -0
- sourcecode-5.8.27/docs/AUDIT-2026-08-23-EXTERNAL-5.8.26.md +43 -0
- sourcecode-5.8.27/docs/AUDIT-2026-08-23-THINGSBOARD-FINDINGS.md +173 -0
- sourcecode-5.8.27/docs/AUDIT-2026-08-26-EXTERNAL-5.8.26.md +46 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/COMMERCIAL-OFFER.md +1 -1
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/CUSTOMER-VALIDATION.md +1 -1
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/DEFECT-LEDGER.md +196 -94
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/DEVELOPMENT-ROADMAP.md +36 -11
- sourcecode-5.8.27/docs/DOCUMENTATION-HYGIENE-2026-08-23.md +38 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/EXECUTIVE-ROADMAP.md +10 -3
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/RC1-CHECKLIST.md +2 -2
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/USER_GUIDE.md +7 -3
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/DESIGN-build-closure-provenance.md +3 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/DESIGN-robustness-security-inference.md +3 -3
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/contracts.md +1 -1
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/REGRESSION-GATE.md +7 -6
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/gate-latest/README.md +1 -1
- {sourcecode-5.8.25 → sourcecode-5.8.27}/pyproject.toml +3 -2
- {sourcecode-5.8.25 → sourcecode-5.8.27}/scripts/perf_harness.py +18 -4
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/__init__.py +1 -1
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/audit_report.py +43 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/baseline_autocapture.py +9 -4
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/bundled_docs.py +2 -1
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/cache_model.py +3 -4
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/cli.py +166 -17
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/compare.py +1 -1
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/context_cache.py +10 -1
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/detach.py +28 -23
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/env_analyzer.py +5 -5
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/envelope.py +7 -2
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/explain.py +43 -1
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/filter_surface.py +1 -1
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/format_contract.py +3 -3
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/mcp/orchestrator.py +1 -1
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/migrate_check.py +25 -3
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/non_coverage.py +46 -1
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/output_bounds.py +5 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/packs.py +85 -1
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/parse_cache.py +16 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/perf.py +11 -2
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/phased_run.py +2 -2
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/posture.py +17 -1
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/prepare_context.py +1 -1
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/product_info.py +28 -2
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/release_info.py +1 -1
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/repository_ir.py +119 -51
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/resource_budget.py +7 -4
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/sarif.py +4 -0
- sourcecode-5.8.27/src/sourcecode/sarif_emit.py +156 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/schema_registry.py +5 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/security_config_scan.py +28 -2
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/security_posture.py +12 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/selftest.py +18 -2
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/serializer.py +22 -3
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/spring_impact.py +101 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/spring_profiles.py +3 -3
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/spring_tx_analyzer.py +8 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/test_sources.py +1 -1
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/token_estimate.py +3 -1
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/workspace.py +1 -1
- {sourcecode-5.8.25 → sourcecode-5.8.27}/.github/workflows/build-windows.yml +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/.github/workflows/perf-gate.yml +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/.gitignore +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/.ruff.toml +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/CLAUDE.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/LICENSE +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/NOTICE +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/SECURITY.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/AUDIT-2026-08-23-COMMERCIAL.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/AUDIT-TESTING-CORPUS-2026-08-22.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/CACHE.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/DEMO-5MIN.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/EXECUTION-PLAN-12MO.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/MANUAL-USUARIO.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/MODERNIZATION.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/PRODUCT-ROUTE.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/PRODUCT_AUDIT.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/PRODUCT_IDENTITY.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/PRODUCT_TIERS.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/RELEASE-CHECKLIST.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/CATALOG-retrieval-intents.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/DESIGN-assessment-deployment-evidence.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/DESIGN-assessment-report.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/DESIGN-knowledge-provider-integration.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/DESIGN-p5.3b-statement-surface.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/DESIGN-p5.5-span-index.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/DESIGN-p6-semantic-impact-engine.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/DESIGN-p6-semantic-integration-engine.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/DESIGN-p7-semantic-services.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/DESIGN-pack-gate-ci.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/DESIGN-pack-manifest.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/DESIGN-pack-mcp-api.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/DESIGN-semantic-retrieval.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/EPV-p6-class-typeref.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/REPORT-p6-flow-analyzer-comparison.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/REPORT-p6-integration-detector-comparison.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/REPORT-p8-flow-analyzer-migration.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/REPORT-p9-integration-detector-migration.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/adr/0001-semantic-ir.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/adr/0002-source-evidence-boundary.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/adr/0003-architectural-characterization.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/adr/0004-semantic-retrieval.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/adr/0005-evidence-reconciliation.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/adr/0006-performance-harness.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/adr/0007-composition-semantics.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/adr/0008-answer-coherence.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/consumer-disposition-inventory.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/overview.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/product-architecture-review.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/product-strategy-layering.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/semantic-ir-consumer-matrix.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/architecture/semantic-ir-roadmap.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/baseline-ci.yml +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/commercial-pipeline-audit.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/contracts-ci.yml +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/eval/2026-06-15-petclinic-rest-issue11-vets-pagination.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/eval/2026-06-15-petclinic-rest-issue147-validation.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/eval/2026-06-15-petclinic-rest-workflow.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/eval/2026-06-15-phase18-openapi-surface.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/eval/2026-06-15-phase20-validation-surface.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/eval/2026-06-16-broadleaf-checkout-impact-fieldtest.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/eval/2026-06-16-petclinic-rest-issue11-weakness2-closed.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/eval/2026-06-16-spring-petclinic-issue2333-dead-vets.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/licensing-schema.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/migrate-check.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/pack-gate-github-actions.yml +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/pack-gate-gitlab.yml +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/README.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.15/SUMMARY.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.15/alfresco__ask__cold.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.15/alfresco__ask__warm.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.15/broadleaf__ask__cold.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.15/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.15/eureka__ask__cold.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.15/eureka__ask__warm.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.15/jenkins__ask__cold.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.15/jenkins__ask__warm.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.15/jobrunr__ask__cold.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.15/jobrunr__ask__warm.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.15/keycloak__ask__cold.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.15/keycloak__ask__warm.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.15/neo4j__ask__cold.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.15/neo4j__ask__warm.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.15/ofbiz__ask__cold.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.15/ofbiz__ask__warm.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.15/openmrs__ask__cold.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.15/openmrs__ask__warm.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.15/petclinic__ask__cold.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.15/petclinic__ask__warm.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.16/SUMMARY.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.16/alfresco__ask__cold.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.16/alfresco__ask__warm.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.16/broadleaf__ask__cold.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.16/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.16/eureka__ask__cold.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.16/eureka__ask__warm.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.16/jenkins__ask__cold.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.16/jenkins__ask__warm.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.16/jobrunr__ask__cold.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.16/jobrunr__ask__warm.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.16/keycloak__ask__cold.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.16/keycloak__ask__warm.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.16/neo4j__ask__cold.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.16/neo4j__ask__warm.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.16/ofbiz__ask__cold.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.16/ofbiz__ask__warm.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.16/openmrs__ask__cold.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.16/openmrs__ask__warm.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.16/petclinic__ask__cold.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/2.5.16/petclinic__ask__warm.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/gate-latest/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/gate-latest/broadleaf__endpoints__warm.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/gate-latest/broadleaf__migrate-check__warm.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/gate-latest/broadleaf__posture__warm.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/gate-latest/broadleaf__spring-audit__warm.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/gate-latest/broadleaf__validation__warm.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/baselines/reference-best/README.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/perf/corpus-testing-2026-08-22.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/posture.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/privacy.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/pro-experience-audit.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/schema.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/spec/envelope-v1.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/docs/spring-audit-ci.yml +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/hatch_build.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/scripts/compare_integration_engines.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/scripts/customer_smoke_test.sh +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/scripts/generate_jdk_exports.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/scripts/perf_gate.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/scripts/sync_gate_anchors.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/scripts/test_fast.sh +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/adaptive_scanner.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/analysis_budget.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/answer_bounds.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/archetype.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/architectural_baseline.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/architectural_delta.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/architecture_analyzer.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/architecture_summary.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/ast_extractor.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/audit_clusters.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/audit_recipe.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/audit_since.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/breaking_changes.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/build_modules.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/build_stamp.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/cache.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/cache_observation.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/call_surface.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/caller_metrics.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/caller_reach.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/canonical_ir.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/chain_rules.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/change_plan.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/ci_output.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/cir_graphs.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/classifier.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/client_calls.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/code_notes_analyzer.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/confidence_analyzer.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/constraint_diff.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/consumer_join.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/container_wiring.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/context_graph.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/context_scorer.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/context_summarizer.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/contract_diff.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/contract_init.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/contract_model.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/contract_pipeline.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/coverage_parser.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/data_exposure.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/data_labels.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/declarations.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/defect_classes/__init__.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/defect_classes/registry.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/defect_identity.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/degradation.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/dependency_analyzer.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/deployment_prefix.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/detectors/__init__.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/detectors/base.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/detectors/csproj_parser.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/detectors/dart.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/detectors/dotnet.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/detectors/elixir.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/detectors/go.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/detectors/heuristic.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/detectors/hybrid.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/detectors/java.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/detectors/jvm_ext.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/detectors/nodejs.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/detectors/parsers.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/detectors/php.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/detectors/project.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/detectors/python.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/detectors/ruby.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/detectors/rust.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/detectors/systems.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/detectors/terraform.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/detectors/tooling.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/doc_analyzer.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/dynamic_argument_surface.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/empty_reach.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/endpoint_disposition.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/endpoint_literals.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/endpoint_metrics.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/entrypoint_classifier.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/environment_resolution.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/error_schema.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/evidence_provider.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/execution_plan.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/explain_endpoint.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/facts/__init__.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/facts/registry.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/field_deprecations.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/file_chunker.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/file_classifier.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/fqn_utils.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/functional_routes.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/gate_anchors.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/git_analyzer.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/git_checkout.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/github_diff.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/graph_analyzer.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/graph_evidence.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/hibernate_strat.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/identity_fallback.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/integration_coordinates.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/jdk_exports.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/license.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/manifest_cache.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/mcp/__init__.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/mcp/dependency_import.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/mcp/onboarding/applier.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/mcp/onboarding/backup.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/mcp/onboarding/detector.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/mcp/onboarding/planner.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/mcp/registry.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/mcp/runner.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/mcp/server.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/mcp_nudge.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/metrics_analyzer.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/migration_apply.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/migration_blast.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/openapi_surface.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/openrewrite_recipe.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/output_budget.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/output_ceiling.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/output_encoding.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/output_sink.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/pack_manifest.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/parallel.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/partial_contract.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/path_admission.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/path_filters.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/pipe_contract.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/pr_comment_renderer.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/pr_impact.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/progress.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/provenance.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/ranking_engine.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/readiness_timeline.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/readonly.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/reconciliation.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/redactor.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/reference_facts.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/regress.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/relevance_scorer.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/remediation_diff.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/remedies.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/rename_refactor.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/repo_classifier.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/retrieval/__init__.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/retrieval/context.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/retrieval/errors.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/retrieval/executor.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/retrieval/planner.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/retrieval/query.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/retrieval/request.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/retrieval/resolution.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/retrieval/result.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/retrieval/retriever.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/retrieval/runtime.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/retrieval/steps.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/retrieval/steps_endpoint.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/retrieval/steps_graph.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/retrieval/steps_impact.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/retrieval/steps_intf.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/retrieval/steps_struct.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/retrieval/steps_txsec.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/ris.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/risk.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/risk_model.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/rule_catalog.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/rule_pass.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/runs.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/runtime_classifier.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/scanner.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/schema.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/schema_producers.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/schemas/core-analysis-v1.schema.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/schemas/endpoints-v1.schema.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/schemas/envelope-v1.schema.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/schemas/pr-impact-v1.schema.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/schemas/verify-edit-v1.schema.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/schemas/verify-v1.schema.json +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/security_chain.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/security_config.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/selection_contract.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/semantic_analyzer.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/semantic_impact_engine.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/semantic_integration_engine.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/semantic_services.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/servlet_surface.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/source_text.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/spring_event_topology.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/spring_findings.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/spring_model.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/spring_properties.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/spring_security_audit.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/spring_semantic.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/sql_taint.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/summarizer.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/target_admission.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/telemetry/__init__.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/telemetry/config.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/telemetry/consent.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/telemetry/events.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/telemetry/filters.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/telemetry/transport.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/test_gap_ranking.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/text_input.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/timeline.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/timeline_cache.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/tree_utils.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/type_usage_surface.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/validation_inference.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/validation_surface.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/verify_edit.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/verify_repo.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/verify_rules.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/version_check.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/waivers.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/src/sourcecode/wired_surface.py +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/supabase/functions/README.md +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/supabase/functions/get-license/index.ts +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/supabase/functions/lemonsqueezy-webhook/index.ts +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/supabase/functions/telemetry/index.ts +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/supabase/sql/license_event_ordering.sql +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/supabase/sql/licensing_schema.sql +0 -0
- {sourcecode-5.8.25 → sourcecode-5.8.27}/supabase/sql/telemetry_events.sql +0 -0
|
@@ -16,8 +16,18 @@ on:
|
|
|
16
16
|
jobs:
|
|
17
17
|
battery:
|
|
18
18
|
runs-on: windows-latest
|
|
19
|
+
env:
|
|
20
|
+
NO_COLOR: "1"
|
|
21
|
+
TERM: "dumb"
|
|
22
|
+
# CLI payloads and diagnostics are UTF-8 contracts. Without this Windows
|
|
23
|
+
# decodes child-process output with the active code page, turning a valid
|
|
24
|
+
# JSON answer containing source text into an empty/failed test response.
|
|
25
|
+
PYTHONUTF8: "1"
|
|
26
|
+
PYTHONIOENCODING: "utf-8"
|
|
19
27
|
steps:
|
|
20
28
|
- uses: actions/checkout@v4
|
|
29
|
+
with:
|
|
30
|
+
fetch-depth: 0
|
|
21
31
|
|
|
22
32
|
- uses: actions/setup-python@v5
|
|
23
33
|
with:
|
|
@@ -31,11 +41,22 @@ jobs:
|
|
|
31
41
|
|
|
32
42
|
- name: Suite
|
|
33
43
|
run: pytest
|
|
44
|
+
# `runner.*` is valid at step scope. Both stores stay outside the
|
|
45
|
+
# checkout so their files never become untracked input to an analysis.
|
|
46
|
+
env:
|
|
47
|
+
SOURCECODE_CACHE_DIR: ${{ runner.temp }}/ask-cache
|
|
48
|
+
SOURCECODE_CONTEXT_CACHE_DIR: ${{ runner.temp }}/ask-context-cache
|
|
34
49
|
|
|
35
50
|
# Named separately so a Windows-only failure is legible in the job list
|
|
36
51
|
# rather than one dot in nine thousand.
|
|
37
52
|
- name: The envelope names its command on every entry path
|
|
38
53
|
run: pytest tests/test_the_envelope_names_its_command_on_every_entry_path_aud601_x01.py -v
|
|
54
|
+
env:
|
|
55
|
+
SOURCECODE_CACHE_DIR: ${{ runner.temp }}/ask-cache
|
|
56
|
+
SOURCECODE_CONTEXT_CACHE_DIR: ${{ runner.temp }}/ask-context-cache
|
|
39
57
|
|
|
40
58
|
- name: A footprint sample is a number or a stated null, never a zero
|
|
41
59
|
run: pytest tests/test_resource_budget_d10.py -v
|
|
60
|
+
env:
|
|
61
|
+
SOURCECODE_CACHE_DIR: ${{ runner.temp }}/ask-cache
|
|
62
|
+
SOURCECODE_CONTEXT_CACHE_DIR: ${{ runner.temp }}/ask-context-cache
|
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [5.8.27] — 2026-08-26
|
|
4
|
+
|
|
5
|
+
*Audit remediation release. Detached workers avoid the Windows console shim,
|
|
6
|
+
security scanning excludes platform and deprecated encoder definitions, and
|
|
7
|
+
non-applicable Boot 3 readiness is represented consistently. `selftest` warns
|
|
8
|
+
when an implicit current-directory run contains nested Git repositories. The
|
|
9
|
+
release also synchronizes the user-facing documentation with these guarantees.*
|
|
10
|
+
|
|
11
|
+
## [5.8.26] — 2026-08-23
|
|
12
|
+
|
|
13
|
+
*Patch release for the expanded-corpus audit. It preserves endpoint declarations
|
|
14
|
+
whose FQN is reused by separate modules, pairs MyBatis XML against the analysed
|
|
15
|
+
tree rather than a compact display subset, and reports the runtime source commit
|
|
16
|
+
for editable installs. Route inheritance and JAX-RS locator composition were
|
|
17
|
+
revalidated after the module-identity change.*
|
|
18
|
+
|
|
3
19
|
## [5.8.25] — 2026-08-23
|
|
4
20
|
|
|
5
21
|
*Version and documentation synchronization release. The audited `5.8.24` tree is
|
|
@@ -461,7 +477,7 @@ the evidence for outstanding field reproduction and performance work.*
|
|
|
461
477
|
|
|
462
478
|
*Performance-mitigation and release-hygiene update. The external cross-version
|
|
463
479
|
performance regression remains open until it is reproduced under its controlled
|
|
464
|
-
`
|
|
480
|
+
`reference-service` protocol; this release does not present local warm-cache results
|
|
465
481
|
as that closure.*
|
|
466
482
|
|
|
467
483
|
### Changed
|
|
@@ -1217,7 +1233,7 @@ said to name no smaller variant when one exists.*
|
|
|
1217
1233
|
- An analysed population does not move between releases without a field that
|
|
1218
1234
|
explains the move (B17-sv / AS-16). 5.8.0's E-35 fix removed symbols that were
|
|
1219
1235
|
never declarations — `return unknownHelper("x");` parsed as one — and
|
|
1220
|
-
`metadata.symbols_analyzed` fell with them (`
|
|
1236
|
+
`metadata.symbols_analyzed` fell with them (`reference-service` 43 642 → 43 003,
|
|
1221
1237
|
−1,46 %, after five constant versions). The correction was right and the
|
|
1222
1238
|
release said nothing, so the next field re-audit read it as lost coverage and
|
|
1223
1239
|
filed it P0. Every command that publishes `symbols_analyzed` now publishes
|
|
@@ -1600,7 +1616,7 @@ closed here, two refuted with the measurement that contradicts them.*
|
|
|
1600
1616
|
|
|
1601
1617
|
## [5.5.5] — 2026-08-13
|
|
1602
1618
|
|
|
1603
|
-
**
|
|
1619
|
+
**reference corpus performance-audit corrections and read-only hygiene verification.**
|
|
1604
1620
|
|
|
1605
1621
|
### Fixed
|
|
1606
1622
|
- `spring-audit` now preserves full default JSON when it fits the stdout
|
|
@@ -1619,7 +1635,7 @@ closed here, two refuted with the measurement that contradicts them.*
|
|
|
1619
1635
|
explicitly where no semantic model is available.
|
|
1620
1636
|
|
|
1621
1637
|
### Documentation
|
|
1622
|
-
- Recorded the
|
|
1638
|
+
- Recorded the reference corpus findings, their reproductions, the resolved commits, and
|
|
1623
1639
|
the remaining bounded-output, schema, timeline, benchmark, and Git-basis
|
|
1624
1640
|
work in the roadmap.
|
|
1625
1641
|
|
|
@@ -2369,7 +2385,7 @@ product does not model — Keycloak, 8 204 Java files, Quarkus + JAX-RS,
|
|
|
2369
2385
|
`spring_detected: false` in all six audited modules, 47 invocations under
|
|
2370
2386
|
`ASK_READONLY=1` — and it split the product cleanly in two: every structural axis
|
|
2371
2387
|
worked alone, and the axes that guess produced 86 `high` findings with zero true
|
|
2372
|
-
positives. Eval #21 is the seventh measurement of `
|
|
2388
|
+
positives. Eval #21 is the seventh measurement of `reference-service`, and its
|
|
2373
2389
|
contribution is a partition rather than a defect.
|
|
2374
2390
|
|
|
2375
2391
|
**Fixed in this release:**
|
|
@@ -3499,7 +3515,7 @@ them.
|
|
|
3499
3515
|
### Documentation
|
|
3500
3516
|
|
|
3501
3517
|
- README and user guide examples now report `4.8.0`.
|
|
3502
|
-
- The development roadmap records the
|
|
3518
|
+
- The development roadmap records the reference-service field-evaluation fixes and
|
|
3503
3519
|
future feature queue.
|
|
3504
3520
|
|
|
3505
3521
|
## [4.7.0] — 2026-08-04
|
|
@@ -4245,7 +4261,7 @@ verification against 4.0.1.
|
|
|
4245
4261
|
|
|
4246
4262
|
- **SEC-007 — a credential stored in a deployment descriptor** (CL-10). The audit
|
|
4247
4263
|
found `monitor:{SHA-256}dc20b820…` in
|
|
4248
|
-
`src/main/options/{DPA,
|
|
4264
|
+
`src/main/options/{DPA,sample,tenant-dev}/WEB-INF/web.xml`: unsalted, the same hash in all
|
|
4249
4265
|
three per-environment overlays, and found by hand because *"los overlays
|
|
4250
4266
|
`src/main/options/**` son punto ciego"*. The gap was admission surface, not
|
|
4251
4267
|
detection — those descriptors are files `environment_resolution`,
|
|
@@ -5669,13 +5685,13 @@ and `registries` in both `ask schema` and `ask version`) are additive.
|
|
|
5669
5685
|
|
|
5670
5686
|
- **A class was reported as conditional on a profile *and* on its negation, contradicting
|
|
5671
5687
|
`ask posture` in the same run.** Found in the third field evaluation (3.2.0): a
|
|
5672
|
-
configuration class declaring `@Profile("!
|
|
5673
|
-
appeared in `signals.spring_profiles.profile_conditional_beans` under `
|
|
5688
|
+
configuration class declaring `@Profile("!sample")` — active exactly when `sample` is **absent** —
|
|
5689
|
+
appeared in `signals.spring_profiles.profile_conditional_beans` under `sample` as well. Read as
|
|
5674
5690
|
a security fact, it inverts the answer.
|
|
5675
5691
|
- Root cause, reproduced: the source scan attributed every `@Profile` to *the next type
|
|
5676
5692
|
declaration ahead of it*, falling back to the file name when there was none. A
|
|
5677
|
-
`@Profile("
|
|
5678
|
-
class itself, next to the class-level `@Profile("!
|
|
5693
|
+
`@Profile("sample")` on a `@Bean` **method** inside that class was therefore attributed to the
|
|
5694
|
+
class itself, next to the class-level `@Profile("!sample")`.
|
|
5679
5695
|
- Attribution is now the declaration the annotation actually annotates: only annotations
|
|
5680
5696
|
and modifiers may stand between it and a type declaration; a member-level annotation is
|
|
5681
5697
|
reported as `Type#member`, and an annotation whose target cannot be read is **not
|
|
@@ -8632,7 +8648,7 @@ Dependency audit (`pip-audit`): no known vulnerabilities in runtime dependencies
|
|
|
8632
8648
|
|
|
8633
8649
|
### Added
|
|
8634
8650
|
- **`export --c4` now emits `components.module_roots` — architectural module
|
|
8635
|
-
enumeration + DDD/legacy classification.** Field test (
|
|
8651
|
+
enumeration + DDD/legacy classification.** Field test (reference-service C4 doc pass)
|
|
8636
8652
|
surfaced that the C4 export keyed modules by *leaf source directory*
|
|
8637
8653
|
(`dirname(source_file)`), so a DDD module split across
|
|
8638
8654
|
`domain/` / `application/` / `infrastructure/` subdirs fragmented into several
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Code of Conduct
|
|
2
|
+
|
|
3
|
+
## Our Pledge
|
|
4
|
+
|
|
5
|
+
We pledge to make participation in this project a harassment-free experience for everyone,
|
|
6
|
+
regardless of age, body size, disability, ethnicity, gender identity and expression, level of
|
|
7
|
+
experience, nationality, personal appearance, race, religion, or sexual identity and
|
|
8
|
+
orientation.
|
|
9
|
+
|
|
10
|
+
## Expected Behaviour
|
|
11
|
+
|
|
12
|
+
- Use welcoming and inclusive language.
|
|
13
|
+
- Respect differing viewpoints and experiences.
|
|
14
|
+
- Give and accept constructive feedback.
|
|
15
|
+
- Focus on what is best for the community and the project.
|
|
16
|
+
|
|
17
|
+
## Unacceptable Behaviour
|
|
18
|
+
|
|
19
|
+
Harassment, discriminatory language, personal attacks, publication of private information, or
|
|
20
|
+
other conduct that would be inappropriate in a professional setting is not acceptable.
|
|
21
|
+
|
|
22
|
+
## Enforcement
|
|
23
|
+
|
|
24
|
+
Report unacceptable behaviour privately to the project maintainers. Maintainers will review
|
|
25
|
+
reports promptly and may remove, edit, or reject contributions, or take other action needed to
|
|
26
|
+
protect participants.
|
|
27
|
+
|
|
@@ -189,6 +189,11 @@ Rules:
|
|
|
189
189
|
- Docstrings are optional but welcome for non-obvious logic
|
|
190
190
|
- No inline comments explaining what the code does — names should do that
|
|
191
191
|
- Comments only for non-obvious constraints or workarounds
|
|
192
|
+
- Do not add customer names, trademarks, private repository identities, or
|
|
193
|
+
licensed third-party material to source, fixtures, examples, documentation,
|
|
194
|
+
benchmark labels, or generated artefacts. Use neutral names such as
|
|
195
|
+
`sample-service`, `example.org`, and `tenant-a`. Required legal notices and
|
|
196
|
+
dependency attributions are the only exception and must remain verbatim.
|
|
192
197
|
|
|
193
198
|
---
|
|
194
199
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sourcecode
|
|
3
|
-
Version: 5.8.
|
|
3
|
+
Version: 5.8.27
|
|
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
|
|
@@ -22,12 +22,13 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
22
22
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
23
23
|
Classifier: Topic :: Utilities
|
|
24
24
|
Requires-Python: >=3.9
|
|
25
|
+
Requires-Dist: click<8.4,>=8.2
|
|
25
26
|
Requires-Dist: defusedxml>=0.7
|
|
26
27
|
Requires-Dist: mcp<2,>=1.2
|
|
27
28
|
Requires-Dist: pathspec>=1.0
|
|
28
29
|
Requires-Dist: ruamel-yaml>=0.18
|
|
29
30
|
Requires-Dist: tomli>=2.0; python_version < '3.11'
|
|
30
|
-
Requires-Dist: typer
|
|
31
|
+
Requires-Dist: typer<0.26,>=0.24
|
|
31
32
|
Provides-Extra: ast
|
|
32
33
|
Requires-Dist: tree-sitter-javascript>=0.21; extra == 'ast'
|
|
33
34
|
Requires-Dist: tree-sitter-typescript>=0.21; extra == 'ast'
|
|
@@ -58,7 +59,7 @@ Description-Content-Type: text/markdown
|
|
|
58
59
|
> question. All analysis is local and deterministic; see [Privacy](#configuration--privacy)
|
|
59
60
|
> before inspecting a repository whose telemetry policy you need to control.
|
|
60
61
|
|
|
61
|
-

|
|
62
63
|

|
|
63
64
|
|
|
64
65
|
Copyright (c) 2026 Dominique Haroun. All rights reserved. ASK Engine 5.7.0 and
|
|
@@ -176,15 +177,14 @@ set `ASK_MAX_RSS_MB=<megabytes>`; if the process exceeds it, ASK refuses the
|
|
|
176
177
|
answer with `MEMORY_TOO_LARGE`, including the observed peak and limit. Leave it
|
|
177
178
|
unset, or set it to `0`, to disable the ceiling explicitly.
|
|
178
179
|
|
|
179
|
-
**Current performance status.** Release 5.8.
|
|
180
|
+
**Current performance status.** Release 5.8.27 retains the shared Canonical IR
|
|
180
181
|
path used by `validation` and now passes that same CIR into labelled `data-exposure`
|
|
181
|
-
runs; the no-label path remains parse-free.
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
[roadmap](docs/DEVELOPMENT-ROADMAP.md).
|
|
182
|
+
runs; the no-label path remains parse-free. These are implementation properties,
|
|
183
|
+
not duration promises. A controlled external warm-path audit has opened performance
|
|
184
|
+
and bounded-output regressions for this release; use `ask cache model <repo>` and
|
|
185
|
+
`--progress stderr` for supervised runs, and consult the
|
|
186
|
+
[active audit intake](docs/AUDIT-2026-08-23-EXTERNAL-5.8.26.md) before treating a
|
|
187
|
+
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.27 — and, on a build that has aged,
|
|
214
214
|
# how many releases have probably shipped since
|
|
215
215
|
```
|
|
216
216
|
|
|
@@ -218,16 +218,13 @@ ask version # ask 5.8.25 — and, on a build that has aged,
|
|
|
218
218
|
> (renaming the distribution is a separate, breaking change). Installing it gives you the
|
|
219
219
|
> canonical **`ask`** command plus the deprecated **`sourcecode`** alias.
|
|
220
220
|
|
|
221
|
-
> **Platforms.**
|
|
222
|
-
>
|
|
223
|
-
>
|
|
224
|
-
>
|
|
225
|
-
> the
|
|
226
|
-
>
|
|
227
|
-
>
|
|
228
|
-
> platform we cannot exercise (C3-3, C3-12, C3-38 in the
|
|
229
|
-
> [defect ledger](docs/DEFECT-LEDGER.md)). On Windows, prefer `--output <file>` over shell
|
|
230
|
-
> redirection, and report a rendering problem rather than assuming it is known.
|
|
221
|
+
> **Platforms.** macOS, Linux and Windows are exercised in CI. The Windows battery runs the
|
|
222
|
+
> full suite on every push, with focused envelope and memory-footprint cases. UTF-8 streams
|
|
223
|
+
> are forced at both console entry points; a successful run writes nothing to stderr
|
|
224
|
+
> (PowerShell 5.1 raises `NativeCommandError` on any stderr write), and the MCP server strips
|
|
225
|
+
> the BOM PowerShell can put on stdin. For PowerShell, prefer `--output <file>` over shell
|
|
226
|
+
> redirection when retaining an artefact. A successful CI run is the portability evidence for
|
|
227
|
+
> a release; report a rendering problem with the command, shell and encoding.
|
|
231
228
|
|
|
232
229
|
---
|
|
233
230
|
|
|
@@ -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,15 +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.27 retains the shared Canonical IR
|
|
132
132
|
path used by `validation` and now passes that same CIR into labelled `data-exposure`
|
|
133
|
-
runs; the no-label path remains parse-free.
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
[roadmap](docs/DEVELOPMENT-ROADMAP.md).
|
|
133
|
+
runs; the no-label path remains parse-free. These are implementation properties,
|
|
134
|
+
not duration promises. A controlled external warm-path audit has opened performance
|
|
135
|
+
and bounded-output regressions for this release; use `ask cache model <repo>` and
|
|
136
|
+
`--progress stderr` for supervised runs, and consult the
|
|
137
|
+
[active audit intake](docs/AUDIT-2026-08-23-EXTERNAL-5.8.26.md) before treating a
|
|
138
|
+
historical timing or bounded flag as a current guarantee.
|
|
140
139
|
|
|
141
140
|
**What a warm actually covers.** `ask cache warm` runs the compact analysis: it rebuilds the
|
|
142
141
|
shared structural layers (L1/L2 + the Repository Intelligence Snapshot + the shared Canonical
|
|
@@ -162,7 +161,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
|
|
|
162
161
|
# pip / pipx
|
|
163
162
|
pipx install sourcecode # or: pip install sourcecode
|
|
164
163
|
|
|
165
|
-
ask version # ask 5.8.
|
|
164
|
+
ask version # ask 5.8.27 — and, on a build that has aged,
|
|
166
165
|
# how many releases have probably shipped since
|
|
167
166
|
```
|
|
168
167
|
|
|
@@ -170,16 +169,13 @@ ask version # ask 5.8.25 — and, on a build that has aged,
|
|
|
170
169
|
> (renaming the distribution is a separate, breaking change). Installing it gives you the
|
|
171
170
|
> canonical **`ask`** command plus the deprecated **`sourcecode`** alias.
|
|
172
171
|
|
|
173
|
-
> **Platforms.**
|
|
174
|
-
>
|
|
175
|
-
>
|
|
176
|
-
>
|
|
177
|
-
> the
|
|
178
|
-
>
|
|
179
|
-
>
|
|
180
|
-
> platform we cannot exercise (C3-3, C3-12, C3-38 in the
|
|
181
|
-
> [defect ledger](docs/DEFECT-LEDGER.md)). On Windows, prefer `--output <file>` over shell
|
|
182
|
-
> redirection, and report a rendering problem rather than assuming it is known.
|
|
172
|
+
> **Platforms.** macOS, Linux and Windows are exercised in CI. The Windows battery runs the
|
|
173
|
+
> full suite on every push, with focused envelope and memory-footprint cases. UTF-8 streams
|
|
174
|
+
> are forced at both console entry points; a successful run writes nothing to stderr
|
|
175
|
+
> (PowerShell 5.1 raises `NativeCommandError` on any stderr write), and the MCP server strips
|
|
176
|
+
> the BOM PowerShell can put on stdin. For PowerShell, prefer `--output <file>` over shell
|
|
177
|
+
> redirection when retaining an artefact. A successful CI run is the portability evidence for
|
|
178
|
+
> a release; report a rendering problem with the command, shell and encoding.
|
|
183
179
|
|
|
184
180
|
---
|
|
185
181
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
**Fecha:** 2026-08-22
|
|
4
4
|
**Artefacto auditado:** release `5.8.22`, `build_commit`
|
|
5
5
|
`583c07c405358d3e76dd20968960f5ab928608fd`
|
|
6
|
-
**Sujeto principal:**
|
|
6
|
+
**Sujeto principal:** reference corpus / `banyan-v2`, HEAD `3dde0376`, 3.342 ficheros Java
|
|
7
7
|
**Registro relacionado:** [`docs/DEFECT-LEDGER.md`](DEFECT-LEDGER.md), entrada
|
|
8
8
|
`AUD-598-X01` y filas derivadas
|
|
9
9
|
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
Se consolidan dos rondas independientes sobre la misma release:
|
|
13
13
|
|
|
14
|
-
- Ronda A:
|
|
14
|
+
- Ronda A: reference corpus, 57 invocaciones, 52 cronometradas, 3 `pr-impact` y 5 ayudas,
|
|
15
15
|
`ASK_READONLY=1`, presupuesto explícito y 0 escrituras.
|
|
16
16
|
- Ronda B: banco de 16 repositorios Java/Spring, unas 95 invocaciones, Windows
|
|
17
17
|
11 Pro, pipx y Git Bash.
|
|
@@ -54,7 +54,7 @@ El estado siguiente es el que debe usarse para planificación y release:
|
|
|
54
54
|
| `AUD-598-X01` | `open` | El ledger del producto va por delante del wheel: cinco cierres declarados no se observan en el artefacto `583c07c`. |
|
|
55
55
|
| `AUD-598-B01` / `ASK-META-001` | `open` | La auditoría de wheel no observa `_meta`, `content_id` ni memoria en 9/9 payloads inspeccionados. Debe resolverse dentro de un wheel construido, no sólo en checkout. |
|
|
56
56
|
| `AUD-598-B02` / `ASK-UX-002` | `open` | `posture --diff` ofrece `--compact` y `--limit`, pero ambos son no-op en el caso medido y los hints forman un ciclo. |
|
|
57
|
-
| `AUD-598-B03` / `B-11` | `open` | Persisten 17 anclas de coste con texto `on 5.1.0` dentro de un build 5.8.22; además `risk` no alcanza su ancla publicada en
|
|
57
|
+
| `AUD-598-B03` / `B-11` | `open` | Persisten 17 anclas de coste con texto `on 5.1.0` dentro de un build 5.8.22; además `risk` no alcanza su ancla publicada en reference corpus. |
|
|
58
58
|
| `AUD-598-B04` / `N-02` | `open` parcial | `1e9` y `1_000` son presupuestos válidos, pero se aceptan sin advertir que no vincularán el proceso. |
|
|
59
59
|
|
|
60
60
|
## Cierres que el artefacto no confirma
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
**Artefacto auditado:** release `5.8.24`, `build_commit`
|
|
5
5
|
`61b9c12b0e354cda157038bc8be6e19384a42368`
|
|
6
6
|
**Sujetos:** banco de 16 repositorios Java/Spring sobre Windows 11 Pro (ronda A, ~145
|
|
7
|
-
invocaciones) ·
|
|
7
|
+
invocaciones) · reference corpus / `banyan-v2`, HEAD `3dde0376`, 3 342 ficheros Java (ronda B, octava
|
|
8
8
|
ronda sobre el mismo árbol bit a bit, ~55 invocaciones, `ASK_READONLY=1` y techo explícito
|
|
9
9
|
en todas, 0 tracebacks, 0 escrituras)
|
|
10
10
|
**Registro relacionado:** [`DEFECT-LEDGER.md`](DEFECT-LEDGER.md), *Fourteenth Audit Pass* y
|
|
@@ -15,7 +15,7 @@ filas `AUD-601-*`
|
|
|
15
15
|
| Ronda | Nota | Anterior | Veredicto del auditor |
|
|
16
16
|
|---|---:|---:|---|
|
|
17
17
|
| A — banco de 16 repos | `8,7/10` | 8,3 | Adoptar |
|
|
18
|
-
| B —
|
|
18
|
+
| B — reference corpus | `8,88/10` | 8,84 | Comprar y actualizar, con una reserva operativa |
|
|
19
19
|
|
|
20
20
|
Ronda B marca **su propio eje de rendimiento como provisional** y nombra el confound. Ronda A
|
|
21
21
|
**retracta una fila propia** tras cuatro informes. Ambas cosas cuentan a favor del método y
|
|
@@ -202,7 +202,7 @@ byte-idéntico a 156 902 B en dos corridas donde antes oscilaba ±1–3 B por re
|
|
|
202
202
|
|
|
203
203
|
**De rendimiento: las dos rondas se contradicen, y no se declara regresión.**
|
|
204
204
|
|
|
205
|
-
| | Ronda A (banco, protocolo con `cache warm` explícito, intercalado ×4, mediana, primera descartada) | Ronda B (
|
|
205
|
+
| | Ronda A (banco, protocolo con `cache warm` explícito, intercalado ×4, mediana, primera descartada) | Ronda B (reference corpus) |
|
|
206
206
|
|---|---|---|
|
|
207
207
|
| Lectura | **8 de 9 anclas mejoran 4–17 %**, y las seis que subieron en `5.8.23` vuelven todas a su banda o por debajo. `ask --help` a 1,74 s, bajo el ×1,25 de vigilancia | `posture` +55 %, `spring-audit` ×2,1, `migrate-check` ×2,2, `selftest` +45 %, `compare` +39 %, `export --c4` peor — y `ask . --compact` **mejor 1,3×** (94,6 → 74,9 s), `validation` 1,5×, `verify --init` 1,3× |
|
|
208
208
|
| Estado | firme | **provisional, declarado por su autor** |
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Intake de hallazgos — corpus ampliado ASK 5.8.25
|
|
2
|
+
|
|
3
|
+
**Fecha:** 2026-08-23
|
|
4
|
+
**Build externo:** `5.8.25`, `b6e0e0f`
|
|
5
|
+
**Fuente:** [`/Users/user/Documents/workspace/testing/ASK-FINDINGS-CORPUS-AMPLIADO-2026-08-23.md`](/Users/user/Documents/workspace/testing/ASK-FINDINGS-CORPUS-AMPLIADO-2026-08-23.md)
|
|
6
|
+
**Estado:** intake incorporado; sin correcciones de código en esta tarea.
|
|
7
|
+
|
|
8
|
+
## Criterio de triage
|
|
9
|
+
|
|
10
|
+
El corpus aporta reproducción exacta y contraste manual. Los hallazgos se registran como
|
|
11
|
+
**reportados externamente** hasta reproducirlos contra el checkout o wheel correspondiente.
|
|
12
|
+
No se convierten en vulnerabilidades del repositorio auditado: describen límites, falsos
|
|
13
|
+
negativos, falsos positivos o contratos ambiguos de ASK. Los cuatro P0 deben tener prioridad
|
|
14
|
+
antes de nuevas features comerciales.
|
|
15
|
+
|
|
16
|
+
## Bugs y regresiones
|
|
17
|
+
|
|
18
|
+
| Severidad | ID | Hallazgo | Acción requerida | Estado |
|
|
19
|
+
|---|---|---|---|---|
|
|
20
|
+
| P0 | `AUD-CA-001` | `posture.security` es Spring-Security-only, pero `stack_fit` trata Spring + Shiro como ausencia de control. | Separar `spring_detected` de `spring_security_detected`; publicar `unknown` y framework no modelado. | Corregido 5.8.25: Shiro queda declarado como no modelado y el acceso como `unknown` |
|
|
21
|
+
| P0 | `AUD-CA-002` | `@RequiresPermissionsDesc` descriptiva suprime un finding al retirar el gate real `@RequiresPermissions`. | Exigir evidencia de enforcement; no inferir gates por nombre; cualquier transición desde roles debe activar `security_delta`. | Reportado, reproducir |
|
|
22
|
+
| P0 | `AUD-CA-003` | Colisión de FQN entre módulos descarta rutas y seguridad sin declaración. | Identidad `(módulo, FQN)` o ruta; declarar descartes si se conserva una sola definición. | Reportado, reproducir |
|
|
23
|
+
| P0 | `AUD-CA-014` | 89 controladores Micronaut no aparecen en `endpoints` y el vocabulario no declara el framework. | Añadir `micronaut` como estilo detectado-no-soportado y gap cuantificado; después implementar soporte. | Parcial 5.8.25: superficie Micronaut declarada y cuantificada; soporte HTTP pendiente |
|
|
24
|
+
| P1 | `AUD-CA-004` | `none_detected` mezcla cadena no modelada con ruta pública por regla URL. | Modelar `ShiroFilterFactoryBean` o separar estados `chain_not_modelled` y `chain_public`. | Reportado, reproducir |
|
|
25
|
+
| P1 | `AUD-CA-005` | Regla por nombre de módulo excluye código real bajo `src/main`. | Basar exclusión en source sets (`src/test`, `src/it`), no en nombre de módulo. | Corregido 5.8.25: `src/main` prevalece; sólo quedan módulos fixture explícitos |
|
|
26
|
+
| P1 | `AUD-CA-006` | `entry_points` alterna objeto/array bajo `schema_version: 1.0`; además duplica `(path, kind)`. | Fijar un schema; separar poblaciones si procede y deduplicar por `(path, kind)`. | Reportado, reproducir |
|
|
27
|
+
| P1 | `AUD-CA-007` | Repositorio políglota sin build file en raíz deja inventario Java vacío pese a `primary: java`. | Descubrir manifests en el reactor; particionar dependencias por stack y declarar contradicciones. | Reportado, reproducir |
|
|
28
|
+
| P1 | `AUD-CA-008` | Índice MyBatis incompleto produce `mapper_interfaces: 0` y 100% de XML huérfanos falsos. | Resolver namespace contra índice completo; si el índice está incompleto, no emitir huérfanos. | Reportado, reproducir |
|
|
29
|
+
| P1 | `AUD-CA-009` | `migrate-check` omite dependencias directas incompatibles con Boot 3 y publica esfuerzo con confianza alta. | Añadir compatibilidad de dependencias declaradas; mientras tanto, publicar `non_coverage` y retirar `point_estimate/high`. | Reportado, reproducir |
|
|
30
|
+
| P1 | `AUD-CA-015` | Titular `7 endpoints` oculta 21.023 rutas excluidas. | Incluir proporción y exclusiones en el titular cuando superen el umbral; mantener detalle en `answer_bounds`. | Reportado, reproducir |
|
|
31
|
+
| P2 | `AUD-CA-010` | `ask --compact` y `endpoints` discrepan en el censo de controladores. | Unificar autoridad y población; publicar unidad y base del censo. | Reportado, reproducir |
|
|
32
|
+
| P2 | `AUD-CA-011` | SEC-008 no cualifica alcanzabilidad; 41% del volumen procede de boilerplate MyBatis Generator. | Filtrar por rutas HTTP alcanzables y agrupar por expresión + fichero. | Reportado, reproducir |
|
|
33
|
+
| P2 | `AUD-CA-012` | `verify-edit` publica `source_file: null` aunque `endpoints` sí tiene ancla `file:line`. | Reutilizar la autoridad de endpoints para anclar el diff. | Reportado, reproducir |
|
|
34
|
+
| P2 | `AUD-CA-016` | `zero_result_reason` termina en una conjunción (`and `) y espacio final. | Construir la enumeración sin elementos vacíos y probar el texto completo. | Reportado, reproducir |
|
|
35
|
+
| P3 | `AUD-CA-013` | `explain.public_methods` colapsa sobrecargas y carece de unidad/población/base. | Publicar firmas o identificadores de método y metadatos de población. | Corregido 5.8.25: `public_methods_detail` conserva firmas y anclas |
|
|
36
|
+
| P3 | `AUD-CA-017` | `excluded_by_module_name_rule.count` es `null` mientras la cifra sólo existe en prosa. | Publicar el contador numérico desde la misma autoridad que genera el gap. | Corregido 5.8.25: `count` y `unit` publicados |
|
|
37
|
+
|
|
38
|
+
## Prioridad de ejecución
|
|
39
|
+
|
|
40
|
+
1. Seguridad y superficie: `AUD-CA-001`, `AUD-CA-002`, `AUD-CA-003`, `AUD-CA-004` y
|
|
41
|
+
`AUD-CA-014`.
|
|
42
|
+
2. Integridad de inventario y contratos: `AUD-CA-005` a `AUD-CA-010` y `AUD-CA-012`.
|
|
43
|
+
3. Precisión comercial y legibilidad: `AUD-CA-011`, `AUD-CA-015`, `AUD-CA-016`,
|
|
44
|
+
`AUD-CA-013` y `AUD-CA-017`.
|
|
45
|
+
|
|
46
|
+
## Criterios de cierre
|
|
47
|
+
|
|
48
|
+
- Cada hallazgo reproducido debe tener test de regresión con el repositorio testigo o una
|
|
49
|
+
fixture mínima equivalente.
|
|
50
|
+
- Toda exclusión debe declarar población, motivo, contador y efecto sobre `answer_bounds`.
|
|
51
|
+
- Ningún `none`, `0`, `clean` o `point_estimate/high` puede publicarse cuando el eje o el
|
|
52
|
+
índice necesario no está modelado.
|
|
53
|
+
- Cambios de schema deben conservar una única forma por versión y actualizar consumidores,
|
|
54
|
+
schemas y fixtures.
|
|
55
|
+
- Los P0 no se cierran por texto o mitigación documental: requieren evidencia de código y
|
|
56
|
+
batería verde.
|
|
57
|
+
|
|
58
|
+
## No clasificado como bug
|
|
59
|
+
|
|
60
|
+
El corpus también confirma determinismo caliente, ausencia de escrituras en los checkouts,
|
|
61
|
+
separación correcta de fuentes de test, `declared_not_served`, varias coberturas Quarkus y
|
|
62
|
+
Micronaut a escala de ejecución. Es evidencia positiva que debe preservarse, no trabajo
|
|
63
|
+
pendiente.
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# Auditoría externa de regresión — ASK Engine 5.8.25
|
|
2
|
+
|
|
3
|
+
**Fecha de recepción:** 2026-08-23
|
|
4
|
+
**Artefacto auditado:** ASK Engine `5.8.25`, build `b6e0e0f157687a962ce66627afe2e9b388fb2f06`
|
|
5
|
+
**Entornos:** Windows 11 Pro y reference corpus (`3dde0376`)
|
|
6
|
+
**Alcance:** aproximadamente 180 invocaciones, 0 tracebacks, 0 escrituras observadas.
|
|
7
|
+
|
|
8
|
+
## Estado posterior del checkout
|
|
9
|
+
|
|
10
|
+
**Verificado el 2026-08-23 contra `HEAD 3d56d11`**, posterior al artefacto auditado.
|
|
11
|
+
Este bloque es el estado operativo actual; la evidencia del informe externo que sigue se
|
|
12
|
+
conserva sin alterar.
|
|
13
|
+
|
|
14
|
+
- La versión del repositorio es `5.8.25`.
|
|
15
|
+
- `125e486` corrigió la serialización de rutas en Windows y la detección de `ask.exe` en
|
|
16
|
+
selftest.
|
|
17
|
+
- `735d766` corrigió el fallback de contexto de comando, el bounding de flags en variantes
|
|
18
|
+
Click/Typer, las rutas POSIX del workspace y la configuración de salida del job Windows.
|
|
19
|
+
- `434d0e2` excluyó `_cache` runtime del `content_id` y añadió la regresión frío/caliente.
|
|
20
|
+
- `cd3f8f1` añadió un sweep final del parse cache para no dejar el último intervalo sin
|
|
21
|
+
eviction al terminar una invocación.
|
|
22
|
+
- `e9f5861` definió `--ci` para migraciones como gate de `migration_blocking_count`, y
|
|
23
|
+
`49187f9` etiqueta explícitamente los benchmarks históricos antes de reutilizarlos.
|
|
24
|
+
- `3d56d11` reinició la observabilidad de caché por invocación, evitando que una ejecución
|
|
25
|
+
embebida contamine el tamaño o el estado de la siguiente.
|
|
26
|
+
- La batería completa pasa en verde usando directorios separados para
|
|
27
|
+
`SOURCECODE_CONTEXT_CACHE_DIR` y `SOURCECODE_CACHE_DIR`. Configurar sólo uno produce
|
|
28
|
+
falsos fallos de snapshots/RIS.
|
|
29
|
+
- `ASK-DET-002`, `B-26` y `ASK-GATE-001` tienen fix en el checkout y batería dirigida verde;
|
|
30
|
+
falta validar el wheel/CI Windows para cerrar la evidencia externa.
|
|
31
|
+
- `ASK-UX-001`, `ASK-UX-002` y `ASK-ENV-001` tienen corrección o mitigación en el checkout,
|
|
32
|
+
pero requieren verificación del wheel publicado y un job Windows verde antes de cerrarse.
|
|
33
|
+
- `B-11` tiene mitigación de comunicación en el checkout; la regeneración numérica de
|
|
34
|
+
anclas requiere una captura reproducible posterior. Siguen abiertos `ASK-PERF-003` y la
|
|
35
|
+
reconciliación `B-13`/`B-14`; las filas sin cita y `B-30` permanecen como deuda P3.
|
|
36
|
+
|
|
37
|
+
### Cola vigente después de `HEAD 3d56d11`
|
|
38
|
+
|
|
39
|
+
| Estado | IDs | Siguiente evidencia requerida |
|
|
40
|
+
|---|---|---|
|
|
41
|
+
| Fix local / validación externa | `ASK-DET-002`, `B-26`, `ASK-GATE-001` | Confirmar wheel publicado y batería Windows/GitHub. |
|
|
42
|
+
| Mitigación local / dato pendiente | `B-11` | Capturar benchmarks con build, commit y protocolo actuales. |
|
|
43
|
+
| Validación | `ASK-UX-001`, `ASK-UX-002`, `ASK-ENV-001` | Repetir contra wheel exacto y confirmar batería Windows en CI. |
|
|
44
|
+
| Investigación | `ASK-PERF-003`, `B-13`/`B-14` | Medición aislada y reproducción con artefacto/par exactos. |
|
|
45
|
+
| Futuro | Gate PR, contexto acotado, migración Boot/Java, provenance HTTP, SARIF | Plan de producto posterior a los contratos de confianza. |
|
|
46
|
+
|
|
47
|
+
## Veredicto ejecutivo
|
|
48
|
+
|
|
49
|
+
El informe no demuestra una regresión funcional del analizador. Sí demuestra un defecto
|
|
50
|
+
de determinismo/procedencia en el payload raíz, varios contratos de producto incompletos y
|
|
51
|
+
una divergencia de entorno Windows que no puede darse por cerrada desde macOS/Linux.
|
|
52
|
+
|
|
53
|
+
La prioridad de la siguiente iteración no es optimizar todas las cifras de tiempo: es hacer
|
|
54
|
+
que una misma respuesta sea estable, explicable y utilizable en CI. Sin esa base, los
|
|
55
|
+
benchmarks y la procedencia pierden valor comercial.
|
|
56
|
+
|
|
57
|
+
## Bugs y regresiones prioritarios
|
|
58
|
+
|
|
59
|
+
| Prioridad | ID | Resultado de la auditoría | Decisión |
|
|
60
|
+
|---|---|---|---|
|
|
61
|
+
| P1 | `ASK-DET-002` | `ask . --output raw1.json` produjo dos `content_id` para el mismo árbol: `8e3a1cd54154e2eb` en frío y `f81481e0fea47e02` en caliente. Las 20 diferencias están en `_cache` (`cache_source`, `ris_exists`, `ris_git_head`, `ris_is_stale`). | **Bug confirmado.** El hash de contenido incluye estado de ejecución. Separar respuesta analítica de metadatos de ejecución, o excluir `_cache` del `content_id`; añadir prueba frío/caliente y estabilidad tras repetir. |
|
|
62
|
+
| P1 | `B-26` / `ASK-17` | En la flota de 16 repositorios el parse cache alcanzó aproximadamente 559.48 MB frente a un presupuesto de 512 MB, con 25.560 entradas. | **Problema de capacidad confirmado, no fallo aislado de análisis.** Publicar exceso, política de eviction y estado efectivo; decidir si el límite es por workspace, usuario o flota antes de prometer escala empresarial. |
|
|
63
|
+
| P1/P2 | `ASK-UX-001` / `N-01` | El bloque “Runs now” sigue presentando `posture . --diff dev:prod` y `endpoints .` sin una forma de acotar el resultado. | **Residuo confirmado en el artefacto auditado.** El generador ya se corrigió parcialmente en el checkout; falta verificar el wheel publicado y cubrir la población completa del bloque. |
|
|
64
|
+
| P1/P2 | `ASK-UX-002` | El sistema de sugerencias entra en ciclo: sin flags ofrece `--compact`/`--limit`; con uno ofrece el otro; ambas variantes producen exactamente 71.722 tokens. | **Bug confirmado.** Las sugerencias deben ser conscientes del comando, del camino de renderizado y de `flags_already_passed`; nunca recomendar una transformación que no reduzca el payload. |
|
|
65
|
+
| P1/P2 | `ASK-ENV-001` | En Windows, 9/9 payloads llegaron con `envelope_status=degraded`, `command=unknown` y razón “the running command could not be named”. | **Regresión ambiental pendiente de reproducir.** No contradice la prueba local, pero sí invalida declarar el caso cerrado. El pipeline Windows debe fallar si el contrato se degrada sin base explícita. |
|
|
66
|
+
| P2 | `ASK-GATE-001` | `spring-audit --ci` y `risk --ci` devuelven el contrato de gate; `migrate-check --ci` y `migrate-apply --ci` rechazan la opción. | **Contrato inconsistente confirmado.** Definir por comando si `--ci` es gate de completitud, gate de findings o no aplica; después alinear help, exit code, schema y pruebas. No añadir la bandera por simetría sin definir su semántica. |
|
|
67
|
+
| P2 | `B-11` | 16 de 19 anclas de coste siguen referenciando `5.1.0`; una referencia `5.8.23`. | **Deuda de credibilidad.** No rompe el análisis, pero debilita cualquier benchmark comercial. Regenerar anclas o marcarlas explícitamente como históricas y exigir versión/build en cada cifra. |
|
|
68
|
+
| P2 | `ASK-PERF-003` | Varios comandos parecen más lentos que en `5.8.24`, mientras `export --c4` mejora y `ask --compact` también. | **No es regresión confirmada.** El auditor identifica contaminación por ejecuciones concurrentes y estados de caché. Repetir en aislamiento, con protocolo frío/sembrado/caliente y al menos tres muestras antes de abrir un fix. |
|
|
69
|
+
| P3 | Cierre de auditoría | 25 filas cerradas permanecen sin cita (`uncited`). | **Higiene de procedencia.** Automatizar la cita o etiquetar la ausencia intencionada; no bloquear una release salvo que afecte a una afirmación comercial. |
|
|
70
|
+
| P3 | `B-30` | 20 contratos arquitectónicos aparecen como `forbid_finding` y no utilizan la población “17 endpoints / 39 tipos”. | **Oportunidad futura.** Convertirlo en producto sólo cuando existan contratos positivos, tipos útiles y una explicación de por qué una regla no aplica. |
|
|
71
|
+
| Reconciliación | `B-13` / `B-14` | El informe externo observa identidad ausente y una negativa byte-identical; el re-audit del checkout documenta identidad y no reproduce el caso `mall`/`nacos`. | **No reabrir automáticamente.** Reproducir contra el wheel exacto y el par exacto del informe. Si reproduce, prevalece el test de población; si no, registrar discrepancia de artefacto, no un bug nuevo. |
|
|
72
|
+
|
|
73
|
+
## Qué no se clasifica como regresión
|
|
74
|
+
|
|
75
|
+
- No hay regresión funcional demostrada, crash, traceback, escritura o mutación del repositorio auditado.
|
|
76
|
+
- Las diferencias de tiempos no son atribuibles todavía a una versión: faltan ejecuciones aisladas y control de caché.
|
|
77
|
+
- El resultado de “clean repo no encuentra riesgo” no es un bug; es el límite correcto del análisis. Debe expresarse como no-cobertura, no maquillarse como finding.
|
|
78
|
+
- `data-exposure` sin labels/configuración suficiente es una limitación de entrada y onboarding, no una vulnerabilidad del motor.
|
|
79
|
+
|
|
80
|
+
## Recomendaciones del auditor, validadas como CTO
|
|
81
|
+
|
|
82
|
+
| Recomendación | Validación | Acción de producto |
|
|
83
|
+
|---|---|---|
|
|
84
|
+
| Priorizar un gate semántico de PR | **Alta.** Es la demostración más directa de valor: cambio concreto, finding accionable, evidencia `file:line` y exit code. | Convertir `pack gate --since <ref>` en workflow de referencia y medir findings por PR, severidad y bugs evitados. |
|
|
85
|
+
| Entregar contexto acotado para agentes | **Alta.** Reduce tokens y tiempo de integración; ya hay evidencia de payloads bajo techo. | Consolidar `--compact`, `--agent` y `prepare-context` con límites verificables y KPI de tokens/call y éxito de tarea. |
|
|
86
|
+
| Inventario Boot 2→3 / Java LTS | **Alta.** Tiene comprador, urgencia y unidad de trabajo clara: archivo, línea, bloqueo y esfuerzo. | Hacer de `migrate-check` + recipe el segundo caso comercial, con blockers/lines/days como métricas. |
|
|
87
|
+
| HTTP exposure con provenance | **Alta.** Es defendible ante seguridad si cada ruta lleva fuente, declaración, postura y límites. | Completar `endpoints` + `posture` + `explain-endpoint`, incluyendo negativas y población. |
|
|
88
|
+
| Enriquecimiento SARIF de Semgrep/CodeQL | **Media-alta, después de lo anterior.** Amplía distribución sin competir construyendo otro SAST. | Mantenerlo como integración: anclar, componer y explicar findings externos; medir porcentaje alcanzable por request no autenticada. |
|
|
89
|
+
| Mejorar hints, CI y envelope | **Imprescindible, aunque no sea una feature vendible por sí sola.** Son prerequisitos de confianza y adopción. | Tratar `ASK-DET-002`, UX-001/002, ENV-001 y GATE-001 como condición de calidad de la siguiente iteración. |
|
|
90
|
+
| Resolver primero el cache de flota | **Válida con matiz.** Es capacidad y coste operativo, no el “holy shit” comercial. | Añadir límites observables y eviction; no convertirlo en iniciativa principal hasta fijar el modelo de workspace/flota. |
|
|
91
|
+
|
|
92
|
+
### Recomendación propia
|
|
93
|
+
|
|
94
|
+
La próxima demo debe ser un flujo completo de cambio, no un catálogo de comandos:
|
|
95
|
+
|
|
96
|
+
```text
|
|
97
|
+
PR con cambio Spring -> pack gate -> findings file:line -> impacto transitivo
|
|
98
|
+
-> endpoints/posture -> decisión CI -> contexto compacto para remediación
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
El entregable comercial debe responder tres preguntas en una página: **qué cambió, qué
|
|
102
|
+
riesgo nuevo introduce y qué queda explícitamente fuera del alcance**. El KPI principal no
|
|
103
|
+
debe ser el número de findings, sino el tiempo hasta una decisión defendible y la proporción
|
|
104
|
+
de resultados con unidad, población, evidencia y exclusión negativa.
|
|
105
|
+
|
|
106
|
+
## Criterios de aceptación para próximas iteraciones
|
|
107
|
+
|
|
108
|
+
1. Dos ejecuciones frío/caliente del mismo árbol producen el mismo `content_id`; cualquier diferencia de ejecución vive bajo `_meta` y se declara como tal.
|
|
109
|
+
2. El bloque de inicio sólo recomienda comandos que pueden ejecutarse dentro del techo con la bandera que realmente los acota.
|
|
110
|
+
3. Ningún hint propone un flag ya usado o semánticamente ineficaz; la batería cubre todas las combinaciones publicadas.
|
|
111
|
+
4. Cada comando que anuncie `--ci` documenta su gate, exit code, base y comportamiento ante resultado parcial; los demás lo rechazan de forma explícita y coherente.
|
|
112
|
+
5. Windows ejecuta la batería de envelope y no permite publicar `command=unknown` como éxito silencioso.
|
|
113
|
+
6. Cada benchmark comercial incluye build, commit, tamaño de población, estado de caché, número de muestras y protocolo de aislamiento.
|
|
114
|
+
7. La demo PR/migración genera evidencia de fuente, población, límites y exclusiones negativas; sin esos campos el resultado se marca no concluyente.
|
|
115
|
+
|
|
116
|
+
## Estado documental
|
|
117
|
+
|
|
118
|
+
Este documento registra el informe externo y su evaluación independiente. El estado maestro
|
|
119
|
+
de cada fila continúa en [`DEFECT-LEDGER.md`](DEFECT-LEDGER.md). Las diferencias entre wheel
|
|
120
|
+
auditado y checkout deben resolverse mediante reproducción contra el artefacto exacto, no
|
|
121
|
+
mediante una actualización manual del estado.
|