sourcecode 5.9.14__tar.gz → 5.9.16__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 → sourcecode-5.9.16}/.github/workflows/windows-regression.yml +2 -1
- {sourcecode-5.9.14 → sourcecode-5.9.16}/CHANGELOG.md +28 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/CODE_OF_CONDUCT.md +0 -1
- {sourcecode-5.9.14 → sourcecode-5.9.16}/PKG-INFO +5 -5
- {sourcecode-5.9.14 → sourcecode-5.9.16}/README.md +4 -4
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/AUDIT-2026-08-23-CORPUS-AMPLIADO.md +3 -3
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/AUDIT-2026-08-23-EXTERNAL-5.8.25.md +2 -2
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/AUDIT-2026-08-23-EXTERNAL-5.8.26.md +2 -2
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/AUDIT-2026-08-23-THINGSBOARD-FINDINGS.md +8 -8
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.26.md +2 -2
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.27.md +2 -2
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md +2 -2
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.28.md +2 -2
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/AUDIT-2026-08-26-EXTERNAL-5.9.0.md +6 -6
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/AUDIT-2026-08-27-EXTERNAL-5.9.2.md +2 -2
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/AUDIT-2026-08-27-EXTERNAL-5.9.3.md +2 -3
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/DOCUMENTATION-HYGIENE-2026-08-23.md +0 -1
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/RELEASE-CHECKLIST.md +7 -0
- sourcecode-5.9.16/docs/RELEASE-VERIFICATION.md +102 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/USER_GUIDE.md +4 -4
- {sourcecode-5.9.14 → sourcecode-5.9.16}/pyproject.toml +1 -1
- {sourcecode-5.9.14 → sourcecode-5.9.16}/scripts/perf_gate.py +10 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/scripts/perf_harness.py +9 -1
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/__init__.py +1 -1
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/cache.py +39 -3
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/cli.py +89 -19
- sourcecode-5.9.16/src/sourcecode/click_runtime.py +61 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/envelope.py +1 -1
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/git_checkout.py +1 -1
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/manifest_cache.py +11 -1
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/mcp/registry.py +4 -2
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/output_ceiling.py +2 -5
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/packs.py +36 -5
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/parallel.py +86 -32
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/release_info.py +9 -11
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/ris.py +9 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/serializer.py +49 -1
- {sourcecode-5.9.14 → sourcecode-5.9.16}/.github/workflows/build-windows.yml +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/.github/workflows/perf-gate.yml +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/.github/workflows/windows-battery.yml +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/.gitignore +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/.ruff.toml +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/CLAUDE.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/CONTRIBUTING.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/LICENSE +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/NOTICE +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/SECURITY.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/AUDIT-2026-08-22-5.8.22.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/AUDIT-2026-08-23-5.8.24.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/AUDIT-2026-08-23-COMMERCIAL.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.31.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.32.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/AUDIT-2026-08-26-MONETIZATION.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/AUDIT-2026-08-28-EXTERNAL-5.9.10.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/AUDIT-TESTING-CORPUS-2026-08-22.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/CACHE.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/COMMERCIAL-OFFER.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/CUSTOMER-VALIDATION.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/DEFECT-LEDGER.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/DEMO-5MIN.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/DEVELOPMENT-ROADMAP.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/EXECUTION-PLAN-12MO.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/EXECUTIVE-ROADMAP.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/MANUAL-USUARIO.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/MODERNIZATION.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/PRODUCT-ROUTE.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/PRODUCT_AUDIT.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/PRODUCT_IDENTITY.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/PRODUCT_TIERS.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/RC1-CHECKLIST.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/STRATEGY-2026-08-26-AGENT-CONTEXT.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/CATALOG-retrieval-intents.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/DESIGN-assessment-deployment-evidence.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/DESIGN-assessment-report.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/DESIGN-build-closure-provenance.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/DESIGN-knowledge-provider-integration.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/DESIGN-p5.3b-statement-surface.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/DESIGN-p5.5-span-index.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/DESIGN-p6-semantic-impact-engine.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/DESIGN-p6-semantic-integration-engine.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/DESIGN-p7-semantic-services.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/DESIGN-pack-gate-ci.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/DESIGN-pack-manifest.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/DESIGN-pack-mcp-api.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/DESIGN-robustness-security-inference.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/DESIGN-semantic-retrieval.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/EPV-p6-class-typeref.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/REPORT-p6-flow-analyzer-comparison.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/REPORT-p6-integration-detector-comparison.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/REPORT-p8-flow-analyzer-migration.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/REPORT-p9-integration-detector-migration.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/adr/0001-semantic-ir.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/adr/0002-source-evidence-boundary.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/adr/0003-architectural-characterization.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/adr/0004-semantic-retrieval.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/adr/0005-evidence-reconciliation.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/adr/0006-performance-harness.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/adr/0007-composition-semantics.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/adr/0008-answer-coherence.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/consumer-disposition-inventory.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/overview.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/product-architecture-review.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/product-strategy-layering.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/semantic-ir-consumer-matrix.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/architecture/semantic-ir-roadmap.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/baseline-ci.yml +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/commercial-pipeline-audit.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/contracts-ci.yml +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/contracts.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/eval/2026-06-15-petclinic-rest-issue11-vets-pagination.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/eval/2026-06-15-petclinic-rest-issue147-validation.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/eval/2026-06-15-petclinic-rest-workflow.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/eval/2026-06-15-phase18-openapi-surface.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/eval/2026-06-15-phase20-validation-surface.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/eval/2026-06-16-broadleaf-checkout-impact-fieldtest.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/eval/2026-06-16-petclinic-rest-issue11-weakness2-closed.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/eval/2026-06-16-spring-petclinic-issue2333-dead-vets.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/licensing-schema.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/migrate-check.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/pack-gate-github-actions.yml +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/pack-gate-gitlab.yml +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/README.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/REGRESSION-GATE.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.15/SUMMARY.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.15/alfresco__ask__cold.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.15/alfresco__ask__warm.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.15/broadleaf__ask__cold.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.15/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.15/eureka__ask__cold.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.15/eureka__ask__warm.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.15/jenkins__ask__cold.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.15/jenkins__ask__warm.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.15/jobrunr__ask__cold.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.15/jobrunr__ask__warm.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.15/keycloak__ask__cold.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.15/keycloak__ask__warm.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.15/neo4j__ask__cold.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.15/neo4j__ask__warm.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.15/ofbiz__ask__cold.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.15/ofbiz__ask__warm.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.15/openmrs__ask__cold.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.15/openmrs__ask__warm.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.15/petclinic__ask__cold.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.15/petclinic__ask__warm.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.16/SUMMARY.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.16/alfresco__ask__cold.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.16/alfresco__ask__warm.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.16/broadleaf__ask__cold.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.16/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.16/eureka__ask__cold.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.16/eureka__ask__warm.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.16/jenkins__ask__cold.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.16/jenkins__ask__warm.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.16/jobrunr__ask__cold.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.16/jobrunr__ask__warm.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.16/keycloak__ask__cold.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.16/keycloak__ask__warm.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.16/neo4j__ask__cold.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.16/neo4j__ask__warm.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.16/ofbiz__ask__cold.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.16/ofbiz__ask__warm.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.16/openmrs__ask__cold.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.16/openmrs__ask__warm.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.16/petclinic__ask__cold.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/2.5.16/petclinic__ask__warm.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/gate-latest/README.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/gate-latest/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/gate-latest/broadleaf__endpoints__warm.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/gate-latest/broadleaf__migrate-check__warm.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/gate-latest/broadleaf__posture__warm.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/gate-latest/broadleaf__spring-audit__warm.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/gate-latest/broadleaf__validation__warm.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/baselines/reference-best/README.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/perf/corpus-testing-2026-08-22.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/posture.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/privacy.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/pro-experience-audit.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/schema.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/spec/envelope-v1.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/docs/spring-audit-ci.yml +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/hatch_build.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/scripts/compare_integration_engines.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/scripts/context_cost_harness.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/scripts/customer_smoke_test.sh +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/scripts/generate_jdk_exports.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/scripts/sync_gate_anchors.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/scripts/test_fast.sh +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/__main__.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/access_drift.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/adaptive_scanner.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/analysis_budget.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/answer_bounds.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/archetype.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/architectural_baseline.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/architectural_delta.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/architecture_analyzer.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/architecture_summary.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/ast_extractor.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/audit_clusters.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/audit_recipe.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/audit_report.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/audit_since.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/audit_verify.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/baseline_attestation.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/baseline_autocapture.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/breaking_changes.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/build_modules.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/build_stamp.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/bundled_docs.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/c4_render.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/cache_model.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/cache_observation.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/call_surface.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/caller_metrics.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/caller_reach.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/canonical_ir.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/chain_rules.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/change_plan.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/ci_output.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/cir_graphs.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/classifier.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/client_calls.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/code_notes_analyzer.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/compare.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/confidence_analyzer.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/constraint_diff.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/consumer_join.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/container_wiring.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/context_cache.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/context_graph.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/context_scorer.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/context_summarizer.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/contract_diff.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/contract_init.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/contract_model.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/contract_pipeline.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/coverage_parser.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/cve_feed.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/cve_reachability.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/data_exposure.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/data_labels.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/declarations.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/defect_classes/__init__.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/defect_classes/registry.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/defect_identity.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/degradation.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/dependency_analyzer.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/deployment_prefix.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/detach.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/detectors/__init__.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/detectors/base.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/detectors/csproj_parser.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/detectors/dart.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/detectors/dotnet.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/detectors/elixir.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/detectors/go.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/detectors/heuristic.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/detectors/hybrid.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/detectors/java.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/detectors/jvm_ext.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/detectors/nodejs.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/detectors/parsers.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/detectors/php.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/detectors/project.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/detectors/python.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/detectors/ruby.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/detectors/rust.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/detectors/systems.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/detectors/terraform.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/detectors/tooling.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/doc_analyzer.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/dynamic_argument_surface.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/empty_reach.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/endpoint_disposition.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/endpoint_literals.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/endpoint_metrics.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/entrypoint_classifier.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/env_analyzer.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/environment_resolution.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/error_schema.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/evidence_provider.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/execution_plan.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/explain.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/explain_endpoint.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/facts/__init__.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/facts/registry.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/field_deprecations.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/file_chunker.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/file_classifier.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/filter_surface.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/findings_baseline.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/format_contract.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/fqn_utils.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/functional_routes.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/gate_anchors.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/git_analyzer.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/github_diff.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/graph_analyzer.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/graph_evidence.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/hibernate_strat.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/identity_fallback.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/integration_coordinates.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/intent_router.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/jdk_exports.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/license.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/mcp/__init__.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/mcp/dependency_import.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/mcp/onboarding/applier.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/mcp/onboarding/backup.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/mcp/onboarding/detector.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/mcp/onboarding/planner.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/mcp/orchestrator.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/mcp/runner.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/mcp/server.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/mcp_nudge.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/metrics_analyzer.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/migrate_check.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/migration_apply.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/migration_blast.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/non_coverage.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/openapi_surface.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/openrewrite_recipe.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/output_bounds.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/output_budget.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/output_encoding.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/output_sink.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/pack_manifest.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/parse_cache.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/partial_contract.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/path_admission.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/path_display.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/path_filters.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/perf.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/phased_run.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/pipe_contract.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/posture.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/pr_comment_renderer.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/pr_impact.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/pr_risk.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/prepare_context.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/product_info.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/progress.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/provenance.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/ranking_engine.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/readiness_timeline.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/readonly.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/reconciliation.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/redactor.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/reference_facts.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/regress.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/regulatory_pack.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/relevance_scorer.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/remediation_diff.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/remediation_flow.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/remediation_report.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/remedies.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/rename_refactor.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/repo_classifier.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/repository_ir.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/resource_budget.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/retrieval/__init__.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/retrieval/context.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/retrieval/errors.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/retrieval/executor.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/retrieval/planner.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/retrieval/query.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/retrieval/request.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/retrieval/resolution.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/retrieval/result.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/retrieval/retriever.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/retrieval/runtime.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/retrieval/steps.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/retrieval/steps_endpoint.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/retrieval/steps_graph.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/retrieval/steps_impact.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/retrieval/steps_intf.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/retrieval/steps_struct.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/retrieval/steps_txsec.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/risk.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/risk_model.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/rule_catalog.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/rule_pass.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/runs.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/runtime_classifier.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/sarif.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/sarif_emit.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/scanner.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/schema.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/schema_producers.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/schema_registry.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/schemas/core-analysis-v1.schema.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/schemas/cve-reachability-v1.schema.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/schemas/endpoints-v1.schema.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/schemas/envelope-v1.schema.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/schemas/pr-impact-v1.schema.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/schemas/verify-edit-v1.schema.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/schemas/verify-v1.schema.json +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/security_chain.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/security_config.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/security_config_scan.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/security_posture.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/selection_contract.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/self_audit.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/selftest.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/semantic_analyzer.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/semantic_impact_engine.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/semantic_integration_engine.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/semantic_services.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/servlet_surface.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/source_text.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/spring_event_topology.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/spring_findings.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/spring_impact.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/spring_model.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/spring_profiles.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/spring_properties.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/spring_security_audit.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/spring_semantic.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/spring_tx_analyzer.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/sql_taint.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/summarizer.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/target_admission.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/telemetry/__init__.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/telemetry/config.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/telemetry/consent.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/telemetry/events.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/telemetry/filters.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/telemetry/transport.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/test_gap_ranking.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/test_sources.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/text_input.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/timeline.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/timeline_cache.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/token_estimate.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/tree_utils.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/type_usage_surface.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/validation_inference.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/validation_surface.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/verify_edit.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/verify_repo.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/verify_rules.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/version_check.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/vex.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/waivers.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/watch_loop.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/wired_surface.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/src/sourcecode/workspace.py +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/supabase/functions/README.md +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/supabase/functions/get-license/index.ts +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/supabase/functions/lemonsqueezy-webhook/index.ts +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/supabase/functions/telemetry/index.ts +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/supabase/sql/license_event_ordering.sql +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/supabase/sql/licensing_schema.sql +0 -0
- {sourcecode-5.9.14 → sourcecode-5.9.16}/supabase/sql/telemetry_events.sql +0 -0
|
@@ -35,7 +35,8 @@ jobs:
|
|
|
35
35
|
python -m pytest -q -n 0 \
|
|
36
36
|
tests/test_encoding_regression.py \
|
|
37
37
|
tests/test_output_encoding.py \
|
|
38
|
-
tests/test_path_prefix_selection.py
|
|
38
|
+
tests/test_path_prefix_selection.py \
|
|
39
|
+
tests/test_parallel_jobs.py
|
|
39
40
|
|
|
40
41
|
- name: Prove Git Bash cannot turn a route filter into a clean zero
|
|
41
42
|
shell: bash
|
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [5.9.16] — 2026-08-31
|
|
4
|
+
|
|
5
|
+
*Audit candidate following the 5.9.15 release recovery.*
|
|
6
|
+
|
|
7
|
+
### Release Process
|
|
8
|
+
|
|
9
|
+
- Run a fresh external audit against the wheel built from this commit. Record
|
|
10
|
+
the wheel hash and stamped commit under `docs/RELEASE-VERIFICATION.md` before
|
|
11
|
+
uploading it to PyPI.
|
|
12
|
+
|
|
13
|
+
## [5.9.15] — 2026-08-31
|
|
14
|
+
|
|
15
|
+
*Release recovery: restore the 5.9.14 implementation line before publishing a
|
|
16
|
+
corrected artefact.*
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
|
|
20
|
+
- Restored `audit-verify`, `cve`, `drift`, `intent`, `pr-risk`, `remediate`,
|
|
21
|
+
`remediation-report`, `self-audit` and `watch`, with their implementations
|
|
22
|
+
and regression contracts.
|
|
23
|
+
- Restored the related Windows, output-delivery and input-admission hardening
|
|
24
|
+
from the recovery branch.
|
|
25
|
+
|
|
26
|
+
### Release Process
|
|
27
|
+
|
|
28
|
+
- Publication is blocked until the wheel's stamped commit, installed command
|
|
29
|
+
surface and PyPI hashes pass `docs/RELEASE-VERIFICATION.md`.
|
|
30
|
+
|
|
3
31
|
## [5.9.14] — 2026-08-30
|
|
4
32
|
|
|
5
33
|
*AUD-619 intake, Windows reliability follow-up and release alignment.*
|
|
@@ -24,4 +24,3 @@ other conduct that would be inappropriate in a professional setting is not accep
|
|
|
24
24
|
Report unacceptable behaviour privately to the project maintainers. Maintainers will review
|
|
25
25
|
reports promptly and may remove, edit, or reject contributions, or take other action needed to
|
|
26
26
|
protect participants.
|
|
27
|
-
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sourcecode
|
|
3
|
-
Version: 5.9.
|
|
3
|
+
Version: 5.9.16
|
|
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.16 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.16 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.16 — 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.16 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.16 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.16 — and, on a build that has aged,
|
|
221
221
|
# how many releases have probably shipped since
|
|
222
222
|
```
|
|
223
223
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Intake de hallazgos — corpus ampliado ASK 5.8.25
|
|
2
2
|
|
|
3
|
-
**Fecha:** 2026-08-23
|
|
4
|
-
**Build externo:** `5.8.25`, `b6e0e0f`
|
|
5
|
-
**Fuente:** [`/Users/user/Documents/workspace/testing/ASK-FINDINGS-CORPUS-AMPLIADO-2026-08-23.md`](/Users/user/Documents/workspace/testing/ASK-FINDINGS-CORPUS-AMPLIADO-2026-08-23.md)
|
|
3
|
+
**Fecha:** 2026-08-23
|
|
4
|
+
**Build externo:** `5.8.25`, `b6e0e0f`
|
|
5
|
+
**Fuente:** [`/Users/user/Documents/workspace/testing/ASK-FINDINGS-CORPUS-AMPLIADO-2026-08-23.md`](/Users/user/Documents/workspace/testing/ASK-FINDINGS-CORPUS-AMPLIADO-2026-08-23.md)
|
|
6
6
|
**Estado:** intake incorporado; sin correcciones de código en esta tarea.
|
|
7
7
|
|
|
8
8
|
## Criterio de triage
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Auditoría externa de regresión — ASK Engine 5.8.25
|
|
2
2
|
|
|
3
|
-
**Fecha de recepción:** 2026-08-23
|
|
4
|
-
**Artefacto auditado:** ASK Engine `5.8.25`, build `b6e0e0f157687a962ce66627afe2e9b388fb2f06`
|
|
3
|
+
**Fecha de recepción:** 2026-08-23
|
|
4
|
+
**Artefacto auditado:** ASK Engine `5.8.25`, build `b6e0e0f157687a962ce66627afe2e9b388fb2f06`
|
|
5
5
|
**Entornos:** Windows 11 Pro y reference corpus (`3dde0376`)
|
|
6
6
|
**Alcance:** aproximadamente 180 invocaciones, 0 tracebacks, 0 escrituras observadas.
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# ASK Engine 5.8.26 - External Regression Audit Intake
|
|
2
2
|
|
|
3
|
-
**Received:** 2026-08-23
|
|
4
|
-
**Audited artefact:** `5.8.26`, build `e2da5d84a30bc2e8c60325e1e2d48a8d736b8ad7`
|
|
3
|
+
**Received:** 2026-08-23
|
|
4
|
+
**Audited artefact:** `5.8.26`, build `e2da5d84a30bc2e8c60325e1e2d48a8d736b8ad7`
|
|
5
5
|
**Subject:** reference corpus, commit `3dde0376`, 3,342 Java files
|
|
6
6
|
**Scope:** 35 read-only invocations, explicit output ceiling, no writes and no tracebacks.
|
|
7
7
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# ThingsBoard field audit findings — commercial value and product gaps
|
|
2
2
|
|
|
3
|
-
**Date:** 2026-08-23
|
|
4
|
-
**ASK:** 5.8.25 (`b6e0e0f157687a962ce66627afe2e9b388fb2f06`)
|
|
5
|
-
**Subject:** ThingsBoard, `181ac1392b9728d3e2aed9cd698a246bf1de3de7`
|
|
3
|
+
**Date:** 2026-08-23
|
|
4
|
+
**ASK:** 5.8.25 (`b6e0e0f157687a962ce66627afe2e9b388fb2f06`)
|
|
5
|
+
**Subject:** ThingsBoard, `181ac1392b9728d3e2aed9cd698a246bf1de3de7`
|
|
6
6
|
**Status:** five corrections implemented in the working tree; release/commit pending
|
|
7
7
|
|
|
8
8
|
## Implementation status
|
|
@@ -36,7 +36,7 @@ hours of manual work.
|
|
|
36
36
|
|
|
37
37
|
### AUD-THB-001 — Impact output has no explicit negative scope
|
|
38
38
|
|
|
39
|
-
**Severity:** P1 product gap
|
|
39
|
+
**Severity:** P1 product gap
|
|
40
40
|
**Observed:** `impact` and `impact-chain` produced large positive cones (528–556 related
|
|
41
41
|
endpoints for several targets) but no explicit, evidence-backed `negative_scope` section.
|
|
42
42
|
`UserController` provided a useful control case with 0 direct callers and 31 endpoints, but
|
|
@@ -62,7 +62,7 @@ branch in `in_scope`, the other in `out_of_scope`, and an unresolved reflective
|
|
|
62
62
|
|
|
63
63
|
### AUD-THB-002 — TX-006 overstates equivalent self-invocation cases
|
|
64
64
|
|
|
65
|
-
**Severity:** P1 precision defect
|
|
65
|
+
**Severity:** P1 precision defect
|
|
66
66
|
**Observed:** the Spring audit reported 18 defects, including many TX-006 findings where an
|
|
67
67
|
annotated method calls another annotated method internally but both use the default transaction
|
|
68
68
|
semantics. Manual review of `AssetProfileServiceImpl`, `DeviceServiceImpl` and
|
|
@@ -89,7 +89,7 @@ the same severity to semantically equivalent and materially different cases.
|
|
|
89
89
|
|
|
90
90
|
### AUD-THB-003 — `none_detected` is too easy to read as public exposure
|
|
91
91
|
|
|
92
|
-
**Severity:** P1 communication/contract defect
|
|
92
|
+
**Severity:** P1 communication/contract defect
|
|
93
93
|
**Observed:** the endpoint inventory reported 28 mappings as `none_detected`. Manual review
|
|
94
94
|
showed static resources, redirects, no-auth routes, device-token routes, readiness and error
|
|
95
95
|
handlers among the examples.
|
|
@@ -108,7 +108,7 @@ distinct states.
|
|
|
108
108
|
|
|
109
109
|
### AUD-THB-004 — Audit report does not carry evidence bounds consistently
|
|
110
110
|
|
|
111
|
-
**Severity:** P1 evidence-contract gap
|
|
111
|
+
**Severity:** P1 evidence-contract gap
|
|
112
112
|
**Observed:** component outputs exposed coverage gaps, while the generated `audit-report`
|
|
113
113
|
section declared evidence completeness without explicit bounds. The report therefore looks
|
|
114
114
|
more exhaustive than the underlying evidence supports.
|
|
@@ -133,7 +133,7 @@ verdict.
|
|
|
133
133
|
|
|
134
134
|
### AUD-THB-005 — Baseline summary mixes incompatible migration signals
|
|
135
135
|
|
|
136
|
-
**Severity:** P2 presentation defect
|
|
136
|
+
**Severity:** P2 presentation defect
|
|
137
137
|
**Observed:** the assessment combined `readiness 94`, `headline blocker jakarta_migration`
|
|
138
138
|
and `migration blockers 0`.
|
|
139
139
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# ASK Engine 5.8.26 - External Audit Intake
|
|
2
2
|
|
|
3
|
-
**Received:** 2026-08-26
|
|
4
|
-
**Audited artefact:** `5.8.26`, Windows 11 / Git Bash (MSYS), Python 3.14
|
|
3
|
+
**Received:** 2026-08-26
|
|
4
|
+
**Audited artefact:** `5.8.26`, Windows 11 / Git Bash (MSYS), Python 3.14
|
|
5
5
|
**Scope:** reference and multi-stack repositories; the report's second round tested 44/46 subcommands across Spring, Quarkus, Micronaut and Jakarta EE.
|
|
6
6
|
|
|
7
7
|
This record separates the first round's initial diagnosis from the controlled retest. The
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# ASK Engine 5.8.27 - External Audit Intake
|
|
2
2
|
|
|
3
|
-
**Received:** 2026-08-26
|
|
4
|
-
**Audited artefact:** `5.8.27`, Windows 11, Git Bash/MSYS and native PowerShell
|
|
3
|
+
**Received:** 2026-08-26
|
|
4
|
+
**Audited artefact:** `5.8.27`, Windows 11, Git Bash/MSYS and native PowerShell
|
|
5
5
|
**Comparison:** the prior `5.8.26` audit and the current release artefact
|
|
6
6
|
|
|
7
7
|
This audit contains two assessments. The first confirms the semantic fixes; the
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# ASK Engine 5.8.28 - External Pack Audit Intake
|
|
2
2
|
|
|
3
|
-
**Received:** 2026-08-26
|
|
3
|
+
**Received:** 2026-08-26
|
|
4
4
|
**Audited surface:** `pack list`, `pack assessment` and `pack gate` on
|
|
5
|
-
`spring-petclinic`
|
|
5
|
+
`spring-petclinic`
|
|
6
6
|
**Related release:** `5.8.28` (remediation release: `5.8.30`)
|
|
7
7
|
|
|
8
8
|
## Findings
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# ASK Engine 5.8.28 - External Audit Intake
|
|
2
2
|
|
|
3
|
-
**Received:** 2026-08-26
|
|
4
|
-
**Audited artefact:** `5.8.28`, Windows 11, Git Bash/MSYS and native PowerShell
|
|
3
|
+
**Received:** 2026-08-26
|
|
4
|
+
**Audited artefact:** `5.8.28`, Windows 11, Git Bash/MSYS and native PowerShell
|
|
5
5
|
**Comparison:** `5.8.27`
|
|
6
6
|
|
|
7
7
|
## Executive Summary
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# External Audit - 5.9.0
|
|
2
2
|
|
|
3
|
-
**Received:** 2026-08-26
|
|
4
|
-
**Audited revision:** `b4c3691c4110d863fedcd54a61a08fd2997e400c` (`5.9.0`)
|
|
3
|
+
**Received:** 2026-08-26
|
|
4
|
+
**Audited revision:** `b4c3691c4110d863fedcd54a61a08fd2997e400c` (`5.9.0`)
|
|
5
5
|
**Method:** external findings reconciled against the released source tree
|
|
6
6
|
|
|
7
7
|
## Result
|
|
@@ -13,7 +13,7 @@ the result of source-level reconciliation and the action justified by it.
|
|
|
13
13
|
|
|
14
14
|
### AUD-608-C01 - `cve` does not disclose inventory coverage
|
|
15
15
|
|
|
16
|
-
**Priority:** P1
|
|
16
|
+
**Priority:** P1
|
|
17
17
|
**Status:** closed in `fe1f624`
|
|
18
18
|
|
|
19
19
|
`ask cve` builds its inventory from static dependency analysis; it does not
|
|
@@ -28,7 +28,7 @@ resolved-graph mode; add manifest-versus-resolved fixtures.
|
|
|
28
28
|
|
|
29
29
|
### AUD-608-P01 - `pr-risk --since` hides an execution error as non-coverage
|
|
30
30
|
|
|
31
|
-
**Priority:** P1
|
|
31
|
+
**Priority:** P1
|
|
32
32
|
**Status:** closed in `b479465`
|
|
33
33
|
|
|
34
34
|
The `--since` path uses `ContextGraph` without importing it. A broad exception
|
|
@@ -43,7 +43,7 @@ base-materialisation failures as structured errors; keep
|
|
|
43
43
|
|
|
44
44
|
### AUD-608-O01 - effective-access branches bypass `posture --diff --limit`
|
|
45
45
|
|
|
46
|
-
**Priority:** P2
|
|
46
|
+
**Priority:** P2
|
|
47
47
|
**Status:** closed in `5f8a50b`
|
|
48
48
|
|
|
49
49
|
`POSTURE_BOUNDED_LISTS` omits `permit_all`, while the shared helper bounds only
|
|
@@ -59,7 +59,7 @@ the public CLI; verify emitted bytes and estimated size fall under `--limit`.
|
|
|
59
59
|
|
|
60
60
|
### AUD-607-U01 - new command help does not state budget-policy applicability
|
|
61
61
|
|
|
62
|
-
**Priority:** P3
|
|
62
|
+
**Priority:** P3
|
|
63
63
|
**Status:** closed in `19811ac`
|
|
64
64
|
|
|
65
65
|
The helpers for `cve`, `drift`, `intent`, `pr-risk`, `remediate`,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# External Audit Intake — ASK 5.9.2
|
|
2
2
|
|
|
3
|
-
**Received:** 2026-08-27
|
|
4
|
-
**Scope:** regression battery and commercial-positioning review against 5.9.1
|
|
3
|
+
**Received:** 2026-08-27
|
|
4
|
+
**Scope:** regression battery and commercial-positioning review against 5.9.1
|
|
5
5
|
**Source:** external audit supplied in the Codex task attachment
|
|
6
6
|
|
|
7
7
|
## Executive disposition
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# External Audit Intake — ASK 5.9.3
|
|
2
2
|
|
|
3
|
-
**Received:** 2026-08-27
|
|
4
|
-
**Scope:** reliability, semantic consistency, agent ergonomics and commercial fit
|
|
3
|
+
**Received:** 2026-08-27
|
|
4
|
+
**Scope:** reliability, semantic consistency, agent ergonomics and commercial fit
|
|
5
5
|
**Evidence base:** two external reports covering five parallel batches, eight-plus
|
|
6
6
|
real Java repositories and approximately 180 CLI invocations
|
|
7
7
|
|
|
@@ -93,4 +93,3 @@ The external price bands ($25-40 and $35-50 per developer/month in the two repor
|
|
|
93
93
|
are hypotheses, not pricing evidence. No price change, compliance claim or ENS/CRA
|
|
94
94
|
certification claim follows from this audit. The next commercial proof remains a named
|
|
95
95
|
customer reference, signed historical evidence and validated control mapping.
|
|
96
|
-
|
|
@@ -35,4 +35,3 @@ not silently rewritten.
|
|
|
35
35
|
The live product set has one repaired missing link (`CONTRIBUTING.md` ->
|
|
36
36
|
`CODE_OF_CONDUCT.md`). The remaining automated findings are one parser false positive
|
|
37
37
|
(`CHANGELOG.md`'s literal `url`) and workflow-template placeholders under `.claude/`.
|
|
38
|
-
|
|
@@ -4,6 +4,13 @@ Executable by any team member. Runs the commercial pipeline from an empty projec
|
|
|
4
4
|
verified first sale, ending by turning the paywall on. **Do the steps in order; do not
|
|
5
5
|
flip the paywall (step 10) until steps 6–9 pass.**
|
|
6
6
|
|
|
7
|
+
## Release artifact gate
|
|
8
|
+
|
|
9
|
+
Before tagging or uploading any release, complete
|
|
10
|
+
[RELEASE-VERIFICATION.md](RELEASE-VERIFICATION.md). It verifies the wheel's
|
|
11
|
+
stamped commit, installed command surface and PyPI artefact hashes; passing
|
|
12
|
+
checkout tests alone is insufficient evidence for a published build.
|
|
13
|
+
|
|
7
14
|
Prerequisites: Supabase project + CLI (`supabase`), a Lemon Squeezy store, and the repo.
|
|
8
15
|
|
|
9
16
|
---
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# Release Artifact Verification
|
|
2
|
+
|
|
3
|
+
## Status
|
|
4
|
+
|
|
5
|
+
**Publishing is blocked until this procedure passes on the exact commit that
|
|
6
|
+
will be tagged.** A version number is not evidence that PyPI, the checkout and
|
|
7
|
+
the command surface describe the same build.
|
|
8
|
+
|
|
9
|
+
## Incident: 5.9.15 provenance divergence
|
|
10
|
+
|
|
11
|
+
The external re-audit labelled its subject `5.9.15` and reported a missing CLI
|
|
12
|
+
surface, Windows failures and argument-validation regressions. The original
|
|
13
|
+
`5.9.15` commit (`5eb36f1`) changed release metadata and documentation only;
|
|
14
|
+
the named commands were absent from the pre-recovery `master` but existed on
|
|
15
|
+
`fix/aud600-queue`. This recovery integrates that implementation before a new
|
|
16
|
+
artefact is built. The original reported artefact still cannot be attributed to
|
|
17
|
+
its source checkout from its version number alone.
|
|
18
|
+
|
|
19
|
+
This does **not** dismiss the report. It makes its first corrective action
|
|
20
|
+
mandatory: identify the built wheel, the commit stamped inside it, the branch
|
|
21
|
+
that supplied it and its registered command manifest before making a behaviour
|
|
22
|
+
claim or publishing a replacement.
|
|
23
|
+
|
|
24
|
+
## Release Candidate Procedure
|
|
25
|
+
|
|
26
|
+
Run every command from a clean checkout at the intended release commit.
|
|
27
|
+
|
|
28
|
+
1. Record the source identity.
|
|
29
|
+
|
|
30
|
+
```sh
|
|
31
|
+
git status --short
|
|
32
|
+
git rev-parse HEAD
|
|
33
|
+
git branch --show-current
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
The worktree must be clean. Record the commit and branch in the release
|
|
37
|
+
issue; do not infer either from the version string.
|
|
38
|
+
|
|
39
|
+
2. Build a fresh, isolated artefact.
|
|
40
|
+
|
|
41
|
+
```sh
|
|
42
|
+
rm -rf /tmp/ask-release-dist
|
|
43
|
+
python -m build --outdir /tmp/ask-release-dist
|
|
44
|
+
twine check /tmp/ask-release-dist/*
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
3. Inspect the wheel before installing it.
|
|
48
|
+
|
|
49
|
+
```sh
|
|
50
|
+
unzip -p /tmp/ask-release-dist/sourcecode-*.whl \
|
|
51
|
+
sourcecode/_build_commit.py
|
|
52
|
+
unzip -l /tmp/ask-release-dist/sourcecode-*.whl | \
|
|
53
|
+
rg 'sourcecode/_docs/(USER_GUIDE|DEFECT-LEDGER)\\.md'
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
The stamped commit must equal `git rev-parse HEAD`. A missing or
|
|
57
|
+
`unrecorded` stamp blocks the release.
|
|
58
|
+
|
|
59
|
+
4. Install only that wheel in a fresh environment and collect the runtime
|
|
60
|
+
evidence.
|
|
61
|
+
|
|
62
|
+
```sh
|
|
63
|
+
python -m venv /tmp/ask-release-venv
|
|
64
|
+
/tmp/ask-release-venv/bin/pip install --no-deps /tmp/ask-release-dist/sourcecode-*.whl
|
|
65
|
+
/tmp/ask-release-venv/bin/ask version
|
|
66
|
+
/tmp/ask-release-venv/bin/ask --help > /tmp/ask-help.txt
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Archive `ask version` and `/tmp/ask-help.txt` with the release record. The
|
|
70
|
+
first must report the stamped commit; the second is the command-surface
|
|
71
|
+
manifest for the installed artefact.
|
|
72
|
+
|
|
73
|
+
5. Run the release contracts against the checkout and the wheel.
|
|
74
|
+
|
|
75
|
+
```sh
|
|
76
|
+
pytest -q \
|
|
77
|
+
tests/test_published_version_claims.py \
|
|
78
|
+
tests/test_user_guide_coverage.py \
|
|
79
|
+
tests/test_the_wheel_carries_its_commit_x01.py \
|
|
80
|
+
tests/test_bundled_docs.py
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
6. Only then upload the exact checked artefacts. After upload, download the
|
|
84
|
+
PyPI wheel by its published hash and repeat steps 3 and 4. PyPI releases are
|
|
85
|
+
immutable: a wrong wheel requires a new version, never an overwrite.
|
|
86
|
+
|
|
87
|
+
## Required Release Evidence
|
|
88
|
+
|
|
89
|
+
- Commit SHA and branch/ref used to build.
|
|
90
|
+
- SHA-256 of wheel and source distribution.
|
|
91
|
+
- Extracted `BUILD_COMMIT` value.
|
|
92
|
+
- Installed-wheel `ask version` output.
|
|
93
|
+
- Installed-wheel `ask --help` output and command count.
|
|
94
|
+
- Test command and result.
|
|
95
|
+
- PyPI file hashes after publication.
|
|
96
|
+
|
|
97
|
+
## Compatibility Rule
|
|
98
|
+
|
|
99
|
+
Removing or renaming a top-level command is a breaking change. It requires a
|
|
100
|
+
declared replacement or removal rationale, migration guidance, a major-version
|
|
101
|
+
decision, and a release-note entry before publication. An absent command must
|
|
102
|
+
fail as an unknown command; it must never fall back to root help with exit 0.
|
|
@@ -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.16, `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.16, 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.16
|
|
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.16
|
|
264
264
|
```
|
|
265
265
|
|
|
266
266
|
Requires Python 3.9+.
|
|
@@ -42,6 +42,15 @@ from sourcecode import perf # noqa: E402
|
|
|
42
42
|
from perf_harness import FLEET # noqa: E402
|
|
43
43
|
|
|
44
44
|
|
|
45
|
+
def _configure_utf8_stdio() -> None:
|
|
46
|
+
"""Keep Unicode gate tables printable on Windows legacy code pages."""
|
|
47
|
+
for stream in (sys.stdout, sys.stderr):
|
|
48
|
+
try:
|
|
49
|
+
stream.reconfigure(encoding="utf-8", errors="replace")
|
|
50
|
+
except (AttributeError, OSError):
|
|
51
|
+
pass
|
|
52
|
+
|
|
53
|
+
|
|
45
54
|
def load_cells(directory: Path) -> dict[str, dict]:
|
|
46
55
|
"""Every `perf-baseline-v1` cell in *directory*, keyed by `<repo>__<cmd>__<mode>`.
|
|
47
56
|
|
|
@@ -291,4 +300,5 @@ def main() -> int:
|
|
|
291
300
|
|
|
292
301
|
|
|
293
302
|
if __name__ == "__main__":
|
|
303
|
+
_configure_utf8_stdio()
|
|
294
304
|
raise SystemExit(main())
|
|
@@ -65,10 +65,18 @@ DEFAULT_COMMANDS = [""]
|
|
|
65
65
|
|
|
66
66
|
ASK_BIN = os.environ.get("ASK_BIN", "ask")
|
|
67
67
|
BYTES_PER_KB = 1024
|
|
68
|
-
# darwin ru_maxrss is bytes;
|
|
68
|
+
# darwin ru_maxrss is bytes; Linux reports kilobytes. Windows reports zero
|
|
69
|
+
# below because the stdlib exposes no equivalent child-process peak counter.
|
|
69
70
|
RSS_UNIT = 1 if sys.platform == "darwin" else BYTES_PER_KB
|
|
70
71
|
|
|
71
72
|
|
|
73
|
+
def _children_peak_rss() -> float:
|
|
74
|
+
"""Return the POSIX child peak, or an honest unmeasured zero on Windows."""
|
|
75
|
+
if resource is None:
|
|
76
|
+
return 0.0
|
|
77
|
+
return float(resource.getrusage(resource.RUSAGE_CHILDREN).ru_maxrss)
|
|
78
|
+
|
|
79
|
+
|
|
72
80
|
def git_commit(repo_path: Path) -> str:
|
|
73
81
|
try:
|
|
74
82
|
out = subprocess.run(
|
|
@@ -58,6 +58,7 @@ import json
|
|
|
58
58
|
import os
|
|
59
59
|
import re
|
|
60
60
|
import subprocess
|
|
61
|
+
import threading
|
|
61
62
|
import time
|
|
62
63
|
import uuid
|
|
63
64
|
from datetime import datetime, timezone
|
|
@@ -156,6 +157,12 @@ _DEFAULT_MAX_SIZE_MB: int = 50
|
|
|
156
157
|
_REPLACE_RETRIES: int = 5
|
|
157
158
|
_REPLACE_BACKOFF_S: float = 0.05
|
|
158
159
|
|
|
160
|
+
# Some Windows filesystems expose timestamps too coarsely to order consecutive
|
|
161
|
+
# atomic writes. Persist a process-monotonic stamp in each cache envelope so GC
|
|
162
|
+
# never falls back to directory enumeration order when file timestamps tie.
|
|
163
|
+
_WRITE_CLOCK_LOCK = threading.Lock()
|
|
164
|
+
_LAST_WRITE_NS: int = 0
|
|
165
|
+
|
|
159
166
|
# Matches "snapshot-<hex_commit>-<hex_flags>.json.gz"
|
|
160
167
|
_SNAPSHOT_RE = re.compile(r"^snapshot-([0-9a-f]+)-[0-9a-f]+\.json\.gz$")
|
|
161
168
|
|
|
@@ -777,6 +784,7 @@ def write_core(repo_root: Path, core_key: str, core_data: dict[str, Any]) -> str
|
|
|
777
784
|
"key": core_key,
|
|
778
785
|
"hash": core_hash,
|
|
779
786
|
"ts": _now_iso(),
|
|
787
|
+
"written_ns": _next_write_ns(),
|
|
780
788
|
"data": core_data,
|
|
781
789
|
}
|
|
782
790
|
payload = gzip.compress(
|
|
@@ -848,6 +856,14 @@ def _now_iso() -> str:
|
|
|
848
856
|
return datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
|
|
849
857
|
|
|
850
858
|
|
|
859
|
+
def _next_write_ns() -> int:
|
|
860
|
+
"""Return a wall-clock nanosecond stamp that increases in this process."""
|
|
861
|
+
global _LAST_WRITE_NS
|
|
862
|
+
with _WRITE_CLOCK_LOCK:
|
|
863
|
+
_LAST_WRITE_NS = max(time.time_ns(), _LAST_WRITE_NS + 1)
|
|
864
|
+
return _LAST_WRITE_NS
|
|
865
|
+
|
|
866
|
+
|
|
851
867
|
def _build_envelope(
|
|
852
868
|
cache_key: str,
|
|
853
869
|
content: str,
|
|
@@ -860,6 +876,7 @@ def _build_envelope(
|
|
|
860
876
|
"sv": SCHEMA_VERSION,
|
|
861
877
|
"key": cache_key,
|
|
862
878
|
"ts": _now_iso(),
|
|
879
|
+
"written_ns": _next_write_ns(),
|
|
863
880
|
"fmt": fmt,
|
|
864
881
|
"layers": layers,
|
|
865
882
|
}
|
|
@@ -1034,6 +1051,25 @@ def _cas_restore(
|
|
|
1034
1051
|
# Eviction / GC
|
|
1035
1052
|
# ---------------------------------------------------------------------------
|
|
1036
1053
|
|
|
1054
|
+
def _cache_recency(path: Path) -> tuple[int, int, int, str]:
|
|
1055
|
+
"""Stable newest-first key for a cache envelope.
|
|
1056
|
+
|
|
1057
|
+
New envelopes carry ``written_ns`` because filesystem timestamps can tie on
|
|
1058
|
+
Windows. Older envelopes remain orderable through their native timestamps.
|
|
1059
|
+
The remaining fields make a genuine cross-process tie deterministic.
|
|
1060
|
+
"""
|
|
1061
|
+
stat_result = path.stat()
|
|
1062
|
+
stamp = stat_result.st_mtime_ns
|
|
1063
|
+
try:
|
|
1064
|
+
envelope = json.loads(gzip.decompress(path.read_bytes()).decode("utf-8"))
|
|
1065
|
+
stored = envelope.get("written_ns") if isinstance(envelope, dict) else None
|
|
1066
|
+
if isinstance(stored, int) and stored > 0:
|
|
1067
|
+
stamp = stored
|
|
1068
|
+
except Exception:
|
|
1069
|
+
pass
|
|
1070
|
+
return stamp, stat_result.st_mtime_ns, stat_result.st_ctime_ns, path.name
|
|
1071
|
+
|
|
1072
|
+
|
|
1037
1073
|
def _gc(cache_d: Path) -> None:
|
|
1038
1074
|
"""Evict old snapshots/cores/views and sweep orphaned CAS blobs.
|
|
1039
1075
|
|
|
@@ -1072,8 +1108,8 @@ def _gc(cache_d: Path) -> None:
|
|
|
1072
1108
|
if keep <= 0 or len(groups) <= keep:
|
|
1073
1109
|
surviving = all_snapshots + all_cores
|
|
1074
1110
|
else:
|
|
1075
|
-
def _newest_mtime(commit: str) ->
|
|
1076
|
-
return max(p
|
|
1111
|
+
def _newest_mtime(commit: str) -> tuple[int, int, int, str]:
|
|
1112
|
+
return max(_cache_recency(p) for p in groups[commit])
|
|
1077
1113
|
|
|
1078
1114
|
sorted_commits = sorted(groups, key=_newest_mtime, reverse=True)
|
|
1079
1115
|
surviving = []
|
|
@@ -1088,7 +1124,7 @@ def _gc(cache_d: Path) -> None:
|
|
|
1088
1124
|
if max_cores > 0:
|
|
1089
1125
|
surviving_cores = [p for p in surviving if p.name.startswith("core-") and p.exists()]
|
|
1090
1126
|
if len(surviving_cores) > max_cores:
|
|
1091
|
-
surviving_cores.sort(key=
|
|
1127
|
+
surviving_cores.sort(key=_cache_recency, reverse=True)
|
|
1092
1128
|
for evict in surviving_cores[max_cores:]:
|
|
1093
1129
|
_safe_unlink(evict)
|
|
1094
1130
|
surviving = [p for p in surviving if p != evict]
|