sourcecode 5.8.12__tar.gz → 5.8.14__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.12 → sourcecode-5.8.14}/CHANGELOG.md +38 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/PKG-INFO +9 -11
- {sourcecode-5.8.12 → sourcecode-5.8.14}/README.md +8 -10
- {sourcecode-5.8.12 → sourcecode-5.8.14}/SECURITY.md +3 -1
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/DEFECT-LEDGER.md +37 -11
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/DEVELOPMENT-ROADMAP.md +36 -20
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/EXECUTIVE-ROADMAP.md +54 -13
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/MANUAL-USUARIO.md +6 -3
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/USER_GUIDE.md +3 -3
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/privacy.md +19 -16
- {sourcecode-5.8.12 → sourcecode-5.8.14}/pyproject.toml +1 -1
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/__init__.py +1 -1
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/change_plan.py +8 -1
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/cli.py +118 -64
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/compare.py +7 -1
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/execution_plan.py +19 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/mcp/runner.py +6 -1
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/mcp/server.py +3 -4
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/migrate_check.py +16 -7
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/posture.py +52 -9
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/readonly.py +32 -8
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/release_info.py +1 -1
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/rename_refactor.py +14 -4
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/repository_ir.py +42 -14
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/retrieval/steps_impact.py +1 -1
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/risk.py +13 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/schema.py +6 -3
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/security_posture.py +9 -1
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/selftest.py +46 -7
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/serializer.py +13 -4
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/spring_model.py +13 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/summarizer.py +54 -12
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/telemetry/__init__.py +5 -4
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/telemetry/config.py +14 -19
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/telemetry/consent.py +11 -15
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/telemetry/events.py +3 -1
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/telemetry/filters.py +10 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/supabase/functions/README.md +4 -2
- sourcecode-5.8.14/supabase/functions/telemetry/index.ts +127 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/supabase/sql/telemetry_events.sql +36 -1
- sourcecode-5.8.12/supabase/functions/telemetry/index.ts +0 -72
- {sourcecode-5.8.12 → sourcecode-5.8.14}/.github/workflows/build-windows.yml +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/.github/workflows/perf-gate.yml +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/.gitignore +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/.ruff.toml +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/CLAUDE.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/CONTRIBUTING.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/LICENSE +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/NOTICE +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/CACHE.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/COMMERCIAL-OFFER.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/CUSTOMER-VALIDATION.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/DEMO-5MIN.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/EXECUTION-PLAN-12MO.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/MODERNIZATION.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/PRODUCT_AUDIT.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/PRODUCT_IDENTITY.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/PRODUCT_TIERS.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/RC1-CHECKLIST.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/RELEASE-CHECKLIST.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/architecture/CATALOG-retrieval-intents.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/architecture/DESIGN-knowledge-provider-integration.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/architecture/DESIGN-p5.3b-statement-surface.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/architecture/DESIGN-p5.5-span-index.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/architecture/DESIGN-p6-semantic-impact-engine.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/architecture/DESIGN-p6-semantic-integration-engine.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/architecture/DESIGN-p7-semantic-services.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/architecture/DESIGN-robustness-security-inference.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/architecture/DESIGN-semantic-retrieval.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/architecture/EPV-p6-class-typeref.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/architecture/REPORT-p6-flow-analyzer-comparison.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/architecture/REPORT-p6-integration-detector-comparison.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/architecture/REPORT-p8-flow-analyzer-migration.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/architecture/REPORT-p9-integration-detector-migration.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/architecture/adr/0001-semantic-ir.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/architecture/adr/0002-source-evidence-boundary.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/architecture/adr/0003-architectural-characterization.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/architecture/adr/0004-semantic-retrieval.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/architecture/adr/0005-evidence-reconciliation.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/architecture/adr/0006-performance-harness.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/architecture/adr/0007-composition-semantics.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/architecture/adr/0008-answer-coherence.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/architecture/consumer-disposition-inventory.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/architecture/overview.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/architecture/product-architecture-review.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/architecture/product-strategy-layering.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/architecture/semantic-ir-consumer-matrix.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/architecture/semantic-ir-roadmap.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/baseline-ci.yml +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/commercial-pipeline-audit.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/contracts-ci.yml +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/contracts.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/eval/2026-06-15-petclinic-rest-issue11-vets-pagination.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/eval/2026-06-15-petclinic-rest-issue147-validation.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/eval/2026-06-15-petclinic-rest-workflow.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/eval/2026-06-15-phase18-openapi-surface.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/eval/2026-06-15-phase20-validation-surface.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/eval/2026-06-16-broadleaf-checkout-impact-fieldtest.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/eval/2026-06-16-petclinic-rest-issue11-weakness2-closed.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/eval/2026-06-16-spring-petclinic-issue2333-dead-vets.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/licensing-schema.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/migrate-check.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/README.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/REGRESSION-GATE.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.15/SUMMARY.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.15/alfresco__ask__cold.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.15/alfresco__ask__warm.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.15/broadleaf__ask__cold.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.15/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.15/eureka__ask__cold.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.15/eureka__ask__warm.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.15/jenkins__ask__cold.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.15/jenkins__ask__warm.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.15/jobrunr__ask__cold.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.15/jobrunr__ask__warm.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.15/keycloak__ask__cold.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.15/keycloak__ask__warm.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.15/neo4j__ask__cold.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.15/neo4j__ask__warm.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.15/ofbiz__ask__cold.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.15/ofbiz__ask__warm.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.15/openmrs__ask__cold.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.15/openmrs__ask__warm.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.15/petclinic__ask__cold.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.15/petclinic__ask__warm.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.16/SUMMARY.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.16/alfresco__ask__cold.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.16/alfresco__ask__warm.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.16/broadleaf__ask__cold.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.16/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.16/eureka__ask__cold.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.16/eureka__ask__warm.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.16/jenkins__ask__cold.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.16/jenkins__ask__warm.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.16/jobrunr__ask__cold.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.16/jobrunr__ask__warm.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.16/keycloak__ask__cold.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.16/keycloak__ask__warm.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.16/neo4j__ask__cold.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.16/neo4j__ask__warm.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.16/ofbiz__ask__cold.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.16/ofbiz__ask__warm.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.16/openmrs__ask__cold.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.16/openmrs__ask__warm.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.16/petclinic__ask__cold.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/2.5.16/petclinic__ask__warm.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/gate-latest/README.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/gate-latest/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/gate-latest/broadleaf__endpoints__warm.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/gate-latest/broadleaf__migrate-check__warm.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/gate-latest/broadleaf__posture__warm.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/gate-latest/broadleaf__spring-audit__warm.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/gate-latest/broadleaf__validation__warm.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/perf/baselines/reference-best/README.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/posture.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/pro-experience-audit.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/schema.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/spec/envelope-v1.md +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/docs/spring-audit-ci.yml +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/scripts/compare_integration_engines.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/scripts/customer_smoke_test.sh +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/scripts/generate_jdk_exports.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/scripts/perf_gate.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/scripts/perf_harness.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/scripts/sync_gate_anchors.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/adaptive_scanner.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/answer_bounds.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/archetype.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/architectural_baseline.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/architectural_delta.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/architecture_analyzer.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/architecture_summary.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/ast_extractor.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/audit_clusters.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/audit_recipe.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/audit_report.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/audit_since.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/baseline_autocapture.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/breaking_changes.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/build_modules.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/bundled_docs.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/cache.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/cache_model.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/call_surface.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/caller_metrics.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/caller_reach.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/canonical_ir.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/chain_rules.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/cir_graphs.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/classifier.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/client_calls.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/code_notes_analyzer.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/confidence_analyzer.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/constraint_diff.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/consumer_join.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/container_wiring.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/context_cache.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/context_graph.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/context_scorer.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/context_summarizer.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/contract_diff.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/contract_init.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/contract_model.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/contract_pipeline.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/coverage_parser.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/data_exposure.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/data_labels.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/declarations.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/defect_identity.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/degradation.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/dependency_analyzer.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/deployment_prefix.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/detach.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/detectors/__init__.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/detectors/base.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/detectors/csproj_parser.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/detectors/dart.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/detectors/dotnet.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/detectors/elixir.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/detectors/go.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/detectors/heuristic.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/detectors/hybrid.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/detectors/java.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/detectors/jvm_ext.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/detectors/nodejs.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/detectors/parsers.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/detectors/php.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/detectors/project.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/detectors/python.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/detectors/ruby.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/detectors/rust.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/detectors/systems.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/detectors/terraform.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/detectors/tooling.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/doc_analyzer.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/dynamic_argument_surface.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/empty_reach.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/endpoint_disposition.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/endpoint_literals.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/endpoint_metrics.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/entrypoint_classifier.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/env_analyzer.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/envelope.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/environment_resolution.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/error_schema.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/evidence_provider.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/explain.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/explain_endpoint.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/facts/__init__.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/facts/registry.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/field_deprecations.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/file_chunker.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/file_classifier.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/filter_surface.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/format_contract.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/fqn_utils.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/functional_routes.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/gate_anchors.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/git_analyzer.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/git_checkout.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/graph_analyzer.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/graph_evidence.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/hibernate_strat.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/identity_fallback.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/integration_coordinates.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/jdk_exports.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/license.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/manifest_cache.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/mcp/__init__.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/mcp/dependency_import.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/mcp/onboarding/applier.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/mcp/onboarding/backup.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/mcp/onboarding/detector.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/mcp/onboarding/planner.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/mcp/orchestrator.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/mcp/registry.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/mcp_nudge.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/metrics_analyzer.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/migration_blast.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/non_coverage.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/openapi_surface.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/openrewrite_recipe.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/output_bounds.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/output_budget.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/output_ceiling.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/output_encoding.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/output_sink.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/parallel.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/parse_cache.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/partial_contract.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/path_admission.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/path_filters.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/perf.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/phased_run.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/pipe_contract.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/pr_comment_renderer.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/pr_impact.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/prepare_context.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/product_info.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/progress.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/provenance.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/ranking_engine.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/readiness_timeline.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/reconciliation.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/redactor.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/reference_facts.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/regress.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/relevance_scorer.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/remediation_diff.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/remedies.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/repo_classifier.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/retrieval/__init__.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/retrieval/context.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/retrieval/errors.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/retrieval/executor.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/retrieval/planner.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/retrieval/query.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/retrieval/request.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/retrieval/resolution.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/retrieval/result.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/retrieval/retriever.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/retrieval/runtime.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/retrieval/steps.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/retrieval/steps_endpoint.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/retrieval/steps_graph.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/retrieval/steps_intf.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/retrieval/steps_struct.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/retrieval/steps_txsec.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/ris.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/risk_model.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/rule_catalog.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/rule_pass.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/runs.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/runtime_classifier.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/sarif.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/scanner.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/schema_producers.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/schema_registry.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/schemas/core-analysis-v1.schema.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/schemas/endpoints-v1.schema.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/schemas/envelope-v1.schema.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/schemas/pr-impact-v1.schema.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/schemas/verify-edit-v1.schema.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/schemas/verify-v1.schema.json +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/security_chain.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/security_config.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/security_config_scan.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/semantic_analyzer.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/semantic_impact_engine.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/semantic_integration_engine.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/semantic_services.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/servlet_surface.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/source_text.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/spring_event_topology.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/spring_findings.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/spring_impact.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/spring_profiles.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/spring_properties.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/spring_security_audit.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/spring_semantic.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/spring_tx_analyzer.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/sql_taint.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/target_admission.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/telemetry/transport.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/test_gap_ranking.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/test_sources.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/text_input.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/timeline.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/timeline_cache.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/token_estimate.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/tree_utils.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/type_usage_surface.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/validation_inference.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/validation_surface.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/verify_edit.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/verify_repo.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/verify_rules.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/version_check.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/waivers.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/src/sourcecode/workspace.py +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/supabase/functions/get-license/index.ts +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/supabase/functions/lemonsqueezy-webhook/index.ts +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/supabase/sql/license_event_ordering.sql +0 -0
- {sourcecode-5.8.12 → sourcecode-5.8.14}/supabase/sql/licensing_schema.sql +0 -0
|
@@ -1,5 +1,43 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [5.8.14] — 2026-08-20
|
|
4
|
+
|
|
5
|
+
*Fourth-audit remediation release. The external `5.8.13` audit subject remains
|
|
6
|
+
the evidence for outstanding field reproduction and performance work.*
|
|
7
|
+
|
|
8
|
+
### Fixed
|
|
9
|
+
- ASK-09 selftest now reads typed error documents from either stdout or stderr
|
|
10
|
+
and clears inherited execution controls that would change the ceiling probe.
|
|
11
|
+
- Migration readiness names only dimensions that actually participate in its
|
|
12
|
+
aggregate, so an EclipseLink repository does not describe an excluded Hibernate
|
|
13
|
+
axis as an input.
|
|
14
|
+
- `impact` separates directly resolved targets from expanded analysis seeds and
|
|
15
|
+
implementation classes. `plan` and `compare` retain the expanded cone while
|
|
16
|
+
publishing container-wired components in their checklist and cost dimensions.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
- `risk` now publishes its composition working set: source files, audit findings,
|
|
20
|
+
candidate defects and composed defects. This instruments the rare field-scale
|
|
21
|
+
zero-output report without claiming it is closed before reproduction.
|
|
22
|
+
- The roadmap and defect ledger distinguish these shipped changes from the two
|
|
23
|
+
remaining field-gated items: `risk` output reproduction and controlled
|
|
24
|
+
`data-exposure --config` performance measurement.
|
|
25
|
+
|
|
26
|
+
## [5.8.13] — 2026-08-20
|
|
27
|
+
|
|
28
|
+
*MCP reliability release after deep multi-repository stress testing.*
|
|
29
|
+
|
|
30
|
+
### Fixed
|
|
31
|
+
- Concurrent MCP tool calls can no longer leak one invocation's CLI JSON to the
|
|
32
|
+
MCP host process. The in-process `CliRunner` invocation is serialized because
|
|
33
|
+
its stdout/stderr capture is process-global; each caller now receives only its
|
|
34
|
+
own response envelope.
|
|
35
|
+
|
|
36
|
+
### Verified
|
|
37
|
+
- The MCP regression suite passes, including a concurrent-runner regression and
|
|
38
|
+
live concurrent calls to `endpoints`, `validation` and `version` against the
|
|
39
|
+
testing corpus.
|
|
40
|
+
|
|
3
41
|
## [5.8.12] — 2026-08-19
|
|
4
42
|
|
|
5
43
|
*Performance-mitigation and release-hygiene update. The external cross-version
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sourcecode
|
|
3
|
-
Version: 5.8.
|
|
3
|
+
Version: 5.8.14
|
|
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
|
|
@@ -151,7 +151,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
|
|
|
151
151
|
# pip / pipx
|
|
152
152
|
pipx install sourcecode # or: pip install sourcecode
|
|
153
153
|
|
|
154
|
-
ask version # ask 5.8.
|
|
154
|
+
ask version # ask 5.8.14 — and, on a build that has aged,
|
|
155
155
|
# how many releases have probably shipped since
|
|
156
156
|
```
|
|
157
157
|
|
|
@@ -580,18 +580,16 @@ ask config # version, config file path, telemetry status
|
|
|
580
580
|
ask config /repo # + the repository's own sourcecode.config.json:
|
|
581
581
|
# data labels, custom security annotations,
|
|
582
582
|
# and any declaration that could not be used
|
|
583
|
-
ask telemetry enable # anonymous telemetry is
|
|
583
|
+
ask telemetry enable # ensure anonymous telemetry is enabled
|
|
584
584
|
```
|
|
585
585
|
|
|
586
|
-
**
|
|
587
|
-
|
|
588
|
-
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
|
|
589
588
|
`ask telemetry disable`, `export SOURCECODE_TELEMETRY=0`, or `DO_NOT_TRACK=1`.
|
|
590
589
|
|
|
591
|
-
> **Auditing someone else's code — regulated, client-owned or public-sector?**
|
|
592
|
-
>
|
|
593
|
-
>
|
|
594
|
-
> 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.
|
|
595
593
|
|
|
596
594
|
**A question is not a write — `--no-write` / `ASK_READONLY=1`.** One contract over
|
|
597
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
|
|
@@ -106,7 +106,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
|
|
|
106
106
|
# pip / pipx
|
|
107
107
|
pipx install sourcecode # or: pip install sourcecode
|
|
108
108
|
|
|
109
|
-
ask version # ask 5.8.
|
|
109
|
+
ask version # ask 5.8.14 — and, on a build that has aged,
|
|
110
110
|
# how many releases have probably shipped since
|
|
111
111
|
```
|
|
112
112
|
|
|
@@ -535,18 +535,16 @@ ask config # version, config file path, telemetry status
|
|
|
535
535
|
ask config /repo # + the repository's own sourcecode.config.json:
|
|
536
536
|
# data labels, custom security annotations,
|
|
537
537
|
# and any declaration that could not be used
|
|
538
|
-
ask telemetry enable # anonymous telemetry is
|
|
538
|
+
ask telemetry enable # ensure anonymous telemetry is enabled
|
|
539
539
|
```
|
|
540
540
|
|
|
541
|
-
**
|
|
542
|
-
|
|
543
|
-
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
|
|
544
543
|
`ask telemetry disable`, `export SOURCECODE_TELEMETRY=0`, or `DO_NOT_TRACK=1`.
|
|
545
544
|
|
|
546
|
-
> **Auditing someone else's code — regulated, client-owned or public-sector?**
|
|
547
|
-
>
|
|
548
|
-
>
|
|
549
|
-
> 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.
|
|
550
548
|
|
|
551
549
|
**A question is not a write — `--no-write` / `ASK_READONLY=1`.** One contract over
|
|
552
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,23 +16,49 @@ 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
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
**As of 2026-08-20, release `5.8.14` and the fourth external re-audit:** the audited
|
|
20
|
+
snapshot remains `3dde0376`; the report compares the four audit rounds and scores this one
|
|
21
|
+
**90/100** (75, 80, 78, 90). It exercised 53/61 invocables (87%), ran no application and
|
|
22
|
+
left the repository unchanged. Its 40+ longitudinal functional anchors are unchanged, so
|
|
23
|
+
there is no reported product regression. The `5.8.14` release ships the implementations
|
|
24
|
+
recorded below; they remain distinguished from facts verified on the `5.8.13` subject.
|
|
25
|
+
Only this table declares present state.
|
|
26
|
+
|
|
27
|
+
**Release status:** entries marked “pending `5.8.14`” in their historical wording are
|
|
28
|
+
shipped in `5.8.14`; a re-audit is still required wherever the row says so.
|
|
24
29
|
|
|
25
30
|
| Rows | Current status | Evidence |
|
|
26
31
|
|---|---|---|
|
|
27
|
-
| `AUD-588-B01
|
|
32
|
+
| `AUD-588-B01` / `AUD-589-B01`, `C3-122` | **open, P0 for `risk`; `audit-report` corrected** | `9884488` corrected `audit-report` to refuse with typed `OUTPUT_TOO_LARGE` and produce its requested artifact. `risk` nevertheless exited 0 twice on the first shared-cache invocations with 0 bytes and no `-o` file, then succeeded seven times. `5cfa9ba` now publishes the source, audit-finding, candidate-defect and composed-defect working set, including partial answers. Repeat the real entry-point protocol before closure. |
|
|
28
33
|
| `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
34
|
| `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. |
|
|
30
35
|
| `AUD-588-B05` | **closed** | `c15f5b6`; changed container-wired components block a false `unaffected` disposition. |
|
|
31
|
-
| `AUD-511-R03` / `AUD-588-B07` | **implemented
|
|
36
|
+
| `AUD-511-R03` / `AUD-588-B07` | **implemented, pending 5.8.14 re-audit** | `f613df9` makes ASK-09 parse the typed document from stdout or stderr, including a progress-prefixed stderr stream, and removes the four inherited variables that change its precondition. The regression exercises the real typed refusal shape. The prior claim that the payload premise was false remains retracted as an environment-contamination artifact. |
|
|
32
37
|
| `AUD-588-B08` | **closed** | `c084555`; `impact` publishes its independent stdout-byte budget. |
|
|
33
|
-
| `
|
|
34
|
-
| `AUD-
|
|
35
|
-
| `AUD-
|
|
38
|
+
| `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. |
|
|
39
|
+
| `AUD-513-N01` (`N-1`) | **closed in 5.8.14** | `rename-class` rewrote three Petclinic files under both `ASK_READONLY=1` and `--no-write`, then exited 0. The audit restored the tree; this is a write-policy breach, not an artifact-directory exception. `readonly.guard_mutation()` now refuses before any planned source write or physical rename; help names the command as mutating and regressions cover both readonly controls plus `--dry-run`. |
|
|
40
|
+
| `AUD-513-N02` / `B-4` / `N-5` | **N02/B-4 implemented in 5.8.14; N-5 open** | `posture.summary.unconditional` counted 1,697 on a non-Spring Struts tree and 1,573 on Mall, and `security` was `0/0/0` with no population. The posture projection now uses the canonical Spring IoC bean population, publishes its population/unit and separates unconditional security beans. Regressions cover non-Spring, mixed-bean and conditional/unconditional security fixtures. Progress/advice still use incompatible “Java files” scopes (`N-5`), so the `AUD-588-F02` family remains open. |
|
|
41
|
+
| `AUD-513-B01` / `B-3` / `B-5` | **B01/B-5 implemented in 5.8.14; B-3 closed as revalidated** | A MyBatis XML paired with a `*Mapper.java` interface now takes precedence over an absent `@Mapper` annotation, preserving XML-backed/`@MapperScan` interfaces in `mapper_interfaces` rather than misclassifying them as DTO mappers. `imports_found` now contains only actual Java imports; code, XML and build matches are emitted as `evidence`, including in compact output. `B-3` was stale against the current source: both views consume `JAVA_SPRING_SECTIONS`; a real MyBatis Mapper/XML regression proves the section is retained by `--agent`. |
|
|
42
|
+
| `AUD-513-N03/N04/N07/N08/N09`, `B-6/B-7/B-8`, `D-09` | **N03/N04/N07/N08/N09 implemented in 5.8.14; remainder open** | `impact` now always publishes the `candidates` field its not-found message names, including `[]` when no close symbol exists. Budget advice no longer calls partial snapshot/RIS evidence a warm cache: it identifies that presence and says context/parse are unknown before analysis, whose payload then reports all four actual layers. README operational sections (`clone`, install, build, getting started, troubleshooting and related headings) are never promoted into a project summary; with no descriptive prose compact output publishes `project_summary: null` and `summary_basis`. `security_posture.limitations` is now cache-state invariant; dynamic execution advice travels in `security_posture.operational_hints`. Every numeric output bound rejects negative values at parse time with a structured `INVALID_INPUT` envelope (`flag`, `value`, `expected`); `--limit 0` still means no cap wherever that behavior was published. Budgets overrun, timing coverage is inconsistent, compact hides unresolved identities and cost anchors remain stale. |
|
|
43
|
+
| `AUD-588-B11` (container/units subset) | **partially implemented in 5.8.14** | `d745d31` discovers nested Maven modules; `273ae8e` suppresses unsupported `pr-impact.unaffected_basis`. `e53507d` separates direct impact matches from analysis seeds and implementation classes; `8386744` carries the established container-wiring fact into plan checklists and compare cost dimensions. Source population units and risk-tier wording remain open. |
|
|
44
|
+
| `AUD-511-R02` / `AUD-589-B02` / `AUD-513-N06` | **partially corrected; `data-exposure` open, P1** | Nine of ten measured commands recovered, many to their best historical timings. `data-exposure --config` did not: 42.7 s versus 16.2 s in 5.8.8 and a 28.9 s model, with byte-equivalent output. Measure it with the idle-host, isolated-cache, interleaved-control protocol before changing code, then compare its reuse path with `validation`. |
|
|
45
|
+
| `AUD-588-B02`, `B06`, B11 residuals, `B12` | **B02/B06 closed; B11/B12 open, P2** | `3869c87` excludes explicit EclipseLink from Hibernate applicability and effort; `037223e` publishes provider non-coverage. The re-audit verifies both and the payload reduction; `cf57457` makes aggregate wording name only applicable dimensions. Complete B11 consumer parity and calibrate B12 only from provenance-bearing controlled samples. |
|
|
46
|
+
|
|
47
|
+
### Fourth Re-audit: 5.8.13
|
|
48
|
+
|
|
49
|
+
The fourth pass verifies the current facts that supersede the prior intake. There is no
|
|
50
|
+
crash/traceback and no regression in the published anchors. `B-2/D-05` remains a retracted
|
|
51
|
+
servlet premise, and the audit additionally verifies EclipseLink applicability/non-coverage,
|
|
52
|
+
typed `audit-report` refusal, nested Maven discovery and the `unaffected_basis` correction.
|
|
53
|
+
It leaves the following concrete queue rather than reopening closed facts.
|
|
54
|
+
|
|
55
|
+
| Recommendation | Status and direction |
|
|
56
|
+
|---|---|
|
|
57
|
+
| `AUD-588-F02` shared answer contracts | **Partial.** Reuse the existing authorities for exact target versus implementation cone, named source populations and container reach in plan/compare; do not add a parallel detector. |
|
|
58
|
+
| `AUD-588-F03` versioned cost calibration | **Open.** Capture repository, cache state, sample count and host provenance. The immediately actionable measurement is `data-exposure --config`; clean data is required before recalibration. |
|
|
59
|
+
| Risk cache observability | **Recommended hardening.** Publish working-set unit counts under progress or in the envelope to distinguish an empty compositor from a present-but-incomplete cache. |
|
|
60
|
+
| `AUD-588-F05` coverage expansion | **Locally verified only.** Dirty-tree `verify-edit` and the eight mutating/denied invocables remain unexercised in all four external rounds. |
|
|
61
|
+
| EclipseLink migration automation | **Deferred product feature.** The current applicability and non-coverage facts are verified; provider-specific migration automation is not a corrective fix. |
|
|
36
62
|
|
|
37
63
|
### Re-audit Intake: 5.8.11
|
|
38
64
|
|
|
@@ -594,7 +620,7 @@ class's subject, not its provenance.
|
|
|
594
620
|
|
|
595
621
|
| ID | Item | Found | Severity | Status |
|
|
596
622
|
|---|---|---|---|---|
|
|
597
|
-
| P-1 | Telemetry
|
|
623
|
+
| 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 |
|
|
598
624
|
| 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` |
|
|
599
625
|
|
|
600
626
|
| 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,29 +3,45 @@
|
|
|
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
|
|
9
|
-
>
|
|
10
|
-
>
|
|
11
|
-
>
|
|
12
|
-
>
|
|
13
|
-
>
|
|
6
|
+
> **CURRENT STATE — 2026-08-20 — fourth independent re-audit of 5.8.13**
|
|
7
|
+
>
|
|
8
|
+
> The fourth pass against the unchanged `saint-server` snapshot (`3dde0376`) raises the
|
|
9
|
+
> external score to **90/100** (75 -> 80 -> 78 -> 90), with the same **53/61 invocables
|
|
10
|
+
> (87%)** and no repository writes. It reports **no functional regression**: the 40+
|
|
11
|
+
> longitudinal anchors, including endpoints, posture, verify, contract, data-exposure and
|
|
12
|
+
> MCP, remain byte-equivalent. The audit subject is release `5.8.13`; release `5.8.14`
|
|
13
|
+
> ships the documented remediations without rewriting that external evidence.
|
|
14
|
+
>
|
|
15
|
+
> The prior 5.8.13 intake is superseded where it said that nine defects were new. The
|
|
16
|
+
> re-audit verifies the EclipseLink applicability/non-coverage fix, `audit-report`'s typed
|
|
17
|
+
> output refusal, servlet-mapping retraction, nested Maven discovery and the
|
|
18
|
+
> `unaffected_basis` correction. It also confirms that performance recovered in 9 of 10
|
|
19
|
+
> sampled commands. Historical rows remain below for traceability; this table is the only
|
|
20
|
+
> current correction queue.
|
|
14
21
|
>
|
|
15
22
|
> | Priority | Work | Acceptance direction |
|
|
16
23
|
> |---|---|---|
|
|
17
|
-
> | P0 | `AUD-588-B01` / `AUD-589-B01`
|
|
18
|
-
> | P1 | `AUD-511-
|
|
19
|
-
> |
|
|
20
|
-
> |
|
|
21
|
-
> |
|
|
22
|
-
> |
|
|
23
|
-
>
|
|
24
|
-
> **
|
|
25
|
-
>
|
|
26
|
-
>
|
|
27
|
-
>
|
|
28
|
-
> `
|
|
24
|
+
> | P0 | `AUD-588-B01` / `AUD-589-B01`: `risk` still has a rare early path that exits 0 with neither parseable stdout nor its requested `-o` artifact. | **Instrumented, still open:** `5cfa9ba` publishes source, finding, candidate-defect and composed-defect working-set counts in every final/partial answer. Reproduce at least five cold/shared-cache starts and enforce the real-subprocess output invariant if the early return remains. |
|
|
25
|
+
> | P1 | `AUD-511-R03` / `AUD-588-B07`: ASK-09 remains `not_applicable` although its literal clean-environment probe emits `OUTPUT_TOO_LARGE`. | **Implemented in 5.8.14:** `f613df9` parses the typed document from stdout or stderr and clears the four execution variables that alter the probe. The row may close after a clean-environment field re-audit reports `pass`. |
|
|
26
|
+
> | 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
|
+
> | 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
|
+
> | 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”. | **N02/B-4 implemented in 5.8.14:** posture now counts only Spring IoC bean definitions and states bean/security populations, units and unconditional security beans. **N-5 remains open:** bind progress/advisory counts to the same named population. |
|
|
30
|
+
> | 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. | **B01/B-5 implemented in 5.8.14:** matching MyBatis XML outranks the no-`@Mapper` DTO heuristic, and `imports_found` now contains only actual Java imports while code/XML/build matches use `evidence`. **B-3 closed as revalidated:** `JAVA_SPRING_SECTIONS` is shared by both views; regression proves a real MyBatis section reaches `--agent`. |
|
|
32
|
+
> | 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
|
+
>
|
|
34
|
+
> **Release status:** all entries above marked “pending `5.8.14`” are shipped in
|
|
35
|
+
> `5.8.14`; their external `5.8.13` verification status is intentionally unchanged.
|
|
36
|
+
>
|
|
37
|
+
> **Feature decisions:** `AUD-588-F02` remains the shared remediation for population,
|
|
38
|
+
> unit and reach contracts; the fourth pass confirms it is still partial. `AUD-588-F03`
|
|
39
|
+
> remains a versioned, provenance-bearing calibration feature: add repeated isolated-cache
|
|
40
|
+
> measurements before changing anchors. `AUD-588-F05` remains locally verified only because
|
|
41
|
+
> dirty-tree `verify-edit` and eight mutating/denied invocables were not exercised. The
|
|
42
|
+
> suggested `risk` working-set instrumentation is accepted as observability hardening, not a
|
|
43
|
+
> parallel analysis authority. EclipseLink automation stays deferred and progress stays
|
|
44
|
+
> opt-in.
|
|
29
45
|
|
|
30
46
|
> **CURRENT STATE — 2026-08-19 — 5.8.9 working tree**
|
|
31
47
|
>
|
|
@@ -3,21 +3,62 @@
|
|
|
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 — fourth independent re-audit of 5.8.13**
|
|
7
7
|
>
|
|
8
|
-
> The current release is **5.8.
|
|
9
|
-
>
|
|
10
|
-
>
|
|
11
|
-
>
|
|
8
|
+
> The current audited release is **5.8.13**. Its fourth independent Windows/Git Bash pass
|
|
9
|
+
> against the unchanged `saint-server` snapshot scores **90/100**, up from 75, 80 and 78.
|
|
10
|
+
> It keeps coverage at **53/61 invocables (87%)**, finds no crash/traceback or repository
|
|
11
|
+
> write, and reports no regression in the 40+ longitudinal functional anchors. This is a
|
|
12
|
+
> substantial correction to the previous intake: EclipseLink applicability and disclosure,
|
|
13
|
+
> typed `audit-report` output refusal, nested Maven discovery and the endpoint-disposition
|
|
14
|
+
> disclosure are verified, not open release claims.
|
|
12
15
|
>
|
|
13
|
-
> **
|
|
14
|
-
> `
|
|
15
|
-
>
|
|
16
|
-
>
|
|
17
|
-
>
|
|
18
|
-
>
|
|
19
|
-
>
|
|
20
|
-
>
|
|
16
|
+
> **Release blockers:** `risk` still has a rare exit-0/no-output path and
|
|
17
|
+
> `data-exposure --config` remains 2.6x slower than its 5.8.8 measurement. Release 5.8.14
|
|
18
|
+
> instruments `risk`'s compositor for field reproduction, repairs ASK-09's typed
|
|
19
|
+
> stderr-envelope probe, separates exact impact targets from implementation cones, carries
|
|
20
|
+
> container reach into plan/compare, and corrects EclipseLink aggregate wording. Source
|
|
21
|
+
> population names and provenance-based cost calibration remain P2 work. Dirty-tree
|
|
22
|
+
> `verify-edit` and eight mutating or denied commands remain validation gaps, not asserted
|
|
23
|
+
> failures.
|
|
24
|
+
|
|
25
|
+
> **IMPLEMENTATION UPDATE — released in 5.8.14**
|
|
26
|
+
>
|
|
27
|
+
> `AUD-513-N01` closes the write-policy breach reported on `rename-class`. The policy now
|
|
28
|
+
> distinguishes optional artifact creation from source mutation: a mutation guard stops the
|
|
29
|
+
> entire rename plan before its first write, including the physical Java file rename. The
|
|
30
|
+
> command is now explicit in root help's mutating-command table. Regressions exercise both
|
|
31
|
+
> `--no-write` and `ASK_READONLY=1`, while retaining a successful readonly `--dry-run`.
|
|
32
|
+
>
|
|
33
|
+
> `AUD-513-N02` and `B-4` close the posture population falsehood: the bean summary is now
|
|
34
|
+
> derived from the canonical Spring IoC registry, excludes plain/JPA-only/non-Spring symbols,
|
|
35
|
+
> and declares both population units and unconditional security configurations. `N-5` remains
|
|
36
|
+
> open because it concerns a different progress/advisory population.
|
|
37
|
+
>
|
|
38
|
+
> `AUD-513-B01` closes the MyBatis fact conflict: an XML-backed mapper interface is no longer
|
|
39
|
+
> demoted to a DTO mapper merely because it omits `@Mapper` and relies on `@MapperScan`.
|
|
40
|
+
> `AUD-513-B05` also closes: `imports_found` now names only Java imports, with generic trigger
|
|
41
|
+
> evidence carried separately. `B-3` is closed as revalidated: the agent and compact views
|
|
42
|
+
> share their Java/Spring section authority, now explicitly regressed with a MyBatis pair.
|
|
43
|
+
|
|
44
|
+
> **Recommended product work**
|
|
45
|
+
>
|
|
46
|
+
> First make `risk`'s output promise an end-to-end invariant and expose its initial
|
|
47
|
+
> working-set count so incomplete-cache behavior is diagnosable. Then repair the ASK-09
|
|
48
|
+
> harness to read the emit-seam document and either sanitize or disclose inherited execution
|
|
49
|
+
> variables. Measure `data-exposure` under the isolated-cache, interleaved-control protocol
|
|
50
|
+
> before optimizing it. Complete the shared answer-contract layer (`AUD-588-F02`) by binding
|
|
51
|
+
> existing authorities into impact, plan and compare, and recalibrate cost guidance only from
|
|
52
|
+
> provenance-bearing measurements (`AUD-588-F03`). EclipseLink automation remains deferred;
|
|
53
|
+
> its current applicability and non-coverage disclosure are already verified.
|
|
54
|
+
|
|
55
|
+
> **MCP HARDENING — released in 5.8.13**
|
|
56
|
+
>
|
|
57
|
+
> Deep multi-repository stress testing found that concurrent MCP calls could race the
|
|
58
|
+
> process-global stdout/stderr capture used by the in-process CLI adapter. `b2c9660`
|
|
59
|
+
> serializes that narrow capture seam, preventing one tool response from reaching the MCP
|
|
60
|
+
> host or another tool call. This does not change analysis contracts or reopen the external
|
|
61
|
+
> audit queue; it makes the agent integration reliable under concurrent dispatch.
|
|
21
62
|
|
|
22
63
|
> **5.8.11 RE-AUDIT CORRECTION**
|
|
23
64
|
>
|
|
@@ -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
|
|
|
@@ -138,7 +138,7 @@ pipx install sourcecode # isolated install, no venv needed
|
|
|
138
138
|
|
|
139
139
|
# Verify
|
|
140
140
|
ask version
|
|
141
|
-
# ask 5.8.
|
|
141
|
+
# ask 5.8.14
|
|
142
142
|
```
|
|
143
143
|
|
|
144
144
|
Requires Python 3.9+.
|
|
@@ -1199,7 +1199,7 @@ explaining. The rest do one thing; `ask <command> --help` is the whole story.
|
|
|
1199
1199
|
| `ask retrieve` | parked | Typed knowledge queries over the model — kept working, no longer developed |
|
|
1200
1200
|
| `ask baseline capture\|diff\|trend` | supported | Versioned architectural metrics over time; see [`ask trend`](#ask-trend-dir--how-the-architecture-moved) |
|
|
1201
1201
|
| `ask cache status\|warm\|model\|clear\|freshness` | supported | Cache inspection; `ask cache model` states what a warm buys each command |
|
|
1202
|
-
| `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 |
|
|
1203
1203
|
|
|
1204
1204
|
## Typical workflows
|
|
1205
1205
|
|
|
@@ -1287,7 +1287,7 @@ ask mcp serve
|
|
|
1287
1287
|
ask mcp remove
|
|
1288
1288
|
```
|
|
1289
1289
|
|
|
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.
|
|
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.
|
|
1291
1291
|
|
|
1292
1292
|
---
|
|
1293
1293
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Privacy & Telemetry
|
|
2
2
|
|
|
3
|
-
`ask` includes an anonymous telemetry system that is **
|
|
3
|
+
`ask` includes an anonymous telemetry system that is **on by default**. It collects only bounded usage metadata: no source code, paths, secrets, or repository content are ever collected. Disable it with `ask telemetry disable`, `SOURCECODE_TELEMETRY=0`, or `DO_NOT_TRACK=1`.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Telemetry is enabled by default because ASK's product operation depends on command and performance coverage. The disable controls are honored before any event is sent, including in CI.
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
12
|
ask telemetry status # check current setting, and whether you ever chose
|
|
13
|
-
ask telemetry enable #
|
|
14
|
-
ask telemetry disable #
|
|
13
|
+
ask telemetry enable # enable (remembered)
|
|
14
|
+
ask telemetry disable # disable (remembered)
|
|
15
15
|
|
|
16
16
|
export SOURCECODE_TELEMETRY=0 # disable via environment variable
|
|
17
17
|
export SOURCECODE_TELEMETRY=1 # force enable via environment variable
|
|
@@ -23,13 +23,13 @@ Precedence, highest first:
|
|
|
23
23
|
1. `SOURCECODE_TELEMETRY` environment variable (`0` = off, `1` = on)
|
|
24
24
|
2. `DO_NOT_TRACK` environment variable (any value other than empty/`0` disables)
|
|
25
25
|
3. Your saved choice in the config file (`telemetry enable` / `disable`)
|
|
26
|
-
4. Default: **
|
|
26
|
+
4. Default: **on** — no choice on record enables bounded anonymous events
|
|
27
27
|
|
|
28
28
|
---
|
|
29
29
|
|
|
30
30
|
## Why telemetry exists
|
|
31
31
|
|
|
32
|
-
ASK Engine is a local analysis tool with
|
|
32
|
+
ASK Engine is a local analysis tool with bounded anonymous usage visibility by default.
|
|
33
33
|
Anonymous telemetry helps answer questions like:
|
|
34
34
|
|
|
35
35
|
- Which commands do developers actually use?
|
|
@@ -54,7 +54,8 @@ When telemetry is enabled, these fields are sent per command invocation:
|
|
|
54
54
|
| `py` | `3.11` | Python major.minor only |
|
|
55
55
|
| `os` | `macos` | OS family: linux / macos / windows / other |
|
|
56
56
|
| `arch` | `x64` | CPU family: x64 / arm64 / other |
|
|
57
|
-
| `cmd` | `analyze` | Command
|
|
57
|
+
| `cmd` | `analyze` | Command family: analyze / prepare-context / telemetry / mcp |
|
|
58
|
+
| `command` | `spring-audit` | Closed ASK command identifier; no arguments or paths |
|
|
58
59
|
| `flags` | `["--agent"]` | Flag names only (allowlist), no values |
|
|
59
60
|
| `output_fmt` | `json` | Output format: json or yaml |
|
|
60
61
|
| `repo_size` | `small` | File count range bucket (see below) |
|
|
@@ -74,8 +75,8 @@ which capabilities agents actually use.
|
|
|
74
75
|
The tool **arguments are never sent** — they carry repository paths. Neither is any part
|
|
75
76
|
of the result. The name is a fixed identifier from ASK Engine's own tool registry, not
|
|
76
77
|
user input, and it is still shape-validated by the sanitization layer before transmission.
|
|
77
|
-
These events follow the same
|
|
78
|
-
is
|
|
78
|
+
These events follow the same setting as everything else: they are recorded only while
|
|
79
|
+
telemetry is enabled.
|
|
79
80
|
|
|
80
81
|
### Repo size buckets
|
|
81
82
|
|
|
@@ -135,11 +136,13 @@ This filter is tested in `tests/test_telemetry.py`. Tests explicitly verify that
|
|
|
135
136
|
|
|
136
137
|
## Data transmission
|
|
137
138
|
|
|
138
|
-
- Events are sent to `https://
|
|
139
|
+
- Events are sent to `https://qkndlmyekvujjdgthtmz.supabase.co/functions/v1/telemetry` (configurable via `SOURCECODE_TELEMETRY_ENDPOINT`)
|
|
139
140
|
- Transmission happens in a background daemon thread — it never blocks the CLI
|
|
140
141
|
- Timeout is 3 seconds — if the request fails or times out, it is silently dropped
|
|
141
142
|
- No retries — a missed event is acceptable
|
|
142
143
|
- No queuing or batching to disk
|
|
144
|
+
- The server rejects payloads over 16 KiB and applies an in-memory rate limit of 120 requests per minute per forwarding address
|
|
145
|
+
- Events are retained for 90 days; the `purge_telemetry_events()` function is scheduled in the Supabase deployment
|
|
143
146
|
|
|
144
147
|
---
|
|
145
148
|
|
|
@@ -161,16 +164,16 @@ The file looks like:
|
|
|
161
164
|
}
|
|
162
165
|
```
|
|
163
166
|
|
|
164
|
-
If you run `ask telemetry enable` or `disable`, `enabled` is set accordingly and that choice is remembered. If you have never made an explicit choice, the `enabled` key is absent and telemetry
|
|
167
|
+
If you run `ask telemetry enable` or `disable`, `enabled` is set accordingly and that choice is remembered. If you have never made an explicit choice, the `enabled` key is absent and telemetry follows the **on** default. `ask telemetry status` tells you whether the default applies or you explicitly disabled it. You can edit or delete this file directly at any time.
|
|
165
168
|
|
|
166
169
|
---
|
|
167
170
|
|
|
168
171
|
## First-run notice
|
|
169
172
|
|
|
170
|
-
The first time you run `ask` interactively (not in CI, not piped), you are shown a brief, one-time notice explaining that telemetry is **
|
|
173
|
+
The first time you run `ask` interactively (not in CI, not piped), you are shown a brief, one-time notice explaining that telemetry is **on**, what is collected, and how to disable it.
|
|
171
174
|
|
|
172
|
-
- It is
|
|
173
|
-
-
|
|
175
|
+
- It is a disclosure, not a prompt — no answer is required and your input is never read
|
|
176
|
+
- Printing it changes no setting
|
|
174
177
|
- It is shown **once only**
|
|
175
178
|
- In CI environments (GitHub Actions, CircleCI, etc.) the notice is skipped
|
|
176
179
|
- When piped or run non-interactively, the notice is skipped
|
|
@@ -179,7 +182,7 @@ The first time you run `ask` interactively (not in CI, not piped), you are shown
|
|
|
179
182
|
|
|
180
183
|
## CI environments
|
|
181
184
|
|
|
182
|
-
|
|
185
|
+
Telemetry remains on in CI unless `SOURCECODE_TELEMETRY=0` or `DO_NOT_TRACK=1` is set. CI is detected only to skip the first-run notice, which has no terminal to appear on:
|
|
183
186
|
|
|
184
187
|
`CI`, `CONTINUOUS_INTEGRATION`, `GITHUB_ACTIONS`, `CIRCLECI`, `TRAVIS`, `JENKINS_URL`, `BUILDKITE`, `GITLAB_CI`, `TF_BUILD`, `TEAMCITY_VERSION`, `DRONE`, `SEMAPHORE`
|
|
185
188
|
|
|
@@ -191,7 +194,7 @@ The entire telemetry implementation is in `src/sourcecode/telemetry/`. You can r
|
|
|
191
194
|
|
|
192
195
|
Key files:
|
|
193
196
|
- `config.py` — configuration read/write
|
|
194
|
-
- `consent.py` — first-run
|
|
197
|
+
- `consent.py` — first-run disclosure notice
|
|
195
198
|
- `events.py` — event schema
|
|
196
199
|
- `filters.py` — privacy sanitization (the critical safety layer)
|
|
197
200
|
- `transport.py` — HTTP transmission
|
|
@@ -139,7 +139,9 @@ def build_change_plan(
|
|
|
139
139
|
),
|
|
140
140
|
}
|
|
141
141
|
|
|
142
|
-
|
|
142
|
+
# The user-facing match names the requested target; planning must retain the
|
|
143
|
+
# subtype-expanded seeds that the blast-radius authority actually analysed.
|
|
144
|
+
seeds = list(blast.get("analysis_seed_fqns") or blast["matched_fqns"])
|
|
143
145
|
container_wired = [w.to_dict() for w in detect_classes(cir, seeds)]
|
|
144
146
|
meta = _node_meta(cir)
|
|
145
147
|
affected = _dependents_closure(cir.reverse_graph or {}, seeds, max_depth, _NODE_CAP)
|
|
@@ -210,6 +212,11 @@ def build_change_plan(
|
|
|
210
212
|
checklist.append(
|
|
211
213
|
f"{len(sec)} secured endpoint(s) in scope — re-check authorization."
|
|
212
214
|
)
|
|
215
|
+
if container_wired:
|
|
216
|
+
checklist.append(
|
|
217
|
+
f"{len(container_wired)} container-wired component(s) are in scope — "
|
|
218
|
+
"review their declared framework wiring because fan-in does not measure it."
|
|
219
|
+
)
|
|
213
220
|
txn = blast.get("transactional_boundaries_touched") or []
|
|
214
221
|
if txn:
|
|
215
222
|
checklist.append(f"{len(txn)} transactional boundary/boundaries in scope.")
|