sourcecode 5.8.11__tar.gz → 5.8.13__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.11 → sourcecode-5.8.13}/CHANGELOG.md +36 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/PKG-INFO +26 -16
- {sourcecode-5.8.11 → sourcecode-5.8.13}/README.md +25 -15
- {sourcecode-5.8.11 → sourcecode-5.8.13}/SECURITY.md +3 -1
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/DEFECT-LEDGER.md +47 -10
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/DEVELOPMENT-ROADMAP.md +28 -13
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/EXECUTIVE-ROADMAP.md +45 -14
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/MANUAL-USUARIO.md +6 -3
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/USER_GUIDE.md +18 -12
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/privacy.md +19 -16
- {sourcecode-5.8.11 → sourcecode-5.8.13}/pyproject.toml +1 -1
- {sourcecode-5.8.11 → sourcecode-5.8.13}/scripts/perf_harness.py +14 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/__init__.py +1 -1
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/audit_recipe.py +5 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/cache_model.py +3 -3
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/cli.py +117 -60
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/data_exposure.py +21 -1
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/endpoint_disposition.py +7 -2
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/hibernate_strat.py +8 -1
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/mcp/runner.py +6 -1
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/mcp/server.py +3 -4
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/migrate_check.py +22 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/openrewrite_recipe.py +17 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/perf.py +7 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/release_info.py +1 -1
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/selftest.py +33 -31
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/spring_security_audit.py +7 -2
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/telemetry/__init__.py +5 -4
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/telemetry/config.py +14 -19
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/telemetry/consent.py +11 -15
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/telemetry/events.py +3 -1
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/telemetry/filters.py +10 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/supabase/functions/README.md +4 -2
- sourcecode-5.8.13/supabase/functions/telemetry/index.ts +127 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/supabase/sql/telemetry_events.sql +36 -1
- sourcecode-5.8.11/supabase/functions/telemetry/index.ts +0 -72
- {sourcecode-5.8.11 → sourcecode-5.8.13}/.github/workflows/build-windows.yml +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/.github/workflows/perf-gate.yml +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/.gitignore +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/.ruff.toml +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/CLAUDE.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/CONTRIBUTING.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/LICENSE +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/NOTICE +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/CACHE.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/COMMERCIAL-OFFER.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/CUSTOMER-VALIDATION.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/DEMO-5MIN.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/EXECUTION-PLAN-12MO.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/MODERNIZATION.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/PRODUCT_AUDIT.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/PRODUCT_IDENTITY.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/PRODUCT_TIERS.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/RC1-CHECKLIST.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/RELEASE-CHECKLIST.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/architecture/CATALOG-retrieval-intents.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/architecture/DESIGN-knowledge-provider-integration.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/architecture/DESIGN-p5.3b-statement-surface.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/architecture/DESIGN-p5.5-span-index.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/architecture/DESIGN-p6-semantic-impact-engine.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/architecture/DESIGN-p6-semantic-integration-engine.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/architecture/DESIGN-p7-semantic-services.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/architecture/DESIGN-robustness-security-inference.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/architecture/DESIGN-semantic-retrieval.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/architecture/EPV-p6-class-typeref.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/architecture/REPORT-p6-flow-analyzer-comparison.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/architecture/REPORT-p6-integration-detector-comparison.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/architecture/REPORT-p8-flow-analyzer-migration.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/architecture/REPORT-p9-integration-detector-migration.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/architecture/adr/0001-semantic-ir.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/architecture/adr/0002-source-evidence-boundary.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/architecture/adr/0003-architectural-characterization.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/architecture/adr/0004-semantic-retrieval.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/architecture/adr/0005-evidence-reconciliation.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/architecture/adr/0006-performance-harness.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/architecture/adr/0007-composition-semantics.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/architecture/adr/0008-answer-coherence.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/architecture/consumer-disposition-inventory.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/architecture/overview.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/architecture/product-architecture-review.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/architecture/product-strategy-layering.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/architecture/semantic-ir-consumer-matrix.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/architecture/semantic-ir-roadmap.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/baseline-ci.yml +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/commercial-pipeline-audit.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/contracts-ci.yml +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/contracts.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/eval/2026-06-15-petclinic-rest-issue11-vets-pagination.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/eval/2026-06-15-petclinic-rest-issue147-validation.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/eval/2026-06-15-petclinic-rest-workflow.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/eval/2026-06-15-phase18-openapi-surface.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/eval/2026-06-15-phase20-validation-surface.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/eval/2026-06-16-broadleaf-checkout-impact-fieldtest.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/eval/2026-06-16-petclinic-rest-issue11-weakness2-closed.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/eval/2026-06-16-spring-petclinic-issue2333-dead-vets.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/licensing-schema.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/migrate-check.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/README.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/REGRESSION-GATE.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.15/SUMMARY.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.15/alfresco__ask__cold.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.15/alfresco__ask__warm.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.15/broadleaf__ask__cold.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.15/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.15/eureka__ask__cold.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.15/eureka__ask__warm.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.15/jenkins__ask__cold.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.15/jenkins__ask__warm.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.15/jobrunr__ask__cold.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.15/jobrunr__ask__warm.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.15/keycloak__ask__cold.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.15/keycloak__ask__warm.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.15/neo4j__ask__cold.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.15/neo4j__ask__warm.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.15/ofbiz__ask__cold.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.15/ofbiz__ask__warm.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.15/openmrs__ask__cold.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.15/openmrs__ask__warm.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.15/petclinic__ask__cold.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.15/petclinic__ask__warm.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.16/SUMMARY.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.16/alfresco__ask__cold.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.16/alfresco__ask__warm.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.16/broadleaf__ask__cold.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.16/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.16/eureka__ask__cold.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.16/eureka__ask__warm.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.16/jenkins__ask__cold.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.16/jenkins__ask__warm.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.16/jobrunr__ask__cold.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.16/jobrunr__ask__warm.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.16/keycloak__ask__cold.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.16/keycloak__ask__warm.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.16/neo4j__ask__cold.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.16/neo4j__ask__warm.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.16/ofbiz__ask__cold.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.16/ofbiz__ask__warm.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.16/openmrs__ask__cold.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.16/openmrs__ask__warm.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.16/petclinic__ask__cold.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/2.5.16/petclinic__ask__warm.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/gate-latest/README.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/gate-latest/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/gate-latest/broadleaf__endpoints__warm.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/gate-latest/broadleaf__migrate-check__warm.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/gate-latest/broadleaf__posture__warm.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/gate-latest/broadleaf__spring-audit__warm.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/gate-latest/broadleaf__validation__warm.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/perf/baselines/reference-best/README.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/posture.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/pro-experience-audit.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/schema.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/spec/envelope-v1.md +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/docs/spring-audit-ci.yml +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/scripts/compare_integration_engines.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/scripts/customer_smoke_test.sh +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/scripts/generate_jdk_exports.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/scripts/perf_gate.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/scripts/sync_gate_anchors.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/adaptive_scanner.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/answer_bounds.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/archetype.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/architectural_baseline.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/architectural_delta.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/architecture_analyzer.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/architecture_summary.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/ast_extractor.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/audit_clusters.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/audit_report.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/audit_since.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/baseline_autocapture.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/breaking_changes.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/build_modules.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/bundled_docs.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/cache.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/call_surface.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/caller_metrics.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/caller_reach.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/canonical_ir.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/chain_rules.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/change_plan.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/cir_graphs.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/classifier.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/client_calls.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/code_notes_analyzer.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/compare.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/confidence_analyzer.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/constraint_diff.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/consumer_join.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/container_wiring.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/context_cache.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/context_graph.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/context_scorer.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/context_summarizer.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/contract_diff.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/contract_init.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/contract_model.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/contract_pipeline.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/coverage_parser.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/data_labels.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/declarations.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/defect_identity.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/degradation.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/dependency_analyzer.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/deployment_prefix.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/detach.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/detectors/__init__.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/detectors/base.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/detectors/csproj_parser.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/detectors/dart.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/detectors/dotnet.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/detectors/elixir.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/detectors/go.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/detectors/heuristic.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/detectors/hybrid.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/detectors/java.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/detectors/jvm_ext.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/detectors/nodejs.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/detectors/parsers.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/detectors/php.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/detectors/project.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/detectors/python.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/detectors/ruby.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/detectors/rust.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/detectors/systems.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/detectors/terraform.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/detectors/tooling.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/doc_analyzer.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/dynamic_argument_surface.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/empty_reach.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/endpoint_literals.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/endpoint_metrics.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/entrypoint_classifier.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/env_analyzer.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/envelope.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/environment_resolution.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/error_schema.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/evidence_provider.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/execution_plan.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/explain.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/explain_endpoint.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/facts/__init__.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/facts/registry.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/field_deprecations.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/file_chunker.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/file_classifier.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/filter_surface.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/format_contract.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/fqn_utils.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/functional_routes.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/gate_anchors.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/git_analyzer.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/git_checkout.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/graph_analyzer.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/graph_evidence.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/identity_fallback.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/integration_coordinates.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/jdk_exports.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/license.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/manifest_cache.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/mcp/__init__.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/mcp/dependency_import.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/mcp/onboarding/applier.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/mcp/onboarding/backup.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/mcp/onboarding/detector.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/mcp/onboarding/planner.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/mcp/orchestrator.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/mcp/registry.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/mcp_nudge.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/metrics_analyzer.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/migration_blast.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/non_coverage.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/openapi_surface.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/output_bounds.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/output_budget.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/output_ceiling.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/output_encoding.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/output_sink.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/parallel.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/parse_cache.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/partial_contract.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/path_admission.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/path_filters.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/phased_run.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/pipe_contract.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/posture.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/pr_comment_renderer.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/pr_impact.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/prepare_context.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/product_info.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/progress.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/provenance.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/ranking_engine.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/readiness_timeline.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/readonly.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/reconciliation.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/redactor.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/reference_facts.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/regress.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/relevance_scorer.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/remediation_diff.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/remedies.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/rename_refactor.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/repo_classifier.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/repository_ir.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/retrieval/__init__.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/retrieval/context.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/retrieval/errors.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/retrieval/executor.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/retrieval/planner.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/retrieval/query.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/retrieval/request.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/retrieval/resolution.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/retrieval/result.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/retrieval/retriever.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/retrieval/runtime.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/retrieval/steps.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/retrieval/steps_endpoint.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/retrieval/steps_graph.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/retrieval/steps_impact.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/retrieval/steps_intf.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/retrieval/steps_struct.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/retrieval/steps_txsec.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/ris.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/risk.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/risk_model.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/rule_catalog.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/rule_pass.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/runs.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/runtime_classifier.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/sarif.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/scanner.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/schema.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/schema_producers.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/schema_registry.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/schemas/core-analysis-v1.schema.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/schemas/endpoints-v1.schema.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/schemas/envelope-v1.schema.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/schemas/pr-impact-v1.schema.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/schemas/verify-edit-v1.schema.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/schemas/verify-v1.schema.json +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/security_chain.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/security_config.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/security_config_scan.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/security_posture.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/semantic_analyzer.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/semantic_impact_engine.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/semantic_integration_engine.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/semantic_services.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/serializer.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/servlet_surface.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/source_text.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/spring_event_topology.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/spring_findings.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/spring_impact.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/spring_model.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/spring_profiles.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/spring_properties.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/spring_semantic.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/spring_tx_analyzer.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/sql_taint.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/summarizer.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/target_admission.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/telemetry/transport.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/test_gap_ranking.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/test_sources.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/text_input.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/timeline.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/timeline_cache.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/token_estimate.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/tree_utils.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/type_usage_surface.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/validation_inference.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/validation_surface.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/verify_edit.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/verify_repo.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/verify_rules.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/version_check.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/waivers.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/src/sourcecode/workspace.py +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/supabase/functions/get-license/index.ts +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/supabase/functions/lemonsqueezy-webhook/index.ts +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/supabase/sql/license_event_ordering.sql +0 -0
- {sourcecode-5.8.11 → sourcecode-5.8.13}/supabase/sql/licensing_schema.sql +0 -0
|
@@ -1,5 +1,41 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [5.8.13] — 2026-08-20
|
|
4
|
+
|
|
5
|
+
*MCP reliability release after deep multi-repository stress testing.*
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
- Concurrent MCP tool calls can no longer leak one invocation's CLI JSON to the
|
|
9
|
+
MCP host process. The in-process `CliRunner` invocation is serialized because
|
|
10
|
+
its stdout/stderr capture is process-global; each caller now receives only its
|
|
11
|
+
own response envelope.
|
|
12
|
+
|
|
13
|
+
### Verified
|
|
14
|
+
- The MCP regression suite passes, including a concurrent-runner regression and
|
|
15
|
+
live concurrent calls to `endpoints`, `validation` and `version` against the
|
|
16
|
+
testing corpus.
|
|
17
|
+
|
|
18
|
+
## [5.8.12] — 2026-08-19
|
|
19
|
+
|
|
20
|
+
*Performance-mitigation and release-hygiene update. The external cross-version
|
|
21
|
+
performance regression remains open until it is reproduced under its controlled
|
|
22
|
+
`saint-server` protocol; this release does not present local warm-cache results
|
|
23
|
+
as that closure.*
|
|
24
|
+
|
|
25
|
+
### Changed
|
|
26
|
+
- `validation` now reuses the shared Canonical IR for matching repository scopes;
|
|
27
|
+
`data-exposure` builds its Spring semantic model once per invocation and shares
|
|
28
|
+
it across declared label seeds.
|
|
29
|
+
- Root help, README and the user guide state cache reuse by command scope rather
|
|
30
|
+
than promising one universal parse path.
|
|
31
|
+
- `ASK_MAX_ANALYSIS_SECONDS` is documented accurately: it enforces a deadline
|
|
32
|
+
for `spring-audit`, `risk` and `audit-report`, not every deep command.
|
|
33
|
+
|
|
34
|
+
### Verified
|
|
35
|
+
- On the local BroadleafCommerce corpus, the final analyzer fingerprint filled
|
|
36
|
+
the shared CIR in 10.46s and a warm `validation --compact` hit took 4.01s with
|
|
37
|
+
byte-identical output. This is local cache-state evidence only.
|
|
38
|
+
|
|
3
39
|
## [5.8.11] — 2026-08-19
|
|
4
40
|
|
|
5
41
|
*Packaging re-release after the failed PyPI upload of 5.8.10. No functional or
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sourcecode
|
|
3
|
-
Version: 5.8.
|
|
3
|
+
Version: 5.8.13
|
|
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,7 @@ Description-Content-Type: text/markdown
|
|
|
49
49
|
|
|
50
50
|
**Context · Impact · Migration · Architecture · Review — everything from one structural model.**
|
|
51
51
|
|
|
52
|
-

|
|
53
53
|

|
|
54
54
|
|
|
55
55
|
Copyright (c) 2026 Dominique Haroun. All rights reserved. ASK Engine 5.7.0 and
|
|
@@ -102,10 +102,12 @@ intentional. Use `ask audit-report --from-risk risk.json` to package an existing
|
|
|
102
102
|
risk run instead of recomputing it.
|
|
103
103
|
|
|
104
104
|
**A budget is honoured, never a veto.** `ASK_MAX_ANALYSIS_SECONDS=<seconds>`
|
|
105
|
-
bounds
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
105
|
+
currently bounds the phase-runner commands `spring-audit`, `risk` and
|
|
106
|
+
`audit-report`; it is not a process-wide timeout for every command. A value below
|
|
107
|
+
the class floor prints what that class typically needs and **runs anyway** —
|
|
108
|
+
refusing to answer is the opposite of this product's doctrine. A run that spends
|
|
109
|
+
its budget stops on the loop that is spending the time, not only between phases:
|
|
110
|
+
a rule family cut in flight is
|
|
109
111
|
published as `rules_partially_run` with how far it reached, families that never
|
|
110
112
|
started are named in `rules_not_run`, `_partial` names the phases that completed
|
|
111
113
|
and the ones that did not, and the findings measured before the cut are kept.
|
|
@@ -113,7 +115,17 @@ The answer marks itself where the numbers are — `summary.partial`,
|
|
|
113
115
|
`counts_are_floor`, `counts_basis` — and `confidence_level` is capped at `low`,
|
|
114
116
|
because the confidence of the findings that exist says nothing about the family
|
|
115
117
|
that did not run. Measured on BroadleafCommerce (2 766 Java files): a 4.5s budget
|
|
116
|
-
stops at 1 408 files and ends at 5.1s.
|
|
118
|
+
stops at 1 408 files and ends at 5.1s. Commands outside that phase-runner set
|
|
119
|
+
must not be gated on this variable; their budget applicability remains visible in
|
|
120
|
+
the [defect ledger](docs/DEFECT-LEDGER.md).
|
|
121
|
+
|
|
122
|
+
**Current performance status.** In 5.8.12, `validation` reuses the shared
|
|
123
|
+
Canonical IR and `data-exposure` reuses one semantic model across all declared
|
|
124
|
+
label seeds. On the local BroadleafCommerce corpus, the final fingerprint filled
|
|
125
|
+
the shared CIR in 10.46s and a warm `validation --compact` run took 4.01s with
|
|
126
|
+
byte-identical output. This is a same-host cache observation, not a replacement
|
|
127
|
+
for the controlled `saint-server` cross-version comparison still tracked in the
|
|
128
|
+
[roadmap](docs/DEVELOPMENT-ROADMAP.md).
|
|
117
129
|
|
|
118
130
|
**What a warm actually covers.** `ask cache warm` runs the compact analysis: it rebuilds the
|
|
119
131
|
shared structural layers (L1/L2 + the Repository Intelligence Snapshot + the shared Canonical
|
|
@@ -139,7 +151,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
|
|
|
139
151
|
# pip / pipx
|
|
140
152
|
pipx install sourcecode # or: pip install sourcecode
|
|
141
153
|
|
|
142
|
-
ask version # ask 5.8.
|
|
154
|
+
ask version # ask 5.8.13 — and, on a build that has aged,
|
|
143
155
|
# how many releases have probably shipped since
|
|
144
156
|
```
|
|
145
157
|
|
|
@@ -568,18 +580,16 @@ ask config # version, config file path, telemetry status
|
|
|
568
580
|
ask config /repo # + the repository's own sourcecode.config.json:
|
|
569
581
|
# data labels, custom security annotations,
|
|
570
582
|
# and any declaration that could not be used
|
|
571
|
-
ask telemetry enable # anonymous telemetry is
|
|
583
|
+
ask telemetry enable # ensure anonymous telemetry is enabled
|
|
572
584
|
```
|
|
573
585
|
|
|
574
|
-
**
|
|
575
|
-
|
|
576
|
-
range, and errors: **no source code, paths, secrets, or output**. Turn it off again with
|
|
586
|
+
**Anonymous telemetry is ON by default**. It collects version, OS, commands, flags, duration,
|
|
587
|
+
repo-size range, and errors: **no source code, paths, secrets, or output**. Turn it off with
|
|
577
588
|
`ask telemetry disable`, `export SOURCECODE_TELEMETRY=0`, or `DO_NOT_TRACK=1`.
|
|
578
589
|
|
|
579
|
-
> **Auditing someone else's code — regulated, client-owned or public-sector?**
|
|
580
|
-
>
|
|
581
|
-
>
|
|
582
|
-
> choice you made before is unchanged.
|
|
590
|
+
> **Auditing someone else's code — regulated, client-owned or public-sector?** Set
|
|
591
|
+
> `SOURCECODE_TELEMETRY=0` before the run. The setting is explicit, local and honored before
|
|
592
|
+
> any event is sent.
|
|
583
593
|
|
|
584
594
|
**A question is not a write — `--no-write` / `ASK_READONLY=1`.** One contract over
|
|
585
595
|
every command: nothing is created inside the analysed repository, and a command
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
**Context · Impact · Migration · Architecture · Review — everything from one structural model.**
|
|
6
6
|
|
|
7
|
-

|
|
8
8
|

|
|
9
9
|
|
|
10
10
|
Copyright (c) 2026 Dominique Haroun. All rights reserved. ASK Engine 5.7.0 and
|
|
@@ -57,10 +57,12 @@ intentional. Use `ask audit-report --from-risk risk.json` to package an existing
|
|
|
57
57
|
risk run instead of recomputing it.
|
|
58
58
|
|
|
59
59
|
**A budget is honoured, never a veto.** `ASK_MAX_ANALYSIS_SECONDS=<seconds>`
|
|
60
|
-
bounds
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
60
|
+
currently bounds the phase-runner commands `spring-audit`, `risk` and
|
|
61
|
+
`audit-report`; it is not a process-wide timeout for every command. A value below
|
|
62
|
+
the class floor prints what that class typically needs and **runs anyway** —
|
|
63
|
+
refusing to answer is the opposite of this product's doctrine. A run that spends
|
|
64
|
+
its budget stops on the loop that is spending the time, not only between phases:
|
|
65
|
+
a rule family cut in flight is
|
|
64
66
|
published as `rules_partially_run` with how far it reached, families that never
|
|
65
67
|
started are named in `rules_not_run`, `_partial` names the phases that completed
|
|
66
68
|
and the ones that did not, and the findings measured before the cut are kept.
|
|
@@ -68,7 +70,17 @@ The answer marks itself where the numbers are — `summary.partial`,
|
|
|
68
70
|
`counts_are_floor`, `counts_basis` — and `confidence_level` is capped at `low`,
|
|
69
71
|
because the confidence of the findings that exist says nothing about the family
|
|
70
72
|
that did not run. Measured on BroadleafCommerce (2 766 Java files): a 4.5s budget
|
|
71
|
-
stops at 1 408 files and ends at 5.1s.
|
|
73
|
+
stops at 1 408 files and ends at 5.1s. Commands outside that phase-runner set
|
|
74
|
+
must not be gated on this variable; their budget applicability remains visible in
|
|
75
|
+
the [defect ledger](docs/DEFECT-LEDGER.md).
|
|
76
|
+
|
|
77
|
+
**Current performance status.** In 5.8.12, `validation` reuses the shared
|
|
78
|
+
Canonical IR and `data-exposure` reuses one semantic model across all declared
|
|
79
|
+
label seeds. On the local BroadleafCommerce corpus, the final fingerprint filled
|
|
80
|
+
the shared CIR in 10.46s and a warm `validation --compact` run took 4.01s with
|
|
81
|
+
byte-identical output. This is a same-host cache observation, not a replacement
|
|
82
|
+
for the controlled `saint-server` cross-version comparison still tracked in the
|
|
83
|
+
[roadmap](docs/DEVELOPMENT-ROADMAP.md).
|
|
72
84
|
|
|
73
85
|
**What a warm actually covers.** `ask cache warm` runs the compact analysis: it rebuilds the
|
|
74
86
|
shared structural layers (L1/L2 + the Repository Intelligence Snapshot + the shared Canonical
|
|
@@ -94,7 +106,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
|
|
|
94
106
|
# pip / pipx
|
|
95
107
|
pipx install sourcecode # or: pip install sourcecode
|
|
96
108
|
|
|
97
|
-
ask version # ask 5.8.
|
|
109
|
+
ask version # ask 5.8.13 — and, on a build that has aged,
|
|
98
110
|
# how many releases have probably shipped since
|
|
99
111
|
```
|
|
100
112
|
|
|
@@ -523,18 +535,16 @@ ask config # version, config file path, telemetry status
|
|
|
523
535
|
ask config /repo # + the repository's own sourcecode.config.json:
|
|
524
536
|
# data labels, custom security annotations,
|
|
525
537
|
# and any declaration that could not be used
|
|
526
|
-
ask telemetry enable # anonymous telemetry is
|
|
538
|
+
ask telemetry enable # ensure anonymous telemetry is enabled
|
|
527
539
|
```
|
|
528
540
|
|
|
529
|
-
**
|
|
530
|
-
|
|
531
|
-
range, and errors: **no source code, paths, secrets, or output**. Turn it off again with
|
|
541
|
+
**Anonymous telemetry is ON by default**. It collects version, OS, commands, flags, duration,
|
|
542
|
+
repo-size range, and errors: **no source code, paths, secrets, or output**. Turn it off with
|
|
532
543
|
`ask telemetry disable`, `export SOURCECODE_TELEMETRY=0`, or `DO_NOT_TRACK=1`.
|
|
533
544
|
|
|
534
|
-
> **Auditing someone else's code — regulated, client-owned or public-sector?**
|
|
535
|
-
>
|
|
536
|
-
>
|
|
537
|
-
> choice you made before is unchanged.
|
|
545
|
+
> **Auditing someone else's code — regulated, client-owned or public-sector?** Set
|
|
546
|
+
> `SOURCECODE_TELEMETRY=0` before the run. The setting is explicit, local and honored before
|
|
547
|
+
> any event is sent.
|
|
538
548
|
|
|
539
549
|
**A question is not a write — `--no-write` / `ASK_READONLY=1`.** One contract over
|
|
540
550
|
every command: nothing is created inside the analysed repository, and a command
|
|
@@ -91,4 +91,6 @@ Third-party dependencies (`typer`, `ruamel.yaml`, etc.) could contain vulnerabil
|
|
|
91
91
|
|
|
92
92
|
## Telemetry and privacy
|
|
93
93
|
|
|
94
|
-
Telemetry is **
|
|
94
|
+
Telemetry is **enabled by default** and can be disabled with `ask telemetry disable`,
|
|
95
|
+
`SOURCECODE_TELEMETRY=0`, or `DO_NOT_TRACK=1`. Only bounded anonymous usage metadata is
|
|
96
|
+
collected — never code, paths, or content. See [docs/privacy.md](docs/privacy.md).
|
|
@@ -16,20 +16,57 @@ The facts these rows are keyed to are published: `ask schema facts-v1` prints th
|
|
|
16
16
|
|
|
17
17
|
## Current Synchronization
|
|
18
18
|
|
|
19
|
-
**As of 2026-08-
|
|
20
|
-
the 5.8.9
|
|
21
|
-
|
|
19
|
+
**As of 2026-08-20, release `5.8.13` and the external `5.8.11` re-audit:** this is the current status of
|
|
20
|
+
the 5.8.8/5.8.9 audit queue. The subject remained `saint-server` at `3dde0376`, with a
|
|
21
|
+
byte-identical CIR and the same 53/61 invocables exercised. The score is **78/100**
|
|
22
|
+
(75 in 5.8.8, 80 in 5.8.9). The observations below remain historical evidence; only
|
|
23
|
+
this table declares present state.
|
|
22
24
|
|
|
23
25
|
| Rows | Current status | Evidence |
|
|
24
26
|
|---|---|---|
|
|
25
|
-
| `AUD-588-B01`, `AUD-589-B01`, `C3-122` | **
|
|
26
|
-
| `AUD-588-B03` | **
|
|
27
|
-
| `AUD-588-B04` | **
|
|
27
|
+
| `AUD-588-B01`, `AUD-589-B01`, `C3-122` | **implemented in 5.8.12** | `9884488` requires `risk` and `audit-report` to deliver stdout or their requested artifact before exit 0; the remaining closure evidence is a field-scale subprocess reproduction. |
|
|
28
|
+
| `AUD-511-R01` / `AUD-588-B03` | **implemented in 5.8.12** | `13362ec` makes SEC-009 read comment-blanked Java, so a Javadoc profile cannot override the live `@Profile("!m3")` declaration. |
|
|
29
|
+
| `AUD-588-B04` | **retracted audit premise** | `data-exposure` correctly preserves `chain_decision`; the reported `coverage_unknown` routes were custom-gate annotations whose application was not configured. `fd34eb1` remains a valid additive disclosure, but no further B04 fix is due. |
|
|
28
30
|
| `AUD-588-B05` | **closed** | `c15f5b6`; changed container-wired components block a false `unaffected` disposition. |
|
|
29
|
-
| `AUD-588-B07` | **
|
|
31
|
+
| `AUD-511-R03` / `AUD-588-B07` | **implemented in 5.8.12** | `47aee1e` gives the published `OUTPUT_TOO_LARGE` envelope precedence over an inconsistent process status and preserves the excerpt in every branch. |
|
|
30
32
|
| `AUD-588-B08` | **closed** | `c084555`; `impact` publishes its independent stdout-byte budget. |
|
|
31
|
-
| `
|
|
32
|
-
| `AUD-588-
|
|
33
|
+
| `MCP-001` | **closed 5.8.13** | Deep corpus testing reproduced concurrent `CliRunner` stream capture leaking a tool response to the host stdout. `b2c9660` serializes the narrow process-global capture seam; concurrent real MCP calls and a regression test verify response isolation. |
|
|
34
|
+
| `AUD-588-B11` (container/units subset) | **partially implemented in 5.8.12** | `d745d31` discovers nested Maven modules; `273ae8e` suppresses unsupported `pr-impact.unaffected_basis`. `impact` naming, source population units, risk tiers and plan narrative remain open. |
|
|
35
|
+
| `AUD-511-R02` / `AUD-589-B02` | **partially mitigated in 5.8.12, still under investigation** | `b93f230` reuses one `SpringSemanticModel` across every declared `data-exposure` seed; `473f47a` routes `validation` through the shared CIR cache, and `91bd0c0` retains subcommand `--no-cache` compatibility. On the local BroadleafCommerce corpus at the final analyzer fingerprint, a first shared-CIR fill took 10.46 s and its warm `validation --compact` hit took 4.01 s with byte-identical output. This is a same-host cache-state observation, not the 5.8.9/5.8.11 external A/B: the six-run C3-120 comparison and the configured `saint-server` reproduction remain required. |
|
|
36
|
+
| `AUD-588-B02`, `B06`, B11 residuals, `B12` | **partially open in 5.8.12** | `3869c87` excludes explicit EclipseLink from Hibernate applicability and effort; `037223e` publishes provider non-coverage. B11 parity and controlled cost calibration remain required. |
|
|
37
|
+
|
|
38
|
+
### Re-audit Intake: 5.8.11
|
|
39
|
+
|
|
40
|
+
The third external pass uses the same `saint-server` snapshot (`3dde0376`), read-only
|
|
41
|
+
protocol and warm-cache preparation as 5.8.8 and 5.8.9. The CIR hash is identical across
|
|
42
|
+
all three versions. It exercises 53/61 invocables (87%) and reports 78/100. That makes
|
|
43
|
+
rule, output and execution changes attributable without claiming that the application was
|
|
44
|
+
run or that the eight blocked invocables were covered.
|
|
45
|
+
|
|
46
|
+
| ID | Priority | Finding | Required correction / verification |
|
|
47
|
+
|---|---|---|---|
|
|
48
|
+
| `AUD-588-B01`, `AUD-589-B01`, `C3-122` | P0 | `risk -o` can exit 0 with no file; `risk` and `audit-report` can finish with empty stdout. The failure has fast and slow composition paths. | Add a real-subprocess invariant: exit 0 must produce parseable stdout or the requested artifact. Exercise `risk` and `audit-report` with and without `-o`, plus budget-cut partial output. |
|
|
49
|
+
| `AUD-511-R01` | P1 regression | SEC-009 takes `@Profile` from comments and reports an active `@Profile("!m3")` request chain as inactive. | Reuse comment-blanked source and declaration-local profile evidence, or consume posture's authority. Regress a misleading javadoc and both positive/negative profile forms. |
|
|
50
|
+
| `AUD-511-R02` / `AUD-589-B02` | P1 investigation | `endpoints`, `impact`, `spring-audit`, `modernize`, `validation` and `timeline` measure 1.4-2.4x slower than 5.8.9; `data-exposure --config` remains high. | **Partial implementation:** `b93f230` shares the data-exposure semantic model across seeds and `473f47a` makes `validation` reuse the shared CIR; `91bd0c0` confirms `--no-cache` remains a compatibility no-op. Re-run the idle-host, isolated-cache, interleaved-control protocol against the audited `saint-server` configuration before attributing or closing the field regression. |
|
|
51
|
+
| `AUD-511-R03`, `AUD-588-B07` | P1 regression | ASK-09 reports `not_applicable` even though its literal probe emits `OUTPUT_TOO_LARGE` 12x above the ceiling. | Derive branch selection exclusively from the output envelope. Publish `observed_payload_excerpt` for pass, fail, error and not-applicable rows. |
|
|
52
|
+
| `AUD-588-B02` + `B06` | P1 | The EclipseLink repository still receives Hibernate readiness, rewrite-zone classification and 32.9-66.2 person-days; `non_coverage` is null. | A declared competing provider must remove the Hibernate axis from readiness, effort and classification and add provider non-coverage. EclipseLink automation remains out of scope. |
|
|
53
|
+
| `AUD-588-B11` residual | P2 | `impact.matched_fqns` mixes exact resolution with 235 implementations; `migrate-recipe` misses nested Maven manifests; source-file populations lack units; `risk` tier labels diverge; plan/pr-impact prose trails their new container facts. | Bind consumers to established authorities, name populations and units, and add cross-command parity tests. Do not add parallel detection. |
|
|
54
|
+
| `AUD-588-B12` | P2 | 5.1.0 anchors disagree in both directions with 5.8.11 measurements; `timeline` is advertised as foreground despite a 404s sample. | Recalibrate only after controlled measurements and align foreground advice with the explicit opt-in progress policy. |
|
|
55
|
+
|
|
56
|
+
### Feature Recommendations: 5.8.11
|
|
57
|
+
|
|
58
|
+
| ID | Recommendation | Current decision |
|
|
59
|
+
|---|---|---|
|
|
60
|
+
| `AUD-588-F01` | EclipseLink/JPA-provider migration axis. | **Deferred product feature.** First close B02/B06 so the current Hibernate answer is honest about non-coverage. |
|
|
61
|
+
| `AUD-588-F02` | Shared answer-contract authority for profiles, units, populations, caveats and container reach. | **Partial.** The SEC-009 regression and B11 residuals show that new consumers are still re-deriving facts. |
|
|
62
|
+
| `AUD-588-F03` | Versioned cost model by repository size and cache state. | **Partial.** Existing dimensions do not make stale 5.1.0 anchors operationally safe; controlled remeasurement is prerequisite. |
|
|
63
|
+
| `AUD-588-F04` | Default foreground heartbeat without corrupting machine output. | **Explicit opt-in by decision.** Until revised, cost advice must not imply that long commands emit progress by default. |
|
|
64
|
+
| `AUD-588-F05` | Raise audit coverage through safe operational paths and dirty-tree `verify-edit`. | **Locally verified only.** The external run remains 53/61; treat dirty-tree behavior as a validation gap, not a closed product claim. |
|
|
65
|
+
|
|
66
|
+
**Recommended order:** composition-output invariant → SEC-009 profile regression → controlled
|
|
67
|
+
performance measurement → EclipseLink applicability/non-coverage → ASK-09 → B11 narrative
|
|
68
|
+
and parity residuals → cost-model calibration. Keep B04 closed as a retracted premise, and
|
|
69
|
+
do not implement EclipseLink migration automation as part of this bug battery.
|
|
33
70
|
|
|
34
71
|
**As of 2026-08-19, the `5.8.9` release commit:** the latest audit queue was implemented in
|
|
35
72
|
committed post-5.8.7 fixes. This table is
|
|
@@ -558,7 +595,7 @@ class's subject, not its provenance.
|
|
|
558
595
|
|
|
559
596
|
| ID | Item | Found | Severity | Status |
|
|
560
597
|
|---|---|---|---|---|
|
|
561
|
-
| P-1 | Telemetry
|
|
598
|
+
| P-1 | Telemetry default and procurement disclosure | 3.2.0 | **High (procurement)** | **reopened and corrected 5.8.12** — telemetry is on by default by explicit product decision, with `ask telemetry disable`, `SOURCECODE_TELEMETRY=0` and `DO_NOT_TRACK=1` honored before any event is sent. The first-run notice discloses the fields and the disable path. `telemetry status` distinguishes the default from an explicit disabled choice; the privacy policy documents the endpoint, 90-day retention and bounded anonymous fields. This supersedes the historical 3.3.0 opt-in closure for the current release |
|
|
562
599
|
| P-2 | Licence state is ambiguous: `auth status` → `{"status":"unauthenticated","pro":true,"pro_reason":"early-adoption unlock"}`. The buyer cannot tell what it will cost or what they lose when the door closes | 3.2.0 | Medium | **closed 3.4.0** — one authority, `license.entitlement()`: `entitlement` (what runs), `source` (why: `license_key` / `early_adoption_unlock` / `free_tier`), `authenticated` (a separate fact — today one can be entitled without a credential), `paywall_active`, and `when_it_changes`, which states what the user loses when that source stops applying, in the terms the gate uses and **never as a price**. `is_pro` — what every gate reads — is now derived from it rather than computed beside it, which is how the status page came to contradict the commands. The legacy keys stay for consumers, are derived from the authority, and are listed in `deprecated_fields` |
|
|
563
600
|
|
|
564
601
|
| P-3 | **The price is not published.** With P-2 closed the entitlement is unambiguous, but a buyer still cannot see what Pro costs or what a team of 25 pays. Eval #5 lists *"precio Pro público"* among the conditions for the top of its price band, beside the robustness fixes | 3.2.1 (eval #5) | Medium (procurement) | open — packaging question, not a page: the field's own reading is that **the value is frontal** (a first audit replaces 5–15 person-days) **and the recurring half is the CI gate**, so a full seat subscription on a product whose value peaks on run one *"genera churn en el mes 4"*. Model to test: one-off assessment **3–5 k€ per repo** + **8–12 €/dev/month** for the gate. Depends on C3-22: without the gate there is nothing recurring to sell |
|
|
@@ -3,19 +3,34 @@
|
|
|
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 — 2026-08-
|
|
7
|
-
>
|
|
8
|
-
> The 5.8.
|
|
9
|
-
>
|
|
10
|
-
>
|
|
11
|
-
>
|
|
12
|
-
>
|
|
13
|
-
>
|
|
14
|
-
>
|
|
15
|
-
>
|
|
16
|
-
>
|
|
17
|
-
>
|
|
18
|
-
>
|
|
6
|
+
> **CURRENT STATE — 2026-08-20 — 5.8.13 release**
|
|
7
|
+
>
|
|
8
|
+
> The external 5.8.11 re-audit scores **78/100** over the same byte-identical
|
|
9
|
+
> `saint-server` CIR and 53/61 invocables. It refutes two closures, exposes one new
|
|
10
|
+
> security regression and measures a cross-command performance regression. The release
|
|
11
|
+
> fixes remain valuable where verified: B05, B08 and the container/units B11 subset hold.
|
|
12
|
+
> The deep `testing` corpus battery also closed an in-process MCP concurrency defect:
|
|
13
|
+
> `CliRunner`'s global stream capture allowed one response to escape to the host stdout.
|
|
14
|
+
> `b2c9660` serializes that seam and proves response isolation under concurrent calls.
|
|
15
|
+
> The audit queue remains unchanged; this was additional hardening found during verification.
|
|
16
|
+
> The B04 `data-exposure` premise is retracted by the auditor after configuration-based
|
|
17
|
+
> verification. Historical tables below are superseded by this block where statuses differ.
|
|
18
|
+
>
|
|
19
|
+
> | Priority | Work | Acceptance direction |
|
|
20
|
+
> |---|---|---|
|
|
21
|
+
> | P0 | `AUD-588-B01` / `AUD-589-B01` / `C3-122`: silent composition exits in `risk` and `audit-report`. | **Implemented in 5.8.12:** `9884488` turns an exit-0 return without delivered output into a typed failure. Field-scale subprocess reproduction remains required. |
|
|
22
|
+
> | P1 | `AUD-511-R01`: SEC-009 profile evidence reads comments. | **Implemented in 5.8.12:** `13362ec` uses comment-blanked Java and regresses a misleading Javadoc. |
|
|
23
|
+
> | P1 | `AUD-511-R02`: 1.4-2.4x performance slowdown. | **Partially mitigated in 5.8.12:** `b93f230` shares the `data-exposure` semantic model across label seeds; `473f47a` gives `validation` the shared CIR cache; `91bd0c0` preserves the published `--no-cache` no-op. Local Broadleaf warm validation is lower, but controlled 5.8.9/5.8.11 remeasurement remains the acceptance gate. |
|
|
24
|
+
> | P1 | `AUD-511-R03`: ASK-09 false `not_applicable`. | **Implemented in 5.8.12:** `47aee1e` uses the emitted envelope as authority and retains evidence for every result. |
|
|
25
|
+
> | P1 | `AUD-588-B02/B06`: EclipseLink is billed a Hibernate migration. | **Implemented in 5.8.12:** `3869c87` excludes the axis; `037223e` publishes the unsupported-provider gap. |
|
|
26
|
+
> | P1 | `MCP-001`: concurrent MCP calls can leak a CLI response to host stdout. | **Closed in 5.8.13:** `b2c9660` serializes the process-global `CliRunner` capture seam and regresses overlapping calls. |
|
|
27
|
+
> | P2 | `AUD-588-B11` residuals and `B12`. | `d745d31` and `273ae8e` close nested-build discovery and false exclusion prose. Finish naming/population/tier/plan parity, then recalibrate cost advice under controlled evidence. |
|
|
28
|
+
>
|
|
29
|
+
> **Feature decisions:** `F01` (EclipseLink migration automation) remains deferred, but
|
|
30
|
+
> provider non-coverage is a prerequisite bug fix. `F02` is partial and must consolidate
|
|
31
|
+
> existing authorities rather than re-derive facts. `F03` is partial pending calibrated
|
|
32
|
+
> measurements. `F04` remains opt-in, so foreground advice must not imply a heartbeat.
|
|
33
|
+
> `F05` remains locally verified only; dirty-tree `verify-edit` is a validation gap.
|
|
19
34
|
|
|
20
35
|
> **CURRENT STATE — 2026-08-19 — 5.8.9 working tree**
|
|
21
36
|
>
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
*A software-knowledge platform for large codebases. Written for an engineering
|
|
4
4
|
director; no internal implementation knowledge assumed.*
|
|
5
5
|
|
|
6
|
-
> **DOCUMENT STATUS — 2026-08-
|
|
6
|
+
> **DOCUMENT STATUS — 2026-08-20**
|
|
7
7
|
>
|
|
8
|
-
> The current release is **5.8.
|
|
9
|
-
>
|
|
10
|
-
>
|
|
11
|
-
>
|
|
8
|
+
> The current release is **5.8.13**. Its external re-audit scores **78/100** on the
|
|
9
|
+
> same repository and protocol as the two prior rounds (75, then 80). The repository
|
|
10
|
+
> model is byte-identical, so the reported changes are execution, rule or presentation
|
|
11
|
+
> behavior. This block supersedes earlier release claims where they conflict.
|
|
12
12
|
>
|
|
13
13
|
> **Closed in the current working tree:** `B23`, `B24`, `B25`, `B26`, `B27`, `B28`, the
|
|
14
14
|
> `C4-25` residual, `C4-27`, `C4-28`, additive `C1-49`, and `C3-130` for `plan`/`cold-start`,
|
|
@@ -19,17 +19,48 @@ director; no internal implementation knowledge assumed.*
|
|
|
19
19
|
> profiling, compatibility-window or host-specific CI work, not an unresolved bug from that
|
|
20
20
|
> audit. Historical scores and release claims below remain historical; this block is current.
|
|
21
21
|
|
|
22
|
-
> **5.8.
|
|
22
|
+
> **MCP HARDENING — released in 5.8.13**
|
|
23
23
|
>
|
|
24
|
-
>
|
|
25
|
-
>
|
|
26
|
-
>
|
|
27
|
-
>
|
|
28
|
-
>
|
|
24
|
+
> Deep multi-repository stress testing found that concurrent MCP calls could race the
|
|
25
|
+
> process-global stdout/stderr capture used by the in-process CLI adapter. `b2c9660`
|
|
26
|
+
> serializes that narrow capture seam, preventing one tool response from reaching the MCP
|
|
27
|
+
> host or another tool call. This does not change analysis contracts or reopen the external
|
|
28
|
+
> audit queue; it makes the agent integration reliable under concurrent dispatch.
|
|
29
|
+
|
|
30
|
+
> **5.8.11 RE-AUDIT CORRECTION**
|
|
31
|
+
>
|
|
32
|
+
> The re-audit confirms the container-reach correction (`pr-impact`, `plan`, `compare`),
|
|
33
|
+
> the independent `impact` byte budget and the `impact-chain` security-surface unit.
|
|
34
|
+
> It also retracts the earlier `data-exposure` premise: routes reported as
|
|
35
|
+
> `coverage_unknown` were custom-gate annotations whose runtime application had not been
|
|
36
|
+
> declared, not lost `permit_all` decisions.
|
|
37
|
+
>
|
|
38
|
+
> Three priorities replace the previous closure claim. First, `risk` and `audit-report`
|
|
39
|
+
> can still return success with no usable stdout or requested file. Second, the new
|
|
40
|
+
> `SEC-009` profile evidence can read a comment and mark the active public chain inactive.
|
|
41
|
+
> Third, controlled measurements show a 1.4-2.4x slowdown in several commands. The
|
|
42
|
+
> selftest ceiling row is also reopened: it now hides a genuine refusal as
|
|
43
|
+
> `not_applicable`.
|
|
44
|
+
>
|
|
45
|
+
> EclipseLink migration automation remains a future product capability. Its prerequisite
|
|
46
|
+
> is not optional: current migration readiness must stop charging an inapplicable
|
|
47
|
+
> Hibernate axis and publish the unsupported-provider gap. Shared answer contracts,
|
|
48
|
+
> calibrated cost advice and foreground-progress policy remain partial work, not release
|
|
49
|
+
> claims.
|
|
50
|
+
|
|
51
|
+
> **IMPLEMENTATION UPDATE — released in 5.8.12**
|
|
29
52
|
>
|
|
30
|
-
> The
|
|
31
|
-
>
|
|
32
|
-
>
|
|
53
|
+
> The output invariant (`9884488`), comment-safe SEC-009 profile evidence (`13362ec`),
|
|
54
|
+
> ASK-09 envelope precedence (`47aee1e`), EclipseLink applicability and disclosure
|
|
55
|
+
> (`3869c87`, `037223e`), nested Maven discovery (`d745d31`) and guarded negative-set
|
|
56
|
+
> prose (`273ae8e`) are implemented with targeted regressions. Performance work has also
|
|
57
|
+
> landed but is not called closed: `b93f230` removes one semantic-model rebuild per
|
|
58
|
+
> `data-exposure` label seed, `473f47a` lets `validation` reuse the shared repository
|
|
59
|
+
> model, and `91bd0c0` preserves the documented `--no-cache` compatibility behavior.
|
|
60
|
+
> A local BroadleafCommerce warm cache hit measured 4.01 s for `validation --compact`
|
|
61
|
+
> after a 10.46 s first shared-CIR fill, with byte-identical output; this is not an
|
|
62
|
+
> external-version comparison. The controlled performance A/B, remaining B11 parity and
|
|
63
|
+
> field-scale validation of the composition paths still prevent declaring the roadmap clean.
|
|
33
64
|
|
|
34
65
|
> **NEW AUDIT INTAKE — ASK 5.8.8 / `saint-server` — 2026-08-19**
|
|
35
66
|
>
|
|
@@ -954,10 +954,13 @@ mantiene el alias breve de versión para compatibilidad.
|
|
|
954
954
|
|
|
955
955
|
```bash
|
|
956
956
|
ask telemetry status # ver el ajuste actual (y si llegaste a elegir)
|
|
957
|
-
ask telemetry enable # activar
|
|
958
|
-
ask telemetry disable #
|
|
957
|
+
ask telemetry enable # activar
|
|
958
|
+
ask telemetry disable # desactivar
|
|
959
959
|
```
|
|
960
|
-
La telemetría anónima está **
|
|
960
|
+
La telemetría anónima está **activada por defecto**. Recoge sólo versión, sistema, comandos,
|
|
961
|
+
flags, duración aproximada, tamaño agrupado del repositorio y tipo de error. Nunca incluye tu
|
|
962
|
+
código, rutas ni secretos. Desactívala con `ask telemetry disable`, `SOURCECODE_TELEMETRY=0`
|
|
963
|
+
o `DO_NOT_TRACK=1`.
|
|
961
964
|
|
|
962
965
|
---
|
|
963
966
|
|
|
@@ -39,10 +39,12 @@ Evidence — every answer is backed by auditable evidence, not a gues
|
|
|
39
39
|
CLI commands — impact, endpoints, spring-audit, explain, … each a projection
|
|
40
40
|
```
|
|
41
41
|
|
|
42
|
-
The key idea:
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
The key idea: the extraction is **content-addressed**. Commands reuse the parse cache and,
|
|
43
|
+
where their analysed scope matches, the shared Canonical IR; `ask cache model` names what a
|
|
44
|
+
warm buys for each command rather than implying that every projection costs the same. In
|
|
45
|
+
5.8.12, `validation` enters through that shared CIR and `data-exposure` reuses one semantic
|
|
46
|
+
model across all declared label seeds. (The extraction and consumption contract is fixed in
|
|
47
|
+
the architecture ADRs 0001–0004 under `docs/architecture/`.)
|
|
46
48
|
|
|
47
49
|
---
|
|
48
50
|
|
|
@@ -136,7 +138,7 @@ pipx install sourcecode # isolated install, no venv needed
|
|
|
136
138
|
|
|
137
139
|
# Verify
|
|
138
140
|
ask version
|
|
139
|
-
# ask 5.8.
|
|
141
|
+
# ask 5.8.13
|
|
140
142
|
```
|
|
141
143
|
|
|
142
144
|
Requires Python 3.9+.
|
|
@@ -1197,7 +1199,7 @@ explaining. The rest do one thing; `ask <command> --help` is the whole story.
|
|
|
1197
1199
|
| `ask retrieve` | parked | Typed knowledge queries over the model — kept working, no longer developed |
|
|
1198
1200
|
| `ask baseline capture\|diff\|trend` | supported | Versioned architectural metrics over time; see [`ask trend`](#ask-trend-dir--how-the-architecture-moved) |
|
|
1199
1201
|
| `ask cache status\|warm\|model\|clear\|freshness` | supported | Cache inspection; `ask cache model` states what a warm buys each command |
|
|
1200
|
-
| `ask config` · `ask version` · `ask activate` · `ask auth` · `ask telemetry` · `ask mcp` | supported | Configuration, version, licence, authentication, telemetry (
|
|
1202
|
+
| `ask config` · `ask version` · `ask activate` · `ask auth` · `ask telemetry` · `ask mcp` | supported | Configuration, version, licence, authentication, telemetry (on by default), MCP integration |
|
|
1201
1203
|
|
|
1202
1204
|
## Typical workflows
|
|
1203
1205
|
|
|
@@ -1285,7 +1287,7 @@ ask mcp serve
|
|
|
1285
1287
|
ask mcp remove
|
|
1286
1288
|
```
|
|
1287
1289
|
|
|
1288
|
-
The MCP server exposes structural analysis tools to AI agents without requiring the agent to call the CLI directly. Claude Desktop and Cursor can query impact, endpoints, and context through the MCP protocol.
|
|
1290
|
+
The MCP server exposes structural analysis tools to AI agents without requiring the agent to call the CLI directly. Claude Desktop and Cursor can query impact, endpoints, and context through the MCP protocol. Concurrent requests are accepted safely: ASK serializes only the in-process CLI capture seam, because its stdout/stderr redirection is process-global, so one tool response cannot contaminate another.
|
|
1289
1291
|
|
|
1290
1292
|
---
|
|
1291
1293
|
|
|
@@ -1482,10 +1484,12 @@ the tree. Set `ASK_RUNS_IN_REPO=1` only when `.ask/runs` belongs in that
|
|
|
1482
1484
|
repository's own artefacts, or `ASK_RUNS_DIR=/path/to/runs` to choose an external
|
|
1483
1485
|
location explicitly.
|
|
1484
1486
|
|
|
1485
|
-
**Large-repo budgets.** Set `ASK_MAX_ANALYSIS_SECONDS=<seconds>` to bound
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1487
|
+
**Large-repo budgets.** Set `ASK_MAX_ANALYSIS_SECONDS=<seconds>` to bound the
|
|
1488
|
+
phase-runner commands `spring-audit`, `risk` and `audit-report`. It is not a
|
|
1489
|
+
process-wide timeout for every repo-wide or deep command. The budget is
|
|
1490
|
+
**honoured, not vetoed**: if the value is below the class floor ASK says so on
|
|
1491
|
+
stderr and runs anyway, and a run that spends its budget publishes what it
|
|
1492
|
+
measured with
|
|
1489
1493
|
|
|
1490
1494
|
```json
|
|
1491
1495
|
"_partial": {"partial": true,
|
|
@@ -1505,7 +1509,9 @@ inventories `rules_run` / `rules_not_run` with `rules_run_count` and
|
|
|
1505
1509
|
stops at 1 408 files inside the `SEC-004` group and ends at 5.1s.
|
|
1506
1510
|
|
|
1507
1511
|
Every count in such an answer is a floor over what ran — a family or phase that
|
|
1508
|
-
never ran is named, never reported as an absence of findings.
|
|
1512
|
+
never ran is named, never reported as an absence of findings. Commands outside
|
|
1513
|
+
that phase-runner set are not bounded by this variable and must not be CI-gated
|
|
1514
|
+
on it. The mark lives
|
|
1509
1515
|
where the numbers are as well as at the root: `summary.partial`,
|
|
1510
1516
|
`summary.counts_are_floor` and `summary.counts_basis`, with
|
|
1511
1517
|
`confidence_level` capped at `low` and `confidence_basis` saying the cut is the
|