sourcecode 5.9.17__tar.gz → 5.9.19__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.17 → sourcecode-5.9.19}/CHANGELOG.md +28 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/PKG-INFO +18 -9
- {sourcecode-5.9.17 → sourcecode-5.9.19}/README.md +17 -8
- sourcecode-5.9.19/docs/AUDIT-2026-08-31-EXTERNAL-5.9.17.md +42 -0
- sourcecode-5.9.19/docs/AUDIT-2026-08-31-REMEDIATION-5.9.18.md +29 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/DEFECT-LEDGER.md +35 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/DEVELOPMENT-ROADMAP.md +34 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/EXECUTIVE-ROADMAP.md +14 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/USER_GUIDE.md +17 -5
- {sourcecode-5.9.17 → sourcecode-5.9.19}/pyproject.toml +1 -1
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/__init__.py +1 -1
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/cli.py +8 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/git_checkout.py +8 -1
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/packs.py +15 -5
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/parallel.py +8 -1
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/release_info.py +1 -1
- {sourcecode-5.9.17 → sourcecode-5.9.19}/.github/workflows/build-windows.yml +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/.github/workflows/perf-gate.yml +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/.github/workflows/windows-battery.yml +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/.github/workflows/windows-regression.yml +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/.gitignore +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/.ruff.toml +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/CLAUDE.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/CODE_OF_CONDUCT.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/CONTRIBUTING.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/LICENSE +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/NOTICE +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/SECURITY.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/AUDIT-2026-08-22-5.8.22.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/AUDIT-2026-08-23-5.8.24.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/AUDIT-2026-08-23-COMMERCIAL.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/AUDIT-2026-08-23-CORPUS-AMPLIADO.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/AUDIT-2026-08-23-EXTERNAL-5.8.25.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/AUDIT-2026-08-23-EXTERNAL-5.8.26.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/AUDIT-2026-08-23-THINGSBOARD-FINDINGS.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.26.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.27.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.28.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.31.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.32.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/AUDIT-2026-08-26-EXTERNAL-5.9.0.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/AUDIT-2026-08-26-MONETIZATION.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/AUDIT-2026-08-27-EXTERNAL-5.9.2.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/AUDIT-2026-08-27-EXTERNAL-5.9.3.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/AUDIT-2026-08-28-EXTERNAL-5.9.10.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/AUDIT-2026-08-31-EXTERNAL-5.9.16.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/AUDIT-TESTING-CORPUS-2026-08-22.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/CACHE.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/COMMERCIAL-OFFER.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/CUSTOMER-VALIDATION.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/DEMO-5MIN.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/DOCUMENTATION-HYGIENE-2026-08-23.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/EXECUTION-PLAN-12MO.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/MANUAL-USUARIO.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/MODERNIZATION.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/PRODUCT-ROUTE.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/PRODUCT_AUDIT.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/PRODUCT_IDENTITY.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/PRODUCT_TIERS.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/RC1-CHECKLIST.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/RELEASE-CHECKLIST.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/RELEASE-VERIFICATION.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/STRATEGY-2026-08-26-AGENT-CONTEXT.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/CATALOG-retrieval-intents.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/DESIGN-assessment-deployment-evidence.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/DESIGN-assessment-report.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/DESIGN-build-closure-provenance.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/DESIGN-knowledge-provider-integration.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/DESIGN-p5.3b-statement-surface.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/DESIGN-p5.5-span-index.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/DESIGN-p6-semantic-impact-engine.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/DESIGN-p6-semantic-integration-engine.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/DESIGN-p7-semantic-services.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/DESIGN-pack-gate-ci.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/DESIGN-pack-manifest.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/DESIGN-pack-mcp-api.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/DESIGN-robustness-security-inference.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/DESIGN-semantic-retrieval.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/EPV-p6-class-typeref.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/REPORT-p6-flow-analyzer-comparison.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/REPORT-p6-integration-detector-comparison.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/REPORT-p8-flow-analyzer-migration.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/REPORT-p9-integration-detector-migration.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/adr/0001-semantic-ir.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/adr/0002-source-evidence-boundary.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/adr/0003-architectural-characterization.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/adr/0004-semantic-retrieval.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/adr/0005-evidence-reconciliation.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/adr/0006-performance-harness.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/adr/0007-composition-semantics.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/adr/0008-answer-coherence.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/consumer-disposition-inventory.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/overview.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/product-architecture-review.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/product-strategy-layering.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/semantic-ir-consumer-matrix.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/architecture/semantic-ir-roadmap.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/baseline-ci.yml +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/commercial-pipeline-audit.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/contracts-ci.yml +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/contracts.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/eval/2026-06-15-petclinic-rest-issue11-vets-pagination.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/eval/2026-06-15-petclinic-rest-issue147-validation.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/eval/2026-06-15-petclinic-rest-workflow.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/eval/2026-06-15-phase18-openapi-surface.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/eval/2026-06-15-phase20-validation-surface.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/eval/2026-06-16-broadleaf-checkout-impact-fieldtest.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/eval/2026-06-16-petclinic-rest-issue11-weakness2-closed.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/eval/2026-06-16-spring-petclinic-issue2333-dead-vets.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/licensing-schema.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/migrate-check.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/pack-gate-github-actions.yml +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/pack-gate-gitlab.yml +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/README.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/REGRESSION-GATE.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/SUMMARY.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/alfresco__ask__cold.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/alfresco__ask__warm.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/broadleaf__ask__cold.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/eureka__ask__cold.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/eureka__ask__warm.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/jenkins__ask__cold.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/jenkins__ask__warm.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/jobrunr__ask__cold.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/jobrunr__ask__warm.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/keycloak__ask__cold.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/keycloak__ask__warm.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/neo4j__ask__cold.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/neo4j__ask__warm.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/ofbiz__ask__cold.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/ofbiz__ask__warm.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/openmrs__ask__cold.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/openmrs__ask__warm.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/petclinic__ask__cold.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.15/petclinic__ask__warm.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/SUMMARY.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/alfresco__ask__cold.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/alfresco__ask__warm.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/broadleaf__ask__cold.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/eureka__ask__cold.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/eureka__ask__warm.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/jenkins__ask__cold.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/jenkins__ask__warm.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/jobrunr__ask__cold.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/jobrunr__ask__warm.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/keycloak__ask__cold.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/keycloak__ask__warm.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/neo4j__ask__cold.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/neo4j__ask__warm.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/ofbiz__ask__cold.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/ofbiz__ask__warm.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/openmrs__ask__cold.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/openmrs__ask__warm.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/petclinic__ask__cold.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/2.5.16/petclinic__ask__warm.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/gate-latest/README.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/gate-latest/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/gate-latest/broadleaf__endpoints__warm.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/gate-latest/broadleaf__migrate-check__warm.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/gate-latest/broadleaf__posture__warm.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/gate-latest/broadleaf__spring-audit__warm.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/gate-latest/broadleaf__validation__warm.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/baselines/reference-best/README.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/perf/corpus-testing-2026-08-22.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/posture.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/privacy.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/pro-experience-audit.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/schema.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/spec/envelope-v1.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/docs/spring-audit-ci.yml +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/hatch_build.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/scripts/compare_integration_engines.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/scripts/context_cost_harness.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/scripts/customer_smoke_test.sh +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/scripts/generate_jdk_exports.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/scripts/perf_gate.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/scripts/perf_harness.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/scripts/sync_gate_anchors.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/scripts/test_fast.sh +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/scripts/windows_reliability_matrix.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/__main__.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/access_drift.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/adaptive_scanner.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/analysis_budget.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/answer_bounds.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/archetype.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/architectural_baseline.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/architectural_delta.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/architecture_analyzer.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/architecture_summary.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/ast_extractor.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/audit_clusters.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/audit_recipe.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/audit_report.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/audit_since.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/audit_verify.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/baseline_attestation.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/baseline_autocapture.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/breaking_changes.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/build_modules.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/build_stamp.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/bundled_docs.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/c4_render.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/cache.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/cache_model.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/cache_observation.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/call_surface.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/caller_metrics.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/caller_reach.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/canonical_ir.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/chain_rules.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/change_plan.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/ci_output.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/cir_graphs.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/classifier.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/click_runtime.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/client_calls.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/code_notes_analyzer.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/compare.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/confidence_analyzer.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/constraint_diff.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/consumer_join.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/container_wiring.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/context_cache.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/context_graph.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/context_scorer.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/context_summarizer.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/contract_diff.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/contract_init.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/contract_model.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/contract_pipeline.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/coverage_parser.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/cve_feed.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/cve_reachability.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/data_exposure.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/data_labels.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/declarations.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/defect_classes/__init__.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/defect_classes/registry.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/defect_identity.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/degradation.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/dependency_analyzer.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/deployment_prefix.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/detach.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/detectors/__init__.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/detectors/base.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/detectors/csproj_parser.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/detectors/dart.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/detectors/dotnet.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/detectors/elixir.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/detectors/go.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/detectors/heuristic.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/detectors/hybrid.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/detectors/java.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/detectors/jvm_ext.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/detectors/nodejs.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/detectors/parsers.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/detectors/php.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/detectors/project.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/detectors/python.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/detectors/ruby.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/detectors/rust.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/detectors/systems.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/detectors/terraform.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/detectors/tooling.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/doc_analyzer.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/dynamic_argument_surface.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/empty_reach.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/endpoint_disposition.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/endpoint_literals.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/endpoint_metrics.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/entrypoint_classifier.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/env_analyzer.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/envelope.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/environment_resolution.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/error_schema.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/evidence_provider.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/execution_plan.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/explain.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/explain_endpoint.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/facts/__init__.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/facts/registry.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/field_deprecations.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/file_chunker.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/file_classifier.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/filter_surface.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/findings_baseline.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/format_contract.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/fqn_utils.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/functional_routes.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/gate_anchors.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/git_analyzer.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/github_diff.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/graph_analyzer.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/graph_evidence.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/hibernate_strat.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/identity_fallback.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/integration_coordinates.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/intent_router.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/jdk_exports.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/license.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/manifest_cache.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/mcp/__init__.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/mcp/dependency_import.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/mcp/onboarding/applier.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/mcp/onboarding/backup.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/mcp/onboarding/detector.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/mcp/onboarding/planner.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/mcp/orchestrator.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/mcp/registry.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/mcp/runner.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/mcp/server.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/mcp_nudge.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/metrics_analyzer.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/migrate_check.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/migration_apply.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/migration_blast.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/non_coverage.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/openapi_surface.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/openrewrite_recipe.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/output_bounds.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/output_budget.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/output_ceiling.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/output_encoding.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/output_sink.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/pack_manifest.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/parse_cache.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/partial_contract.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/path_admission.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/path_display.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/path_filters.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/perf.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/phased_run.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/pipe_contract.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/posture.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/pr_comment_renderer.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/pr_impact.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/pr_risk.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/prepare_context.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/product_info.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/progress.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/provenance.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/ranking_engine.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/readiness_timeline.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/readonly.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/reconciliation.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/redactor.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/reference_facts.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/regress.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/regulatory_pack.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/relevance_scorer.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/remediation_diff.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/remediation_flow.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/remediation_report.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/remedies.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/rename_refactor.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/repo_classifier.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/repository_ir.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/resource_budget.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/retrieval/__init__.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/retrieval/context.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/retrieval/errors.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/retrieval/executor.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/retrieval/planner.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/retrieval/query.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/retrieval/request.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/retrieval/resolution.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/retrieval/result.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/retrieval/retriever.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/retrieval/runtime.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/retrieval/steps.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/retrieval/steps_endpoint.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/retrieval/steps_graph.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/retrieval/steps_impact.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/retrieval/steps_intf.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/retrieval/steps_struct.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/retrieval/steps_txsec.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/ris.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/risk.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/risk_model.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/rule_catalog.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/rule_pass.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/runs.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/runtime_classifier.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/sarif.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/sarif_emit.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/scanner.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/schema.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/schema_producers.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/schema_registry.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/schemas/core-analysis-v1.schema.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/schemas/cve-reachability-v1.schema.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/schemas/endpoints-v1.schema.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/schemas/envelope-v1.schema.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/schemas/pr-impact-v1.schema.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/schemas/verify-edit-v1.schema.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/schemas/verify-v1.schema.json +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/security_chain.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/security_config.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/security_config_scan.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/security_posture.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/selection_contract.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/self_audit.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/selftest.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/semantic_analyzer.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/semantic_impact_engine.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/semantic_integration_engine.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/semantic_services.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/serializer.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/servlet_surface.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/source_text.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/spring_event_topology.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/spring_findings.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/spring_impact.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/spring_model.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/spring_profiles.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/spring_properties.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/spring_security_audit.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/spring_semantic.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/spring_tx_analyzer.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/sql_taint.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/summarizer.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/target_admission.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/telemetry/__init__.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/telemetry/config.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/telemetry/consent.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/telemetry/events.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/telemetry/filters.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/telemetry/transport.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/test_gap_ranking.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/test_sources.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/text_input.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/timeline.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/timeline_cache.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/token_estimate.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/tree_utils.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/type_usage_surface.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/validation_inference.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/validation_surface.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/verify_edit.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/verify_repo.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/verify_rules.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/version_check.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/vex.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/waivers.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/watch_loop.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/wired_surface.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/src/sourcecode/workspace.py +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/supabase/functions/README.md +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/supabase/functions/get-license/index.ts +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/supabase/functions/lemonsqueezy-webhook/index.ts +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/supabase/functions/telemetry/index.ts +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/supabase/sql/license_event_ordering.sql +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/supabase/sql/licensing_schema.sql +0 -0
- {sourcecode-5.9.17 → sourcecode-5.9.19}/supabase/sql/telemetry_events.sql +0 -0
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [5.9.19] — 2026-08-31
|
|
4
|
+
|
|
5
|
+
*Critical `pack gate --since` compatibility correction.*
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- Git-ref materialization now extracts tar members compatibly on Python 3.9–3.11 while retaining `filter="data"` on Python 3.12+.
|
|
10
|
+
- Added regression coverage for the legacy and current tarfile APIs and strengthened the pack stderr forwarding assertion.
|
|
11
|
+
|
|
12
|
+
### Verification Boundary
|
|
13
|
+
|
|
14
|
+
- Focused pack, ref-materialization and output-contract tests pass. Native Windows repetition remains required for the broader `AUD-621` reliability findings.
|
|
15
|
+
|
|
16
|
+
## [5.9.18] — 2026-08-31
|
|
17
|
+
|
|
18
|
+
*Windows reliability remediation follow-up.*
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- `pack gate` opens child stderr as UTF-8 with replacement behavior, so a Windows code-page mismatch cannot terminate its forwarding thread and block a child on an undrained pipe.
|
|
23
|
+
- The shared parse-worker factory rejects Windows process pools as a second deterministic barrier; repository parsing uses the existing sequential path there instead of risking `DuplicateHandle` during worker startup.
|
|
24
|
+
- Expected CLI validation exits, including invalid `--profile` input, now pass through the analysis-error boundary unchanged as `INVALID_INPUT` / exit 2.
|
|
25
|
+
|
|
26
|
+
### Verification Boundary
|
|
27
|
+
|
|
28
|
+
- Focused pack, parallel, validation and six-command reliability-matrix tests pass on the engineering host. Native Windows repetition and process-tree evidence remain required before closing `AUD-621-R` and `AUD-621-WIN-PROC`.
|
|
29
|
+
- The 24,073-file context-analysis threshold remains open pending profiling and an intermediate-size benchmark.
|
|
30
|
+
|
|
3
31
|
## [5.9.17] — 2026-08-31
|
|
4
32
|
|
|
5
33
|
*Reliability and monorepo performance follow-up after the 5.9.16 external audit.*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sourcecode
|
|
3
|
-
Version: 5.9.
|
|
3
|
+
Version: 5.9.19
|
|
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
|
|
@@ -221,6 +221,12 @@ there. Use `ask cache model <repo>`, `--progress stderr`, `audit-report
|
|
|
221
221
|
[current reliability queue](docs/DEVELOPMENT-ROADMAP.md#external-audit-intake--aud-616-re-audit-release-5910)
|
|
222
222
|
before treating a historical timing or bounded flag as a current guarantee.
|
|
223
223
|
|
|
224
|
+
A post-remediation re-audit of `5.9.18` also found a separate `pack gate --since`
|
|
225
|
+
regression on Windows: the git-ref materialization path could resolve to Python
|
|
226
|
+
3.10 and fail in `tarfile` before the stderr-forwarding fix mattered. Release
|
|
227
|
+
`5.9.19` adds the version-compatible extraction path; native Windows repetition
|
|
228
|
+
is still required before treating `pack gate` as production CI evidence.
|
|
229
|
+
|
|
224
230
|
**CI delivery and workspace licensing.** `migrate-check --format sarif` emits
|
|
225
231
|
ASK-owned migration findings with source locations and provenance; it does not
|
|
226
232
|
re-emit imported scanner findings. `ask auth workspace <repo>...` previews the
|
|
@@ -236,11 +242,14 @@ entitlement errors in CI and does not change per-repository gates or billing.
|
|
|
236
242
|
|
|
237
243
|
Release 5.9.17 also carries the boundary-contract hardening: missing consumer repositories,
|
|
238
244
|
malformed CVE feeds and unresolved `pack gate --since` refs fail as structured
|
|
239
|
-
input errors; duplicate same-commit baselines are never overwritten.
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
245
|
+
input errors; duplicate same-commit baselines are never overwritten. That
|
|
246
|
+
contract is still not enough to make `pack gate` CI-safe on Windows, because the
|
|
247
|
+
materialization path can still hit a Python 3.10 tarfile mismatch in mixed
|
|
248
|
+
environments. `posture --diff` validates unknown profiles when the repository
|
|
249
|
+
declares profiles. In `endpoints --compact`, an empty `endpoints` list is
|
|
250
|
+
explicitly marked as an intentional omission, not an empty API; unresolved
|
|
251
|
+
`impact` and `impact-chain` queries exit non-zero, including on repositories
|
|
252
|
+
without Java sources.
|
|
244
253
|
|
|
245
254
|
**What a warm actually covers.** `ask cache warm` rebuilds the declared root views and their
|
|
246
255
|
shared structural layers (L1/L2 + the Repository Intelligence Snapshot + the shared Canonical
|
|
@@ -267,11 +276,11 @@ brew tap haroundominique/sourcecode && brew install sourcecode
|
|
|
267
276
|
# pip / pipx
|
|
268
277
|
pipx install sourcecode # or: pip install sourcecode
|
|
269
278
|
|
|
270
|
-
ask version # ask 5.9.
|
|
279
|
+
ask version # ask 5.9.19 — and, on a build that has aged,
|
|
271
280
|
# how many releases have probably shipped since
|
|
272
281
|
```
|
|
273
282
|
|
|
274
|
-
> **Package vs. command.** The install package is named `sourcecode` this release
|
|
283
|
+
> **Package vs. command.** The install package is named `sourcecode` in this release
|
|
275
284
|
> (renaming the distribution is a separate, breaking change). Installing it gives you the
|
|
276
285
|
> canonical **`ask`** command plus the deprecated **`sourcecode`** alias.
|
|
277
286
|
|
|
@@ -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
|
|
@@ -172,6 +172,12 @@ there. Use `ask cache model <repo>`, `--progress stderr`, `audit-report
|
|
|
172
172
|
[current reliability queue](docs/DEVELOPMENT-ROADMAP.md#external-audit-intake--aud-616-re-audit-release-5910)
|
|
173
173
|
before treating a historical timing or bounded flag as a current guarantee.
|
|
174
174
|
|
|
175
|
+
A post-remediation re-audit of `5.9.18` also found a separate `pack gate --since`
|
|
176
|
+
regression on Windows: the git-ref materialization path could resolve to Python
|
|
177
|
+
3.10 and fail in `tarfile` before the stderr-forwarding fix mattered. Release
|
|
178
|
+
`5.9.19` adds the version-compatible extraction path; native Windows repetition
|
|
179
|
+
is still required before treating `pack gate` as production CI evidence.
|
|
180
|
+
|
|
175
181
|
**CI delivery and workspace licensing.** `migrate-check --format sarif` emits
|
|
176
182
|
ASK-owned migration findings with source locations and provenance; it does not
|
|
177
183
|
re-emit imported scanner findings. `ask auth workspace <repo>...` previews the
|
|
@@ -187,11 +193,14 @@ entitlement errors in CI and does not change per-repository gates or billing.
|
|
|
187
193
|
|
|
188
194
|
Release 5.9.17 also carries the boundary-contract hardening: missing consumer repositories,
|
|
189
195
|
malformed CVE feeds and unresolved `pack gate --since` refs fail as structured
|
|
190
|
-
input errors; duplicate same-commit baselines are never overwritten.
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
196
|
+
input errors; duplicate same-commit baselines are never overwritten. That
|
|
197
|
+
contract is still not enough to make `pack gate` CI-safe on Windows, because the
|
|
198
|
+
materialization path can still hit a Python 3.10 tarfile mismatch in mixed
|
|
199
|
+
environments. `posture --diff` validates unknown profiles when the repository
|
|
200
|
+
declares profiles. In `endpoints --compact`, an empty `endpoints` list is
|
|
201
|
+
explicitly marked as an intentional omission, not an empty API; unresolved
|
|
202
|
+
`impact` and `impact-chain` queries exit non-zero, including on repositories
|
|
203
|
+
without Java sources.
|
|
195
204
|
|
|
196
205
|
**What a warm actually covers.** `ask cache warm` rebuilds the declared root views and their
|
|
197
206
|
shared structural layers (L1/L2 + the Repository Intelligence Snapshot + the shared Canonical
|
|
@@ -218,11 +227,11 @@ brew tap haroundominique/sourcecode && brew install sourcecode
|
|
|
218
227
|
# pip / pipx
|
|
219
228
|
pipx install sourcecode # or: pip install sourcecode
|
|
220
229
|
|
|
221
|
-
ask version # ask 5.9.
|
|
230
|
+
ask version # ask 5.9.19 — and, on a build that has aged,
|
|
222
231
|
# how many releases have probably shipped since
|
|
223
232
|
```
|
|
224
233
|
|
|
225
|
-
> **Package vs. command.** The install package is named `sourcecode` this release
|
|
234
|
+
> **Package vs. command.** The install package is named `sourcecode` in this release
|
|
226
235
|
> (renaming the distribution is a separate, breaking change). Installing it gives you the
|
|
227
236
|
> canonical **`ask`** command plus the deprecated **`sourcecode`** alias.
|
|
228
237
|
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# External Audit — 5.9.17 Re-audit
|
|
2
|
+
|
|
3
|
+
**Received:** 2026-08-31
|
|
4
|
+
**Scope:** repositories under `testing/`
|
|
5
|
+
**Evidence status:** four independent Windows samples; conflicting earlier
|
|
6
|
+
success samples are superseded by the multi-session result below.
|
|
7
|
+
|
|
8
|
+
## Summary
|
|
9
|
+
|
|
10
|
+
The command-surface recovery from `5.9.16` remains confirmed: all nine restored
|
|
11
|
+
commands, Bug F, Bug Q, baseline behavior and endpoint/posture validation are
|
|
12
|
+
healthy in this second independent round. The root compact command is also
|
|
13
|
+
healthy when its target directory is verified before execution.
|
|
14
|
+
|
|
15
|
+
The shared Windows worker defect is not closed. The report records low or zero
|
|
16
|
+
success rates across all affected commands, with substantial variation between
|
|
17
|
+
sessions. This makes single-session success evidence insufficient for closure.
|
|
18
|
+
|
|
19
|
+
## Governing Findings
|
|
20
|
+
|
|
21
|
+
| ID | Finding | Required closure |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| `AUD-621-R` | `risk --limit != 0` and Markdown `audit-report` were 0% successful; `verify`, `spring-audit`, `migrate-check` and `migrate-apply` were 0-27% successful across independent samples. The observed mechanism remains Windows `DuplicateHandle` failure during worker spawn. | Fail closed or fall back deterministically to sequential work; validate >=25 repetitions per command in >=2 native Windows sessions, with target identity, exit status and byte counts recorded. |
|
|
24
|
+
| `AUD-621-PACK-STDERR` | `pack gate --since` can deadlock because `_forward_stderr` decodes child UTF-8 output as CP1252, raises `UnicodeDecodeError`, and stops draining stderr. | Use UTF-8 with replacement behavior, keep the forwarding loop alive after decode failures, and cover CP1252 and UTF-8 child output. |
|
|
25
|
+
| `AUD-621-CONTEXT` | `analyzing repository context` completed in seconds through roughly 4,772 Java files but stopped advancing beyond 190 seconds on the 24,073-file corpus. The same phase precedes `cache warm` agent-view exit 143. | Profile the phase and add an intermediate-size fixture or subset benchmark to locate the threshold before optimizing. |
|
|
26
|
+
| `AUD-621-WIN-PROC` | Four descendant `ask.exe` processes remained. | Native Windows/Git Bash process-tree tests for normal completion, timeout and interruption. |
|
|
27
|
+
|
|
28
|
+
## Confirmed Improvements
|
|
29
|
+
|
|
30
|
+
| Area | External result |
|
|
31
|
+
|---|---|
|
|
32
|
+
| Command surface | All nine commands restored in `5.9.16` remain present and functional. |
|
|
33
|
+
| Manifest parsing | `tutorials` manifest parsing remained improved at 18.8 seconds. |
|
|
34
|
+
| `review-pr` | No recurrence in five further runs. |
|
|
35
|
+
| Kotlin detection | A second real Kotlin repository was classified correctly. |
|
|
36
|
+
|
|
37
|
+
## Operating Position
|
|
38
|
+
|
|
39
|
+
Use ASK in bounded, supervised workflows only. Do not represent `5.9.17` as
|
|
40
|
+
reliable for production CI-gating or enterprise-scale Windows analysis until the
|
|
41
|
+
worker, stderr-forwarding and process-lifecycle findings close with repeatable
|
|
42
|
+
native evidence.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Release 5.9.18 — AUD-621 Remediation
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-08-31
|
|
4
|
+
**Scope:** fixes applied after the external `5.9.17` audit.
|
|
5
|
+
|
|
6
|
+
## Implemented Fixes
|
|
7
|
+
|
|
8
|
+
| Finding | Change | Evidence in this checkout |
|
|
9
|
+
|---|---|---|
|
|
10
|
+
| `AUD-621-PACK-STDERR` | Pack child stderr uses UTF-8 with replacement; the forwarding loop cannot terminate on a decode exception. | Pack progress and manifest tests pass; a regression test asserts the subprocess decoding contract. This fixes one failure mode only. |
|
|
11
|
+
| `AUD-621-R` | Windows parse-worker construction is forbidden, backing up the existing sequential fallback. | Parallel Windows-contract tests pass; the six-command reliability matrix completes on the engineering host. |
|
|
12
|
+
| Validation regression found during verification | Expected `typer.Exit` validation exits bypass the analysis-failure wrapper. | `risk` and `audit-report` invalid-profile regressions pass with `INVALID_INPUT` and exit 2. |
|
|
13
|
+
|
|
14
|
+
## Unchanged Closure Gates
|
|
15
|
+
|
|
16
|
+
- `AUD-621-R`: at least 25 repetitions per affected command in at least two native Windows sessions.
|
|
17
|
+
- `AUD-621-WIN-PROC`: native Windows/Git Bash process-tree tests for successful, timed-out and interrupted commands.
|
|
18
|
+
- `AUD-621-CONTEXT`: phase profile and intermediate-size benchmark before a performance claim for the 24,073-file corpus.
|
|
19
|
+
|
|
20
|
+
Release `5.9.18` is therefore suitable only for bounded, supervised use until those gates are met.
|
|
21
|
+
|
|
22
|
+
## Post-remediation regression
|
|
23
|
+
|
|
24
|
+
A 2026-08-31 re-audit found a separate `pack gate --since` failure that is not the
|
|
25
|
+
stderr-forwarding bug above: the git-ref materialization path can execute under
|
|
26
|
+
Python 3.10 and raise `TypeError: TarFile.extract() got an unexpected keyword
|
|
27
|
+
argument 'filter'` when `tarfile` is called with `filter="data"`. That makes the
|
|
28
|
+
pack path unsafe in mixed-Python Windows environments until the interpreter is
|
|
29
|
+
pinned and the tar extraction call is version-guarded.
|
|
@@ -14,6 +14,41 @@ 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-621`
|
|
18
|
+
|
|
19
|
+
**Release `5.9.19` remediation.** The stderr-decoding fix for `AUD-621-PACK-STDERR` remains in code, and the distinct `pack gate --since` crash found by the post-remediation re-audit is corrected with a Python 3.9–3.11-compatible tar extraction path. `AUD-621-R` has a second Windows barrier at process-pool construction, complementing the sequential fallback. The broader findings remain open until their required native Windows evidence is recorded; `AUD-621-CONTEXT` and `AUD-621-WIN-PROC` are unchanged.
|
|
20
|
+
|
|
21
|
+
**Re-audit of release `5.9.17`, received 2026-08-31.** Four independent
|
|
22
|
+
Windows measurements overturn the apparent partial recovery of the shared
|
|
23
|
+
worker failure: `risk` with a non-zero limit and Markdown `audit-report` had
|
|
24
|
+
zero successful runs; `verify`, `spring-audit`, `migrate-check` and
|
|
25
|
+
`migrate-apply` succeeded only intermittently (roughly 0-27% by command and
|
|
26
|
+
session). The known `PermissionError: [WinError 5]` in `DuplicateHandle` remains
|
|
27
|
+
the governing mechanism. A successful run from one session is not closure
|
|
28
|
+
evidence for this race.
|
|
29
|
+
|
|
30
|
+
The audit also isolates a new, high-confidence Windows defect in `pack gate`:
|
|
31
|
+
the `_forward_stderr` thread decodes child output using the active codepage,
|
|
32
|
+
raises `UnicodeDecodeError` on UTF-8 bytes, then stops draining the pipe. The
|
|
33
|
+
child can block once that pipe fills. Two independent forks captured the same
|
|
34
|
+
traceback. A separate re-audit then found that `pack gate --since` can still
|
|
35
|
+
fail earlier in `git_checkout.py` under Python 3.10, so the stderr fix is
|
|
36
|
+
necessary but not sufficient. The full evidence is
|
|
37
|
+
[`AUDIT-2026-08-31-EXTERNAL-5.9.17.md`](AUDIT-2026-08-31-EXTERNAL-5.9.17.md).
|
|
38
|
+
|
|
39
|
+
| ID | Severity | Status | Evidence and required closure |
|
|
40
|
+
|---|---:|---|---|
|
|
41
|
+
| `AUD-621-R` | Critical maximum | **open, P0** | All direct shared-worker commands remain unreliable on Windows: `risk --limit != 0` and Markdown `audit-report` were 0% successful; `verify`, `spring-audit`, `migrate-check` and plan-mode `migrate-apply` were 0-27%. Detect pool startup failure, fall back to one process or emit structured non-zero failure, and validate >=25 repetitions in >=2 native Windows sessions per command. |
|
|
42
|
+
| `AUD-621-PACK-STDERR` | Critical | **open, P0** | `packs.py:_forward_stderr` uses the Windows default codepage and crashes on UTF-8 progress bytes; the unread stderr pipe then deadlocks `pack gate`. Open the child stream with UTF-8 and `errors="replace"`, keep draining on decode errors, and test CP1252 plus UTF-8 output. |
|
|
43
|
+
| `AUD-621-CONTEXT` | High | **open, P1** | `analyzing repository context` is stable below about 5,000 Java files but ceases to advance on the 24,073-file corpus for more than 190 seconds. It also explains the `cache warm` agent-view exit 143. Profile this one phase and locate its threshold with 8,000-12,000-file subsets or a synthetic fixture. |
|
|
44
|
+
| `AUD-621-WIN-PROC` | Medium | **open, platform-blocked** | Four `ask.exe` descendants remained after the audit run. Native Windows process-tree evidence is still required. |
|
|
45
|
+
| `AUD-621-REVIEW-PR` | Medium | **closed/no-repro** | No recurrence in five further runs; retain the regression test. |
|
|
46
|
+
|
|
47
|
+
The restored command surface, Bug F, Bug Q, baseline behavior and endpoint/posture
|
|
48
|
+
validation are now independently stable across multiple rounds. They remain
|
|
49
|
+
closed. Production CI-gating and enterprise-scale claims remain blocked by
|
|
50
|
+
`AUD-621-R`, `AUD-621-PACK-STDERR` and the Windows lifecycle evidence.
|
|
51
|
+
|
|
17
52
|
## Current Synchronization — External Audit `AUD-620`
|
|
18
53
|
|
|
19
54
|
**Re-audit of release `5.9.16`, received 2026-08-31.** This audit confirms that
|
|
@@ -1,5 +1,39 @@
|
|
|
1
1
|
# ASK — Development Roadmap
|
|
2
2
|
|
|
3
|
+
### Release 5.9.19 — `AUD-621` remediation
|
|
4
|
+
|
|
5
|
+
Release `5.9.19` carries the `5.9.18` Windows safeguards and fixes the separate `pack gate --since` crash caused by calling the Python 3.12-only tarfile filter API on Python 3.10. The compatibility path is covered by regression tests; native Windows repetition remains required for the broader reliability findings.
|
|
6
|
+
|
|
7
|
+
These code changes do not replace the required native evidence. `AUD-621-R` and `AUD-621-WIN-PROC` remain open until the repetition matrix and process-tree cases pass on native Windows; `AUD-621-CONTEXT` remains profiling work.
|
|
8
|
+
|
|
9
|
+
### External Audit Intake — `AUD-621` re-audit, release 5.9.17
|
|
10
|
+
|
|
11
|
+
The 2026-08-31 re-audit corrects the optimistic interpretation of the previous
|
|
12
|
+
round. Four independent Windows samples show that the shared `DuplicateHandle`
|
|
13
|
+
worker-start failure is still active: `risk --limit != 0` and Markdown
|
|
14
|
+
`audit-report` had no successful runs, while `verify`, `spring-audit`,
|
|
15
|
+
`migrate-check` and `migrate-apply` were only intermittently successful. The
|
|
16
|
+
current structured-error boundary is useful, but it does not make a failed or
|
|
17
|
+
blocked worker pool reliable.
|
|
18
|
+
|
|
19
|
+
**Engineering decision: fix the pool path before further feature work.** Make
|
|
20
|
+
worker startup fail closed or fall back deterministically to a single process;
|
|
21
|
+
instrument pool creation with process/handle context; then validate each affected
|
|
22
|
+
command in at least 25 repetitions across two or more native Windows sessions.
|
|
23
|
+
One clean session, however large, cannot close this defect.
|
|
24
|
+
|
|
25
|
+
| ID | Priority | Next action and closure boundary |
|
|
26
|
+
|---|---:|---|
|
|
27
|
+
| `AUD-621-R` | P0 | Implement deterministic sequential fallback at every shared-worker entry, with bounded waits and structured failure evidence. Compare direct risk computation with `audit-report --from-risk`, then collect the multi-session Windows matrix. |
|
|
28
|
+
| `AUD-621-PACK-STDERR` | P0 | Open child stderr as UTF-8 with replacement behavior and ensure `_forward_stderr` cannot die without draining the pipe. Add a CP1252/UTF-8 subprocess regression for `pack gate`. |
|
|
29
|
+
| `AUD-621-CONTEXT` | P1 | Profile `analyzing repository context`; it is a threshold failure, not a uniform slowdown, and also causes the agent-view warm timeout. Add an intermediate-size fixture or subset benchmark before optimizing. |
|
|
30
|
+
| `AUD-621-WIN-PROC` | P1 | Measure descendant cleanup around successful, timed-out and interrupted commands on native Windows/Git Bash. |
|
|
31
|
+
|
|
32
|
+
The root compact command itself, the recovered command surface, redirection and
|
|
33
|
+
validation fixes remain healthy. Commercially, limit use to bounded pilots and
|
|
34
|
+
do not claim production CI gating or enterprise-scale reliability. Full evidence
|
|
35
|
+
is in [`AUDIT-2026-08-31-EXTERNAL-5.9.17.md`](AUDIT-2026-08-31-EXTERNAL-5.9.17.md).
|
|
36
|
+
|
|
3
37
|
### External Audit Intake — `AUD-620` re-audit, release 5.9.16
|
|
4
38
|
|
|
5
39
|
The external re-audit received 2026-08-31 confirms a major recovery from the
|
|
@@ -5,6 +5,20 @@
|
|
|
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.19`, remediation.** Windows parse workers are now forbidden at their construction point, `pack gate` drains UTF-8 child stderr safely, and `pack gate --since` extracts git refs compatibly on Python 3.9–3.14. Expected validation exits remain typed input errors. These are code fixes, not native-Windows closure evidence: keep bounded pilots until the required repetition and process-lifecycle measurements complete.
|
|
9
|
+
|
|
10
|
+
> **CURRENT UPDATE — release `5.9.17`, external re-audit.** The restored command
|
|
11
|
+
> surface and prior validation fixes remain stable, but the shared Windows worker
|
|
12
|
+
> failure is confirmed active, not partially closed. `risk --limit != 0` and
|
|
13
|
+
> Markdown `audit-report` failed throughout the independent samples; `verify`,
|
|
14
|
+
> `spring-audit`, `migrate-check` and `migrate-apply` remain highly intermittent.
|
|
15
|
+
> A new `pack gate` deadlock is also traced to CP1252 decoding in its stderr
|
|
16
|
+
> forwarding thread. The immediate engineering focus is deterministic worker
|
|
17
|
+
> fallback, safe stderr decoding, and native Windows evidence. Keep bounded
|
|
18
|
+
> pilots only; the working commercial hypothesis is `$20-28/developer/month` and
|
|
19
|
+
> no production CI-gating or enterprise-scale reliability promise is authorized.
|
|
20
|
+
> See [`AUDIT-2026-08-31-EXTERNAL-5.9.17.md`](AUDIT-2026-08-31-EXTERNAL-5.9.17.md).
|
|
21
|
+
|
|
8
22
|
> **CURRENT UPDATE — release `5.9.16`, external re-audit.** The defective
|
|
9
23
|
> `5.9.15` command surface has been recovered: all nine missing commands are
|
|
10
24
|
> restored and independently invoked, and the prior `/dev/null`, option-parser,
|
|
@@ -46,16 +46,18 @@ 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.19, `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
|
|
56
|
-
|
|
55
|
+
the two pack fixes were tracked in release 5.9.18 as intended changes, and
|
|
56
|
+
release 5.9.19 adds the tarfile compatibility correction found by the later
|
|
57
|
+
re-audit. Release-artifact verification remains for detached execution and pack
|
|
58
|
+
evidence, and native Windows reliability evidence is still required.
|
|
57
59
|
|
|
58
|
-
### Reliability contracts in 5.9.
|
|
60
|
+
### Reliability contracts in 5.9.19
|
|
59
61
|
|
|
60
62
|
**Failures must be visible.** `risk`, `verify`, `audit-report` and
|
|
61
63
|
`migrate-check` turn unexpected analysis failures into structured
|
|
@@ -64,6 +66,16 @@ The release battery includes a repeatable six-command Windows matrix; it records
|
|
|
64
66
|
exit codes and output sizes, but native Windows evidence remains required before
|
|
65
67
|
closing platform-specific findings.
|
|
66
68
|
|
|
69
|
+
**Current Windows limitation.** The `5.9.17` external audit reproduced the
|
|
70
|
+
shared worker-start failure in `risk`, `verify`, `audit-report`, `spring-audit`,
|
|
71
|
+
`migrate-check` and `migrate-apply`. Do not use these commands as a production
|
|
72
|
+
CI gate on Windows until the native matrix closes them. A 2026-08-31 re-audit
|
|
73
|
+
also found a separate `pack gate --since` crash in the git-ref materialization
|
|
74
|
+
path when the subprocess resolves to Python 3.10 and hits the Python 3.12-only
|
|
75
|
+
`TarFile.extract(..., filter="data")` API. Release 5.9.19 adds a compatible
|
|
76
|
+
fallback; the command still requires native repeat evidence. See the
|
|
77
|
+
[development roadmap](DEVELOPMENT-ROADMAP.md#external-audit-intake--aud-621-re-audit-release-5917).
|
|
78
|
+
|
|
67
79
|
**A deadline the root analysis honours.** `ASK_MAX_ANALYSIS_SECONDS=<seconds>` now
|
|
68
80
|
stops `ask <repo>` at a measured phase boundary. A run that spends its budget
|
|
69
81
|
returns a structured `partial-answer-v1` payload naming the phases that completed,
|
|
@@ -267,7 +279,7 @@ pipx install sourcecode # isolated install, no venv needed
|
|
|
267
279
|
|
|
268
280
|
# Verify
|
|
269
281
|
ask version
|
|
270
|
-
# ask 5.9.
|
|
282
|
+
# ask 5.9.19
|
|
271
283
|
```
|
|
272
284
|
|
|
273
285
|
Requires Python 3.9+.
|
|
@@ -13422,6 +13422,8 @@ def verify_cmd(
|
|
|
13422
13422
|
hint=f"--fail-on accepts: {' | '.join(_vr.FAIL_ON_CHOICES)}.",
|
|
13423
13423
|
)
|
|
13424
13424
|
raise typer.Exit(code=2 if ci else 0)
|
|
13425
|
+
except typer.Exit:
|
|
13426
|
+
raise
|
|
13425
13427
|
except Exception as exc:
|
|
13426
13428
|
_prog.stop()
|
|
13427
13429
|
_analysis_failed("verify", "verifying contracts", exc)
|
|
@@ -13691,6 +13693,8 @@ def risk_cmd(
|
|
|
13691
13693
|
ci=ci,
|
|
13692
13694
|
allow_partial=allow_partial,
|
|
13693
13695
|
)
|
|
13696
|
+
except typer.Exit:
|
|
13697
|
+
raise
|
|
13694
13698
|
except Exception as exc:
|
|
13695
13699
|
_analysis_failed("risk", phase, exc)
|
|
13696
13700
|
finally:
|
|
@@ -14194,6 +14198,8 @@ def audit_report_cmd(
|
|
|
14194
14198
|
checkpoint=_run.checkpoint,
|
|
14195
14199
|
partial_status=lambda **cut: _run.status(_WHY_BUDGET, **cut),
|
|
14196
14200
|
)
|
|
14201
|
+
except typer.Exit:
|
|
14202
|
+
raise
|
|
14197
14203
|
except Exception as exc:
|
|
14198
14204
|
_analysis_failed("audit-report", _phase, exc)
|
|
14199
14205
|
finally:
|
|
@@ -15596,6 +15602,8 @@ def migrate_check_cmd(
|
|
|
15596
15602
|
timings=_mig_timings,
|
|
15597
15603
|
)
|
|
15598
15604
|
report.include_hygiene = include_hygiene
|
|
15605
|
+
except typer.Exit:
|
|
15606
|
+
raise
|
|
15599
15607
|
except Exception as exc:
|
|
15600
15608
|
_analysis_failed("migrate-check", phase, exc)
|
|
15601
15609
|
finally:
|
|
@@ -27,6 +27,7 @@ after it borrowed a parent's ref once (C3-27).
|
|
|
27
27
|
from __future__ import annotations
|
|
28
28
|
|
|
29
29
|
import subprocess
|
|
30
|
+
import sys
|
|
30
31
|
import tarfile
|
|
31
32
|
import tempfile
|
|
32
33
|
from contextlib import contextmanager
|
|
@@ -149,4 +150,10 @@ def _extract_safely(tar: tarfile.TarFile, dest: Path) -> None:
|
|
|
149
150
|
resolved = (root / member.name).resolve()
|
|
150
151
|
if not str(resolved).startswith(str(root)):
|
|
151
152
|
continue
|
|
152
|
-
|
|
153
|
+
# `filter` was added in Python 3.12 (PEP 706). The explicit path and
|
|
154
|
+
# link checks above provide the compatibility-safe extraction policy
|
|
155
|
+
# for the Python versions still supported by this project.
|
|
156
|
+
if sys.version_info >= (3, 12):
|
|
157
|
+
tar.extract(member, dest, filter="data")
|
|
158
|
+
else:
|
|
159
|
+
tar.extract(member, dest)
|
|
@@ -719,17 +719,27 @@ def _run_command(command: str, root: Path, output: Path, extra: list[str]) -> di
|
|
|
719
719
|
stdout=subprocess.PIPE,
|
|
720
720
|
stderr=subprocess.PIPE,
|
|
721
721
|
text=True,
|
|
722
|
+
# A Windows console often defaults to a legacy code page while ASK emits
|
|
723
|
+
# UTF-8 diagnostics. Decoding strictly lets the forwarding thread die,
|
|
724
|
+
# leaving stderr undrained and the child blocked on a full pipe.
|
|
725
|
+
encoding="utf-8",
|
|
726
|
+
errors="replace",
|
|
722
727
|
cwd=str(root),
|
|
723
728
|
)
|
|
724
729
|
stderr_lines: list[str] = []
|
|
725
730
|
|
|
726
731
|
def _forward_stderr() -> None:
|
|
727
732
|
assert process.stderr is not None
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
+
try:
|
|
734
|
+
for line in process.stderr:
|
|
735
|
+
stderr_lines.append(line)
|
|
736
|
+
# Child diagnostics are operational progress/errors, never pack data.
|
|
737
|
+
sys.stderr.write(line)
|
|
738
|
+
sys.stderr.flush()
|
|
739
|
+
except UnicodeDecodeError:
|
|
740
|
+
# `encoding`/`errors` above prevents this for ASK children. Keep the
|
|
741
|
+
# pack process alive even if a custom stream violates that contract.
|
|
742
|
+
stderr_lines.append("[ask] stderr contained undecodable bytes\n")
|
|
733
743
|
|
|
734
744
|
stderr_thread = threading.Thread(target=_forward_stderr, daemon=True)
|
|
735
745
|
stderr_thread.start()
|
|
@@ -113,7 +113,14 @@ def _reset_for_tests() -> None:
|
|
|
113
113
|
|
|
114
114
|
|
|
115
115
|
def _executor(max_workers: int):
|
|
116
|
-
"""Construct the process executor through one injectable seam.
|
|
116
|
+
"""Construct the process executor through one injectable seam.
|
|
117
|
+
|
|
118
|
+
Windows uses the sequential parse path. Keep that invariant at the only
|
|
119
|
+
construction point as well as at the caller, so a future caller cannot
|
|
120
|
+
reintroduce a ``DuplicateHandle`` worker-start failure.
|
|
121
|
+
"""
|
|
122
|
+
if os.name == "nt":
|
|
123
|
+
raise RuntimeError("Windows process pools are disabled; parse sequentially")
|
|
117
124
|
from concurrent.futures import ProcessPoolExecutor
|
|
118
125
|
|
|
119
126
|
return ProcessPoolExecutor(max_workers=max_workers)
|
|
@@ -33,7 +33,7 @@ RELEASE_DATE = "2026-08-31"
|
|
|
33
33
|
#: computation the test re-runs). The nine-day interval before 5.9.0 lowers
|
|
34
34
|
#: that window to 29 releases over 18 days, so the constant follows the current
|
|
35
35
|
#: measurement rather than preserving the former short-burst cadence.
|
|
36
|
-
RELEASE_RATE_PER_DAY =
|
|
36
|
+
RELEASE_RATE_PER_DAY = 3.22
|
|
37
37
|
|
|
38
38
|
#: How many releases behind is worth telling the operator about. Four, which on
|
|
39
39
|
#: the measured cadence is about three days: one release is under a day and warning
|
|
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
|