sourcecode 5.9.2__tar.gz → 5.9.4__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.2 → sourcecode-5.9.4}/CHANGELOG.md +42 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/PKG-INFO +18 -4
- {sourcecode-5.9.2 → sourcecode-5.9.4}/README.md +17 -3
- sourcecode-5.9.4/docs/AUDIT-2026-08-27-EXTERNAL-5.9.2.md +68 -0
- sourcecode-5.9.4/docs/AUDIT-2026-08-27-EXTERNAL-5.9.3.md +96 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/DEVELOPMENT-ROADMAP.md +30 -1
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/EXECUTIVE-ROADMAP.md +36 -1
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/MANUAL-USUARIO.md +16 -1
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/PRODUCT-ROUTE.md +25 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/USER_GUIDE.md +24 -3
- {sourcecode-5.9.2 → sourcecode-5.9.4}/pyproject.toml +1 -1
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/__init__.py +1 -1
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/architectural_baseline.py +5 -1
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/cli.py +84 -11
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/cve_feed.py +6 -1
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/license.py +28 -1
- {sourcecode-5.9.2 → sourcecode-5.9.4}/.github/workflows/build-windows.yml +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/.github/workflows/perf-gate.yml +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/.github/workflows/windows-battery.yml +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/.gitignore +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/.ruff.toml +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/CLAUDE.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/CODE_OF_CONDUCT.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/CONTRIBUTING.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/LICENSE +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/NOTICE +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/SECURITY.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/AUDIT-2026-08-22-5.8.22.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/AUDIT-2026-08-23-5.8.24.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/AUDIT-2026-08-23-COMMERCIAL.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/AUDIT-2026-08-23-CORPUS-AMPLIADO.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/AUDIT-2026-08-23-EXTERNAL-5.8.25.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/AUDIT-2026-08-23-EXTERNAL-5.8.26.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/AUDIT-2026-08-23-THINGSBOARD-FINDINGS.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.26.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.27.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.28.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.31.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.32.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/AUDIT-2026-08-26-EXTERNAL-5.9.0.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/AUDIT-2026-08-26-MONETIZATION.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/AUDIT-TESTING-CORPUS-2026-08-22.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/CACHE.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/COMMERCIAL-OFFER.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/CUSTOMER-VALIDATION.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/DEFECT-LEDGER.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/DEMO-5MIN.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/DOCUMENTATION-HYGIENE-2026-08-23.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/EXECUTION-PLAN-12MO.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/MODERNIZATION.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/PRODUCT_AUDIT.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/PRODUCT_IDENTITY.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/PRODUCT_TIERS.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/RC1-CHECKLIST.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/RELEASE-CHECKLIST.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/STRATEGY-2026-08-26-AGENT-CONTEXT.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/CATALOG-retrieval-intents.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/DESIGN-assessment-deployment-evidence.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/DESIGN-assessment-report.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/DESIGN-build-closure-provenance.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/DESIGN-knowledge-provider-integration.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/DESIGN-p5.3b-statement-surface.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/DESIGN-p5.5-span-index.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/DESIGN-p6-semantic-impact-engine.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/DESIGN-p6-semantic-integration-engine.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/DESIGN-p7-semantic-services.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/DESIGN-pack-gate-ci.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/DESIGN-pack-manifest.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/DESIGN-pack-mcp-api.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/DESIGN-robustness-security-inference.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/DESIGN-semantic-retrieval.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/EPV-p6-class-typeref.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/REPORT-p6-flow-analyzer-comparison.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/REPORT-p6-integration-detector-comparison.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/REPORT-p8-flow-analyzer-migration.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/REPORT-p9-integration-detector-migration.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/adr/0001-semantic-ir.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/adr/0002-source-evidence-boundary.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/adr/0003-architectural-characterization.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/adr/0004-semantic-retrieval.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/adr/0005-evidence-reconciliation.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/adr/0006-performance-harness.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/adr/0007-composition-semantics.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/adr/0008-answer-coherence.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/consumer-disposition-inventory.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/overview.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/product-architecture-review.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/product-strategy-layering.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/semantic-ir-consumer-matrix.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/architecture/semantic-ir-roadmap.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/baseline-ci.yml +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/commercial-pipeline-audit.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/contracts-ci.yml +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/contracts.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/eval/2026-06-15-petclinic-rest-issue11-vets-pagination.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/eval/2026-06-15-petclinic-rest-issue147-validation.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/eval/2026-06-15-petclinic-rest-workflow.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/eval/2026-06-15-phase18-openapi-surface.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/eval/2026-06-15-phase20-validation-surface.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/eval/2026-06-16-broadleaf-checkout-impact-fieldtest.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/eval/2026-06-16-petclinic-rest-issue11-weakness2-closed.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/eval/2026-06-16-spring-petclinic-issue2333-dead-vets.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/licensing-schema.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/migrate-check.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/pack-gate-github-actions.yml +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/pack-gate-gitlab.yml +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/README.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/REGRESSION-GATE.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.15/SUMMARY.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.15/alfresco__ask__cold.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.15/alfresco__ask__warm.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.15/broadleaf__ask__cold.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.15/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.15/eureka__ask__cold.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.15/eureka__ask__warm.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.15/jenkins__ask__cold.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.15/jenkins__ask__warm.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.15/jobrunr__ask__cold.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.15/jobrunr__ask__warm.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.15/keycloak__ask__cold.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.15/keycloak__ask__warm.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.15/neo4j__ask__cold.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.15/neo4j__ask__warm.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.15/ofbiz__ask__cold.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.15/ofbiz__ask__warm.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.15/openmrs__ask__cold.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.15/openmrs__ask__warm.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.15/petclinic__ask__cold.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.15/petclinic__ask__warm.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.16/SUMMARY.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.16/alfresco__ask__cold.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.16/alfresco__ask__warm.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.16/broadleaf__ask__cold.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.16/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.16/eureka__ask__cold.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.16/eureka__ask__warm.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.16/jenkins__ask__cold.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.16/jenkins__ask__warm.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.16/jobrunr__ask__cold.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.16/jobrunr__ask__warm.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.16/keycloak__ask__cold.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.16/keycloak__ask__warm.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.16/neo4j__ask__cold.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.16/neo4j__ask__warm.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.16/ofbiz__ask__cold.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.16/ofbiz__ask__warm.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.16/openmrs__ask__cold.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.16/openmrs__ask__warm.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.16/petclinic__ask__cold.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/2.5.16/petclinic__ask__warm.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/gate-latest/README.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/gate-latest/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/gate-latest/broadleaf__endpoints__warm.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/gate-latest/broadleaf__migrate-check__warm.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/gate-latest/broadleaf__posture__warm.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/gate-latest/broadleaf__spring-audit__warm.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/gate-latest/broadleaf__validation__warm.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/baselines/reference-best/README.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/perf/corpus-testing-2026-08-22.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/posture.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/privacy.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/pro-experience-audit.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/schema.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/spec/envelope-v1.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/docs/spring-audit-ci.yml +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/hatch_build.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/scripts/compare_integration_engines.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/scripts/context_cost_harness.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/scripts/customer_smoke_test.sh +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/scripts/generate_jdk_exports.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/scripts/perf_gate.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/scripts/perf_harness.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/scripts/sync_gate_anchors.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/scripts/test_fast.sh +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/__main__.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/access_drift.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/adaptive_scanner.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/analysis_budget.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/answer_bounds.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/archetype.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/architectural_delta.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/architecture_analyzer.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/architecture_summary.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/ast_extractor.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/audit_clusters.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/audit_recipe.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/audit_report.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/audit_since.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/audit_verify.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/baseline_attestation.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/baseline_autocapture.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/breaking_changes.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/build_modules.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/build_stamp.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/bundled_docs.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/c4_render.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/cache.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/cache_model.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/cache_observation.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/call_surface.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/caller_metrics.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/caller_reach.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/canonical_ir.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/chain_rules.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/change_plan.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/ci_output.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/cir_graphs.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/classifier.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/client_calls.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/code_notes_analyzer.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/compare.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/confidence_analyzer.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/constraint_diff.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/consumer_join.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/container_wiring.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/context_cache.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/context_graph.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/context_scorer.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/context_summarizer.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/contract_diff.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/contract_init.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/contract_model.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/contract_pipeline.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/coverage_parser.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/cve_reachability.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/data_exposure.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/data_labels.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/declarations.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/defect_classes/__init__.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/defect_classes/registry.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/defect_identity.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/degradation.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/dependency_analyzer.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/deployment_prefix.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/detach.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/detectors/__init__.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/detectors/base.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/detectors/csproj_parser.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/detectors/dart.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/detectors/dotnet.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/detectors/elixir.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/detectors/go.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/detectors/heuristic.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/detectors/hybrid.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/detectors/java.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/detectors/jvm_ext.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/detectors/nodejs.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/detectors/parsers.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/detectors/php.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/detectors/project.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/detectors/python.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/detectors/ruby.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/detectors/rust.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/detectors/systems.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/detectors/terraform.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/detectors/tooling.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/doc_analyzer.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/dynamic_argument_surface.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/empty_reach.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/endpoint_disposition.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/endpoint_literals.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/endpoint_metrics.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/entrypoint_classifier.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/env_analyzer.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/envelope.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/environment_resolution.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/error_schema.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/evidence_provider.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/execution_plan.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/explain.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/explain_endpoint.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/facts/__init__.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/facts/registry.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/field_deprecations.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/file_chunker.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/file_classifier.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/filter_surface.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/findings_baseline.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/format_contract.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/fqn_utils.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/functional_routes.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/gate_anchors.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/git_analyzer.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/git_checkout.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/github_diff.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/graph_analyzer.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/graph_evidence.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/hibernate_strat.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/identity_fallback.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/integration_coordinates.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/intent_router.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/jdk_exports.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/manifest_cache.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/mcp/__init__.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/mcp/dependency_import.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/mcp/onboarding/applier.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/mcp/onboarding/backup.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/mcp/onboarding/detector.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/mcp/onboarding/planner.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/mcp/orchestrator.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/mcp/registry.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/mcp/runner.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/mcp/server.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/mcp_nudge.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/metrics_analyzer.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/migrate_check.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/migration_apply.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/migration_blast.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/non_coverage.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/openapi_surface.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/openrewrite_recipe.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/output_bounds.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/output_budget.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/output_ceiling.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/output_encoding.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/output_sink.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/pack_manifest.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/packs.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/parallel.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/parse_cache.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/partial_contract.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/path_admission.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/path_display.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/path_filters.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/perf.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/phased_run.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/pipe_contract.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/posture.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/pr_comment_renderer.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/pr_impact.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/pr_risk.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/prepare_context.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/product_info.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/progress.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/provenance.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/ranking_engine.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/readiness_timeline.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/readonly.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/reconciliation.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/redactor.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/reference_facts.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/regress.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/regulatory_pack.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/release_info.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/relevance_scorer.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/remediation_diff.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/remediation_flow.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/remediation_report.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/remedies.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/rename_refactor.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/repo_classifier.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/repository_ir.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/resource_budget.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/retrieval/__init__.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/retrieval/context.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/retrieval/errors.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/retrieval/executor.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/retrieval/planner.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/retrieval/query.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/retrieval/request.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/retrieval/resolution.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/retrieval/result.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/retrieval/retriever.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/retrieval/runtime.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/retrieval/steps.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/retrieval/steps_endpoint.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/retrieval/steps_graph.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/retrieval/steps_impact.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/retrieval/steps_intf.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/retrieval/steps_struct.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/retrieval/steps_txsec.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/ris.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/risk.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/risk_model.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/rule_catalog.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/rule_pass.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/runs.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/runtime_classifier.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/sarif.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/sarif_emit.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/scanner.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/schema.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/schema_producers.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/schema_registry.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/schemas/core-analysis-v1.schema.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/schemas/cve-reachability-v1.schema.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/schemas/endpoints-v1.schema.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/schemas/envelope-v1.schema.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/schemas/pr-impact-v1.schema.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/schemas/verify-edit-v1.schema.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/schemas/verify-v1.schema.json +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/security_chain.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/security_config.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/security_config_scan.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/security_posture.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/selection_contract.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/self_audit.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/selftest.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/semantic_analyzer.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/semantic_impact_engine.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/semantic_integration_engine.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/semantic_services.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/serializer.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/servlet_surface.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/source_text.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/spring_event_topology.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/spring_findings.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/spring_impact.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/spring_model.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/spring_profiles.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/spring_properties.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/spring_security_audit.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/spring_semantic.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/spring_tx_analyzer.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/sql_taint.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/summarizer.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/target_admission.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/telemetry/__init__.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/telemetry/config.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/telemetry/consent.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/telemetry/events.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/telemetry/filters.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/telemetry/transport.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/test_gap_ranking.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/test_sources.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/text_input.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/timeline.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/timeline_cache.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/token_estimate.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/tree_utils.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/type_usage_surface.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/validation_inference.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/validation_surface.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/verify_edit.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/verify_repo.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/verify_rules.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/version_check.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/vex.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/waivers.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/watch_loop.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/wired_surface.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/src/sourcecode/workspace.py +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/supabase/functions/README.md +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/supabase/functions/get-license/index.ts +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/supabase/functions/lemonsqueezy-webhook/index.ts +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/supabase/functions/telemetry/index.ts +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/supabase/sql/license_event_ordering.sql +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/supabase/sql/licensing_schema.sql +0 -0
- {sourcecode-5.9.2 → sourcecode-5.9.4}/supabase/sql/telemetry_events.sql +0 -0
|
@@ -1,5 +1,47 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [5.9.4] — 2026-08-27
|
|
4
|
+
|
|
5
|
+
*External-audit reliability and contract-alignment release.*
|
|
6
|
+
|
|
7
|
+
**Fixed**
|
|
8
|
+
|
|
9
|
+
- Rejects missing consumer repositories, malformed CVE feeds and unresolved
|
|
10
|
+
`pack gate --since` refs as structured input errors.
|
|
11
|
+
- Rejects unknown profiles in `posture --diff` when the repository declares a
|
|
12
|
+
profile population, while preserving annotation-only profile fixtures.
|
|
13
|
+
- Prevents architectural baseline captures from overwriting the snapshot for
|
|
14
|
+
the same commit.
|
|
15
|
+
- Makes `endpoints --compact` disclose inline that its empty row list is an
|
|
16
|
+
intentional omission, and makes unresolved `impact`/`impact-chain` runs exit
|
|
17
|
+
non-zero even when no Java files are present.
|
|
18
|
+
|
|
19
|
+
**Documentation and validation**
|
|
20
|
+
|
|
21
|
+
- Updated README, English and Spanish user guides, roadmap status and CLI help.
|
|
22
|
+
- Dedicated regression tests pass against repositories under
|
|
23
|
+
`Documents/workspace/testing`.
|
|
24
|
+
|
|
25
|
+
## [5.9.3] — 2026-08-27
|
|
26
|
+
|
|
27
|
+
*Workspace entitlement correctness patch release.*
|
|
28
|
+
|
|
29
|
+
**Fixed**
|
|
30
|
+
|
|
31
|
+
- `auth workspace` collapses overlapping parent/child repository paths and
|
|
32
|
+
publishes `overlapping_paths`, preventing physical Java files from being
|
|
33
|
+
counted twice.
|
|
34
|
+
- `auth workspace` rejects nonexistent or non-directory paths through the
|
|
35
|
+
standard structured `INVALID_INPUT` / `missing` contract instead of treating
|
|
36
|
+
them as empty repositories.
|
|
37
|
+
|
|
38
|
+
**Validation**
|
|
39
|
+
|
|
40
|
+
- Added regression coverage for duplicate, overlapping, invalid and mixed
|
|
41
|
+
workspace inputs.
|
|
42
|
+
- Rechecked the contract against representative repositories under
|
|
43
|
+
`Documents/workspace/testing`.
|
|
44
|
+
|
|
3
45
|
## [5.9.2] — 2026-08-27
|
|
4
46
|
|
|
5
47
|
*Commercial positioning increment: bounded agent context, reproducible cost
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sourcecode
|
|
3
|
-
Version: 5.9.
|
|
3
|
+
Version: 5.9.4
|
|
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.4 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. A controlled external warm-path audit has opened performance
|
|
@@ -212,6 +212,20 @@ aggregate Java entitlement. `--enforce` is an opt-in named-buyer pilot that reus
|
|
|
212
212
|
the existing Pro gate; advisory mode remains the default and no billing is
|
|
213
213
|
performed by the CLI.
|
|
214
214
|
|
|
215
|
+
`auth workspace` normalizes its repository arguments before counting. If one
|
|
216
|
+
path contains another, the parent is counted once and the overlap is published
|
|
217
|
+
in `overlapping_paths`; a missing or non-directory path is rejected as structured
|
|
218
|
+
invalid input rather than treated as an empty repository. This prevents silent
|
|
219
|
+
entitlement errors in CI and does not change per-repository gates or billing.
|
|
220
|
+
|
|
221
|
+
Release 5.9.4 also hardens the boundary contracts: missing consumer repositories,
|
|
222
|
+
malformed CVE feeds and unresolved `pack gate --since` refs fail as structured
|
|
223
|
+
input errors; duplicate same-commit baselines are never overwritten. `posture
|
|
224
|
+
--diff` validates unknown profiles when the repository declares profiles. In
|
|
225
|
+
`endpoints --compact`, an empty `endpoints` list is explicitly marked as an
|
|
226
|
+
intentional omission, not an empty API; unresolved `impact` and `impact-chain`
|
|
227
|
+
queries exit non-zero, including on repositories without Java sources.
|
|
228
|
+
|
|
215
229
|
**What a warm actually covers.** `ask cache warm` rebuilds the declared root views and their
|
|
216
230
|
shared structural layers (L1/L2 + the Repository Intelligence Snapshot + the shared Canonical
|
|
217
231
|
IR). Pass `--views compact` or `--views compact,agent` to warm only selected views; without
|
|
@@ -237,7 +251,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
|
|
|
237
251
|
# pip / pipx
|
|
238
252
|
pipx install sourcecode # or: pip install sourcecode
|
|
239
253
|
|
|
240
|
-
ask version # ask 5.9.
|
|
254
|
+
ask version # ask 5.9.4 — and, on a build that has aged,
|
|
241
255
|
# how many releases have probably shipped since
|
|
242
256
|
```
|
|
243
257
|
|
|
@@ -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.4 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. A controlled external warm-path audit has opened performance
|
|
@@ -163,6 +163,20 @@ aggregate Java entitlement. `--enforce` is an opt-in named-buyer pilot that reus
|
|
|
163
163
|
the existing Pro gate; advisory mode remains the default and no billing is
|
|
164
164
|
performed by the CLI.
|
|
165
165
|
|
|
166
|
+
`auth workspace` normalizes its repository arguments before counting. If one
|
|
167
|
+
path contains another, the parent is counted once and the overlap is published
|
|
168
|
+
in `overlapping_paths`; a missing or non-directory path is rejected as structured
|
|
169
|
+
invalid input rather than treated as an empty repository. This prevents silent
|
|
170
|
+
entitlement errors in CI and does not change per-repository gates or billing.
|
|
171
|
+
|
|
172
|
+
Release 5.9.4 also hardens the boundary contracts: missing consumer repositories,
|
|
173
|
+
malformed CVE feeds and unresolved `pack gate --since` refs fail as structured
|
|
174
|
+
input errors; duplicate same-commit baselines are never overwritten. `posture
|
|
175
|
+
--diff` validates unknown profiles when the repository declares profiles. In
|
|
176
|
+
`endpoints --compact`, an empty `endpoints` list is explicitly marked as an
|
|
177
|
+
intentional omission, not an empty API; unresolved `impact` and `impact-chain`
|
|
178
|
+
queries exit non-zero, including on repositories without Java sources.
|
|
179
|
+
|
|
166
180
|
**What a warm actually covers.** `ask cache warm` rebuilds the declared root views and their
|
|
167
181
|
shared structural layers (L1/L2 + the Repository Intelligence Snapshot + the shared Canonical
|
|
168
182
|
IR). Pass `--views compact` or `--views compact,agent` to warm only selected views; without
|
|
@@ -188,7 +202,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
|
|
|
188
202
|
# pip / pipx
|
|
189
203
|
pipx install sourcecode # or: pip install sourcecode
|
|
190
204
|
|
|
191
|
-
ask version # ask 5.9.
|
|
205
|
+
ask version # ask 5.9.4 — and, on a build that has aged,
|
|
192
206
|
# how many releases have probably shipped since
|
|
193
207
|
```
|
|
194
208
|
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# External Audit Intake — ASK 5.9.2
|
|
2
|
+
|
|
3
|
+
**Received:** 2026-08-27
|
|
4
|
+
**Scope:** regression battery and commercial-positioning review against 5.9.1
|
|
5
|
+
**Source:** external audit supplied in the Codex task attachment
|
|
6
|
+
|
|
7
|
+
## Executive disposition
|
|
8
|
+
|
|
9
|
+
The report uses two different scoring lenses: **9.8/10** for the regression and
|
|
10
|
+
functional battery, and **9/10** for the strategic comparison against 5.9.1.
|
|
11
|
+
They are retained as separate assessments, not averaged into a product KPI.
|
|
12
|
+
|
|
13
|
+
The audit reports no critical defect and no regression in the previously closed
|
|
14
|
+
surface. It confirms stable behaviour for `SEC-004` / `DEAD-001`, `boot3_readiness`,
|
|
15
|
+
the `selftest` scope warning, pack-gate test-file poisoning, JAX-RS explainability,
|
|
16
|
+
CVE inventory scope, `pr-risk` error handling, `posture --diff --limit`, cache,
|
|
17
|
+
telemetry, baseline and pack flows.
|
|
18
|
+
|
|
19
|
+
Two new `auth workspace` defects are accepted into the engineering queue:
|
|
20
|
+
|
|
21
|
+
- **AUD-609-B01, medium:** overlapping repository arguments can double-count the
|
|
22
|
+
same physical Java files when a parent path and one of its descendants are both
|
|
23
|
+
supplied. This can make entitlement aggregation inaccurate and can produce a
|
|
24
|
+
false threshold crossing near the limit.
|
|
25
|
+
- **AUD-609-B02, low-medium:** a nonexistent repository path is treated as a valid
|
|
26
|
+
empty repository. A typo can therefore produce a successful but misleading
|
|
27
|
+
entitlement result in automation.
|
|
28
|
+
|
|
29
|
+
The audit's reproduction is accepted as a defect report, not as proof of the
|
|
30
|
+
suspected implementation mechanism. The fix must establish the invariant through
|
|
31
|
+
tests: overlapping inputs are explicit and deterministic, and invalid paths cannot
|
|
32
|
+
silently become empty repositories.
|
|
33
|
+
|
|
34
|
+
## Confirmed capabilities
|
|
35
|
+
|
|
36
|
+
- `audit-report --sign-key` and `audit-verify` perform an offline HMAC-SHA256
|
|
37
|
+
roundtrip: correct key and untouched content validate; an incorrect key or one-byte
|
|
38
|
+
content mutation fails with the appropriate result and exit code.
|
|
39
|
+
- `audit-report --pack ens` is evidence mapping only. It publishes `legal_claim: false`
|
|
40
|
+
and distinguishes present from missing control evidence; it is not ENS certification.
|
|
41
|
+
- `baseline attest` is deterministic, read-only and explicit about non-coverage, but
|
|
42
|
+
it does **not** sign or hash the attestation for independent integrity verification.
|
|
43
|
+
- `remediation-report` is a redacted JSON projection of ASK's own defect ledger, not
|
|
44
|
+
a remediation report for the user's analysed repository.
|
|
45
|
+
- `auth workspace --enforce` remains an opt-in named-buyer pilot and was not exercised
|
|
46
|
+
in this round.
|
|
47
|
+
- `schema` includes `ens-evidence-pack-v1`; `ask version` publishes closure coverage
|
|
48
|
+
and release cadence provenance.
|
|
49
|
+
|
|
50
|
+
## Commercial reading
|
|
51
|
+
|
|
52
|
+
The signed audit bundle materially strengthens the evidence-bundle thesis and is a
|
|
53
|
+
credible compliance-workflow input. It must be described as **tamper-evident integrity
|
|
54
|
+
evidence**, not a certificate: HMAC is symmetric, requires key sharing, and is not
|
|
55
|
+
public PKI. ENS/CRA mappings remain evidence mapping, not legal or regulatory advice.
|
|
56
|
+
|
|
57
|
+
The commercial route is therefore positive but not fully validated. The missing proof
|
|
58
|
+
is a signed historical attestation, concrete ENS/CRA control translation and a real
|
|
59
|
+
customer reference. The external price indication ($40-60 per developer/month) and
|
|
60
|
+
the "strong buy" verdict are market hypotheses, not pricing evidence; no price change
|
|
61
|
+
is authorized without buyer interviews, usage data or a paid reference.
|
|
62
|
+
|
|
63
|
+
## Regression and non-regression record
|
|
64
|
+
|
|
65
|
+
The reported cold-cache measurement (130.2 seconds) is within the supplied historical
|
|
66
|
+
range and is not a regression claim. The seven commands not yet composed into the
|
|
67
|
+
assessment/gate packs are a product opportunity, not a bug. All other re-checks in the
|
|
68
|
+
report are recorded as stable unless contradicted by the two defects above.
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# External Audit Intake — ASK 5.9.3
|
|
2
|
+
|
|
3
|
+
**Received:** 2026-08-27
|
|
4
|
+
**Scope:** reliability, semantic consistency, agent ergonomics and commercial fit
|
|
5
|
+
**Evidence base:** two external reports covering five parallel batches, eight-plus
|
|
6
|
+
real Java repositories and approximately 180 CLI invocations
|
|
7
|
+
|
|
8
|
+
## Executive disposition
|
|
9
|
+
|
|
10
|
+
The reports use different rubrics and must not be collapsed into one KPI:
|
|
11
|
+
|
|
12
|
+
- **7.2/10** for the first reliability and commercial review. It reports five
|
|
13
|
+
silent failures, one factual help error and strong agent-oriented bounding.
|
|
14
|
+
- **6.5/10** for the broader semantic and cross-repository review. It reports a
|
|
15
|
+
critical nondeterminism in `selftest`, a high-confidence Spring detection false
|
|
16
|
+
positive and several lower-severity contract inconsistencies.
|
|
17
|
+
|
|
18
|
+
The audit confirms that no analysed repository was modified: five batches remained
|
|
19
|
+
clean, only ASK cache artefacts were created, and no Java files or commits were
|
|
20
|
+
written. It also confirms strong structured errors when an error path is reached,
|
|
21
|
+
default non-destructiveness, deterministic bounding in most commands and accurate
|
|
22
|
+
Spring analysis across Boot 4, Boot 2 and classic Spring repositories.
|
|
23
|
+
|
|
24
|
+
## Accepted defects and regressions
|
|
25
|
+
|
|
26
|
+
The following are accepted into the engineering queue because the reports provide
|
|
27
|
+
reproduction details or a directly observable contract violation:
|
|
28
|
+
|
|
29
|
+
| ID | Severity | Finding | Triage |
|
|
30
|
+
|---|---:|---|---|
|
|
31
|
+
| `AUD-610-B01` | P0 | `ask selftest .` is nondeterministic: intermittent empty exit-1, hang or success across four repositories; individual rows are stable. | Open. Treat as an aggregation/concurrency or uncaught-worker failure until a controlled trace proves otherwise. A silent failure in the product's own reliability command blocks strong reliability claims. |
|
|
32
|
+
| `AUD-610-B02` | P1 | Root `ask . --compact/-agent -f yaml` can exit 1 with both streams empty. | Open. Reproduce on a clean cache and capture the failing subprocess boundary before choosing a fix. |
|
|
33
|
+
| `AUD-610-B03` | P1 | `ask audit-report .` fails silently in markdown, JSON and YAML, with and without output file. | Open. The documented flagship evidence path must return a payload or structured diagnostic, never zero bytes. |
|
|
34
|
+
| `AUD-610-B04` | P1 | `ask risk . --limit 0` crashes despite `0` being a legal documented value. | Open. Add the boundary regression and preserve the existing rejection for negative limits. |
|
|
35
|
+
| `AUD-610-B05` | P1 | `ask endpoints . --consumer <missing>` does not reject the missing consumer path and can produce an oversized unfiltered result. | Open. Validate consumer paths and prove the filter changes the analysed population. |
|
|
36
|
+
| `AUD-610-B06` | P1 | `spring-audit` reports `spring_detected: true` for ANTLR4 after cache clear, while `migrate-check` says no Spring usage. | Open. Establish one shared stack-detection authority; do not infer Spring from unrelated XML or dependency names. |
|
|
37
|
+
| `AUD-610-B07` | P2 | `pack gate --since <missing-ref>` collapses the structured base-ref error into generic `UNVERIFIED`. | Open. Preserve the cause and actionable ref error through pack aggregation. |
|
|
38
|
+
| `AUD-610-B08` | P2 | Malformed CVE feeds yield `status: ok` with the parse failure buried in limitations. | Open. A broken security feed must be visibly non-successful and fail closed for automation. |
|
|
39
|
+
| `AUD-610-B09` | P2 | Unknown profile names in `posture --diff` are accepted without a `PROFILE_NOT_FOUND`-style diagnostic. | Open. Validate profile identifiers against the repository's declared profile set. |
|
|
40
|
+
| `AUD-610-B10` | P2 | Re-capturing the same baseline commit with another `--ref` silently overwrites the first record. | Open. Require explicit replacement or preserve both records; the series contract says history is not reconstructable. |
|
|
41
|
+
|
|
42
|
+
## Contract and semantic debt
|
|
43
|
+
|
|
44
|
+
These items are not all regressions, but they weaken cross-command coherence and are
|
|
45
|
+
carried as follow-up acceptance criteria:
|
|
46
|
+
|
|
47
|
+
- `pr-impact` root help incorrectly says `--files` consumes a unified diff from stdin;
|
|
48
|
+
it consumes changed-file paths. The help is factually wrong and must be corrected.
|
|
49
|
+
- `impact-chain`, `impact` and related commands use different `not_found` risk values
|
|
50
|
+
(`0.0`, `low` and `null`). Define one shared unknown/not-found contract and its basis.
|
|
51
|
+
- `endpoints --compact` publishes `endpoints: []` beside a nonzero `total`, while the
|
|
52
|
+
reason is buried in `_meta.answer_bounds`; place the bounded projection explanation
|
|
53
|
+
beside the affected field or expose a named summary field.
|
|
54
|
+
- `migrate-check` can headline a Boot migration at monorepo root when only a minority
|
|
55
|
+
module is Boot-based; attribute the signal to its module and publish mixed-stack scope.
|
|
56
|
+
- `custom_gate_inferred` lacks per-case provenance for inferred counts that exceed
|
|
57
|
+
direct annotation matches; document inheritance evidence or lower the claim.
|
|
58
|
+
- `self-audit` and `mcp list-tools` report different populations (104 versus 110)
|
|
59
|
+
without explaining that CLI registration and MCP exposure are distinct counts.
|
|
60
|
+
- `baseline diff`/`trend` fail without history while `baseline attest` returns
|
|
61
|
+
`no_history`; either document the intentional distinction or unify the family.
|
|
62
|
+
- A replacement character was observed in `posture` non-coverage output. The separate
|
|
63
|
+
UTF-8 `chunk-file` check passed, so the encoding issue remains localized and needs a
|
|
64
|
+
raw reproduction before a parser change.
|
|
65
|
+
- One `retrieve` invocation failed silently and then passed on immediate retry. It is
|
|
66
|
+
not promoted to a confirmed regression without a second controlled reproduction, but
|
|
67
|
+
logging/timeout evidence is warranted.
|
|
68
|
+
|
|
69
|
+
## Confirmed strengths and non-regressions
|
|
70
|
+
|
|
71
|
+
- `audit-report --sign-key` and `audit-verify` remain functional offline HMAC-SHA256
|
|
72
|
+
integrity checks; this is tamper-evident integrity, not public PKI or certification.
|
|
73
|
+
- `baseline attest` is deterministic and explicit about non-coverage, but remains
|
|
74
|
+
unsigned; `remediation-report` describes ASK's own ledger, not the user's repository.
|
|
75
|
+
- `self-audit` passed its four internal checks in the broader run; the reported count
|
|
76
|
+
discrepancy is a disclosure problem, not evidence that either registry is corrupt.
|
|
77
|
+
- Spring semantic analysis, JAX-RS explanation, `verify` exit semantics, cache reuse,
|
|
78
|
+
UTF-8 chunk preservation and default dry-run/non-destructive behaviour held in the
|
|
79
|
+
tested repositories.
|
|
80
|
+
- The reported cold-cache figures vary within the supplied range and are not, by
|
|
81
|
+
themselves, a performance regression.
|
|
82
|
+
|
|
83
|
+
## Commercial interpretation
|
|
84
|
+
|
|
85
|
+
The deterministic Spring context and agent-oriented bounding remain differentiated,
|
|
86
|
+
and signed audit bundles strengthen the evidence workflow. However, the flagship
|
|
87
|
+
silent failures and `selftest` nondeterminism directly undermine a reliability-led
|
|
88
|
+
commercial claim. The appropriate position is **conditional pilot**, not an annual
|
|
89
|
+
purchase recommendation, until `AUD-610-B01` through `B06` are fixed and independently
|
|
90
|
+
retested.
|
|
91
|
+
|
|
92
|
+
The external price bands ($25-40 and $35-50 per developer/month in the two reports)
|
|
93
|
+
are hypotheses, not pricing evidence. No price change, compliance claim or ENS/CRA
|
|
94
|
+
certification claim follows from this audit. The next commercial proof remains a named
|
|
95
|
+
customer reference, signed historical evidence and validated control mapping.
|
|
96
|
+
|
|
@@ -3,7 +3,22 @@
|
|
|
3
3
|
*Chief-engineer development record. This is the internal, dev-facing counterpart to the
|
|
4
4
|
customer-facing `docs/EXECUTIVE-ROADMAP.md`.*
|
|
5
5
|
|
|
6
|
-
> **CURRENT QUEUE — release `5.9.
|
|
6
|
+
> **CURRENT QUEUE — release `5.9.4`; external reconciliation `AUD-610` is implemented for the reproducible fixes.**
|
|
7
|
+
> The 2026-08-27 external review adds `AUD-610-B01` through `AUD-610-B10`, led by
|
|
8
|
+
> silent `selftest` nondeterminism, silent root/audit-report failures, a legal-zero
|
|
9
|
+
> `risk --limit 0` crash, an unvalidated consumer path and contradictory Spring
|
|
10
|
+
> detection. The reproducible boundary defects are closed in `5.9.4`: consumer
|
|
11
|
+
> admission (`86ed0a3`), CVE feed integrity (`abc6319`), gate ref admission
|
|
12
|
+
> (`6690a7f`), posture profile admission (`f7335b1`, `6e75646`), baseline
|
|
13
|
+
> collision protection (`cbe4da9`), compact endpoint disclosure (`8a1936f`)
|
|
14
|
+
> and unresolved impact exits (`c07581a`). The non-reproduced reliability and
|
|
15
|
+
> Spring observations remain open and must not be presented as fixed. Full triage is in
|
|
16
|
+
> [`AUDIT-2026-08-27-EXTERNAL-5.9.3.md`](AUDIT-2026-08-27-EXTERNAL-5.9.3.md).
|
|
17
|
+
> The 2026-08-27 external review adds `AUD-609-B01` (overlapping workspace paths
|
|
18
|
+
> double-count Java files) and `AUD-609-B02` (missing workspace paths accepted as
|
|
19
|
+
> empty repositories); both are fixed in `5.9.3`. It reports no regression in the
|
|
20
|
+
> prior closure set. Evidence and the commercial interpretation are in
|
|
21
|
+
> [`AUDIT-2026-08-27-EXTERNAL-5.9.2.md`](AUDIT-2026-08-27-EXTERNAL-5.9.2.md).
|
|
7
22
|
> `AUD-608-C01` is closed in `fe1f624`: `cve` declares static
|
|
8
23
|
> dependency-inventory coverage and non-coverage. `AUD-608-P01` is closed in
|
|
9
24
|
> `b479465`: `pr-risk --since` constructs its base context and surfaces failures
|
|
@@ -100,6 +115,20 @@ aspirations: each is asserted by that row's tests.
|
|
|
100
115
|
| `AUD-607-X09` | P3 | `self-audit` — run ASK against its own build. | `ask self-audit` (`self-audit-v1`) | **Implemented (`f1fa913`), with its "not recommended" reason shipped inside the payload.** The semantic engine does not apply to Python source, so those figures are absent and declared rather than reported as zeros. What it does check — cache model, format contract, schema registry and output affordances over the INSTALLED build — found a real drift on its first run. |
|
|
101
116
|
| `ASK-COM-01` | P1 | Continuous evidence attestation over persisted baseline history. | `ask baseline attest` (`baseline-attestation-v1`) | **Implemented.** Read-only projection of architecture or findings trend; publishes capture boundaries, latest commit, comparability and explicit non-coverage. It never claims legal compliance, improvement, or a clean zero without history. |
|
|
102
117
|
|
|
118
|
+
### Feature Intake — external review of 5.9.2, 2026-08-27
|
|
119
|
+
|
|
120
|
+
The supplied regression and market review reports no regression in the prior closure
|
|
121
|
+
set. Its two reproducible `auth workspace` defects are opened below; the report's
|
|
122
|
+
commercial recommendations are recorded as hypotheses, not product claims. Full
|
|
123
|
+
triage is in [`AUDIT-2026-08-27-EXTERNAL-5.9.2.md`](AUDIT-2026-08-27-EXTERNAL-5.9.2.md).
|
|
124
|
+
|
|
125
|
+
| ID | Priority | Feature / defect | Acceptance criteria | Status/order |
|
|
126
|
+
|---|---:|---|---|---|
|
|
127
|
+
| `AUD-609-B01` | P2 | `auth workspace` double-counts overlapping repository paths. | Normalize paths, detect parent/descendant overlap and prevent silent double-counting; publish an explicit overlap decision or reject the ambiguous input. Preserve deterministic per-repository evidence and add fixtures for parent-only, child-only and overlapping inputs. | **Fixed in `5.9.3`.** Parent/descendant inputs collapse to one counted tree and publish `overlapping_paths`. |
|
|
128
|
+
| `AUD-609-B02` | P2 | `auth workspace` accepts a nonexistent path as an empty repository. | Validate every input path before counting; return the repository's standard structured path error, or an explicit invalid entry that cannot yield a successful entitlement decision. Add a regression fixture for typos and mixed valid/invalid inputs. | **Fixed in `5.9.3`.** Invalid paths fail with structured `INVALID_INPUT` / `missing`. |
|
|
129
|
+
| `AUD-609-C01` | P2 | Signed evidence and historical attestation use different integrity contracts. | Decide whether `baseline attest` gains the existing signing mechanism or clearly publishes that it is unsigned; document the choice in help, schema and buyer-facing material. Do not call unsigned output a certificate or compliance proof. | **Queued, commercial validation.** No implementation claim until the signing boundary and key model are explicit. |
|
|
130
|
+
| `AUD-609-C02` | P3 | Translate technical evidence into concrete ENS/CRA controls. | Define a named control mapping with source evidence, missing evidence and `legal_claim: false`; validate it with a named compliance buyer or auditor before presenting it as a market capability. | **Queued, buyer-gated.** `audit-report --pack ens` remains evidence mapping only. |
|
|
131
|
+
|
|
103
132
|
### Explicitly Rejected
|
|
104
133
|
|
|
105
134
|
These are not roadmap work: `--format` and `--compact` remain separate contracts;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
> `pack assessment` and `pack gate`, and make evidence and safe change the
|
|
6
6
|
> product surface. This roadmap must not introduce a competing product thesis.
|
|
7
7
|
|
|
8
|
-
> **CURRENT UPDATE — release `5.9.
|
|
8
|
+
> **CURRENT UPDATE — release `5.9.4`, following the external `5.9.3` reconciliation.**
|
|
9
9
|
> The commercial increment adds stateless context budgets, a reproducible context-cost harness,
|
|
10
10
|
> source-level migration SARIF and an opt-in workspace entitlement pilot. Advisory behaviour remains
|
|
11
11
|
> the default; named-buyer validation is still required before broad enforcement.
|
|
@@ -19,6 +19,41 @@
|
|
|
19
19
|
> non-reproduction did not cover the payload shape now identified. Details are
|
|
20
20
|
> in [`AUDIT-2026-08-26-EXTERNAL-5.9.0.md`](AUDIT-2026-08-26-EXTERNAL-5.9.0.md).
|
|
21
21
|
|
|
22
|
+
> **EXTERNAL REVIEW — 5.9.2, received 2026-08-27.** No regression was reported in the
|
|
23
|
+
> previously closed surface. Two `auth workspace` defects are now open: overlapping
|
|
24
|
+
> parent/child paths can double-count Java files, and nonexistent paths are accepted as
|
|
25
|
+
> empty repositories. Both affect entitlement accuracy and must close before pricing or
|
|
26
|
+
> enforcement decisions rely on workspace aggregation. `audit-report --sign-key` plus
|
|
27
|
+
> `audit-verify` is confirmed as working offline HMAC-SHA256 integrity evidence.
|
|
28
|
+
> `baseline attest` remains unsigned and must not be sold as a tamper-verifiable
|
|
29
|
+
> certificate. ENS output is evidence mapping only (`legal_claim: false`); no customer
|
|
30
|
+
> reference or buyer validation exists yet. Full triage: [`AUDIT-2026-08-27-EXTERNAL-5.9.2.md`](AUDIT-2026-08-27-EXTERNAL-5.9.2.md).
|
|
31
|
+
|
|
32
|
+
> **5.9.3 correction.** `auth workspace` now counts overlapping parent/child paths once
|
|
33
|
+
> and rejects missing or non-directory paths with the standard structured input error.
|
|
34
|
+
> Workspace entitlement is therefore safer to measure, but remains advisory by default;
|
|
35
|
+
> no pricing or enforcement decision is authorized by this fix alone.
|
|
36
|
+
|
|
37
|
+
> **EXTERNAL REVIEW — 5.9.3, received 2026-08-27.** Two independent lenses score the
|
|
38
|
+
> build **7.2/10** and **6.5/10**. The reports confirm clean, non-destructive execution
|
|
39
|
+
> across five batches and strong structured errors on normal validation paths, but open
|
|
40
|
+
> a critical reliability issue: `selftest` intermittently hangs or exits silently with
|
|
41
|
+
> no output. They also reproduce silent failures in the root YAML path and all
|
|
42
|
+
> `audit-report` formats, plus a legal-zero `risk --limit 0` crash, an unvalidated
|
|
43
|
+
> `endpoints --consumer` path and contradictory Spring detection on ANTLR4. These are
|
|
44
|
+
> release-blocking reliability concerns for an annual buyer commitment. The commercial
|
|
45
|
+
> posture is conditional pilot until the flagship failures are fixed and re-tested.
|
|
46
|
+
> Full triage: [`AUDIT-2026-08-27-EXTERNAL-5.9.3.md`](AUDIT-2026-08-27-EXTERNAL-5.9.3.md).
|
|
47
|
+
|
|
48
|
+
> **5.9.4 reliability correction.** The reproducible contract defects from the
|
|
49
|
+
> latest review are closed: missing consumer paths and malformed CVE feeds now
|
|
50
|
+
> fail closed; `pack gate` rejects unresolved refs; posture profile diffs reject
|
|
51
|
+
> unknown declared-population names; baselines refuse same-commit overwrite;
|
|
52
|
+
> compact endpoint output explains omitted rows; and unresolved impact queries
|
|
53
|
+
> return non-zero even without Java sources. The commercial position remains a
|
|
54
|
+
> conditional pilot because the independent `selftest`, root, `audit-report`,
|
|
55
|
+
> `risk --limit 0` and ANTLR4 observations still require reproduction or closure.
|
|
56
|
+
|
|
22
57
|
> **HISTORICAL STATUS — release `5.9.0`, following two external audits of `5.8.32`, 2026-08-26.** Two
|
|
23
58
|
> independent rounds scored the release **9.7/10** (reverification) and **8/10** (comparison against
|
|
24
59
|
> `5.8.31`). **Neither round reported a regression**, and both maintained the same commercial
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Manual de usuario — ASK Engine
|
|
2
2
|
|
|
3
|
-
> Versión de la herramienta: **5.
|
|
3
|
+
> Versión de la herramienta: **5.9.4** · El comando que se ejecuta es `ask`.
|
|
4
4
|
> (`sourcecode` sigue funcionando como alias en desactivación y reenvía a `ask`.)
|
|
5
5
|
> Público: personas que van a usar `ask` por primera vez, sin conocimiento previo.
|
|
6
6
|
|
|
@@ -8,6 +8,21 @@
|
|
|
8
8
|
|
|
9
9
|
## 1. ¿Qué es ASK Engine?
|
|
10
10
|
|
|
11
|
+
### Contratos de fiabilidad de la versión 5.9.4
|
|
12
|
+
|
|
13
|
+
Las entradas inválidas se rechazan antes del análisis costoso mediante el
|
|
14
|
+
envelope estructurado `INVALID_INPUT`: un `--consumer` inexistente, un feed CVE
|
|
15
|
+
mal formado o una referencia `pack gate --since` que no existe nunca se tratan
|
|
16
|
+
como un repositorio vacío ni como `UNVERIFIED`. `posture --diff` valida los
|
|
17
|
+
perfiles desconocidos cuando el repositorio declara su población de perfiles.
|
|
18
|
+
|
|
19
|
+
`baseline capture` no sobrescribe la captura de un mismo commit; en pipelines
|
|
20
|
+
puede usarse `--auto` para omitirla. En `endpoints --compact`, una lista
|
|
21
|
+
`endpoints: []` significa que las filas se omitieron deliberadamente: consulta
|
|
22
|
+
`endpoints_note`, `endpoints_omitted` y `total`, porque no significa que no haya
|
|
23
|
+
rutas. `impact` e `impact-chain` devuelven código de salida 1 si no resuelven
|
|
24
|
+
el objetivo, también cuando el repositorio no contiene fuentes Java.
|
|
25
|
+
|
|
11
26
|
**ASK** significa **Actionable Software Knowledge** (conocimiento accionable sobre el
|
|
12
27
|
software); el producto es el *Actionable Software Knowledge Engine*, abreviado
|
|
13
28
|
**ASK Engine**, y el comando que se ejecuta es `ask`.
|
|
@@ -33,6 +33,31 @@ The public trust layer, if activated, must be a generated and redacted
|
|
|
33
33
|
projection, never the raw defect ledger. Its acceptance rules must exclude
|
|
34
34
|
maintainer paths, third-party evaluation subjects and unsupported claims.
|
|
35
35
|
|
|
36
|
+
### Evidence and commercial validation boundary
|
|
37
|
+
|
|
38
|
+
The 5.9.2 external review confirms that `audit-report --sign-key` and
|
|
39
|
+
`audit-verify` provide offline HMAC-SHA256 integrity verification for an evidence
|
|
40
|
+
bundle. The route may describe this as tamper-evident bundle integrity, not as a
|
|
41
|
+
certificate or public-PKI trust: HMAC is symmetric and requires controlled key
|
|
42
|
+
sharing. `audit-report --pack ens` remains an evidence mapping with
|
|
43
|
+
`legal_claim: false`, not ENS/CRA certification or legal advice.
|
|
44
|
+
|
|
45
|
+
`baseline attest` is a deterministic, read-only continuity projection, but it is
|
|
46
|
+
currently unsigned. Until its integrity contract is decided and validated, it
|
|
47
|
+
must not be positioned as independently verifiable historical evidence. A real
|
|
48
|
+
customer reference, concrete control translation and buyer evidence are still
|
|
49
|
+
required before changing the price, activating workspace enforcement or claiming
|
|
50
|
+
compliance-market fit. External price opinions are hypotheses, not pricing data.
|
|
51
|
+
|
|
52
|
+
The 5.9.3 external review changes the commercial gate: ASK may be evaluated in a
|
|
53
|
+
short, bounded pilot, but the product must not make a reliability-led annual
|
|
54
|
+
commitment while `selftest` can fail silently or hang and flagship evidence paths
|
|
55
|
+
can return zero bytes. The differentiator remains credible; the purchase proof is
|
|
56
|
+
not. The route therefore requires the confirmed silent-failure and stack-detection
|
|
57
|
+
items in [`AUDIT-2026-08-27-EXTERNAL-5.9.3.md`](AUDIT-2026-08-27-EXTERNAL-5.9.3.md)
|
|
58
|
+
to close and survive independent retesting before price or compliance positioning
|
|
59
|
+
is strengthened.
|
|
60
|
+
|
|
36
61
|
## Individual commands and packs
|
|
37
62
|
|
|
38
63
|
Every existing command remains supported for users who want a precise answer:
|
|
@@ -46,15 +46,30 @@ 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.4, `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.4, with release-artifact verification
|
|
56
56
|
remaining for detached execution and pack evidence.
|
|
57
57
|
|
|
58
|
+
### Reliability contracts in 5.9.4
|
|
59
|
+
|
|
60
|
+
Invalid analysis inputs fail before expensive work and use the structured
|
|
61
|
+
`INVALID_INPUT` envelope: a missing `--consumer` repository, a malformed CVE
|
|
62
|
+
feed, or an unresolved `pack gate --since` ref is never treated as an empty or
|
|
63
|
+
`UNVERIFIED` result. `posture --diff` reports unknown profiles when the project
|
|
64
|
+
declares profiles. `baseline capture` does not replace a snapshot already stored
|
|
65
|
+
for the same commit; use `--auto` when a pipeline should skip it.
|
|
66
|
+
|
|
67
|
+
With `endpoints --compact`, `endpoints: []` means the rows were deliberately
|
|
68
|
+
omitted. Read `endpoints_note`, `endpoints_omitted` and `total`; an empty list is
|
|
69
|
+
not evidence that the API has no routes. `impact` and `impact-chain` return exit
|
|
70
|
+
code 1 when the target is unresolved, including when the selected repository
|
|
71
|
+
contains no Java sources.
|
|
72
|
+
|
|
58
73
|
---
|
|
59
74
|
|
|
60
75
|
## The semantic engine
|
|
@@ -221,7 +236,7 @@ pipx install sourcecode # isolated install, no venv needed
|
|
|
221
236
|
|
|
222
237
|
# Verify
|
|
223
238
|
ask version
|
|
224
|
-
# ask 5.9.
|
|
239
|
+
# ask 5.9.4
|
|
225
240
|
```
|
|
226
241
|
|
|
227
242
|
Requires Python 3.9+.
|
|
@@ -1180,6 +1195,8 @@ the stored architecture or findings series (`--kind findings`) and publishes its
|
|
|
1180
1195
|
boundaries, latest commit, comparability and explicit limits as `baseline-attestation-v1`.
|
|
1181
1196
|
It is evidence continuity, not a legal or regulatory compliance verdict, and it returns
|
|
1182
1197
|
`status: no_history` instead of manufacturing a clean zero when no capture exists.
|
|
1198
|
+
Unlike `audit-report --sign-key`, `baseline attest` is currently unsigned: its
|
|
1199
|
+
`content_id` supports deterministic comparison, not third-party tamper verification.
|
|
1183
1200
|
|
|
1184
1201
|
For a multi-repository buyer, `ask auth workspace <repo>...` previews the aggregate Java
|
|
1185
1202
|
population that a workspace-sized entitlement would see. The preview is advisory only: it
|
|
@@ -1187,6 +1204,10 @@ does not change the current per-repository gate or charge the workspace.
|
|
|
1187
1204
|
For a named-buyer pilot, add `--enforce`: crossing the aggregate threshold then requires
|
|
1188
1205
|
the existing Pro entitlement and exits with the standard license-required contract; below
|
|
1189
1206
|
the threshold it passes. This flag is opt-in and does not change per-repository gates.
|
|
1207
|
+
Repository arguments are normalized before counting. If a parent and descendant are both
|
|
1208
|
+
supplied, the parent is counted once and the overlap is listed in `overlapping_paths`.
|
|
1209
|
+
Missing or non-directory paths fail with the standard structured `INVALID_INPUT` / `missing`
|
|
1210
|
+
contract; they are never treated as empty repositories.
|
|
1190
1211
|
|
|
1191
1212
|
---
|
|
1192
1213
|
|
|
@@ -445,11 +445,15 @@ def _announce_ask_dir(ask_dir: Path) -> None:
|
|
|
445
445
|
|
|
446
446
|
|
|
447
447
|
def write_baseline(baseline: dict, out_dir: Path) -> Path:
|
|
448
|
-
"""Write
|
|
448
|
+
"""Write a new baseline without replacing an existing commit snapshot."""
|
|
449
449
|
_readonly.guard(out_dir, what="baseline history directory")
|
|
450
450
|
out_dir.mkdir(parents=True, exist_ok=True)
|
|
451
451
|
protect_ask_dir(out_dir)
|
|
452
452
|
path = out_dir / _baseline_filename(baseline)
|
|
453
|
+
if path.exists():
|
|
454
|
+
raise FileExistsError(
|
|
455
|
+
f"Baseline already exists for commit {baseline.get('commit') or '-'}: {path}"
|
|
456
|
+
)
|
|
453
457
|
path.write_text(
|
|
454
458
|
json.dumps(baseline, sort_keys=True, indent=2) + "\n", encoding="utf-8"
|
|
455
459
|
)
|