sourcecode 5.8.14__tar.gz → 5.8.15__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.14 → sourcecode-5.8.15}/CHANGELOG.md +28 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/PKG-INFO +29 -16
- {sourcecode-5.8.14 → sourcecode-5.8.15}/README.md +28 -15
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/CACHE.md +19 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/DEFECT-LEDGER.md +58 -8
- sourcecode-5.8.15/docs/DEMO-5MIN.md +102 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/DEVELOPMENT-ROADMAP.md +66 -9
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/EXECUTIVE-ROADMAP.md +32 -15
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/MANUAL-USUARIO.md +86 -18
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/PRODUCT_TIERS.md +1 -1
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/USER_GUIDE.md +57 -11
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/migrate-check.md +4 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/pyproject.toml +1 -1
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/__init__.py +1 -1
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/archetype.py +5 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/breaking_changes.py +41 -1
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/cache_model.py +7 -0
- sourcecode-5.8.15/src/sourcecode/ci_output.py +73 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/cli.py +526 -37
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/context_cache.py +17 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/data_labels.py +63 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/format_contract.py +5 -4
- sourcecode-5.8.15/src/sourcecode/github_diff.py +34 -0
- sourcecode-5.8.15/src/sourcecode/migration_apply.py +241 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/phased_run.py +6 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/prepare_context.py +7 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/repository_ir.py +46 -3
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/schema_registry.py +5 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/serializer.py +14 -4
- sourcecode-5.8.14/docs/DEMO-5MIN.md +0 -134
- {sourcecode-5.8.14 → sourcecode-5.8.15}/.github/workflows/build-windows.yml +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/.github/workflows/perf-gate.yml +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/.gitignore +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/.ruff.toml +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/CLAUDE.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/CONTRIBUTING.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/LICENSE +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/NOTICE +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/SECURITY.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/COMMERCIAL-OFFER.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/CUSTOMER-VALIDATION.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/EXECUTION-PLAN-12MO.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/MODERNIZATION.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/PRODUCT_AUDIT.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/PRODUCT_IDENTITY.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/RC1-CHECKLIST.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/RELEASE-CHECKLIST.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/architecture/CATALOG-retrieval-intents.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/architecture/DESIGN-knowledge-provider-integration.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/architecture/DESIGN-p5.3b-statement-surface.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/architecture/DESIGN-p5.5-span-index.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/architecture/DESIGN-p6-semantic-impact-engine.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/architecture/DESIGN-p6-semantic-integration-engine.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/architecture/DESIGN-p7-semantic-services.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/architecture/DESIGN-robustness-security-inference.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/architecture/DESIGN-semantic-retrieval.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/architecture/EPV-p6-class-typeref.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/architecture/REPORT-p6-flow-analyzer-comparison.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/architecture/REPORT-p6-integration-detector-comparison.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/architecture/REPORT-p8-flow-analyzer-migration.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/architecture/REPORT-p9-integration-detector-migration.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/architecture/adr/0001-semantic-ir.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/architecture/adr/0002-source-evidence-boundary.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/architecture/adr/0003-architectural-characterization.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/architecture/adr/0004-semantic-retrieval.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/architecture/adr/0005-evidence-reconciliation.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/architecture/adr/0006-performance-harness.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/architecture/adr/0007-composition-semantics.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/architecture/adr/0008-answer-coherence.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/architecture/consumer-disposition-inventory.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/architecture/overview.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/architecture/product-architecture-review.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/architecture/product-strategy-layering.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/architecture/semantic-ir-consumer-matrix.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/architecture/semantic-ir-roadmap.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/baseline-ci.yml +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/commercial-pipeline-audit.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/contracts-ci.yml +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/contracts.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/eval/2026-06-15-petclinic-rest-issue11-vets-pagination.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/eval/2026-06-15-petclinic-rest-issue147-validation.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/eval/2026-06-15-petclinic-rest-workflow.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/eval/2026-06-15-phase18-openapi-surface.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/eval/2026-06-15-phase20-validation-surface.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/eval/2026-06-16-broadleaf-checkout-impact-fieldtest.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/eval/2026-06-16-petclinic-rest-issue11-weakness2-closed.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/eval/2026-06-16-spring-petclinic-issue2333-dead-vets.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/licensing-schema.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/README.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/REGRESSION-GATE.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.15/SUMMARY.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.15/alfresco__ask__cold.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.15/alfresco__ask__warm.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.15/broadleaf__ask__cold.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.15/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.15/eureka__ask__cold.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.15/eureka__ask__warm.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.15/jenkins__ask__cold.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.15/jenkins__ask__warm.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.15/jobrunr__ask__cold.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.15/jobrunr__ask__warm.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.15/keycloak__ask__cold.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.15/keycloak__ask__warm.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.15/neo4j__ask__cold.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.15/neo4j__ask__warm.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.15/ofbiz__ask__cold.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.15/ofbiz__ask__warm.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.15/openmrs__ask__cold.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.15/openmrs__ask__warm.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.15/petclinic__ask__cold.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.15/petclinic__ask__warm.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.16/SUMMARY.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.16/alfresco__ask__cold.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.16/alfresco__ask__warm.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.16/broadleaf__ask__cold.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.16/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.16/eureka__ask__cold.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.16/eureka__ask__warm.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.16/jenkins__ask__cold.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.16/jenkins__ask__warm.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.16/jobrunr__ask__cold.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.16/jobrunr__ask__warm.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.16/keycloak__ask__cold.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.16/keycloak__ask__warm.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.16/neo4j__ask__cold.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.16/neo4j__ask__warm.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.16/ofbiz__ask__cold.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.16/ofbiz__ask__warm.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.16/openmrs__ask__cold.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.16/openmrs__ask__warm.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.16/petclinic__ask__cold.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/2.5.16/petclinic__ask__warm.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/gate-latest/README.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/gate-latest/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/gate-latest/broadleaf__endpoints__warm.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/gate-latest/broadleaf__migrate-check__warm.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/gate-latest/broadleaf__posture__warm.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/gate-latest/broadleaf__spring-audit__warm.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/gate-latest/broadleaf__validation__warm.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/perf/baselines/reference-best/README.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/posture.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/privacy.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/pro-experience-audit.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/schema.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/spec/envelope-v1.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/docs/spring-audit-ci.yml +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/scripts/compare_integration_engines.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/scripts/customer_smoke_test.sh +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/scripts/generate_jdk_exports.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/scripts/perf_gate.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/scripts/perf_harness.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/scripts/sync_gate_anchors.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/adaptive_scanner.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/answer_bounds.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/architectural_baseline.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/architectural_delta.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/architecture_analyzer.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/architecture_summary.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/ast_extractor.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/audit_clusters.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/audit_recipe.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/audit_report.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/audit_since.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/baseline_autocapture.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/build_modules.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/bundled_docs.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/cache.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/call_surface.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/caller_metrics.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/caller_reach.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/canonical_ir.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/chain_rules.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/change_plan.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/cir_graphs.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/classifier.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/client_calls.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/code_notes_analyzer.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/compare.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/confidence_analyzer.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/constraint_diff.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/consumer_join.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/container_wiring.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/context_graph.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/context_scorer.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/context_summarizer.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/contract_diff.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/contract_init.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/contract_model.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/contract_pipeline.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/coverage_parser.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/data_exposure.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/declarations.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/defect_identity.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/degradation.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/dependency_analyzer.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/deployment_prefix.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/detach.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/detectors/__init__.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/detectors/base.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/detectors/csproj_parser.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/detectors/dart.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/detectors/dotnet.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/detectors/elixir.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/detectors/go.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/detectors/heuristic.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/detectors/hybrid.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/detectors/java.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/detectors/jvm_ext.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/detectors/nodejs.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/detectors/parsers.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/detectors/php.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/detectors/project.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/detectors/python.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/detectors/ruby.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/detectors/rust.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/detectors/systems.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/detectors/terraform.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/detectors/tooling.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/doc_analyzer.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/dynamic_argument_surface.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/empty_reach.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/endpoint_disposition.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/endpoint_literals.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/endpoint_metrics.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/entrypoint_classifier.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/env_analyzer.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/envelope.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/environment_resolution.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/error_schema.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/evidence_provider.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/execution_plan.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/explain.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/explain_endpoint.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/facts/__init__.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/facts/registry.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/field_deprecations.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/file_chunker.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/file_classifier.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/filter_surface.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/fqn_utils.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/functional_routes.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/gate_anchors.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/git_analyzer.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/git_checkout.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/graph_analyzer.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/graph_evidence.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/hibernate_strat.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/identity_fallback.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/integration_coordinates.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/jdk_exports.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/license.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/manifest_cache.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/mcp/__init__.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/mcp/dependency_import.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/mcp/onboarding/applier.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/mcp/onboarding/backup.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/mcp/onboarding/detector.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/mcp/onboarding/planner.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/mcp/orchestrator.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/mcp/registry.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/mcp/runner.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/mcp/server.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/mcp_nudge.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/metrics_analyzer.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/migrate_check.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/migration_blast.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/non_coverage.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/openapi_surface.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/openrewrite_recipe.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/output_bounds.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/output_budget.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/output_ceiling.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/output_encoding.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/output_sink.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/parallel.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/parse_cache.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/partial_contract.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/path_admission.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/path_filters.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/perf.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/pipe_contract.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/posture.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/pr_comment_renderer.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/pr_impact.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/product_info.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/progress.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/provenance.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/ranking_engine.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/readiness_timeline.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/readonly.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/reconciliation.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/redactor.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/reference_facts.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/regress.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/release_info.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/relevance_scorer.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/remediation_diff.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/remedies.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/rename_refactor.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/repo_classifier.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/retrieval/__init__.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/retrieval/context.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/retrieval/errors.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/retrieval/executor.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/retrieval/planner.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/retrieval/query.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/retrieval/request.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/retrieval/resolution.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/retrieval/result.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/retrieval/retriever.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/retrieval/runtime.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/retrieval/steps.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/retrieval/steps_endpoint.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/retrieval/steps_graph.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/retrieval/steps_impact.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/retrieval/steps_intf.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/retrieval/steps_struct.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/retrieval/steps_txsec.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/ris.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/risk.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/risk_model.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/rule_catalog.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/rule_pass.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/runs.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/runtime_classifier.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/sarif.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/scanner.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/schema.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/schema_producers.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/schemas/core-analysis-v1.schema.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/schemas/endpoints-v1.schema.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/schemas/envelope-v1.schema.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/schemas/pr-impact-v1.schema.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/schemas/verify-edit-v1.schema.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/schemas/verify-v1.schema.json +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/security_chain.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/security_config.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/security_config_scan.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/security_posture.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/selftest.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/semantic_analyzer.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/semantic_impact_engine.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/semantic_integration_engine.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/semantic_services.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/servlet_surface.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/source_text.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/spring_event_topology.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/spring_findings.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/spring_impact.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/spring_model.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/spring_profiles.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/spring_properties.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/spring_security_audit.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/spring_semantic.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/spring_tx_analyzer.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/sql_taint.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/summarizer.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/target_admission.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/telemetry/__init__.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/telemetry/config.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/telemetry/consent.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/telemetry/events.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/telemetry/filters.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/telemetry/transport.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/test_gap_ranking.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/test_sources.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/text_input.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/timeline.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/timeline_cache.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/token_estimate.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/tree_utils.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/type_usage_surface.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/validation_inference.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/validation_surface.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/verify_edit.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/verify_repo.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/verify_rules.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/version_check.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/waivers.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/src/sourcecode/workspace.py +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/supabase/functions/README.md +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/supabase/functions/get-license/index.ts +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/supabase/functions/lemonsqueezy-webhook/index.ts +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/supabase/functions/telemetry/index.ts +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/supabase/sql/license_event_ordering.sql +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/supabase/sql/licensing_schema.sql +0 -0
- {sourcecode-5.8.14 → sourcecode-5.8.15}/supabase/sql/telemetry_events.sql +0 -0
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [5.8.15] — 2026-08-20
|
|
4
|
+
|
|
5
|
+
*Correction battery release based on the fifth 5.8.14 audit.*
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
- Labelled `data-exposure` runs reuse the shared CIR without changing the no-label fast path.
|
|
9
|
+
- `onboard` and `archetype` publish explicit source-file population units and totals.
|
|
10
|
+
- `risk` help, tier metadata and user documentation consistently describe the command as supported.
|
|
11
|
+
- SEC-009 keeps its contextual `medium` calibration, pinned by a regression and active/profile evidence.
|
|
12
|
+
- `migrate-apply` is now present in help, progress, path-admission, output-purity,
|
|
13
|
+
cache and schema contracts.
|
|
14
|
+
- Endpoint inventories disclose excluded test modules while preserving test-fixture
|
|
15
|
+
routes as a separately scoped population.
|
|
16
|
+
- `posture --compact` preserves complete counts while bounding unresolved bodies;
|
|
17
|
+
`cold-start` remains a bounded RIS projection.
|
|
18
|
+
|
|
19
|
+
### Verified
|
|
20
|
+
- Six-run steady `risk` on Broadleaf converged at 6.56s with a clean interleaved control.
|
|
21
|
+
- BUG-1 and BUG-2 were not reproduced locally; external reproduction remains required before closure.
|
|
22
|
+
- Dirty-tree `verify-edit` and readonly/mutation controls pass locally; external F05 coverage remains open.
|
|
23
|
+
|
|
24
|
+
### Pending
|
|
25
|
+
- Portable cross-host cost-anchor recalibration and external confirmation of `data-exposure --config`.
|
|
26
|
+
|
|
3
27
|
## [5.8.14] — 2026-08-20
|
|
4
28
|
|
|
5
29
|
*Fourth-audit remediation release. The external `5.8.13` audit subject remains
|
|
@@ -19,6 +43,10 @@ the evidence for outstanding field reproduction and performance work.*
|
|
|
19
43
|
- `risk` now publishes its composition working set: source files, audit findings,
|
|
20
44
|
candidate defects and composed defects. This instruments the rare field-scale
|
|
21
45
|
zero-output report without claiming it is closed before reproduction.
|
|
46
|
+
- BC-004 declares the 5.8.14 removal of core/supported payload fields, including
|
|
47
|
+
`migrate-check.findings[].imports_found` and the MyBatis DTO mapper fields;
|
|
48
|
+
consumers should use the replacements listed by `ask schema
|
|
49
|
+
breaking-changes-v1` before upgrading.
|
|
22
50
|
- The roadmap and defect ledger distinguish these shipped changes from the two
|
|
23
51
|
remaining field-gated items: `risk` output reproduction and controlled
|
|
24
52
|
`data-exposure --config` performance measurement.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sourcecode
|
|
3
|
-
Version: 5.8.
|
|
3
|
+
Version: 5.8.15
|
|
4
4
|
Summary: Persistent structural context and ultra-fast repeated analysis for AI coding agents
|
|
5
5
|
Project-URL: Homepage, https://github.com/HarounDominique/sourcecode
|
|
6
6
|
Project-URL: Repository, https://github.com/HarounDominique/sourcecode
|
|
@@ -49,7 +49,13 @@ Description-Content-Type: text/markdown
|
|
|
49
49
|
|
|
50
50
|
**Context · Impact · Migration · Architecture · Review — everything from one structural model.**
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
> **First run.** From the repository you want to inspect, run `ask --help` and then
|
|
53
|
+
> `ask . --compact`. Use `ask endpoints .`, `ask spring-audit .`,
|
|
54
|
+
> `ask migrate-check . --compact`, or `ask impact <Interface> .` for a specific
|
|
55
|
+
> question. All analysis is local and deterministic; see [Privacy](#configuration--privacy)
|
|
56
|
+
> before inspecting a repository whose telemetry policy you need to control.
|
|
57
|
+
|
|
58
|
+

|
|
53
59
|

|
|
54
60
|
|
|
55
61
|
Copyright (c) 2026 Dominique Haroun. All rights reserved. ASK Engine 5.7.0 and
|
|
@@ -119,12 +125,14 @@ stops at 1 408 files and ends at 5.1s. Commands outside that phase-runner set
|
|
|
119
125
|
must not be gated on this variable; their budget applicability remains visible in
|
|
120
126
|
the [defect ledger](docs/DEFECT-LEDGER.md).
|
|
121
127
|
|
|
122
|
-
**Current performance status.**
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
+
**Current performance status.** Release 5.8.15 retains the shared Canonical IR
|
|
129
|
+
path used by `validation` and now passes that same CIR into labelled `data-exposure`
|
|
130
|
+
runs; the no-label path remains parse-free. The one-model-per-declared-label path is
|
|
131
|
+
also retained. These are implementation properties, not duration promises:
|
|
132
|
+
run `ask cache model <repo>` to see which command benefits from a warm cache and
|
|
133
|
+
use `--progress stderr` for supervised runs. The external `data-exposure --config`
|
|
134
|
+
remeasurement and portable cost-anchor calibration remain open because measurements
|
|
135
|
+
from different hosts are not interchangeable; see the
|
|
128
136
|
[roadmap](docs/DEVELOPMENT-ROADMAP.md).
|
|
129
137
|
|
|
130
138
|
**What a warm actually covers.** `ask cache warm` runs the compact analysis: it rebuilds the
|
|
@@ -151,7 +159,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
|
|
|
151
159
|
# pip / pipx
|
|
152
160
|
pipx install sourcecode # or: pip install sourcecode
|
|
153
161
|
|
|
154
|
-
ask version # ask 5.8.
|
|
162
|
+
ask version # ask 5.8.15 — and, on a build that has aged,
|
|
155
163
|
# how many releases have probably shipped since
|
|
156
164
|
```
|
|
157
165
|
|
|
@@ -405,16 +413,18 @@ from it.
|
|
|
405
413
|
| `enrich` | experimental | another scanner's SARIF findings, ranked by what this repository does with them | `--sarif <log>`; same composition as `risk`, with `--table --rule <id> --band high --top-n 20` for triage |
|
|
406
414
|
| `audit-report` | supported | human audit bundle over existing `risk` + `posture` evidence, optionally signed | includes `evidence_manifest` claim provenance; `--format markdown`; `--sign-key <file>` signs canonical JSON with HMAC-SHA256 |
|
|
407
415
|
| `migrate-recipe` | supported | the migration report as the OpenRewrite recipe that applies it | only recipes a finding named; the manual remainder published beside them; writes nothing without `--write`, and never a runnable command for an empty recipe list |
|
|
416
|
+
| `migrate-apply` | supported | apply a measured recipe without touching the main tree | Maven and Gradle executors; plan by default; `--write` requires clean Git, pinned version and isolated worktree; no automatic commit or merge |
|
|
408
417
|
| `data-exposure` | supported | which routes can carry the data you labelled, and who reaches them | labels declared in `sourcecode.config.json` — never inferred from a name; `signature` and `call_reach` evidence published apart, field-level flow out of scope (NC-008). With nothing declared, `ask data-exposure /path/to/repo` answers `answered: false` and hands back the file, the key and an example to declare — it never reports zero exposed routes |
|
|
418
|
+
| `data-exposure --init` | supported | generate review-only label candidates | writes only `.ask/data-label-candidates-v1.json` with `status: proposed_only`; it never activates labels |
|
|
409
419
|
| `endpoints` | core | every REST endpoint, effective path, security policy, confidence | Spring MVC + JAX-RS (~65 % recall on JAX-RS sub-resource locators). `--compact` answers the exposure census without the rows; `--servlets` lists the servlet-mounted surface as its own population; `--client-usage` says which routes the TS/JS client in this repository actually calls; `--consumer <repo>` (repeatable) joins the routes against consumers in **other** repositories — TypeScript/JS and Java — and turns the census into a surface-reduction plan: open and called (fix now), open and called by nobody (delete rather than guard), and calls this server serves no route for |
|
|
410
|
-
| `spring-audit` | core | transactional anomalies + security configuration/exposure + validation gaps | `--ci`, `-f github-comment
|
|
411
|
-
| `migrate-check` | core | Boot 2→3 readiness + Java LTS/licensing inventory: located blockers, per-dimension score, effort, detected Java 8/11/17/21/25 evidence and explicit licensing-review signals | `--target-jdk 25` sets the target LTS route; `--blast-radius` orders the re-test plan; `--table --rule MIG-001 --band critical --top-n 20` for blocker triage |
|
|
420
|
+
| `spring-audit` | core | transactional anomalies + security configuration/exposure + validation gaps | `--ci`, `-f github-comment`, or `-f github-actions` for native CI annotations; `--table --rule SEC-008 --top-n 20` for human-scale review. Every run inventories its own rules — `rules_run`, `rules_not_run`, `rules_partially_run`, `rules_run_count`/`rules_total` — so "all of them" is a fact, not an assumption |
|
|
421
|
+
| `migrate-check` | core | Boot 2→3 readiness + Java LTS/licensing inventory: located blockers, per-dimension score, effort, detected Java 8/11/17/21/25 evidence and explicit licensing-review signals | `--target-jdk 25` sets the target LTS route; `--blast-radius` orders the re-test plan; `--format github-actions` emits a stable CI annotation; `--table --rule MIG-001 --band critical --top-n 20` for blocker triage |
|
|
412
422
|
| `impact` / `impact-chain` | core | blast radius of a change, to the endpoints it reaches | target the **interface**, not the `Impl` |
|
|
413
|
-
| `pr-impact` | core | the same, scoped to a PR diff |
|
|
414
|
-
| `verify` | core | does the repo satisfy its declared contracts, **relative to a baseline** | `.ask/contracts.yml`; exit 0/1/2. `.ask/waivers.yml` adjudicates a finding as *not a defect here* (stable id + required reason, optional expiry) so a reviewed row stops holding the gate red — a baseline records accepted debt, a waiver says it was never a defect |
|
|
423
|
+
| `pr-impact` | core | the same, scoped to a PR diff | local `git diff HEAD`, `--since REF`, explicit `--files`, or opt-in `--pr NUMBER`; `--format github-actions` emits CI annotations; `--fail-on` gates |
|
|
424
|
+
| `verify` | core | does the repo satisfy its declared contracts, **relative to a baseline** | `.ask/contracts.yml`; `--format github-actions` emits a native CI annotation while preserving exit 0/1/2. `.ask/waivers.yml` adjudicates a finding as *not a defect here* (stable id + required reason, optional expiry) so a reviewed row stops holding the gate red — a baseline records accepted debt, a waiver says it was never a defect |
|
|
415
425
|
| `verify-edit` | supported | did the working-tree edits change runtime behaviour | semantic diff gate for the edit loop |
|
|
416
426
|
| `--compact` / `--agent` | — | bounded structural context for an agent | flags of the root command, not commands: not tiered |
|
|
417
|
-
| `onboard` / `explain` / `cold-start` | supported | orientation in an unfamiliar repo; per-class summary; bootstrap snapshot | |
|
|
427
|
+
| `onboard` / `explain` / `cold-start` | supported | orientation in an unfamiliar repo; per-class summary; bootstrap snapshot | `onboard` publishes `population`, `population_unit` and `population_total` for its source-file universe |
|
|
418
428
|
| `export` / `repo-ir` / `schema` | supported | tool-agnostic views (C4, module graph, integrations); symbol-level IR; published JSON Schemas | |
|
|
419
429
|
| `modernize` | supported | coupling hubs, cycles, dead zones, refactor candidates | |
|
|
420
430
|
| `review-pr` / `fix-bug` / `prepare-context` | supported | diff review, symptom triage, task-shaped context | |
|
|
@@ -426,7 +436,7 @@ from it.
|
|
|
426
436
|
| `regress` | supported | what moved between two payloads of the same command, and which declaration accounts for it | attributes each delta to a declaration the answers carry (`test_source_excluded`, `symbols_excluded`, `coverage.gaps`, `*_cap`, `waivers`); a delta nothing explains is `unattributed`. Refuses the comparison when `cache_layers`, `base_env` or the analyzer fingerprint differ |
|
|
427
437
|
| `explain-endpoint` | supported | the derivation behind one route's verdict | six steps — match, declaration, handler, chain, profiles, verdict — each naming the authority that produced it and the file it can be checked against; a step that could not be derived is `undetermined` with the reason, never absent |
|
|
428
438
|
| `selftest` | supported | this product's own defect ledger, run against your repository | each ledger row's acceptance criterion as an executable assertion, with the subject (repository, size, platform, entry point) beside every verdict; a row whose precondition the repository does not meet is `not_applicable` with the reason, never a pass |
|
|
429
|
-
| `archetype` | experimental | evidence-based architectural archetype | |
|
|
439
|
+
| `archetype` | experimental | evidence-based architectural archetype | publishes the scanned source-file population explicitly |
|
|
430
440
|
| `rename-class` / `chunk-file` | supported | word-boundary Java rename; split a large file for an agent | |
|
|
431
441
|
| `cache status\|warm\|model\|clear` · `auth` · `telemetry` · `mcp` · `config` · `version` | supported | housekeeping | `cache model [path]` explains what a warm buys per command; `activate` too |
|
|
432
442
|
|
|
@@ -479,7 +489,9 @@ Two more boundaries worth stating in the same voice:
|
|
|
479
489
|
|
|
480
490
|
| Not covered | Why | What answers it |
|
|
481
491
|
|---|---|---|
|
|
482
|
-
| **Applying a migration
|
|
492
|
+
| **Applying a migration to the main tree.** | ASK never edits the main tree. The explicit `migrate-apply --write` path requires a clean Git tree, a pinned OpenRewrite version, and an isolated branch/worktree; it runs `migrate-check` afterwards, and never commits or merges. | OpenRewrite via `ask migrate-apply . --write --rewrite-version X.Y.Z`; add `--compile` for an optional timed build, then review the retained worktree before merging. |
|
|
493
|
+
|
|
494
|
+
`migrate-check` does not cover **Applying a migration — nothing here edits source.**
|
|
483
495
|
| **What the process environment sets at start-up — the profile set, properties and secrets a container is given.** | Nothing in a repository can observe the environment of a process that has not started. A value read from a file here is the default the repository ships, never a guarantee of what runs. | `ask posture --resolve-environments` reads every artefact in the repository that names the profile set, says when none of them decides it, and ranks the admissible sets by what each leaves open. `--profile-from <file>` goes one step further and reads the deployment artefact itself, which is where that decision is actually written — still a file, so the process environment still outranks it, and the payload says so. |
|
|
484
496
|
|
|
485
497
|
|
|
@@ -639,6 +651,7 @@ Matching endpoints report `policy: "custom"` and drop out of the `no_security_si
|
|
|
639
651
|
| [PRODUCT_TIERS.md](docs/PRODUCT_TIERS.md) | Free vs Pro, pricing model |
|
|
640
652
|
| [DEMO-5MIN.md](docs/DEMO-5MIN.md) | A reproducible 5-minute demo |
|
|
641
653
|
| [MANUAL-USUARIO.md](docs/MANUAL-USUARIO.md) | Guía de usuario en español |
|
|
654
|
+
| [CACHE.md](docs/CACHE.md) | What `cache warm` stores, what it does not, and how cache invalidation works |
|
|
642
655
|
| [PRODUCT_IDENTITY.md](docs/PRODUCT_IDENTITY.md) | `ask` (command) vs `sourcecode` (package/alias) |
|
|
643
656
|
| [privacy.md](docs/privacy.md) | Telemetry and data-handling policy |
|
|
644
657
|
| [DEFECT-LEDGER.md](docs/DEFECT-LEDGER.md) | Every defect found in the field, its class, and which release closed it — published on purpose |
|
|
@@ -4,7 +4,13 @@
|
|
|
4
4
|
|
|
5
5
|
**Context · Impact · Migration · Architecture · Review — everything from one structural model.**
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
> **First run.** From the repository you want to inspect, run `ask --help` and then
|
|
8
|
+
> `ask . --compact`. Use `ask endpoints .`, `ask spring-audit .`,
|
|
9
|
+
> `ask migrate-check . --compact`, or `ask impact <Interface> .` for a specific
|
|
10
|
+
> question. All analysis is local and deterministic; see [Privacy](#configuration--privacy)
|
|
11
|
+
> before inspecting a repository whose telemetry policy you need to control.
|
|
12
|
+
|
|
13
|
+

|
|
8
14
|

|
|
9
15
|
|
|
10
16
|
Copyright (c) 2026 Dominique Haroun. All rights reserved. ASK Engine 5.7.0 and
|
|
@@ -74,12 +80,14 @@ stops at 1 408 files and ends at 5.1s. Commands outside that phase-runner set
|
|
|
74
80
|
must not be gated on this variable; their budget applicability remains visible in
|
|
75
81
|
the [defect ledger](docs/DEFECT-LEDGER.md).
|
|
76
82
|
|
|
77
|
-
**Current performance status.**
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
+
**Current performance status.** Release 5.8.15 retains the shared Canonical IR
|
|
84
|
+
path used by `validation` and now passes that same CIR into labelled `data-exposure`
|
|
85
|
+
runs; the no-label path remains parse-free. The one-model-per-declared-label path is
|
|
86
|
+
also retained. These are implementation properties, not duration promises:
|
|
87
|
+
run `ask cache model <repo>` to see which command benefits from a warm cache and
|
|
88
|
+
use `--progress stderr` for supervised runs. The external `data-exposure --config`
|
|
89
|
+
remeasurement and portable cost-anchor calibration remain open because measurements
|
|
90
|
+
from different hosts are not interchangeable; see the
|
|
83
91
|
[roadmap](docs/DEVELOPMENT-ROADMAP.md).
|
|
84
92
|
|
|
85
93
|
**What a warm actually covers.** `ask cache warm` runs the compact analysis: it rebuilds the
|
|
@@ -106,7 +114,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
|
|
|
106
114
|
# pip / pipx
|
|
107
115
|
pipx install sourcecode # or: pip install sourcecode
|
|
108
116
|
|
|
109
|
-
ask version # ask 5.8.
|
|
117
|
+
ask version # ask 5.8.15 — and, on a build that has aged,
|
|
110
118
|
# how many releases have probably shipped since
|
|
111
119
|
```
|
|
112
120
|
|
|
@@ -360,16 +368,18 @@ from it.
|
|
|
360
368
|
| `enrich` | experimental | another scanner's SARIF findings, ranked by what this repository does with them | `--sarif <log>`; same composition as `risk`, with `--table --rule <id> --band high --top-n 20` for triage |
|
|
361
369
|
| `audit-report` | supported | human audit bundle over existing `risk` + `posture` evidence, optionally signed | includes `evidence_manifest` claim provenance; `--format markdown`; `--sign-key <file>` signs canonical JSON with HMAC-SHA256 |
|
|
362
370
|
| `migrate-recipe` | supported | the migration report as the OpenRewrite recipe that applies it | only recipes a finding named; the manual remainder published beside them; writes nothing without `--write`, and never a runnable command for an empty recipe list |
|
|
371
|
+
| `migrate-apply` | supported | apply a measured recipe without touching the main tree | Maven and Gradle executors; plan by default; `--write` requires clean Git, pinned version and isolated worktree; no automatic commit or merge |
|
|
363
372
|
| `data-exposure` | supported | which routes can carry the data you labelled, and who reaches them | labels declared in `sourcecode.config.json` — never inferred from a name; `signature` and `call_reach` evidence published apart, field-level flow out of scope (NC-008). With nothing declared, `ask data-exposure /path/to/repo` answers `answered: false` and hands back the file, the key and an example to declare — it never reports zero exposed routes |
|
|
373
|
+
| `data-exposure --init` | supported | generate review-only label candidates | writes only `.ask/data-label-candidates-v1.json` with `status: proposed_only`; it never activates labels |
|
|
364
374
|
| `endpoints` | core | every REST endpoint, effective path, security policy, confidence | Spring MVC + JAX-RS (~65 % recall on JAX-RS sub-resource locators). `--compact` answers the exposure census without the rows; `--servlets` lists the servlet-mounted surface as its own population; `--client-usage` says which routes the TS/JS client in this repository actually calls; `--consumer <repo>` (repeatable) joins the routes against consumers in **other** repositories — TypeScript/JS and Java — and turns the census into a surface-reduction plan: open and called (fix now), open and called by nobody (delete rather than guard), and calls this server serves no route for |
|
|
365
|
-
| `spring-audit` | core | transactional anomalies + security configuration/exposure + validation gaps | `--ci`, `-f github-comment
|
|
366
|
-
| `migrate-check` | core | Boot 2→3 readiness + Java LTS/licensing inventory: located blockers, per-dimension score, effort, detected Java 8/11/17/21/25 evidence and explicit licensing-review signals | `--target-jdk 25` sets the target LTS route; `--blast-radius` orders the re-test plan; `--table --rule MIG-001 --band critical --top-n 20` for blocker triage |
|
|
375
|
+
| `spring-audit` | core | transactional anomalies + security configuration/exposure + validation gaps | `--ci`, `-f github-comment`, or `-f github-actions` for native CI annotations; `--table --rule SEC-008 --top-n 20` for human-scale review. Every run inventories its own rules — `rules_run`, `rules_not_run`, `rules_partially_run`, `rules_run_count`/`rules_total` — so "all of them" is a fact, not an assumption |
|
|
376
|
+
| `migrate-check` | core | Boot 2→3 readiness + Java LTS/licensing inventory: located blockers, per-dimension score, effort, detected Java 8/11/17/21/25 evidence and explicit licensing-review signals | `--target-jdk 25` sets the target LTS route; `--blast-radius` orders the re-test plan; `--format github-actions` emits a stable CI annotation; `--table --rule MIG-001 --band critical --top-n 20` for blocker triage |
|
|
367
377
|
| `impact` / `impact-chain` | core | blast radius of a change, to the endpoints it reaches | target the **interface**, not the `Impl` |
|
|
368
|
-
| `pr-impact` | core | the same, scoped to a PR diff |
|
|
369
|
-
| `verify` | core | does the repo satisfy its declared contracts, **relative to a baseline** | `.ask/contracts.yml`; exit 0/1/2. `.ask/waivers.yml` adjudicates a finding as *not a defect here* (stable id + required reason, optional expiry) so a reviewed row stops holding the gate red — a baseline records accepted debt, a waiver says it was never a defect |
|
|
378
|
+
| `pr-impact` | core | the same, scoped to a PR diff | local `git diff HEAD`, `--since REF`, explicit `--files`, or opt-in `--pr NUMBER`; `--format github-actions` emits CI annotations; `--fail-on` gates |
|
|
379
|
+
| `verify` | core | does the repo satisfy its declared contracts, **relative to a baseline** | `.ask/contracts.yml`; `--format github-actions` emits a native CI annotation while preserving exit 0/1/2. `.ask/waivers.yml` adjudicates a finding as *not a defect here* (stable id + required reason, optional expiry) so a reviewed row stops holding the gate red — a baseline records accepted debt, a waiver says it was never a defect |
|
|
370
380
|
| `verify-edit` | supported | did the working-tree edits change runtime behaviour | semantic diff gate for the edit loop |
|
|
371
381
|
| `--compact` / `--agent` | — | bounded structural context for an agent | flags of the root command, not commands: not tiered |
|
|
372
|
-
| `onboard` / `explain` / `cold-start` | supported | orientation in an unfamiliar repo; per-class summary; bootstrap snapshot | |
|
|
382
|
+
| `onboard` / `explain` / `cold-start` | supported | orientation in an unfamiliar repo; per-class summary; bootstrap snapshot | `onboard` publishes `population`, `population_unit` and `population_total` for its source-file universe |
|
|
373
383
|
| `export` / `repo-ir` / `schema` | supported | tool-agnostic views (C4, module graph, integrations); symbol-level IR; published JSON Schemas | |
|
|
374
384
|
| `modernize` | supported | coupling hubs, cycles, dead zones, refactor candidates | |
|
|
375
385
|
| `review-pr` / `fix-bug` / `prepare-context` | supported | diff review, symptom triage, task-shaped context | |
|
|
@@ -381,7 +391,7 @@ from it.
|
|
|
381
391
|
| `regress` | supported | what moved between two payloads of the same command, and which declaration accounts for it | attributes each delta to a declaration the answers carry (`test_source_excluded`, `symbols_excluded`, `coverage.gaps`, `*_cap`, `waivers`); a delta nothing explains is `unattributed`. Refuses the comparison when `cache_layers`, `base_env` or the analyzer fingerprint differ |
|
|
382
392
|
| `explain-endpoint` | supported | the derivation behind one route's verdict | six steps — match, declaration, handler, chain, profiles, verdict — each naming the authority that produced it and the file it can be checked against; a step that could not be derived is `undetermined` with the reason, never absent |
|
|
383
393
|
| `selftest` | supported | this product's own defect ledger, run against your repository | each ledger row's acceptance criterion as an executable assertion, with the subject (repository, size, platform, entry point) beside every verdict; a row whose precondition the repository does not meet is `not_applicable` with the reason, never a pass |
|
|
384
|
-
| `archetype` | experimental | evidence-based architectural archetype | |
|
|
394
|
+
| `archetype` | experimental | evidence-based architectural archetype | publishes the scanned source-file population explicitly |
|
|
385
395
|
| `rename-class` / `chunk-file` | supported | word-boundary Java rename; split a large file for an agent | |
|
|
386
396
|
| `cache status\|warm\|model\|clear` · `auth` · `telemetry` · `mcp` · `config` · `version` | supported | housekeeping | `cache model [path]` explains what a warm buys per command; `activate` too |
|
|
387
397
|
|
|
@@ -434,7 +444,9 @@ Two more boundaries worth stating in the same voice:
|
|
|
434
444
|
|
|
435
445
|
| Not covered | Why | What answers it |
|
|
436
446
|
|---|---|---|
|
|
437
|
-
| **Applying a migration
|
|
447
|
+
| **Applying a migration to the main tree.** | ASK never edits the main tree. The explicit `migrate-apply --write` path requires a clean Git tree, a pinned OpenRewrite version, and an isolated branch/worktree; it runs `migrate-check` afterwards, and never commits or merges. | OpenRewrite via `ask migrate-apply . --write --rewrite-version X.Y.Z`; add `--compile` for an optional timed build, then review the retained worktree before merging. |
|
|
448
|
+
|
|
449
|
+
`migrate-check` does not cover **Applying a migration — nothing here edits source.**
|
|
438
450
|
| **What the process environment sets at start-up — the profile set, properties and secrets a container is given.** | Nothing in a repository can observe the environment of a process that has not started. A value read from a file here is the default the repository ships, never a guarantee of what runs. | `ask posture --resolve-environments` reads every artefact in the repository that names the profile set, says when none of them decides it, and ranks the admissible sets by what each leaves open. `--profile-from <file>` goes one step further and reads the deployment artefact itself, which is where that decision is actually written — still a file, so the process environment still outranks it, and the payload says so. |
|
|
439
451
|
|
|
440
452
|
|
|
@@ -594,6 +606,7 @@ Matching endpoints report `policy: "custom"` and drop out of the `no_security_si
|
|
|
594
606
|
| [PRODUCT_TIERS.md](docs/PRODUCT_TIERS.md) | Free vs Pro, pricing model |
|
|
595
607
|
| [DEMO-5MIN.md](docs/DEMO-5MIN.md) | A reproducible 5-minute demo |
|
|
596
608
|
| [MANUAL-USUARIO.md](docs/MANUAL-USUARIO.md) | Guía de usuario en español |
|
|
609
|
+
| [CACHE.md](docs/CACHE.md) | What `cache warm` stores, what it does not, and how cache invalidation works |
|
|
597
610
|
| [PRODUCT_IDENTITY.md](docs/PRODUCT_IDENTITY.md) | `ask` (command) vs `sourcecode` (package/alias) |
|
|
598
611
|
| [privacy.md](docs/privacy.md) | Telemetry and data-handling policy |
|
|
599
612
|
| [DEFECT-LEDGER.md](docs/DEFECT-LEDGER.md) | Every defect found in the field, its class, and which release closed it — published on purpose |
|
|
@@ -11,6 +11,24 @@ Two costs, and the second is the one that hurt: nothing told them which of their
|
|
|
11
11
|
warm would help. This page is the answer, and it is generated from the same table the CLI
|
|
12
12
|
prints — run `ask cache model` for it in the terminal, `ask cache model --json` in a script.
|
|
13
13
|
|
|
14
|
+
## Use it first
|
|
15
|
+
|
|
16
|
+
Before optimising a workflow, ask the model that ships with the installed CLI:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
ask cache status . # what this repository already has
|
|
20
|
+
ask cache model . # whether a warm helps each command
|
|
21
|
+
ask cache warm . # compact view plus shared structural layers
|
|
22
|
+
ask cache warm . --agent # add the agent view when that is what the workflow reads
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
`cache warm` is not a general acceleration switch. It warms the compact view and shared
|
|
26
|
+
layers for the exact tree and scope you name. A command may receive the finished answer,
|
|
27
|
+
reuse only shared work, or receive no benefit; `cache model` names which. Any analysed-file
|
|
28
|
+
change, committed or not, creates a different cache identity. In CI, persist the ASK cache
|
|
29
|
+
directory only when the job policy allows it; otherwise budget a cold run and use
|
|
30
|
+
`--progress stderr` to make supervised work observable.
|
|
31
|
+
|
|
14
32
|
---
|
|
15
33
|
|
|
16
34
|
## One rule for invalidation
|
|
@@ -82,6 +100,7 @@ The second anchor is the field one, and it carries its own build for the same re
|
|
|
82
100
|
| `enrich` | the shared work | not measured on the battery yet — bounded by the `risk` composition, plus reading one JSON file | no | `cir`, `parse` | Runs the same composition as `risk` over the repository, then joins a SARIF log to it. Reading the log is negligible; everything a warm helps with is the repository side, so what it buys is what it buys `risk`. |
|
|
83
101
|
| `audit-report` | the shared work | not measured on the battery yet — bounded by `risk` + `posture`, or by `posture` when `--from-risk` is supplied | no | `cir`, `parse` | Packages `risk` and `posture` evidence. A warm helps the repository side; `--from-risk risk.json` skips risk recomputation entirely and only builds the posture/report projection. |
|
|
84
102
|
| `migrate-recipe` | the shared work | not measured on the battery yet — bounded by `migrate-check` on the same repository (openmrs-core ~2 s) | no | `parse` | Runs the same scan as `migrate-check` and projects its findings into an OpenRewrite recipe, so it buys exactly what a warm buys `migrate-check`: the parse, not the rule pass. |
|
|
103
|
+
| `migrate-apply` | the shared work | not measured on the battery yet — bounded by `migrate-check` plus the optional OpenRewrite execution | no | `parse` | Plan mode reads the same migration findings as `migrate-check`; apply mode then uses an isolated worktree and never mutates the main tree. A warm can remove shared parse work, but it does not cache the generated plan or the optional rewrite/compile execution. |
|
|
85
104
|
| `data-exposure` | the shared work | not measured on the battery yet — one `impact-chain` traversal per declared seed type over a CIR the warm already paid for | no | `cir`, `parse` | Walks the same call reach as `impact-chain` once per declared type and reads the endpoint security surface, both over the shared CIR a warm builds. Cost scales with the number of declared types, not with the size of the label. |
|
|
86
105
|
| `endpoints` | the shared work | 3.3 s → 1.4 s (re-measured on 3.7.0; was 2.8 s → 2.9 s) | no | `ris`, `parse` | Recomputes the endpoint surface on every run, over a parse a warm has already paid for. Until 3.7.0 the extractor parsed every file itself instead of reading the shared parse cache, and a warm measurably bought it nothing (C3-6). |
|
|
87
106
|
| `spring-audit` | the shared work | 8.8 s → 3.7 s | no | `ris`, `parse` | Recomputes every run, but over a parse a warm has already paid for. |
|
|
@@ -16,16 +16,66 @@ The facts these rows are keyed to are published: `ask schema facts-v1` prints th
|
|
|
16
16
|
|
|
17
17
|
## Current Synchronization
|
|
18
18
|
|
|
19
|
-
**
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
Only this table declares present state.
|
|
19
|
+
**Latest attached audit of release `5.8.14`; correction battery targets `5.8.15`:** score **93/100**, coverage **53/61
|
|
20
|
+
invocables (87%)**, byte-identical CIR across five versions, and no functional-result
|
|
21
|
+
regression. One reproducible performance regression is now the primary release concern;
|
|
22
|
+
the historical `risk` P0 remains open because five successful runs do not disprove two
|
|
23
|
+
earlier exit-0/no-output failures. Only the fifth-pass section below declares present
|
|
24
|
+
state; older audit rounds remain below for traceability.
|
|
26
25
|
|
|
27
26
|
**Release status:** entries marked “pending `5.8.14`” in their historical wording are
|
|
28
|
-
shipped in `5.8.14`;
|
|
27
|
+
shipped in `5.8.14`; the correction battery fixes listed above are included in `5.8.15`.
|
|
28
|
+
|
|
29
|
+
The battery also closed the following reproducible contract defects in `5.8.15`:
|
|
30
|
+
`migrate-apply` is registered across help, progress, path-admission, output-purity,
|
|
31
|
+
cache and schema authorities (`1d00ba2`); endpoint census output distinguishes excluded
|
|
32
|
+
test modules from retained test-fixture routes (`f65336d`, `014dec7`, `1c6cd0b`);
|
|
33
|
+
and compact posture output retains counts while omitting unresolved bodies (`dad5dad`).
|
|
34
|
+
|
|
35
|
+
### Fifth Audit Pass: `5.8.14` / `saint-server` / 2026-08-20
|
|
36
|
+
|
|
37
|
+
| ID | Severity | Current status | Required direction |
|
|
38
|
+
|---|---|---|---|
|
|
39
|
+
| `BUG-1` / `AUD-511-R02`, `AUD-589-B02`, `AUD-513-N06` | P1 | **not reproduced locally; external closure pending**: isolated/interleaved controls did not reproduce the reported slowdown. | Repeat the six-run protocol on the audit host and compare 5.8.13/5.8.15 with byte-equivalent output. |
|
|
40
|
+
| `BUG-2` / `AUD-588-B01`, `AUD-589-B01`, `C3-122` | P0 | **open, not reproduced in five runs**: all five current `risk` runs produced exit 0 and a ~311 KB artifact; historical failures remain material. | Keep the real-entry-point output invariant. Treat `b5acc63` and the existing working-set/timing instrumentation as hardening, not field closure. |
|
|
41
|
+
| `BUG-3` / `AUD-511-R02`, `AUD-589-B02`, `AUD-513-N06` | P1 | **implemented in 5.8.15; numeric external remeasurement pending**: labelled runs now reuse shared CIR (`443b345`). | Re-run the controlled external benchmark; do not infer a speedup from a different host. |
|
|
42
|
+
| `BUG-4a` / `AUD-588-B11` residual | P2 | **closed in 5.8.15** (`24b4185`): `onboard` and `archetype` publish explicit source-file population units and totals. | Keep parity tests on both payloads. |
|
|
43
|
+
| `BUG-4b` / `AUD-588-B11` residual | P2 | **closed in 5.8.15** (`0376350`): help, tier table and docs agree that `risk` is supported. | Keep the single `COMMAND_TIERS` authority. |
|
|
44
|
+
| `BUG-4c` / `SEC-009` calibration | P2 / product decision | **by-design in 5.8.15** (`fb7632a`): medium is retained and pinned; active/profile evidence supplies context. | Reopen only with a new product-risk decision, not from the same observation. |
|
|
45
|
+
| `BUG-5` / `AUD-588-B12`, `AUD-588-F03` | P2 | **open, measurement improved but not portable yet**: local six-run `risk` converged at 6.56s (clean control, Broadleaf, 5.8.14); this is not comparable to the historical Windows anchor. | Add a provenance-bearing, cross-host anchor before changing the operational model. |
|
|
46
|
+
| `AUD-588-F05` | Validation gap | **locally verified only**: dirty-tree `verify-edit` and eight mutating/denied invocables remain unexercised externally. | Clone the repository into scratch space, edit the clone and run the dirty-tree protocol; do not use an archive without `.git`. |
|
|
47
|
+
|
|
48
|
+
**Fifth-pass anchor correction:** `posture.summary` now reports the Spring IoC population
|
|
49
|
+
(`population_total: 1904`, `conditional: 5`, `active: 3`, `inactive: 2`, `unconditional:
|
|
50
|
+
1899`) instead of the former type count (`6667`). This is an intentional correction with
|
|
51
|
+
explicit units, not a regression. The audit remains static: it did not start the application.
|
|
52
|
+
|
|
53
|
+
**Recommended order:** BUG-1 measurement/isolation → `risk` phase-cost investigation →
|
|
54
|
+
BUG-3 reuse comparison → BUG-4 contract cleanup → BUG-5 calibration. Keep EclipseLink
|
|
55
|
+
automation deferred; provider non-coverage is the honest current behavior. `F02` remains
|
|
56
|
+
partial, `F03` open, `F04` explicit opt-in and `F05` locally verified only.
|
|
57
|
+
|
|
58
|
+
### Historical Execution Queue: `5.8.14` Intake
|
|
59
|
+
|
|
60
|
+
| ID | Severity | Current status | Required direction |
|
|
61
|
+
|---|---|---|---|
|
|
62
|
+
| `R-1` | High | **closed by `424fb1c`** | Delivery timing now publishes current elapsed time plus cache and phase provenance. |
|
|
63
|
+
| `R-2` | Medium | **closed by `5158b92`** | `BC-004` declares removed fields, replacements and effective version. |
|
|
64
|
+
| `R-3` | Medium | **closed by `88aec04`** | Global cache purge now clears parse and Shared CIR stores. |
|
|
65
|
+
| `R-4` | Medium | **closed by `04fd04f`** | Payload layers are homonymous with their authorities: `cir`, `parse_store`, `snapshot`, `ris`. |
|
|
66
|
+
| `N-6` | Medium | **not reproduced after cache fixes** | Isolated cold `openmrs-core`: 5.18 s wall / 4.76 s internal, all four layers cold. Retain the field report as an environment-specific reproduction request. |
|
|
67
|
+
| `B-3` | Medium, core/supported | **closed by `773268d`** | Help no longer claims maximum signal; `sibling_view` points to compact. |
|
|
68
|
+
| `B-6` | Medium, core | **closed by `17c6e06`** | Partial answers publish `overrun_bound` and its wall-clock basis. |
|
|
69
|
+
| `B-8` | Low | **closed by `52593b6`** | Compact posture retains one unresolved sample when the total is non-zero. |
|
|
70
|
+
| `N-5` | Low, core | **closed by `c68083f`** | Progress and payload name the Java population. |
|
|
71
|
+
| `N-7` | Low, core | **closed by `082e9de`** | Bounded fuzzy candidates and matching message hints handle close typos. |
|
|
72
|
+
|
|
73
|
+
**Recommended features/hardening:** response timing provenance and root cache-layer
|
|
74
|
+
disclosure; a single cache reset/state authority; compact/agent parity or sibling-view
|
|
75
|
+
metadata; a partial-budget exit contract; shared population/units authority; reusable fuzzy
|
|
76
|
+
symbol suggestions; and a release gate for `breaking-changes-v1` whenever core or supported
|
|
77
|
+
fields are removed. These extend `AUD-588-F02` and `AUD-588-F03`. `AUD-588-F01` EclipseLink
|
|
78
|
+
automation remains deferred; provider non-coverage is the current product behavior.
|
|
29
79
|
|
|
30
80
|
| Rows | Current status | Evidence |
|
|
31
81
|
|---|---|---|
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# ASK Engine - 5-Minute Demo
|
|
2
|
+
|
|
3
|
+
A short, reproducible first demonstration for a Java/Spring repository. It shows
|
|
4
|
+
three user outcomes: understand a change, assess migration work, and reuse local
|
|
5
|
+
context. It deliberately does not promise fixed counts or timings: those depend on
|
|
6
|
+
the repository commit, machine, cache state, and ASK release.
|
|
7
|
+
|
|
8
|
+
## Before the meeting
|
|
9
|
+
|
|
10
|
+
Install the current package, verify the build, and decide the telemetry policy before
|
|
11
|
+
cloning or inspecting customer code.
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
pipx install sourcecode # or: pip install sourcecode
|
|
15
|
+
ask version
|
|
16
|
+
ask telemetry disable # only when the engagement policy requires it
|
|
17
|
+
|
|
18
|
+
git clone --depth 1 https://github.com/BroadleafCommerce/BroadleafCommerce
|
|
19
|
+
git clone --depth 1 https://github.com/openmrs/openmrs-core
|
|
20
|
+
|
|
21
|
+
# Build the compact view and shared structural layers ahead of the live session.
|
|
22
|
+
ask cache warm BroadleafCommerce
|
|
23
|
+
ask cache warm openmrs-core
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
For a customer repository, use its approved local checkout instead of cloning a public
|
|
27
|
+
sample. Record `ask version`, the repository commit, and whether the cache was warm if
|
|
28
|
+
you need to compare runs later.
|
|
29
|
+
|
|
30
|
+
## Act 1 - What changes if I touch this? (about 90 seconds)
|
|
31
|
+
|
|
32
|
+
Start from the service interface used by callers, not a Spring implementation class.
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
ask impact CatalogService BroadleafCommerce -o impact.json
|
|
36
|
+
jq '{risk_level, risk_score, stats}' impact.json
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
**Show:** direct and indirect callers, affected endpoints, cross-module reach, confidence,
|
|
40
|
+
and source-backed evidence. If `CatalogService` has moved in the upstream checkout, ASK
|
|
41
|
+
returns candidates; choose one of those candidates before the meeting rather than making up
|
|
42
|
+
a class name.
|
|
43
|
+
|
|
44
|
+
**Say:** “This is a structural dependency answer. It follows declared calls and Spring
|
|
45
|
+
injection edges; it does not infer runtime traffic or prove that a path executes in
|
|
46
|
+
production.”
|
|
47
|
+
|
|
48
|
+
For a Spring-specific request-path view, use the interface with `impact-chain`:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
ask impact-chain CatalogService BroadleafCommerce --with-findings -o impact-chain.json
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Act 2 - Is the migration work understood? (about 2 minutes)
|
|
55
|
+
|
|
56
|
+
Use the compact decision report first; persist the full report only when someone needs the
|
|
57
|
+
leaf findings.
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
ask migrate-check openmrs-core --compact -o migration-summary.json
|
|
61
|
+
jq '{readiness_score, headline_blocker, blocking_count, applicable_dimensions, java_lts_inventory}' \
|
|
62
|
+
migration-summary.json
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Show:** applicable readiness dimensions, the headline blocker when one exists, located
|
|
66
|
+
findings, Java target evidence, and the distinction between blockers and advisory hygiene.
|
|
67
|
+
The report may mark a dimension as not applicable; that is different from a score of zero.
|
|
68
|
+
|
|
69
|
+
To prepare a re-test order for a real migration, add reach as a separate scope:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
ask migrate-check openmrs-core --blast-radius --compact -o migration-retest.json
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**Say:** “Reach orders regression testing. It does not make a compile blocker safe, and
|
|
76
|
+
the report never treats unresolved reach as zero.”
|
|
77
|
+
|
|
78
|
+
## Act 3 - Reuse the right local context (about 45 seconds)
|
|
79
|
+
|
|
80
|
+
Show what the warm cache helps before showing a timing. This avoids implying that every
|
|
81
|
+
command becomes instant after a warm.
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
ask cache model BroadleafCommerce
|
|
85
|
+
time ask BroadleafCommerce --compact -o compact.json
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Show:** the `ask (root)` row in `cache model`, then the compact context. Explain that
|
|
89
|
+
`cache warm` warms the compact view and shared layers, while analysis flags such as
|
|
90
|
+
`--full`, `--env-map`, `--depth`, and `--exclude` can describe a different analysis and
|
|
91
|
+
therefore need fresh work.
|
|
92
|
+
|
|
93
|
+
## Close (about 30 seconds)
|
|
94
|
+
|
|
95
|
+
“ASK is a local, deterministic structural-analysis CLI for Java/Spring repositories. It
|
|
96
|
+
gives an auditable answer about change reach, migration evidence, and reusable context. It
|
|
97
|
+
does not execute the application, replace runtime testing, or claim behavior the repository
|
|
98
|
+
does not establish.”
|
|
99
|
+
|
|
100
|
+
Next references: [USER_GUIDE.md](USER_GUIDE.md) for command workflows,
|
|
101
|
+
[CACHE.md](CACHE.md) for cache behavior, [posture.md](posture.md) for profile-aware
|
|
102
|
+
Spring wiring, and [migrate-check.md](migrate-check.md) for migration semantics.
|
|
@@ -3,14 +3,52 @@
|
|
|
3
3
|
*Chief-engineer development record. This is the internal, dev-facing counterpart to the
|
|
4
4
|
customer-facing `docs/EXECUTIVE-ROADMAP.md`.*
|
|
5
5
|
|
|
6
|
-
> **CURRENT STATE —
|
|
6
|
+
> **CURRENT STATE — correction battery for 5.8.15, based on the fifth 5.8.14 audit, `saint-server`, 2026-08-20**
|
|
7
7
|
>
|
|
8
|
-
> The
|
|
9
|
-
>
|
|
10
|
-
>
|
|
11
|
-
>
|
|
12
|
-
>
|
|
13
|
-
>
|
|
8
|
+
> The audit scores **93/100** (`75 → 80 → 78 → 90 → 93`), covers **53/61 invocables
|
|
9
|
+
> (87%)**, and reports a byte-identical CIR across five versions. There are no new
|
|
10
|
+
> functional-result regressions. The correction battery reproduced no BUG-1/BUG-2
|
|
11
|
+
> regression locally; six-run steady `risk` converged at 6.56s with a clean control.
|
|
12
|
+
>
|
|
13
|
+
> The posture bean anchor intentionally changed from 6,667 unconditional types to
|
|
14
|
+
> **1,904 Spring IoC bean definitions** (`conditional=5`, `active=3`, `inactive=2`,
|
|
15
|
+
> `unconditional=1,899`). This is a corrected population with explicit units, not a
|
|
16
|
+
> regression. The current correction/performance queue is:
|
|
17
|
+
|
|
18
|
+
> The reproducible contract gaps found while executing the battery are also shipped in
|
|
19
|
+
> `5.8.15`: `migrate-apply` is integrated in help/progress/admission/schema matrices;
|
|
20
|
+
> endpoint output names excluded test modules and preserves test-fixture scope;
|
|
21
|
+
> `posture --compact` bounds unresolved bodies without changing summary counts; and
|
|
22
|
+
> `cold-start` is treated as a bounded RIS projection rather than an artificial ceiling
|
|
23
|
+
> overflow case.
|
|
24
|
+
>
|
|
25
|
+
> | Priority | Work | Acceptance direction |
|
|
26
|
+
> |---|---|---|
|
|
27
|
+
> | P1 | **BUG-1 / `AUD-511-R02`, `AUD-589-B02`, `AUD-513-N06`**: reported performance regression not reproduced by the local idle-host/interleaved controls. | Repeat the six-run 5.8.13/5.8.15 comparison on the audit host before changing code; preserve byte-identical output and the corrected posture population. |
|
|
28
|
+
> | P0 | **BUG-2 / `AUD-588-B01`, `AUD-589-B01`, `C3-122`**: historical `risk` exit-0/no-output failures were not reproduced locally. | Keep the real-entry-point invariant and require external cold/shared-cache reproduction before closure. Hardening remains `b5acc63`. |
|
|
29
|
+
> | P1 | **BUG-3 / `AUD-511-R02`, `AUD-589-B02`, `AUD-513-N06`**: historical `data-exposure --config` cost remained high despite byte-equivalent output. | **Fixed in 5.8.15** (`443b345`): labelled CLI runs reuse the shared CIR; the no-label fast path remains parse-free. Re-run the external benchmark before claiming a numeric improvement. |
|
|
30
|
+
> | P2 | **BUG-4a/4b**: population units and risk-tier wording were inconsistent. | **Fixed in 5.8.15** (`24b4185`, `0376350`): `onboard`/`archetype` publish source populations and help/tier authority agrees. |
|
|
31
|
+
> | P2 / product decision | **BUG-4c**: `SEC-009` severity for active `anyRequest().permitAll()` with CSRF disabled remains `medium`. | **Resolved by design in 5.8.15** (`fb7632a`): severity remains medium and is pinned by calibration; active/profile evidence remains the decision context. |
|
|
32
|
+
> | P2 | **BUG-5 / `AUD-588-B12`, `AUD-588-F03`**: cost anchors are stale in both directions, worst for `risk` (77.2s model versus 461–846s measured). | Recalibrate only from provenance-bearing measurements: repository, cache state, host, samples, version and command. Align foreground advice with the explicit progress policy. |
|
|
33
|
+
> | Validation gap | **`AUD-588-F05`**: dirty-tree `verify-edit` and eight mutating/denied invocables remain unexercised externally. | Use a cloned Git repository, not an extracted archive, to test the dirty-tree path without touching the audited tree. |
|
|
34
|
+
>
|
|
35
|
+
> **Remaining order:** external BUG-1/BUG-2 reproduction → BUG-5 portable cost-anchor calibration.
|
|
36
|
+
> Keep the risk P0 open until the real subprocess invariant is exercised again. EclipseLink
|
|
37
|
+
> migration automation remains deferred; provider non-coverage is the correct current answer.
|
|
38
|
+
>
|
|
39
|
+
> **FEATURE STATUS:** `AUD-588-F02` shared answer contracts remain partial; `F03` cost
|
|
40
|
+
> calibration remains open; `F04` foreground heartbeat remains explicit opt-in; `F05` is
|
|
41
|
+
> locally verified only. The audit's requested `verify-edit` coverage is validation work,
|
|
42
|
+
> not evidence of a product defect.
|
|
43
|
+
|
|
44
|
+
> **HISTORICAL CURRENT STATE — previous 5.8.14 intake**
|
|
45
|
+
>
|
|
46
|
+
> The latest audit reports **9 of 16 bugs closed and one partial** in `5.8.14`.
|
|
47
|
+
> The 12 previously confirmed functional anchors remain correct, deterministic hot runs
|
|
48
|
+
> remain byte-identical, and the audit reports no functional-result regression. It does,
|
|
49
|
+
> however, identify four execution/contract findings (`R-1`–`R-4`) and confirms the cold
|
|
50
|
+
> `spring-audit` regression (`N-6`). The execution/contract fixes are now implemented; a
|
|
51
|
+
> controlled post-fix cold measurement does not reproduce `N-6`.
|
|
14
52
|
>
|
|
15
53
|
> The prior 5.8.13 intake is superseded where it said that nine defects were new. The
|
|
16
54
|
> re-audit verifies the EclipseLink applicability/non-coverage fix, `audit-report`'s typed
|
|
@@ -26,13 +64,32 @@ customer-facing `docs/EXECUTIVE-ROADMAP.md`.*
|
|
|
26
64
|
> | P2 | `AUD-588-B11` residuals: `impact.matched_fqns` says `resolution: exact` while representing a large implementation cone; population labels, container-reach consumers and plan/compare disclosures still diverge. | **Target/cone and consumers implemented in 5.8.14:** `e53507d` separates direct matches, expanded analysis seeds and implementation classes; `8386744` carries existing container wiring into plan checklists and compare cost dimensions. Name source populations and reconcile remaining risk-tier wording. |
|
|
27
65
|
> | P2 | `AUD-588-B02/B06` wording and `AUD-588-B12/F03` calibration: `readiness_aggregate.note` still lists Hibernate after it was excluded, and cost advice needs clean current anchors. | **Wording implemented in 5.8.14:** `cf57457` derives aggregate names from applicable dimensions. Recalibrate only from controlled measurements and record repository, cache state, sample count and host provenance; do not promote the `SEC-009` severity observation into a defect without a product decision. |
|
|
28
66
|
> | P0 | `AUD-513-N01` (`N-1`): `rename-class` ignores `ASK_READONLY=1` and `--no-write`, rewrites source and exits 0. | **closed in 5.8.14:** a mutation guard rejects before any source write or physical rename; help lists `rename-class` as mutating; regressions cover both controls and readonly `--dry-run`. |
|
|
29
|
-
> | P1 | `AUD-513-N02` + `B-4` + `N-5`: posture counts IR types as unconditional beans, reports security `0/0/0` with no population, and calls two scopes “Java files”. | **
|
|
67
|
+
> | P1 | `AUD-513-N02` + `B-4` + `N-5`: posture counts IR types as unconditional beans, reports security `0/0/0` with no population, and calls two scopes “Java files”. | **Implemented:** posture uses Spring IoC bean definitions and progress/payload now name `production_java_sources` or `java_sources_with_tests`. |
|
|
30
68
|
> | P1 | `AUD-511-R02` / `AUD-589-B02` + `AUD-513-N06`: performance recovered in 9 of 10 measured commands, but `data-exposure --config` remains 42.7 s, 2.6x the 5.8.8 measurement and above the 28.9 s model despite output equivalence. | Before code changes, run the documented idle-host, isolated-cache, interleaved-control protocol. Compare its path with the shared-CIR reuse that recovered `validation`; do not call the performance family closed until this command converges. |
|
|
31
|
-
> | P1 | `AUD-513-B01` / `B-3` / `B-5`: MyBatis facts conflict, `--agent` is not the help-promised maximum-signal superset, and `imports_found` can name a non-import declaration. | **
|
|
69
|
+
> | P1 | `AUD-513-B01` / `B-3` / `B-5`: MyBatis facts conflict, `--agent` is not the help-promised maximum-signal superset, and `imports_found` can name a non-import declaration. | **Implemented:** MyBatis/import evidence remains corrected; `--agent` now removes the maximum-signal claim and publishes `sibling_view` to compact. |
|
|
32
70
|
> | P2 | `AUD-513-N03/N04/N07/N08/N09`, `B-6/B-7/B-8`, and `D-09`. | **N03/N04/N07/N08/N09 implemented in 5.8.14:** `impact` always emits the `candidates` field it names, including an empty list; budget advice now identifies snapshot/RIS presence separately and leaves context/parse unknown until analysis, matching the four-layer payload; README summaries skip operational headings and publish `project_summary: null` plus `summary_basis` when no descriptive prose exists; cache-sensitive execution advice now lives in `security_posture.operational_hints`, not semantic limitations; all numeric output bounds reject negative values before analysis with structured `flag`, `value` and lower-bound `expected` fields, while published `--limit 0` no-cap behavior remains intact. Bound partial budgets, account timing coverage, preserve compact unresolved identities, and remeasure cost anchors. |
|
|
33
71
|
>
|
|
34
72
|
> **Release status:** all entries above marked “pending `5.8.14`” are shipped in
|
|
35
73
|
> `5.8.14`; their external `5.8.13` verification status is intentionally unchanged.
|
|
74
|
+
|
|
75
|
+
> **HISTORICAL EXECUTION QUEUE — prior `5.8.14` intake**
|
|
76
|
+
>
|
|
77
|
+
> | Priority | Finding | Current direction |
|
|
78
|
+
> |---|---|---|
|
|
79
|
+
> | P0 | `R-1` | **closed:** `424fb1c` publishes current delivery time plus `served_from_cache`, `timing_basis` and snapshot phase provenance. |
|
|
80
|
+
> | P1 | `R-3`/`R-4` | **closed:** `88aec04` clears Shared CIR globally; `04fd04f` publishes `cir`/`parse_store` from their own authorities. |
|
|
81
|
+
> | P1 | `N-6` | **not reproduced after cache fixes:** isolated cold `openmrs-core` measured 5.18 s wall / 4.76 s internal with all four layers cold. |
|
|
82
|
+
> | P1 | `B-3` | **closed:** `773268d` publishes `sibling_view: compact` and corrects help wording. |
|
|
83
|
+
> | P1 | `B-6` | **closed:** `17c6e06` publishes `overrun_bound` and its wall-clock basis on partial answers. |
|
|
84
|
+
> | P2 | `R-2`, `B-8`, `N-5`, `N-7` | **closed:** `5158b92`, `52593b6`, `c68083f` and `082e9de` deliver registry coverage, unresolved samples, population names and fuzzy suggestions. |
|
|
85
|
+
|
|
86
|
+
> **Recommended features and hardening from this audit:** cache timing provenance and
|
|
87
|
+
> root `cache_layers`; a single cache reset/state authority; compact/agent parity or
|
|
88
|
+
> sibling-view disclosure; an explicit partial-budget/exit contract; shared named
|
|
89
|
+
> populations for progress and advisories; a reusable fuzzy symbol resolver; and an
|
|
90
|
+
> automated release gate requiring `breaking-changes-v1` entries for removed core or
|
|
91
|
+
> supported fields. These extend `AUD-588-F02`/`F03`; EclipseLink automation (`F01`)
|
|
92
|
+
> remains deferred, while provider non-coverage remains the honest current behavior.
|
|
36
93
|
>
|
|
37
94
|
> **Feature decisions:** `AUD-588-F02` remains the shared remediation for population,
|
|
38
95
|
> unit and reach contracts; the fourth pass confirms it is still partial. `AUD-588-F03`
|