sourcecode 5.9.13__tar.gz → 5.9.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.
- sourcecode-5.9.14/.github/workflows/windows-regression.yml +66 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/CHANGELOG.md +11 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/PKG-INFO +5 -5
- {sourcecode-5.9.13 → sourcecode-5.9.14}/README.md +4 -4
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/DEFECT-LEDGER.md +23 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/DEVELOPMENT-ROADMAP.md +38 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/EXECUTIVE-ROADMAP.md +14 -1
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/MANUAL-USUARIO.md +2 -2
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/PRODUCT-ROUTE.md +5 -3
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/USER_GUIDE.md +4 -4
- {sourcecode-5.9.13 → sourcecode-5.9.14}/pyproject.toml +1 -1
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/__init__.py +1 -1
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/cli.py +73 -7
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/release_info.py +1 -1
- {sourcecode-5.9.13 → sourcecode-5.9.14}/.github/workflows/build-windows.yml +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/.github/workflows/perf-gate.yml +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/.github/workflows/windows-battery.yml +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/.gitignore +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/.ruff.toml +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/CLAUDE.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/CODE_OF_CONDUCT.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/CONTRIBUTING.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/LICENSE +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/NOTICE +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/SECURITY.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/AUDIT-2026-08-22-5.8.22.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/AUDIT-2026-08-23-5.8.24.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/AUDIT-2026-08-23-COMMERCIAL.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/AUDIT-2026-08-23-CORPUS-AMPLIADO.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/AUDIT-2026-08-23-EXTERNAL-5.8.25.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/AUDIT-2026-08-23-EXTERNAL-5.8.26.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/AUDIT-2026-08-23-THINGSBOARD-FINDINGS.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.26.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.27.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.28.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.31.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.32.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/AUDIT-2026-08-26-EXTERNAL-5.9.0.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/AUDIT-2026-08-26-MONETIZATION.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/AUDIT-2026-08-27-EXTERNAL-5.9.2.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/AUDIT-2026-08-27-EXTERNAL-5.9.3.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/AUDIT-2026-08-28-EXTERNAL-5.9.10.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/AUDIT-TESTING-CORPUS-2026-08-22.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/CACHE.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/COMMERCIAL-OFFER.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/CUSTOMER-VALIDATION.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/DEMO-5MIN.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/DOCUMENTATION-HYGIENE-2026-08-23.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/EXECUTION-PLAN-12MO.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/MODERNIZATION.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/PRODUCT_AUDIT.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/PRODUCT_IDENTITY.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/PRODUCT_TIERS.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/RC1-CHECKLIST.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/RELEASE-CHECKLIST.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/STRATEGY-2026-08-26-AGENT-CONTEXT.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/CATALOG-retrieval-intents.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/DESIGN-assessment-deployment-evidence.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/DESIGN-assessment-report.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/DESIGN-build-closure-provenance.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/DESIGN-knowledge-provider-integration.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/DESIGN-p5.3b-statement-surface.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/DESIGN-p5.5-span-index.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/DESIGN-p6-semantic-impact-engine.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/DESIGN-p6-semantic-integration-engine.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/DESIGN-p7-semantic-services.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/DESIGN-pack-gate-ci.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/DESIGN-pack-manifest.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/DESIGN-pack-mcp-api.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/DESIGN-robustness-security-inference.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/DESIGN-semantic-retrieval.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/EPV-p6-class-typeref.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/REPORT-p6-flow-analyzer-comparison.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/REPORT-p6-integration-detector-comparison.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/REPORT-p8-flow-analyzer-migration.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/REPORT-p9-integration-detector-migration.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/adr/0001-semantic-ir.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/adr/0002-source-evidence-boundary.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/adr/0003-architectural-characterization.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/adr/0004-semantic-retrieval.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/adr/0005-evidence-reconciliation.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/adr/0006-performance-harness.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/adr/0007-composition-semantics.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/adr/0008-answer-coherence.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/consumer-disposition-inventory.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/overview.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/product-architecture-review.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/product-strategy-layering.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/semantic-ir-consumer-matrix.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/semantic-ir-roadmap.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/baseline-ci.yml +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/commercial-pipeline-audit.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/contracts-ci.yml +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/contracts.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/eval/2026-06-15-petclinic-rest-issue11-vets-pagination.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/eval/2026-06-15-petclinic-rest-issue147-validation.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/eval/2026-06-15-petclinic-rest-workflow.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/eval/2026-06-15-phase18-openapi-surface.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/eval/2026-06-15-phase20-validation-surface.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/eval/2026-06-16-broadleaf-checkout-impact-fieldtest.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/eval/2026-06-16-petclinic-rest-issue11-weakness2-closed.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/eval/2026-06-16-spring-petclinic-issue2333-dead-vets.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/licensing-schema.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/migrate-check.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/pack-gate-github-actions.yml +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/pack-gate-gitlab.yml +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/README.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/REGRESSION-GATE.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.15/SUMMARY.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.15/alfresco__ask__cold.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.15/alfresco__ask__warm.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.15/broadleaf__ask__cold.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.15/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.15/eureka__ask__cold.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.15/eureka__ask__warm.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.15/jenkins__ask__cold.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.15/jenkins__ask__warm.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.15/jobrunr__ask__cold.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.15/jobrunr__ask__warm.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.15/keycloak__ask__cold.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.15/keycloak__ask__warm.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.15/neo4j__ask__cold.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.15/neo4j__ask__warm.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.15/ofbiz__ask__cold.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.15/ofbiz__ask__warm.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.15/openmrs__ask__cold.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.15/openmrs__ask__warm.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.15/petclinic__ask__cold.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.15/petclinic__ask__warm.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.16/SUMMARY.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.16/alfresco__ask__cold.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.16/alfresco__ask__warm.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.16/broadleaf__ask__cold.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.16/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.16/eureka__ask__cold.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.16/eureka__ask__warm.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.16/jenkins__ask__cold.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.16/jenkins__ask__warm.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.16/jobrunr__ask__cold.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.16/jobrunr__ask__warm.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.16/keycloak__ask__cold.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.16/keycloak__ask__warm.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.16/neo4j__ask__cold.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.16/neo4j__ask__warm.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.16/ofbiz__ask__cold.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.16/ofbiz__ask__warm.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.16/openmrs__ask__cold.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.16/openmrs__ask__warm.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.16/petclinic__ask__cold.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/2.5.16/petclinic__ask__warm.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/gate-latest/README.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/gate-latest/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/gate-latest/broadleaf__endpoints__warm.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/gate-latest/broadleaf__migrate-check__warm.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/gate-latest/broadleaf__posture__warm.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/gate-latest/broadleaf__spring-audit__warm.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/gate-latest/broadleaf__validation__warm.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/baselines/reference-best/README.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/perf/corpus-testing-2026-08-22.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/posture.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/privacy.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/pro-experience-audit.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/schema.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/spec/envelope-v1.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/docs/spring-audit-ci.yml +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/hatch_build.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/scripts/compare_integration_engines.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/scripts/context_cost_harness.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/scripts/customer_smoke_test.sh +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/scripts/generate_jdk_exports.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/scripts/perf_gate.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/scripts/perf_harness.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/scripts/sync_gate_anchors.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/scripts/test_fast.sh +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/__main__.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/access_drift.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/adaptive_scanner.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/analysis_budget.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/answer_bounds.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/archetype.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/architectural_baseline.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/architectural_delta.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/architecture_analyzer.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/architecture_summary.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/ast_extractor.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/audit_clusters.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/audit_recipe.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/audit_report.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/audit_since.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/audit_verify.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/baseline_attestation.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/baseline_autocapture.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/breaking_changes.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/build_modules.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/build_stamp.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/bundled_docs.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/c4_render.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/cache.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/cache_model.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/cache_observation.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/call_surface.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/caller_metrics.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/caller_reach.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/canonical_ir.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/chain_rules.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/change_plan.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/ci_output.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/cir_graphs.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/classifier.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/client_calls.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/code_notes_analyzer.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/compare.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/confidence_analyzer.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/constraint_diff.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/consumer_join.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/container_wiring.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/context_cache.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/context_graph.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/context_scorer.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/context_summarizer.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/contract_diff.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/contract_init.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/contract_model.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/contract_pipeline.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/coverage_parser.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/cve_feed.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/cve_reachability.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/data_exposure.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/data_labels.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/declarations.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/defect_classes/__init__.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/defect_classes/registry.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/defect_identity.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/degradation.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/dependency_analyzer.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/deployment_prefix.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/detach.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/detectors/__init__.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/detectors/base.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/detectors/csproj_parser.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/detectors/dart.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/detectors/dotnet.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/detectors/elixir.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/detectors/go.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/detectors/heuristic.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/detectors/hybrid.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/detectors/java.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/detectors/jvm_ext.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/detectors/nodejs.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/detectors/parsers.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/detectors/php.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/detectors/project.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/detectors/python.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/detectors/ruby.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/detectors/rust.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/detectors/systems.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/detectors/terraform.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/detectors/tooling.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/doc_analyzer.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/dynamic_argument_surface.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/empty_reach.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/endpoint_disposition.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/endpoint_literals.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/endpoint_metrics.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/entrypoint_classifier.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/env_analyzer.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/envelope.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/environment_resolution.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/error_schema.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/evidence_provider.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/execution_plan.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/explain.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/explain_endpoint.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/facts/__init__.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/facts/registry.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/field_deprecations.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/file_chunker.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/file_classifier.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/filter_surface.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/findings_baseline.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/format_contract.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/fqn_utils.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/functional_routes.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/gate_anchors.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/git_analyzer.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/git_checkout.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/github_diff.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/graph_analyzer.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/graph_evidence.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/hibernate_strat.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/identity_fallback.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/integration_coordinates.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/intent_router.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/jdk_exports.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/license.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/manifest_cache.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/mcp/__init__.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/mcp/dependency_import.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/mcp/onboarding/applier.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/mcp/onboarding/backup.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/mcp/onboarding/detector.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/mcp/onboarding/planner.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/mcp/orchestrator.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/mcp/registry.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/mcp/runner.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/mcp/server.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/mcp_nudge.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/metrics_analyzer.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/migrate_check.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/migration_apply.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/migration_blast.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/non_coverage.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/openapi_surface.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/openrewrite_recipe.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/output_bounds.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/output_budget.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/output_ceiling.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/output_encoding.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/output_sink.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/pack_manifest.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/packs.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/parallel.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/parse_cache.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/partial_contract.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/path_admission.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/path_display.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/path_filters.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/perf.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/phased_run.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/pipe_contract.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/posture.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/pr_comment_renderer.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/pr_impact.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/pr_risk.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/prepare_context.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/product_info.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/progress.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/provenance.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/ranking_engine.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/readiness_timeline.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/readonly.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/reconciliation.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/redactor.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/reference_facts.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/regress.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/regulatory_pack.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/relevance_scorer.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/remediation_diff.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/remediation_flow.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/remediation_report.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/remedies.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/rename_refactor.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/repo_classifier.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/repository_ir.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/resource_budget.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/retrieval/__init__.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/retrieval/context.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/retrieval/errors.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/retrieval/executor.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/retrieval/planner.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/retrieval/query.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/retrieval/request.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/retrieval/resolution.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/retrieval/result.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/retrieval/retriever.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/retrieval/runtime.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/retrieval/steps.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/retrieval/steps_endpoint.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/retrieval/steps_graph.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/retrieval/steps_impact.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/retrieval/steps_intf.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/retrieval/steps_struct.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/retrieval/steps_txsec.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/ris.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/risk.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/risk_model.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/rule_catalog.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/rule_pass.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/runs.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/runtime_classifier.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/sarif.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/sarif_emit.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/scanner.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/schema.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/schema_producers.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/schema_registry.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/schemas/core-analysis-v1.schema.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/schemas/cve-reachability-v1.schema.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/schemas/endpoints-v1.schema.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/schemas/envelope-v1.schema.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/schemas/pr-impact-v1.schema.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/schemas/verify-edit-v1.schema.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/schemas/verify-v1.schema.json +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/security_chain.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/security_config.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/security_config_scan.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/security_posture.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/selection_contract.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/self_audit.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/selftest.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/semantic_analyzer.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/semantic_impact_engine.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/semantic_integration_engine.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/semantic_services.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/serializer.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/servlet_surface.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/source_text.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/spring_event_topology.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/spring_findings.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/spring_impact.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/spring_model.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/spring_profiles.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/spring_properties.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/spring_security_audit.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/spring_semantic.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/spring_tx_analyzer.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/sql_taint.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/summarizer.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/target_admission.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/telemetry/__init__.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/telemetry/config.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/telemetry/consent.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/telemetry/events.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/telemetry/filters.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/telemetry/transport.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/test_gap_ranking.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/test_sources.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/text_input.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/timeline.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/timeline_cache.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/token_estimate.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/tree_utils.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/type_usage_surface.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/validation_inference.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/validation_surface.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/verify_edit.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/verify_repo.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/verify_rules.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/version_check.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/vex.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/waivers.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/watch_loop.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/wired_surface.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/src/sourcecode/workspace.py +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/supabase/functions/README.md +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/supabase/functions/get-license/index.ts +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/supabase/functions/lemonsqueezy-webhook/index.ts +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/supabase/functions/telemetry/index.ts +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/supabase/sql/license_event_ordering.sql +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/supabase/sql/licensing_schema.sql +0 -0
- {sourcecode-5.9.13 → sourcecode-5.9.14}/supabase/sql/telemetry_events.sql +0 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
name: Windows CLI regressions
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [master]
|
|
6
|
+
pull_request:
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
|
|
9
|
+
# S-10 / AUD-591-A10: the product declares Windows support, but Linux CI cannot
|
|
10
|
+
# observe Git Bash rewriting a route argument such as `/owners` to an absolute
|
|
11
|
+
# Windows path. Keep both the normal Python regression suite and the actual
|
|
12
|
+
# Git Bash invocation on a Windows runner.
|
|
13
|
+
jobs:
|
|
14
|
+
windows-cli:
|
|
15
|
+
runs-on: windows-latest
|
|
16
|
+
timeout-minutes: 15
|
|
17
|
+
|
|
18
|
+
steps:
|
|
19
|
+
- uses: actions/checkout@v4
|
|
20
|
+
|
|
21
|
+
- uses: actions/setup-python@v5
|
|
22
|
+
with:
|
|
23
|
+
python-version: "3.11"
|
|
24
|
+
|
|
25
|
+
- name: Install test dependencies
|
|
26
|
+
shell: pwsh
|
|
27
|
+
run: |
|
|
28
|
+
python -m pip install --upgrade pip
|
|
29
|
+
python -m pip install -e ".[dev]"
|
|
30
|
+
|
|
31
|
+
- name: Run Windows encoding and route-prefix regressions
|
|
32
|
+
shell: bash
|
|
33
|
+
run: |
|
|
34
|
+
set -euo pipefail
|
|
35
|
+
python -m pytest -q -n 0 \
|
|
36
|
+
tests/test_encoding_regression.py \
|
|
37
|
+
tests/test_output_encoding.py \
|
|
38
|
+
tests/test_path_prefix_selection.py
|
|
39
|
+
|
|
40
|
+
- name: Prove Git Bash cannot turn a route filter into a clean zero
|
|
41
|
+
shell: bash
|
|
42
|
+
run: |
|
|
43
|
+
set -euo pipefail
|
|
44
|
+
fixture="$RUNNER_TEMP/ask-prefix-fixture"
|
|
45
|
+
mkdir -p "$fixture/src/main/java/com/acme"
|
|
46
|
+
cat > "$fixture/src/main/java/com/acme/OwnerController.java" <<'EOF'
|
|
47
|
+
package com.acme;
|
|
48
|
+
import org.springframework.web.bind.annotation.*;
|
|
49
|
+
@RestController
|
|
50
|
+
@RequestMapping("/owners")
|
|
51
|
+
public class OwnerController {
|
|
52
|
+
@GetMapping("/list") public String list() { return "ok"; }
|
|
53
|
+
}
|
|
54
|
+
EOF
|
|
55
|
+
|
|
56
|
+
# Do not set MSYS_NO_PATHCONV here: this is the shell transformation
|
|
57
|
+
# the guard must diagnose. A successful empty result is a false
|
|
58
|
+
# negative; reject it and require the actionable Git Bash hint.
|
|
59
|
+
set +e
|
|
60
|
+
python run_cli.py endpoints "$fixture" --path-prefix /owners --format json \
|
|
61
|
+
> "$RUNNER_TEMP/ask-prefix.stdout" \
|
|
62
|
+
2> "$RUNNER_TEMP/ask-prefix.stderr"
|
|
63
|
+
status=$?
|
|
64
|
+
set -e
|
|
65
|
+
test "$status" -ne 0
|
|
66
|
+
grep -F "Git Bash" "$RUNNER_TEMP/ask-prefix.stderr"
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [5.9.14] — 2026-08-30
|
|
4
|
+
|
|
5
|
+
*AUD-619 intake, Windows reliability follow-up and release alignment.*
|
|
6
|
+
|
|
7
|
+
**Changed**
|
|
8
|
+
|
|
9
|
+
- Integrated the latest `master` fixes for Windows Git Bash routing, response
|
|
10
|
+
metadata preservation and nonbinding analysis-budget disclosure.
|
|
11
|
+
- Preserved the audit boundary: native Windows repetition, cache-write lifecycle,
|
|
12
|
+
review-pr normalization and process teardown remain verification work.
|
|
13
|
+
|
|
3
14
|
## [5.9.13] — 2026-08-28
|
|
4
15
|
|
|
5
16
|
*AUD-618 remediation and release-alignment patch.*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sourcecode
|
|
3
|
-
Version: 5.9.
|
|
3
|
+
Version: 5.9.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
|
|
@@ -59,7 +59,7 @@ Description-Content-Type: text/markdown
|
|
|
59
59
|
> question. All analysis is local and deterministic; see [Privacy](#configuration--privacy)
|
|
60
60
|
> before inspecting a repository whose telemetry policy you need to control.
|
|
61
61
|
|
|
62
|
-

|
|
63
63
|

|
|
64
64
|
|
|
65
65
|
Copyright (c) 2026 Dominique Haroun. All rights reserved. ASK Engine 5.7.0 and
|
|
@@ -196,7 +196,7 @@ set `ASK_MAX_RSS_MB=<megabytes>`; if the process exceeds it, ASK refuses the
|
|
|
196
196
|
answer with `MEMORY_TOO_LARGE`, including the observed peak and limit. Leave it
|
|
197
197
|
unset, or set it to `0`, to disable the ceiling explicitly.
|
|
198
198
|
|
|
199
|
-
**Current performance status.** Release 5.9.
|
|
199
|
+
**Current performance status.** Release 5.9.14 retains the shared Canonical IR
|
|
200
200
|
path used by `validation` and now passes that same CIR into labelled `data-exposure`
|
|
201
201
|
runs; the no-label path remains parse-free. These are implementation properties,
|
|
202
202
|
not duration promises. It also removes two repeated walks of the same file tree in
|
|
@@ -233,7 +233,7 @@ in `overlapping_paths`; a missing or non-directory path is rejected as structure
|
|
|
233
233
|
invalid input rather than treated as an empty repository. This prevents silent
|
|
234
234
|
entitlement errors in CI and does not change per-repository gates or billing.
|
|
235
235
|
|
|
236
|
-
Release 5.9.
|
|
236
|
+
Release 5.9.14 also carries the boundary-contract hardening: missing consumer repositories,
|
|
237
237
|
malformed CVE feeds and unresolved `pack gate --since` refs fail as structured
|
|
238
238
|
input errors; duplicate same-commit baselines are never overwritten. `posture
|
|
239
239
|
--diff` validates unknown profiles when the repository declares profiles. In
|
|
@@ -266,7 +266,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
|
|
|
266
266
|
# pip / pipx
|
|
267
267
|
pipx install sourcecode # or: pip install sourcecode
|
|
268
268
|
|
|
269
|
-
ask version # ask 5.9.
|
|
269
|
+
ask version # ask 5.9.14 — and, on a build that has aged,
|
|
270
270
|
# how many releases have probably shipped since
|
|
271
271
|
```
|
|
272
272
|
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
> question. All analysis is local and deterministic; see [Privacy](#configuration--privacy)
|
|
11
11
|
> before inspecting a repository whose telemetry policy you need to control.
|
|
12
12
|
|
|
13
|
-

|
|
14
14
|

|
|
15
15
|
|
|
16
16
|
Copyright (c) 2026 Dominique Haroun. All rights reserved. ASK Engine 5.7.0 and
|
|
@@ -147,7 +147,7 @@ set `ASK_MAX_RSS_MB=<megabytes>`; if the process exceeds it, ASK refuses the
|
|
|
147
147
|
answer with `MEMORY_TOO_LARGE`, including the observed peak and limit. Leave it
|
|
148
148
|
unset, or set it to `0`, to disable the ceiling explicitly.
|
|
149
149
|
|
|
150
|
-
**Current performance status.** Release 5.9.
|
|
150
|
+
**Current performance status.** Release 5.9.14 retains the shared Canonical IR
|
|
151
151
|
path used by `validation` and now passes that same CIR into labelled `data-exposure`
|
|
152
152
|
runs; the no-label path remains parse-free. These are implementation properties,
|
|
153
153
|
not duration promises. It also removes two repeated walks of the same file tree in
|
|
@@ -184,7 +184,7 @@ in `overlapping_paths`; a missing or non-directory path is rejected as structure
|
|
|
184
184
|
invalid input rather than treated as an empty repository. This prevents silent
|
|
185
185
|
entitlement errors in CI and does not change per-repository gates or billing.
|
|
186
186
|
|
|
187
|
-
Release 5.9.
|
|
187
|
+
Release 5.9.14 also carries the boundary-contract hardening: missing consumer repositories,
|
|
188
188
|
malformed CVE feeds and unresolved `pack gate --since` refs fail as structured
|
|
189
189
|
input errors; duplicate same-commit baselines are never overwritten. `posture
|
|
190
190
|
--diff` validates unknown profiles when the repository declares profiles. In
|
|
@@ -217,7 +217,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
|
|
|
217
217
|
# pip / pipx
|
|
218
218
|
pipx install sourcecode # or: pip install sourcecode
|
|
219
219
|
|
|
220
|
-
ask version # ask 5.9.
|
|
220
|
+
ask version # ask 5.9.14 — and, on a build that has aged,
|
|
221
221
|
# how many releases have probably shipped since
|
|
222
222
|
```
|
|
223
223
|
|
|
@@ -14,6 +14,29 @@ Status values: `open` · `in-progress` · `closed <version>` · `by-design` (wit
|
|
|
14
14
|
The facts these rows are keyed to are published: `ask schema facts-v1` prints the registry
|
|
15
15
|
(authority, definition, consumers, parity test) that the release battery enforces.
|
|
16
16
|
|
|
17
|
+
## Current Synchronization — External Audit `AUD-619`
|
|
18
|
+
|
|
19
|
+
**Re-audit of release `5.9.13`, received 2026-08-28.** The previous apparent
|
|
20
|
+
closure of Bug R is withdrawn: identical Windows invocations failed five times and
|
|
21
|
+
then succeeded once, exposing a high-frequency race rather than a binary version
|
|
22
|
+
state. The score is 6.0/10. The decision remains **patch forward**, with a minimum
|
|
23
|
+
30-run per-command closure bar.
|
|
24
|
+
|
|
25
|
+
| ID | Severity | Status | Evidence and required closure |
|
|
26
|
+
|---|---:|---|---|
|
|
27
|
+
| `AUD-619-R` | Critical maximum | **open, P0** | `migrate-check` failed 5/6 identical runs; `risk`, `verify`, `audit-report` and `migrate-apply` also remain silent or hang. The known mechanism is Windows `spawn`/`DuplicateHandle` followed by an unbounded wait. Implement deterministic fallback or fail-fast bounded worker handling, then run >=30 Windows/pipx repetitions per affected command. |
|
|
28
|
+
| `AUD-619-CACHE-WRITE` | High | **open, P1** | `tutorials` produced complete 21.7 KB output before a further minute in `building cache entry`. Profile serialization, filesystem and lock costs and separate answer delivery from post-delivery cache work. |
|
|
29
|
+
| `AUD-619-REVIEW-PR` | High | **open, P1** | One of seven runs on a valid Git repository returned lowercase `no_git_repo`; six returned canonical `NO_DIFF_SOURCE`. Find and normalize the nondeterministic fallback. |
|
|
30
|
+
| `AUD-619-WIN-PROC` | Medium | **open, platform-blocked** | Root `--agent` wrote valid 41,336-byte JSON but stayed alive to an external timeout; three descendants remained. Validate native Windows teardown and Job Object lifetime. |
|
|
31
|
+
| `AUD-619-I` | High | **re-opened for comparable measurement** | Compact sizes differed with RIS state: 3,496 bytes cold and 31,260 bytes after partial warm. Publish a reproducible priming sequence before deciding the contract. |
|
|
32
|
+
| `AUD-619-7` | Medium | **partially fixed** | Ambiguity is explained; suggestions remain correctly conditional on a close command candidate. |
|
|
33
|
+
| `AUD-619-WATCH` | Low | **closed/no-repro** | Clean small-repository run completed in 0.526s. |
|
|
34
|
+
|
|
35
|
+
`audit-report --from-risk` produced a valid 156 KB report, confirming that report
|
|
36
|
+
rendering is healthy when the risk computation is bypassed. Preserve the prior Q/E/F/P
|
|
37
|
+
and command-family closures. Commercial positioning remains bounded pilots only at
|
|
38
|
+
the provisional `$25-35/developer/month` hypothesis.
|
|
39
|
+
|
|
17
40
|
## Current Synchronization — External Audit `AUD-618`
|
|
18
41
|
|
|
19
42
|
**Re-audit of release `5.9.12`, received 2026-08-28.** The score improved modestly
|
|
@@ -1,5 +1,43 @@
|
|
|
1
1
|
# ASK — Development Roadmap
|
|
2
2
|
|
|
3
|
+
### External Audit Intake — `AUD-619` re-audit, release 5.9.13
|
|
4
|
+
|
|
5
|
+
The follow-up received 2026-08-28 materially revises the apparent closure of
|
|
6
|
+
`AUD-618-R`. Across repeated Windows runs, the same invocation can fail silently
|
|
7
|
+
five times and succeed on the sixth; the observed failure rate is approximately
|
|
8
|
+
50-90% depending on command. Small 3-10 run samples are therefore insufficient
|
|
9
|
+
to label the defect fixed. The score was 6.0/10, down from 6.3/10, not because a
|
|
10
|
+
code regression is proven between releases but because the reliability risk is
|
|
11
|
+
now better measured.
|
|
12
|
+
|
|
13
|
+
**Engineering decision: patch forward from 5.9.13; do not roll back.** The audit
|
|
14
|
+
confirms that the regression is a high-frequency race, not a stable version flag,
|
|
15
|
+
and that `audit-report --from-risk` can produce a valid 156 KB report. Rollback
|
|
16
|
+
would not remove the race and would discard verified fixes. The closure bar is now
|
|
17
|
+
at least 30 consecutive invocations per affected command, with output, exit status,
|
|
18
|
+
timeout and error-channel evidence captured.
|
|
19
|
+
|
|
20
|
+
| ID | Severity | Status | Finding, evidence and required closure |
|
|
21
|
+
|---|---:|---|---|
|
|
22
|
+
| AUD-619-R | Critical maximum / race regression | **Open, P0** | `migrate-check` failed 5/6 identical runs and then succeeded with 28,249 bytes; `risk --limit 5/20`, `spring-audit --compact`, `verify`, `audit-report` and `migrate-apply` remain intermittently silent or hanging. The two symptoms are fast exit 0/zero bytes and an indefinite wait in `composing risk factors`, consistent with Windows `spawn`/`DuplicateHandle` failure followed by an unbounded future/join wait. The current Darwin fallback is not sufficient evidence for the auditor's Windows artefact. Add a deterministic single-process/thread fallback or fail-fast bounded pool startup, bound every join/get, and run >=30 consecutive Windows/pipx tests per command and output mode. |
|
|
23
|
+
| AUD-619-CACHE-WRITE | High / performance and lifecycle | **Open, P1** | On `tutorials` (24,073 files), root compact produced the complete 21.7 KB JSON before spending another minute in `building cache entry (the answer above is complete)`. Profile core size, serialization, filesystem writes and cache locking; publish phase timings and ensure the answer process exits after delivery or reports post-delivery work separately. |
|
|
24
|
+
| AUD-619-REVIEW-PR | High / nondeterministic error | **Open, P1** | `review-pr` returned a false `no_git_repo` error once in 7 runs on a confirmed Git repository; six runs correctly returned `NO_DIFF_SOURCE`. Trace the fallback that emits lowercase `no_git_repo`, normalize it to the canonical error authority, and repeat under clean/concurrent cache conditions. |
|
|
25
|
+
| AUD-619-WIN-PROC | Medium / lifecycle | **Open, platform-blocked** | `ask --agent` wrote valid 41,336-byte JSON but remained alive until an external 300s timeout; three `ask.exe` descendants remained after termination. Measure post-serialization teardown and enforce parent/child lifetime cleanup with native Windows Job Objects or equivalent. |
|
|
26
|
+
| AUD-619-I | High / contract evidence | **Re-opened for comparable measurement** | The auditor saw 3,496 bytes with no RIS and 31,260 bytes after partial warm, not the prior 88-89 KB. Publish the exact priming sequence and classify only after comparing the same snapshot state. |
|
|
27
|
+
| AUD-619-7 | Medium / UX | **Partially fixed** | The ambiguity is now explained and no suggestion is emitted where edit distance yields no valid command. Keep nearest-command suggestions for close spellings and test both branches. |
|
|
28
|
+
| AUD-619-WATCH | Low | **Closed as not reproduced** | `watch --once` completed in 0.526s on a clean small-repository run; retain a clean-session performance probe. |
|
|
29
|
+
|
|
30
|
+
**Confirmed healthy scope.** `audit-report --from-risk` produced valid output,
|
|
31
|
+
the root pipeline remained healthy, Q/E/F/P/C and the prior command families stayed
|
|
32
|
+
stable, and `risk --limit 0` continued to bypass the affected composer. The problem
|
|
33
|
+
is therefore concentrated in the shared heavy computation and its lifecycle, not
|
|
34
|
+
in general serialization or every CLI command.
|
|
35
|
+
|
|
36
|
+
**Commercial decision.** Retain only bounded pilots and the provisional
|
|
37
|
+
`$25-35/developer/month` hypothesis. Do not promise production CI gating, annual
|
|
38
|
+
reliability or enterprise scale above roughly 3,000 files until the 30-run Windows
|
|
39
|
+
matrix, cache-write lifecycle and review-pr error normalization are closed.
|
|
40
|
+
|
|
3
41
|
### External Audit Intake — `AUD-618` re-audit, release 5.9.12
|
|
4
42
|
|
|
5
43
|
The external re-audit received 2026-08-28 covers only `Documents/workspace/testing/`.
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
> `pack assessment` and `pack gate`, and make evidence and safe change the
|
|
6
6
|
> product surface. This roadmap must not introduce a competing product thesis.
|
|
7
7
|
|
|
8
|
-
> **CURRENT UPDATE — release `5.9.
|
|
8
|
+
> **CURRENT UPDATE — release `5.9.14`, following the external `5.9.3` reconciliation.**
|
|
9
9
|
> The commercial increment adds stateless context budgets, a reproducible context-cost harness,
|
|
10
10
|
> source-level migration SARIF and an opt-in workspace entitlement pilot. Advisory behaviour remains
|
|
11
11
|
> the default; named-buyer validation is still required before broad enforcement.
|
|
@@ -19,6 +19,19 @@
|
|
|
19
19
|
> non-reproduction did not cover the payload shape now identified. Details are
|
|
20
20
|
> in [`AUDIT-2026-08-26-EXTERNAL-5.9.0.md`](AUDIT-2026-08-26-EXTERNAL-5.9.0.md).
|
|
21
21
|
|
|
22
|
+
> **AUD-619 RE-AUDIT — Bug R remains a critical race.** Identical Windows runs
|
|
23
|
+
> failed five times and succeeded once, so earlier small samples cannot support a
|
|
24
|
+
> fixed verdict. `migrate-check`, `risk`, `verify`, `audit-report` and
|
|
25
|
+
> `migrate-apply` remain exposed to silent exit or unbounded wait. `tutorials` can
|
|
26
|
+
> finish its answer before spending another minute building the cache entry.
|
|
27
|
+
> A valid `audit-report --from-risk` proves the renderer itself is healthy. Patch
|
|
28
|
+
> forward from `5.9.13`, retain bounded pilots, and require at least 30 consecutive
|
|
29
|
+
> Windows/pipx runs per affected command before closure. Review-pr fallback
|
|
30
|
+
> normalization, cache-write lifecycle, Windows process cleanup and comparable
|
|
31
|
+
> compact priming remain open. The commercial hypothesis stays
|
|
32
|
+
> `$25-35/developer/month`; no production CI-gating or enterprise-scale promise
|
|
33
|
+
> is authorized above roughly 3,000 files.
|
|
34
|
+
|
|
22
35
|
> **AUD-618 RE-AUDIT — the 5.9.12 reliability gate remains active.** The score
|
|
23
36
|
> improved only to **6.3/10**. `spring-audit` and `migrate-check` recovered, but
|
|
24
37
|
> `risk`, `verify`, `audit-report` and `migrate-apply` remain affected; `risk` now
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Manual de usuario — ASK Engine
|
|
2
2
|
|
|
3
|
-
> Versión de la herramienta: **5.9.
|
|
3
|
+
> Versión de la herramienta: **5.9.14** · El comando que se ejecuta es `ask`.
|
|
4
4
|
> (`sourcecode` sigue funcionando como alias en desactivación y reenvía a `ask`.)
|
|
5
5
|
> Público: personas que van a usar `ask` por primera vez, sin conocimiento previo.
|
|
6
6
|
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
## 1. ¿Qué es ASK Engine?
|
|
10
10
|
|
|
11
|
-
### Contratos de fiabilidad de la versión 5.9.
|
|
11
|
+
### Contratos de fiabilidad de la versión 5.9.14
|
|
12
12
|
|
|
13
13
|
**Un plazo que el análisis raíz sí respeta.** `ASK_MAX_ANALYSIS_SECONDS=<segundos>`
|
|
14
14
|
ahora detiene `ask <repo>` en una frontera de fase medida. Una ejecución que agota
|
|
@@ -33,15 +33,17 @@ The public trust layer, if activated, must be a generated and redacted
|
|
|
33
33
|
projection, never the raw defect ledger. Its acceptance rules must exclude
|
|
34
34
|
maintainer paths, third-party evaluation subjects and unsupported claims.
|
|
35
35
|
|
|
36
|
-
**5.9.
|
|
36
|
+
**5.9.14 commercial gate.** The 2026-08-28 re-audit found that the critical
|
|
37
37
|
reliability regression is only partially repaired: `spring-audit` and `migrate-check`
|
|
38
|
-
recovered, while `risk`, `verify`, `audit-report` and `migrate-apply` remain affected
|
|
38
|
+
recovered, while `risk`, `verify`, `audit-report` and `migrate-apply` remain affected;
|
|
39
|
+
the follow-up shows that the failure is a high-frequency race rather than a binary
|
|
40
|
+
version state.
|
|
39
41
|
This invalidates a reliability-led annual commitment and production CI-gating
|
|
40
42
|
positioning until the shared worker/composer boundary is fixed and independently
|
|
41
43
|
tested. The route therefore continues with bounded pilots only, retains a
|
|
42
44
|
provisional `$25-35/developer/month` working hypothesis, and does not claim
|
|
43
45
|
enterprise-scale support above roughly 3,000 files. The correct engineering response
|
|
44
|
-
is a forward patch, not a rollback, because 5.9.
|
|
46
|
+
is a forward patch, not a rollback, because 5.9.14 contains valid fixes that must be
|
|
45
47
|
preserved. See the detailed `AUD-618` intake in [`DEVELOPMENT-ROADMAP.md`](DEVELOPMENT-ROADMAP.md) and
|
|
46
48
|
[`DEFECT-LEDGER.md`](DEFECT-LEDGER.md).
|
|
47
49
|
|
|
@@ -46,16 +46,16 @@ CLI commands — impact, endpoints, spring-audit, explain, … each a pro
|
|
|
46
46
|
The key idea: the extraction is **content-addressed**. Commands reuse the parse cache and,
|
|
47
47
|
where their analysed scope matches, the shared Canonical IR; `ask cache model` names what a
|
|
48
48
|
warm buys for each command rather than implying that every projection costs the same. In
|
|
49
|
-
5.9.
|
|
49
|
+
5.9.14, `validation` enters through that shared CIR and `data-exposure` reuses one semantic
|
|
50
50
|
model across all declared label seeds. (The extraction and consumption contract is fixed in
|
|
51
51
|
the architecture ADRs 0001–0004 under `docs/architecture/`.)
|
|
52
52
|
|
|
53
53
|
The current external pack audit intake is tracked in
|
|
54
54
|
[`AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md`](AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md);
|
|
55
|
-
the two pack fixes are included in release 5.9.
|
|
55
|
+
the two pack fixes are included in release 5.9.14, with release-artifact verification
|
|
56
56
|
remaining for detached execution and pack evidence.
|
|
57
57
|
|
|
58
|
-
### Reliability contracts in 5.9.
|
|
58
|
+
### Reliability contracts in 5.9.14
|
|
59
59
|
|
|
60
60
|
**A deadline the root analysis honours.** `ASK_MAX_ANALYSIS_SECONDS=<seconds>` now
|
|
61
61
|
stops `ask <repo>` at a measured phase boundary. A run that spends its budget
|
|
@@ -260,7 +260,7 @@ pipx install sourcecode # isolated install, no venv needed
|
|
|
260
260
|
|
|
261
261
|
# Verify
|
|
262
262
|
ask version
|
|
263
|
-
# ask 5.9.
|
|
263
|
+
# ask 5.9.14
|
|
264
264
|
```
|
|
265
265
|
|
|
266
266
|
Requires Python 3.9+.
|
|
@@ -2217,12 +2217,11 @@ def _active_command_context() -> "tuple[str, Optional[Path]]":
|
|
|
2217
2217
|
ctx = click.get_current_context(silent=True)
|
|
2218
2218
|
except Exception:
|
|
2219
2219
|
ctx = None
|
|
2220
|
-
|
|
2221
2220
|
if ctx is None:
|
|
2222
|
-
#
|
|
2223
|
-
#
|
|
2224
|
-
#
|
|
2225
|
-
argv = list(sys.argv[1:])
|
|
2221
|
+
# Click may have unwound before the unified emitter runs. Prefer the
|
|
2222
|
+
# invocation captured per thread, then fall back to argv for console
|
|
2223
|
+
# scripts and embedded entry points.
|
|
2224
|
+
argv = list(_tls.__dict__.get("invocation_args", ()) or sys.argv[1:])
|
|
2226
2225
|
known: set[str] = set()
|
|
2227
2226
|
try:
|
|
2228
2227
|
known.update(
|
|
@@ -2237,14 +2236,31 @@ def _active_command_context() -> "tuple[str, Optional[Path]]":
|
|
|
2237
2236
|
pass
|
|
2238
2237
|
command = ""
|
|
2239
2238
|
for index, token in enumerate(argv):
|
|
2240
|
-
if token.startswith("-") or token not in known:
|
|
2239
|
+
if token.startswith("-") or (token not in known and token not in _SUBCOMMANDS):
|
|
2241
2240
|
continue
|
|
2242
2241
|
command = token
|
|
2243
2242
|
if token in {"retrieve", "cache", "auth", "mcp", "telemetry", "baseline", "pack"}:
|
|
2244
2243
|
if index + 1 < len(argv) and argv[index + 1] in known:
|
|
2245
2244
|
command = f"{token} {argv[index + 1]}"
|
|
2246
2245
|
break
|
|
2247
|
-
|
|
2246
|
+
if not command:
|
|
2247
|
+
command = _ROOT_COMMAND_NAME
|
|
2248
|
+
target: "Optional[Path]" = None
|
|
2249
|
+
if command == _ROOT_COMMAND_NAME:
|
|
2250
|
+
detected = _get_detected_path()
|
|
2251
|
+
if detected:
|
|
2252
|
+
target = Path(detected)
|
|
2253
|
+
else:
|
|
2254
|
+
for token in argv:
|
|
2255
|
+
try:
|
|
2256
|
+
candidate = Path(token)
|
|
2257
|
+
if candidate.is_dir():
|
|
2258
|
+
target = candidate
|
|
2259
|
+
break
|
|
2260
|
+
except (OSError, ValueError):
|
|
2261
|
+
continue
|
|
2262
|
+
if target is None:
|
|
2263
|
+
target = Path(_get_detected_path() or Path.cwd())
|
|
2248
2264
|
return command or _ROOT_COMMAND_NAME, target
|
|
2249
2265
|
|
|
2250
2266
|
names: list[str] = []
|
|
@@ -2295,6 +2311,11 @@ _EXPENSIVE_ANALYSIS_TTL_SECONDS = 6 * 60 * 60
|
|
|
2295
2311
|
#: `cache_model.analysis_class` records.
|
|
2296
2312
|
_CLASS_FLOOR_SECONDS = {"core": 60, "repo-wide": 600, "deep": 1200}
|
|
2297
2313
|
|
|
2314
|
+
# AUD-598-B04. A valid duration is not necessarily a useful limit. This is a
|
|
2315
|
+
# disclosure threshold, never a new input restriction: a caller may choose a
|
|
2316
|
+
# very large budget, but must not be led to believe it will bind.
|
|
2317
|
+
_NON_BINDING_BUDGET_MULTIPLE = 10.0
|
|
2318
|
+
|
|
2298
2319
|
#: What to do instead when the budget will not cover the run. Per command where
|
|
2299
2320
|
#: there is something specific to say, per class otherwise.
|
|
2300
2321
|
_CLASS_FALLBACK = {
|
|
@@ -2435,12 +2456,40 @@ def _analysis_budget(command: str) -> dict[str, Any]:
|
|
|
2435
2456
|
configured, source, invalid_reason = _parse_analysis_budget_env()
|
|
2436
2457
|
from sourcecode.phased_run import budget_scope, budget_scope_reason
|
|
2437
2458
|
|
|
2459
|
+
advisory: Optional[str] = None
|
|
2460
|
+
if configured is not None:
|
|
2461
|
+
try:
|
|
2462
|
+
from sourcecode.execution_plan import cost_row
|
|
2463
|
+
|
|
2464
|
+
row = cost_row(command)
|
|
2465
|
+
anchors = [
|
|
2466
|
+
float(value)
|
|
2467
|
+
for value in (
|
|
2468
|
+
getattr(row, "cold_seconds", None),
|
|
2469
|
+
getattr(row, "warm_seconds", None),
|
|
2470
|
+
getattr(row, "field_seconds", None),
|
|
2471
|
+
)
|
|
2472
|
+
if isinstance(value, (int, float)) and float(value) > 0
|
|
2473
|
+
]
|
|
2474
|
+
if anchors:
|
|
2475
|
+
anchor = max(anchors)
|
|
2476
|
+
if float(configured) >= anchor * _NON_BINDING_BUDGET_MULTIPLE:
|
|
2477
|
+
advisory = (
|
|
2478
|
+
f"{_BUDGET_ENV_VAR}={configured:g}s is {float(configured) / anchor:.0f}x "
|
|
2479
|
+
f"the published {command} cost anchor ({anchor:g}s); it is "
|
|
2480
|
+
"unlikely to bind this run. The value remains valid and is "
|
|
2481
|
+
"recorded with the result."
|
|
2482
|
+
)
|
|
2483
|
+
except Exception:
|
|
2484
|
+
pass
|
|
2485
|
+
|
|
2438
2486
|
scope = budget_scope(command)
|
|
2439
2487
|
return {
|
|
2440
2488
|
"class": cls,
|
|
2441
2489
|
"recommended_min_seconds": recommended,
|
|
2442
2490
|
"configured_max_seconds": configured,
|
|
2443
2491
|
"configured_source": source,
|
|
2492
|
+
"configured_nonbinding_advisory": advisory,
|
|
2444
2493
|
# AUD-596-B03: an unreadable value is not an absent one. Carried beside
|
|
2445
2494
|
# the budget so `_enforce_analysis_budget` can refuse it by name, and
|
|
2446
2495
|
# `None` whenever the variable is unset or usable.
|
|
@@ -2485,6 +2534,7 @@ def _budget_disclosure(command: str) -> "dict[str, Any]":
|
|
|
2485
2534
|
"budget_binds": binding["binds"],
|
|
2486
2535
|
"budget_binds_basis": binding["basis"],
|
|
2487
2536
|
"measured_anchor_seconds": binding["anchor_seconds"],
|
|
2537
|
+
"configured_nonbinding_advisory": budget["configured_nonbinding_advisory"],
|
|
2488
2538
|
}
|
|
2489
2539
|
|
|
2490
2540
|
|
|
@@ -2564,6 +2614,13 @@ def _enforce_analysis_budget(
|
|
|
2564
2614
|
return
|
|
2565
2615
|
source = budget.get("configured_source")
|
|
2566
2616
|
from sourcecode.phased_run import budget_provenance, budget_warning
|
|
2617
|
+
advisory = budget.get("configured_nonbinding_advisory")
|
|
2618
|
+
if advisory and getattr(sys.stderr, "isatty", lambda: False)():
|
|
2619
|
+
try:
|
|
2620
|
+
sys.stderr.write(f"[ask] budget: {advisory}\n")
|
|
2621
|
+
sys.stderr.flush()
|
|
2622
|
+
except Exception:
|
|
2623
|
+
pass
|
|
2567
2624
|
if not getattr(sys.stderr, "isatty", lambda: False)() and float(configured) >= recommended:
|
|
2568
2625
|
return
|
|
2569
2626
|
|
|
@@ -4452,6 +4509,11 @@ def _get_command_with_preprocessing(typer_instance: Any) -> Any:
|
|
|
4452
4509
|
# CliRunner / programmatic call: preprocess the explicit args list.
|
|
4453
4510
|
_set_detected_path(".")
|
|
4454
4511
|
args = _preprocess_args(list(args))
|
|
4512
|
+
# The output seam is reached after Click may already have released its
|
|
4513
|
+
# context. Preserve this invocation per thread so its envelope cannot
|
|
4514
|
+
# silently lose command and repository provenance (AUD-598-B01).
|
|
4515
|
+
_previous_invocation = _tls.__dict__.get("invocation_args")
|
|
4516
|
+
_tls.invocation_args = tuple(args if args is not None else sys.argv[1:])
|
|
4455
4517
|
# args=None → Click reads sys.argv; _preprocess_argv() in main_entry handled it.
|
|
4456
4518
|
started = time.monotonic()
|
|
4457
4519
|
command = _telemetry_command(args)
|
|
@@ -4474,6 +4536,10 @@ def _get_command_with_preprocessing(typer_instance: Any) -> Any:
|
|
|
4474
4536
|
)
|
|
4475
4537
|
except Exception:
|
|
4476
4538
|
pass
|
|
4539
|
+
if _previous_invocation is None:
|
|
4540
|
+
_tls.__dict__.pop("invocation_args", None)
|
|
4541
|
+
else:
|
|
4542
|
+
_tls.invocation_args = _previous_invocation
|
|
4477
4543
|
|
|
4478
4544
|
cmd.main = _cmd_main
|
|
4479
4545
|
return cmd
|
|
@@ -27,7 +27,7 @@ from typing import Any, Optional
|
|
|
27
27
|
#: The date `__version__` was released, from that version's CHANGELOG entry.
|
|
28
28
|
#: `tests/test_release_info.py` fails the build if the two disagree, so this is
|
|
29
29
|
#: a copy of a fact rather than a second authority for it.
|
|
30
|
-
RELEASE_DATE = "2026-08-
|
|
30
|
+
RELEASE_DATE = "2026-08-30"
|
|
31
31
|
|
|
32
32
|
#: Releases per day, measured over the 30 releases before this one (the same
|
|
33
33
|
#: computation the test re-runs against the CHANGELOG). Stable across window
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sourcecode-5.9.13 → sourcecode-5.9.14}/docs/architecture/DESIGN-assessment-deployment-evidence.md
RENAMED
|
File without changes
|
|
File without changes
|