sourcecode 5.8.30__tar.gz → 5.8.32__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of sourcecode might be problematic. Click here for more details.
- sourcecode-5.8.32/.github/workflows/build-windows.yml +78 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/.github/workflows/windows-battery.yml +0 -2
- {sourcecode-5.8.30 → sourcecode-5.8.32}/CHANGELOG.md +17 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/PKG-INFO +20 -8
- {sourcecode-5.8.30 → sourcecode-5.8.32}/README.md +19 -7
- sourcecode-5.8.32/docs/AUDIT-2026-08-26-EXTERNAL-5.8.31.md +87 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/DEFECT-LEDGER.md +19 -1
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/DEVELOPMENT-ROADMAP.md +57 -2
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/EXECUTIVE-ROADMAP.md +40 -1
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/MANUAL-USUARIO.md +22 -2
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/PRODUCT-ROUTE.md +19 -1
- sourcecode-5.8.32/docs/STRATEGY-2026-08-26-AGENT-CONTEXT.md +83 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/USER_GUIDE.md +37 -4
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/DESIGN-pack-gate-ci.md +14 -5
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/DESIGN-pack-mcp-api.md +12 -2
- {sourcecode-5.8.30 → sourcecode-5.8.32}/pyproject.toml +1 -1
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/__init__.py +1 -1
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/cache.py +7 -1
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/cli.py +71 -12
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/envelope.py +1 -1
- sourcecode-5.8.32/src/sourcecode/github_diff.py +85 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/license.py +11 -2
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/mcp/server.py +66 -8
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/mcp_nudge.py +11 -1
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/migrate_check.py +4 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/packs.py +82 -24
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/readonly.py +3 -1
- sourcecode-5.8.30/.github/workflows/build-windows.yml +0 -40
- sourcecode-5.8.30/src/sourcecode/github_diff.py +0 -34
- {sourcecode-5.8.30 → sourcecode-5.8.32}/.github/workflows/perf-gate.yml +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/.gitignore +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/.ruff.toml +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/CLAUDE.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/CODE_OF_CONDUCT.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/CONTRIBUTING.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/LICENSE +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/NOTICE +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/SECURITY.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/AUDIT-2026-08-22-5.8.22.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/AUDIT-2026-08-23-5.8.24.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/AUDIT-2026-08-23-COMMERCIAL.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/AUDIT-2026-08-23-CORPUS-AMPLIADO.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/AUDIT-2026-08-23-EXTERNAL-5.8.25.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/AUDIT-2026-08-23-EXTERNAL-5.8.26.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/AUDIT-2026-08-23-THINGSBOARD-FINDINGS.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.26.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.27.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.28.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/AUDIT-TESTING-CORPUS-2026-08-22.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/CACHE.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/COMMERCIAL-OFFER.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/CUSTOMER-VALIDATION.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/DEMO-5MIN.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/DOCUMENTATION-HYGIENE-2026-08-23.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/EXECUTION-PLAN-12MO.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/MODERNIZATION.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/PRODUCT_AUDIT.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/PRODUCT_IDENTITY.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/PRODUCT_TIERS.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/RC1-CHECKLIST.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/RELEASE-CHECKLIST.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/CATALOG-retrieval-intents.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/DESIGN-assessment-deployment-evidence.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/DESIGN-assessment-report.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/DESIGN-build-closure-provenance.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/DESIGN-knowledge-provider-integration.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/DESIGN-p5.3b-statement-surface.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/DESIGN-p5.5-span-index.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/DESIGN-p6-semantic-impact-engine.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/DESIGN-p6-semantic-integration-engine.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/DESIGN-p7-semantic-services.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/DESIGN-pack-manifest.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/DESIGN-robustness-security-inference.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/DESIGN-semantic-retrieval.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/EPV-p6-class-typeref.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/REPORT-p6-flow-analyzer-comparison.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/REPORT-p6-integration-detector-comparison.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/REPORT-p8-flow-analyzer-migration.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/REPORT-p9-integration-detector-migration.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/adr/0001-semantic-ir.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/adr/0002-source-evidence-boundary.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/adr/0003-architectural-characterization.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/adr/0004-semantic-retrieval.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/adr/0005-evidence-reconciliation.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/adr/0006-performance-harness.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/adr/0007-composition-semantics.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/adr/0008-answer-coherence.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/consumer-disposition-inventory.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/overview.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/product-architecture-review.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/product-strategy-layering.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/semantic-ir-consumer-matrix.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/architecture/semantic-ir-roadmap.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/baseline-ci.yml +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/commercial-pipeline-audit.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/contracts-ci.yml +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/contracts.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/eval/2026-06-15-petclinic-rest-issue11-vets-pagination.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/eval/2026-06-15-petclinic-rest-issue147-validation.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/eval/2026-06-15-petclinic-rest-workflow.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/eval/2026-06-15-phase18-openapi-surface.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/eval/2026-06-15-phase20-validation-surface.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/eval/2026-06-16-broadleaf-checkout-impact-fieldtest.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/eval/2026-06-16-petclinic-rest-issue11-weakness2-closed.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/eval/2026-06-16-spring-petclinic-issue2333-dead-vets.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/licensing-schema.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/migrate-check.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/pack-gate-github-actions.yml +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/pack-gate-gitlab.yml +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/README.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/REGRESSION-GATE.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/SUMMARY.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/alfresco__ask__cold.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/alfresco__ask__warm.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/broadleaf__ask__cold.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/eureka__ask__cold.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/eureka__ask__warm.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/jenkins__ask__cold.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/jenkins__ask__warm.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/jobrunr__ask__cold.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/jobrunr__ask__warm.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/keycloak__ask__cold.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/keycloak__ask__warm.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/neo4j__ask__cold.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/neo4j__ask__warm.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/ofbiz__ask__cold.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/ofbiz__ask__warm.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/openmrs__ask__cold.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/openmrs__ask__warm.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/petclinic__ask__cold.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/petclinic__ask__warm.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/SUMMARY.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/alfresco__ask__cold.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/alfresco__ask__warm.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/broadleaf__ask__cold.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/eureka__ask__cold.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/eureka__ask__warm.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/jenkins__ask__cold.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/jenkins__ask__warm.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/jobrunr__ask__cold.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/jobrunr__ask__warm.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/keycloak__ask__cold.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/keycloak__ask__warm.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/neo4j__ask__cold.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/neo4j__ask__warm.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/ofbiz__ask__cold.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/ofbiz__ask__warm.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/openmrs__ask__cold.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/openmrs__ask__warm.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/petclinic__ask__cold.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/petclinic__ask__warm.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/gate-latest/README.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/gate-latest/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/gate-latest/broadleaf__endpoints__warm.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/gate-latest/broadleaf__migrate-check__warm.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/gate-latest/broadleaf__posture__warm.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/gate-latest/broadleaf__spring-audit__warm.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/gate-latest/broadleaf__validation__warm.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/baselines/reference-best/README.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/perf/corpus-testing-2026-08-22.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/posture.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/privacy.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/pro-experience-audit.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/schema.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/spec/envelope-v1.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/docs/spring-audit-ci.yml +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/hatch_build.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/scripts/compare_integration_engines.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/scripts/customer_smoke_test.sh +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/scripts/generate_jdk_exports.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/scripts/perf_gate.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/scripts/perf_harness.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/scripts/sync_gate_anchors.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/scripts/test_fast.sh +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/__main__.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/adaptive_scanner.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/analysis_budget.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/answer_bounds.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/archetype.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/architectural_baseline.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/architectural_delta.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/architecture_analyzer.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/architecture_summary.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/ast_extractor.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/audit_clusters.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/audit_recipe.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/audit_report.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/audit_since.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/baseline_autocapture.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/breaking_changes.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/build_modules.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/build_stamp.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/bundled_docs.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/cache_model.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/cache_observation.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/call_surface.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/caller_metrics.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/caller_reach.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/canonical_ir.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/chain_rules.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/change_plan.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/ci_output.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/cir_graphs.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/classifier.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/client_calls.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/code_notes_analyzer.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/compare.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/confidence_analyzer.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/constraint_diff.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/consumer_join.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/container_wiring.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/context_cache.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/context_graph.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/context_scorer.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/context_summarizer.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/contract_diff.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/contract_init.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/contract_model.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/contract_pipeline.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/coverage_parser.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/data_exposure.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/data_labels.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/declarations.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/defect_classes/__init__.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/defect_classes/registry.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/defect_identity.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/degradation.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/dependency_analyzer.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/deployment_prefix.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/detach.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/detectors/__init__.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/detectors/base.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/detectors/csproj_parser.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/detectors/dart.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/detectors/dotnet.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/detectors/elixir.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/detectors/go.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/detectors/heuristic.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/detectors/hybrid.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/detectors/java.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/detectors/jvm_ext.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/detectors/nodejs.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/detectors/parsers.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/detectors/php.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/detectors/project.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/detectors/python.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/detectors/ruby.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/detectors/rust.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/detectors/systems.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/detectors/terraform.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/detectors/tooling.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/doc_analyzer.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/dynamic_argument_surface.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/empty_reach.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/endpoint_disposition.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/endpoint_literals.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/endpoint_metrics.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/entrypoint_classifier.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/env_analyzer.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/environment_resolution.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/error_schema.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/evidence_provider.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/execution_plan.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/explain.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/explain_endpoint.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/facts/__init__.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/facts/registry.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/field_deprecations.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/file_chunker.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/file_classifier.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/filter_surface.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/format_contract.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/fqn_utils.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/functional_routes.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/gate_anchors.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/git_analyzer.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/git_checkout.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/graph_analyzer.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/graph_evidence.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/hibernate_strat.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/identity_fallback.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/integration_coordinates.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/jdk_exports.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/manifest_cache.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/mcp/__init__.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/mcp/dependency_import.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/mcp/onboarding/applier.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/mcp/onboarding/backup.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/mcp/onboarding/detector.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/mcp/onboarding/planner.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/mcp/orchestrator.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/mcp/registry.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/mcp/runner.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/metrics_analyzer.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/migration_apply.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/migration_blast.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/non_coverage.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/openapi_surface.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/openrewrite_recipe.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/output_bounds.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/output_budget.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/output_ceiling.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/output_encoding.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/output_sink.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/pack_manifest.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/parallel.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/parse_cache.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/partial_contract.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/path_admission.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/path_display.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/path_filters.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/perf.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/phased_run.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/pipe_contract.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/posture.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/pr_comment_renderer.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/pr_impact.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/prepare_context.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/product_info.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/progress.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/provenance.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/ranking_engine.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/readiness_timeline.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/reconciliation.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/redactor.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/reference_facts.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/regress.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/release_info.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/relevance_scorer.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/remediation_diff.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/remedies.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/rename_refactor.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/repo_classifier.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/repository_ir.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/resource_budget.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/retrieval/__init__.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/retrieval/context.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/retrieval/errors.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/retrieval/executor.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/retrieval/planner.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/retrieval/query.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/retrieval/request.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/retrieval/resolution.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/retrieval/result.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/retrieval/retriever.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/retrieval/runtime.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/retrieval/steps.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/retrieval/steps_endpoint.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/retrieval/steps_graph.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/retrieval/steps_impact.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/retrieval/steps_intf.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/retrieval/steps_struct.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/retrieval/steps_txsec.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/ris.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/risk.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/risk_model.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/rule_catalog.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/rule_pass.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/runs.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/runtime_classifier.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/sarif.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/sarif_emit.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/scanner.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/schema.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/schema_producers.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/schema_registry.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/schemas/core-analysis-v1.schema.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/schemas/endpoints-v1.schema.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/schemas/envelope-v1.schema.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/schemas/pr-impact-v1.schema.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/schemas/verify-edit-v1.schema.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/schemas/verify-v1.schema.json +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/security_chain.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/security_config.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/security_config_scan.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/security_posture.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/selection_contract.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/selftest.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/semantic_analyzer.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/semantic_impact_engine.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/semantic_integration_engine.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/semantic_services.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/serializer.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/servlet_surface.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/source_text.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/spring_event_topology.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/spring_findings.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/spring_impact.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/spring_model.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/spring_profiles.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/spring_properties.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/spring_security_audit.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/spring_semantic.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/spring_tx_analyzer.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/sql_taint.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/summarizer.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/target_admission.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/telemetry/__init__.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/telemetry/config.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/telemetry/consent.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/telemetry/events.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/telemetry/filters.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/telemetry/transport.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/test_gap_ranking.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/test_sources.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/text_input.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/timeline.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/timeline_cache.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/token_estimate.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/tree_utils.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/type_usage_surface.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/validation_inference.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/validation_surface.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/verify_edit.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/verify_repo.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/verify_rules.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/version_check.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/waivers.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/wired_surface.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/src/sourcecode/workspace.py +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/supabase/functions/README.md +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/supabase/functions/get-license/index.ts +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/supabase/functions/lemonsqueezy-webhook/index.ts +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/supabase/functions/telemetry/index.ts +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/supabase/sql/license_event_ordering.sql +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/supabase/sql/licensing_schema.sql +0 -0
- {sourcecode-5.8.30 → sourcecode-5.8.32}/supabase/sql/telemetry_events.sql +0 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
name: Build Windows EXE
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
|
|
6
|
+
jobs:
|
|
7
|
+
build-windows:
|
|
8
|
+
runs-on: windows-latest
|
|
9
|
+
|
|
10
|
+
steps:
|
|
11
|
+
- name: Checkout repository
|
|
12
|
+
uses: actions/checkout@v4
|
|
13
|
+
|
|
14
|
+
- name: Setup Python
|
|
15
|
+
uses: actions/setup-python@v5
|
|
16
|
+
with:
|
|
17
|
+
python-version: "3.11"
|
|
18
|
+
|
|
19
|
+
- name: Install dependencies
|
|
20
|
+
run: |
|
|
21
|
+
python -m pip install --upgrade pip
|
|
22
|
+
pip install build
|
|
23
|
+
pip install nuitka
|
|
24
|
+
|
|
25
|
+
- name: Build wheel artifact
|
|
26
|
+
run: python -m build --wheel --outdir build/wheel
|
|
27
|
+
|
|
28
|
+
- name: Install wheel artifact
|
|
29
|
+
run: pip install build/wheel/*.whl
|
|
30
|
+
|
|
31
|
+
- name: Build EXE
|
|
32
|
+
run: |
|
|
33
|
+
python -m nuitka ^
|
|
34
|
+
--onefile ^
|
|
35
|
+
--standalone ^
|
|
36
|
+
--follow-imports ^
|
|
37
|
+
--assume-yes-for-downloads ^
|
|
38
|
+
--output-dir=build ^
|
|
39
|
+
run_cli.py
|
|
40
|
+
shell: cmd
|
|
41
|
+
|
|
42
|
+
- name: Verify detached worker from installed artifact
|
|
43
|
+
shell: pwsh
|
|
44
|
+
run: |
|
|
45
|
+
$root = Join-Path $env:RUNNER_TEMP "ask-detached-repo"
|
|
46
|
+
$output = Join-Path $env:RUNNER_TEMP "ask-detached.json"
|
|
47
|
+
New-Item -ItemType Directory -Force (Join-Path $root "src/main/java/com/acme") | Out-Null
|
|
48
|
+
Set-Content -Path (Join-Path $root "pom.xml") -Value '<project><modelVersion>4.0.0</modelVersion><groupId>com.acme</groupId><artifactId>app</artifactId><version>1</version></project>'
|
|
49
|
+
Set-Content -Path (Join-Path $root "src/main/java/com/acme/App.java") -Value 'package com.acme; public class App {}'
|
|
50
|
+
python -m sourcecode spring-audit $root --output $output --detach
|
|
51
|
+
for ($i = 0; $i -lt 60 -and -not (Test-Path $output); $i++) { Start-Sleep -Seconds 1 }
|
|
52
|
+
if (-not (Test-Path $output)) { throw "Detached worker did not write its artifact" }
|
|
53
|
+
$payload = Get-Content $output -Raw | ConvertFrom-Json
|
|
54
|
+
if (-not $payload) { throw "Detached artifact is not valid JSON" }
|
|
55
|
+
|
|
56
|
+
- name: Verify pack fixes from installed artifact
|
|
57
|
+
shell: pwsh
|
|
58
|
+
run: |
|
|
59
|
+
$root = Join-Path $env:RUNNER_TEMP "ask-pack-repo"
|
|
60
|
+
New-Item -ItemType Directory -Force (Join-Path $root "src/main/java/com/acme") | Out-Null
|
|
61
|
+
New-Item -ItemType Directory -Force (Join-Path $root "src/test/java/com/acme") | Out-Null
|
|
62
|
+
Set-Content -Path (Join-Path $root "pom.xml") -Value '<project><modelVersion>4.0.0</modelVersion><groupId>com.acme</groupId><artifactId>app</artifactId><version>1</version></project>'
|
|
63
|
+
Set-Content -Path (Join-Path $root "src/main/java/com/acme/App.java") -Value 'package com.acme; public class App {}'
|
|
64
|
+
Set-Content -Path (Join-Path $root "src/test/java/com/acme/AppTest.java") -Value 'package com.acme; public class AppTest {}'
|
|
65
|
+
git -C $root init --quiet
|
|
66
|
+
git -C $root config user.email ci@example.invalid
|
|
67
|
+
git -C $root config user.name ASK-CI
|
|
68
|
+
git -C $root add .
|
|
69
|
+
git -C $root commit --quiet -m baseline
|
|
70
|
+
Add-Content -Path (Join-Path $root "src/test/java/com/acme/AppTest.java") -Value '// test-only change'
|
|
71
|
+
python -m sourcecode pack gate $root --since HEAD --format json --output-dir (Join-Path $env:RUNNER_TEMP "ask-gate")
|
|
72
|
+
python -m sourcecode pack assessment $root --only posture,risk --compact --progress stderr
|
|
73
|
+
|
|
74
|
+
- name: Upload artifact
|
|
75
|
+
uses: actions/upload-artifact@v4
|
|
76
|
+
with:
|
|
77
|
+
name: sourcecode-windows
|
|
78
|
+
path: build/**/*.exe
|
|
@@ -17,8 +17,6 @@ jobs:
|
|
|
17
17
|
battery:
|
|
18
18
|
runs-on: windows-latest
|
|
19
19
|
env:
|
|
20
|
-
NO_COLOR: "1"
|
|
21
|
-
TERM: "dumb"
|
|
22
20
|
# CLI payloads and diagnostics are UTF-8 contracts. Without this Windows
|
|
23
21
|
# decodes child-process output with the active code page, turning a valid
|
|
24
22
|
# JSON answer containing source text into an empty/failed test response.
|
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [5.8.32] — 2026-08-26
|
|
4
|
+
|
|
5
|
+
*MCP and documentation alignment release. MCP assessment packs now support
|
|
6
|
+
validated selective component execution through `only`, with omitted coverage
|
|
7
|
+
and a reproducible CLI command recorded in the projection. MCP pull-request
|
|
8
|
+
gates, pack guidance and the public roadmap are synchronized with the current
|
|
9
|
+
release state.*
|
|
10
|
+
|
|
11
|
+
## [5.8.31] — 2026-08-26
|
|
12
|
+
|
|
13
|
+
*Windows portability and release-evidence remediation. Cache and licensing test
|
|
14
|
+
isolation now honours explicit `HOME` overrides, warm workers use the active
|
|
15
|
+
interpreter, migration and identity paths remain portable, and the Windows CI
|
|
16
|
+
battery no longer disables the rendered help contract. Unix-only permission probes
|
|
17
|
+
are skipped on Windows. Local full-suite verification is green; native Windows
|
|
18
|
+
release-artifact verification remains the CI acceptance step.*
|
|
19
|
+
|
|
3
20
|
## [5.8.30] — 2026-08-26
|
|
4
21
|
|
|
5
22
|
*Pack audit remediation release. Unresolved test-only Java files no longer broaden
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sourcecode
|
|
3
|
-
Version: 5.8.
|
|
3
|
+
Version: 5.8.32
|
|
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
|
|
@@ -88,6 +88,8 @@ workflow-shaped packs for users who want one consumable result:
|
|
|
88
88
|
ask pack assessment . --profile prod --output-dir .ask/packs/assessment
|
|
89
89
|
ask pack gate . --since origin/main --output-dir .ask/packs/gate
|
|
90
90
|
ask pack assessment . --format markdown -o assessment.md
|
|
91
|
+
ask pack assessment . --only risk,posture --output-dir .ask/packs/assessment
|
|
92
|
+
ask pack gate . --pr 123 --output-dir .ask/packs/gate
|
|
91
93
|
```
|
|
92
94
|
|
|
93
95
|
For deployment-aware posture evidence, pass the artefacts that describe the
|
|
@@ -104,8 +106,17 @@ contract:
|
|
|
104
106
|
```bash
|
|
105
107
|
ask pack gate . --since origin/main --format github-actions
|
|
106
108
|
ask pack gate . --since origin/main --format gitlab
|
|
109
|
+
ask pack gate . --since origin/main --format sarif -o gate.sarif
|
|
107
110
|
```
|
|
108
111
|
|
|
112
|
+
`pack gate --pr NUMBER` uses the local `gh` CLI to resolve changed files and
|
|
113
|
+
the exact base commit; the base SHA must already exist locally. It does not
|
|
114
|
+
fetch or modify the repository. `pack assessment --only` runs named assessment
|
|
115
|
+
components and records omissions in the manifest. MCP's
|
|
116
|
+
`get_assessment_pack` accepts the same selection as `only: list[str]` and
|
|
117
|
+
returns the reproducible CLI command in its `mcp` projection. SARIF is a bounded
|
|
118
|
+
export of ASK-owned gate decisions, not a re-emission of third-party findings.
|
|
119
|
+
|
|
109
120
|
`PASS`, `BLOCK` and `UNVERIFIED` are data decisions. The process exit code is
|
|
110
121
|
the CI signal; `--allow-unverified` can change only that exit code, never the
|
|
111
122
|
reported verdict. Every pack carries a manifest with component invocations,
|
|
@@ -177,18 +188,19 @@ set `ASK_MAX_RSS_MB=<megabytes>`; if the process exceeds it, ASK refuses the
|
|
|
177
188
|
answer with `MEMORY_TOO_LARGE`, including the observed peak and limit. Leave it
|
|
178
189
|
unset, or set it to `0`, to disable the ceiling explicitly.
|
|
179
190
|
|
|
180
|
-
**Current performance status.** Release 5.8.
|
|
191
|
+
**Current performance status.** Release 5.8.32 retains the shared Canonical IR
|
|
181
192
|
path used by `validation` and now passes that same CIR into labelled `data-exposure`
|
|
182
193
|
runs; the no-label path remains parse-free. These are implementation properties,
|
|
183
194
|
not duration promises. A controlled external warm-path audit has opened performance
|
|
184
195
|
and bounded-output regressions for this release; use `ask cache model <repo>` and
|
|
185
196
|
`--progress stderr` for supervised runs, and consult the
|
|
186
|
-
[
|
|
197
|
+
[latest external audit intake](docs/AUDIT-2026-08-26-EXTERNAL-5.8.31.md) before
|
|
187
198
|
treating a historical timing or bounded flag as a current guarantee.
|
|
188
199
|
|
|
189
|
-
**What a warm actually covers.** `ask cache warm`
|
|
200
|
+
**What a warm actually covers.** `ask cache warm` rebuilds the declared root views and their
|
|
190
201
|
shared structural layers (L1/L2 + the Repository Intelligence Snapshot + the shared Canonical
|
|
191
|
-
IR)
|
|
202
|
+
IR). Pass `--views compact` or `--views compact,agent` to warm only selected views; without
|
|
203
|
+
`--views`, all declared views are warmed. Deeper projections
|
|
192
204
|
are separate keys and are *not* covered by either — `--full`, `--env-map` and a raised `--depth`
|
|
193
205
|
recompute on first use, as do most `prepare-context` tasks. Measured on a 3,342-file Spring
|
|
194
206
|
monolith: `cache warm` 103s → `--compact --git-context` 1s (hit), but `--agent --full --env-map
|
|
@@ -210,7 +222,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
|
|
|
210
222
|
# pip / pipx
|
|
211
223
|
pipx install sourcecode # or: pip install sourcecode
|
|
212
224
|
|
|
213
|
-
ask version # ask 5.8.
|
|
225
|
+
ask version # ask 5.8.32 — and, on a build that has aged,
|
|
214
226
|
# how many releases have probably shipped since
|
|
215
227
|
```
|
|
216
228
|
|
|
@@ -479,7 +491,7 @@ from it.
|
|
|
479
491
|
| `plan` / `compare` / `delta` / `contract-diff` | supported | what to review for a change; candidates by measured cost; outcome of a change; public-contract break | no verdicts, measured cost only |
|
|
480
492
|
| `validation` | supported | request-body validation coverage and gaps | |
|
|
481
493
|
| `baseline capture\|diff` · `trend` | supported | versioned architectural metrics over time; `ask trend .` reads the series (a repository path or a baselines directory), `ask baseline diff .` compares the tree against its newest point | trend reporting, not gating. Baselines land in `.ask/baselines` **inside the repository** — the history travels with the code, not with a vendor; an audit that must not write passes `--dir`. `capture --auto` is the unattended form (one baseline per commit, never rewrites one, never fails the build) — automate it: [baseline-ci.yml](docs/baseline-ci.yml) |
|
|
482
|
-
| `retrieve` | parked | typed knowledge queries over the model | |
|
|
494
|
+
| `retrieve` | parked | typed knowledge queries over the model | symbol-oriented queries accept `--target/-t`; domain aliases such as `--module/-m`, `--subsystem/-s` and `--endpoint/-e` remain supported |
|
|
483
495
|
| `timeline` | experimental | since when a number moved, and in which commit window | walks the commit series and re-runs the shipped analyses (`posture`, `data-exposure`, `endpoints`, `spring-audit`) on a read-only materialisation of each sampled tree; publishes transitions, not a per-commit dump. A sample that could not be analysed is `null` with a reason, never 0, and a transition under sampling carries the window it could have happened in |
|
|
484
496
|
| `regress` | supported | what moved between two payloads of the same command, and which declaration accounts for it | attributes each delta to a declaration the answers carry (`test_source_excluded`, `symbols_excluded`, `coverage.gaps`, `*_cap`, `waivers`); a delta nothing explains is `unattributed`. Refuses the comparison when `cache_layers`, `base_env` or the analyzer fingerprint differ |
|
|
485
497
|
| `explain-endpoint` | supported | the derivation behind one route's verdict | six steps — match, declaration, handler, chain, profiles, verdict — each naming the authority that produced it and the file it can be checked against; a step that could not be derived is `undetermined` with the reason, never absent |
|
|
@@ -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
|
|
@@ -39,6 +39,8 @@ workflow-shaped packs for users who want one consumable result:
|
|
|
39
39
|
ask pack assessment . --profile prod --output-dir .ask/packs/assessment
|
|
40
40
|
ask pack gate . --since origin/main --output-dir .ask/packs/gate
|
|
41
41
|
ask pack assessment . --format markdown -o assessment.md
|
|
42
|
+
ask pack assessment . --only risk,posture --output-dir .ask/packs/assessment
|
|
43
|
+
ask pack gate . --pr 123 --output-dir .ask/packs/gate
|
|
42
44
|
```
|
|
43
45
|
|
|
44
46
|
For deployment-aware posture evidence, pass the artefacts that describe the
|
|
@@ -55,8 +57,17 @@ contract:
|
|
|
55
57
|
```bash
|
|
56
58
|
ask pack gate . --since origin/main --format github-actions
|
|
57
59
|
ask pack gate . --since origin/main --format gitlab
|
|
60
|
+
ask pack gate . --since origin/main --format sarif -o gate.sarif
|
|
58
61
|
```
|
|
59
62
|
|
|
63
|
+
`pack gate --pr NUMBER` uses the local `gh` CLI to resolve changed files and
|
|
64
|
+
the exact base commit; the base SHA must already exist locally. It does not
|
|
65
|
+
fetch or modify the repository. `pack assessment --only` runs named assessment
|
|
66
|
+
components and records omissions in the manifest. MCP's
|
|
67
|
+
`get_assessment_pack` accepts the same selection as `only: list[str]` and
|
|
68
|
+
returns the reproducible CLI command in its `mcp` projection. SARIF is a bounded
|
|
69
|
+
export of ASK-owned gate decisions, not a re-emission of third-party findings.
|
|
70
|
+
|
|
60
71
|
`PASS`, `BLOCK` and `UNVERIFIED` are data decisions. The process exit code is
|
|
61
72
|
the CI signal; `--allow-unverified` can change only that exit code, never the
|
|
62
73
|
reported verdict. Every pack carries a manifest with component invocations,
|
|
@@ -128,18 +139,19 @@ set `ASK_MAX_RSS_MB=<megabytes>`; if the process exceeds it, ASK refuses the
|
|
|
128
139
|
answer with `MEMORY_TOO_LARGE`, including the observed peak and limit. Leave it
|
|
129
140
|
unset, or set it to `0`, to disable the ceiling explicitly.
|
|
130
141
|
|
|
131
|
-
**Current performance status.** Release 5.8.
|
|
142
|
+
**Current performance status.** Release 5.8.32 retains the shared Canonical IR
|
|
132
143
|
path used by `validation` and now passes that same CIR into labelled `data-exposure`
|
|
133
144
|
runs; the no-label path remains parse-free. These are implementation properties,
|
|
134
145
|
not duration promises. A controlled external warm-path audit has opened performance
|
|
135
146
|
and bounded-output regressions for this release; use `ask cache model <repo>` and
|
|
136
147
|
`--progress stderr` for supervised runs, and consult the
|
|
137
|
-
[
|
|
148
|
+
[latest external audit intake](docs/AUDIT-2026-08-26-EXTERNAL-5.8.31.md) before
|
|
138
149
|
treating a historical timing or bounded flag as a current guarantee.
|
|
139
150
|
|
|
140
|
-
**What a warm actually covers.** `ask cache warm`
|
|
151
|
+
**What a warm actually covers.** `ask cache warm` rebuilds the declared root views and their
|
|
141
152
|
shared structural layers (L1/L2 + the Repository Intelligence Snapshot + the shared Canonical
|
|
142
|
-
IR)
|
|
153
|
+
IR). Pass `--views compact` or `--views compact,agent` to warm only selected views; without
|
|
154
|
+
`--views`, all declared views are warmed. Deeper projections
|
|
143
155
|
are separate keys and are *not* covered by either — `--full`, `--env-map` and a raised `--depth`
|
|
144
156
|
recompute on first use, as do most `prepare-context` tasks. Measured on a 3,342-file Spring
|
|
145
157
|
monolith: `cache warm` 103s → `--compact --git-context` 1s (hit), but `--agent --full --env-map
|
|
@@ -161,7 +173,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
|
|
|
161
173
|
# pip / pipx
|
|
162
174
|
pipx install sourcecode # or: pip install sourcecode
|
|
163
175
|
|
|
164
|
-
ask version # ask 5.8.
|
|
176
|
+
ask version # ask 5.8.32 — and, on a build that has aged,
|
|
165
177
|
# how many releases have probably shipped since
|
|
166
178
|
```
|
|
167
179
|
|
|
@@ -430,7 +442,7 @@ from it.
|
|
|
430
442
|
| `plan` / `compare` / `delta` / `contract-diff` | supported | what to review for a change; candidates by measured cost; outcome of a change; public-contract break | no verdicts, measured cost only |
|
|
431
443
|
| `validation` | supported | request-body validation coverage and gaps | |
|
|
432
444
|
| `baseline capture\|diff` · `trend` | supported | versioned architectural metrics over time; `ask trend .` reads the series (a repository path or a baselines directory), `ask baseline diff .` compares the tree against its newest point | trend reporting, not gating. Baselines land in `.ask/baselines` **inside the repository** — the history travels with the code, not with a vendor; an audit that must not write passes `--dir`. `capture --auto` is the unattended form (one baseline per commit, never rewrites one, never fails the build) — automate it: [baseline-ci.yml](docs/baseline-ci.yml) |
|
|
433
|
-
| `retrieve` | parked | typed knowledge queries over the model | |
|
|
445
|
+
| `retrieve` | parked | typed knowledge queries over the model | symbol-oriented queries accept `--target/-t`; domain aliases such as `--module/-m`, `--subsystem/-s` and `--endpoint/-e` remain supported |
|
|
434
446
|
| `timeline` | experimental | since when a number moved, and in which commit window | walks the commit series and re-runs the shipped analyses (`posture`, `data-exposure`, `endpoints`, `spring-audit`) on a read-only materialisation of each sampled tree; publishes transitions, not a per-commit dump. A sample that could not be analysed is `null` with a reason, never 0, and a transition under sampling carries the window it could have happened in |
|
|
435
447
|
| `regress` | supported | what moved between two payloads of the same command, and which declaration accounts for it | attributes each delta to a declaration the answers carry (`test_source_excluded`, `symbols_excluded`, `coverage.gaps`, `*_cap`, `waivers`); a delta nothing explains is `unattributed`. Refuses the comparison when `cache_layers`, `base_env` or the analyzer fingerprint differ |
|
|
436
448
|
| `explain-endpoint` | supported | the derivation behind one route's verdict | six steps — match, declaration, handler, chain, profiles, verdict — each naming the authority that produced it and the file it can be checked against; a step that could not be derived is `undetermined` with the reason, never absent |
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# External Audit — 5.8.31
|
|
2
|
+
|
|
3
|
+
Received 2026-08-26. This note records the external comparison of release
|
|
4
|
+
`5.8.31` against `5.8.30` and separates reproduced defects from mitigations,
|
|
5
|
+
performance observations and shell-dependent measurements.
|
|
6
|
+
|
|
7
|
+
## Executive Result
|
|
8
|
+
|
|
9
|
+
The external score was **8/10**, up from 7/10. The auditor verified useful
|
|
10
|
+
capabilities in this release:
|
|
11
|
+
|
|
12
|
+
- `--progress off|stderr|file:<path>` works for `pack assessment` and `cache warm`;
|
|
13
|
+
- `cache clear --all/--global` removes shared parse/CIR state and makes a
|
|
14
|
+
cold-cache reset explicit;
|
|
15
|
+
- `auth status` documents the deprecation window for legacy fields;
|
|
16
|
+
- the root help labels the `31s` figure as a historical field anchor.
|
|
17
|
+
|
|
18
|
+
The progress control is a mitigation, not an automatic foreground heartbeat:
|
|
19
|
+
without `--progress`, the command remains silent until its final answer. The
|
|
20
|
+
external run also measured a cold-cache improvement (`215.6s` to `137.8s`),
|
|
21
|
+
but one sample is insufficient to attribute a stable release-level change.
|
|
22
|
+
|
|
23
|
+
## Actionable Findings
|
|
24
|
+
|
|
25
|
+
### `AUD-606-O01` — `posture --diff --compact --limit` remains ineffective
|
|
26
|
+
|
|
27
|
+
**Priority:** P2. **Status:** not reproduced in the current checkout; retained as
|
|
28
|
+
an external-subject follow-up.
|
|
29
|
+
|
|
30
|
+
The report measured `estimated_tokens` changing from `71847` to `71808` with
|
|
31
|
+
`--limit 20`, while the bounded floor remained `47764`. The error wording now
|
|
32
|
+
correctly stops recommending a flag that was already tried, but the reported
|
|
33
|
+
payload-size symptom remains. The earlier `AUD-604-O01` closure was based on a
|
|
34
|
+
different subject and must not be treated as proof against this report. A
|
|
35
|
+
controlled current-checkout reproduction over the real `diff_posture` shape
|
|
36
|
+
confirmed that all generated nested lists are in the bounding registry and are
|
|
37
|
+
cut by explicit `--limit`; the existing bounding batteries pass.
|
|
38
|
+
|
|
39
|
+
Acceptance if the original subject is supplied: reproduce on a controlled fixture, identify the nested population
|
|
40
|
+
outside the posture bounded-list registry, and either make the explicit limit
|
|
41
|
+
bound that population or publish a precise non-coverage/refusal. Add a regression
|
|
42
|
+
assertion over the affected payload shape.
|
|
43
|
+
|
|
44
|
+
### `AUD-606-R01` — inconsistent target option names in `retrieve`
|
|
45
|
+
|
|
46
|
+
**Priority:** P2. **Status:** closed in the current checkout (`be16c04`).
|
|
47
|
+
|
|
48
|
+
The retrieval surface uses `--target/-t` for most symbol-oriented commands,
|
|
49
|
+
`--module/-m` for module queries, `--subsystem/-s` for subsystem membership and
|
|
50
|
+
`--endpoint/-e` for endpoint queries. This is a discoverability and automation
|
|
51
|
+
cost, not an analysis correctness failure. Domain-specific flags remain valid,
|
|
52
|
+
and symbol-like domain queries now also accept universal `--target/-t`. Help
|
|
53
|
+
parity coverage spans all five affected commands.
|
|
54
|
+
|
|
55
|
+
Acceptance: choose and document one compatibility policy. The preferred fix is
|
|
56
|
+
to expose a universal `--target/-t` alias where the semantic target is a symbol,
|
|
57
|
+
while retaining domain-specific names where the input is genuinely a module,
|
|
58
|
+
subsystem or endpoint. Sweep the command registry and add help/parity tests.
|
|
59
|
+
|
|
60
|
+
## Conditional Follow-ups
|
|
61
|
+
|
|
62
|
+
### `AUD-606-P01` — cold-cache timing requires more samples
|
|
63
|
+
|
|
64
|
+
The observed 137.8s cold run is an improvement over the reported 5.8.30 value,
|
|
65
|
+
but it is a single measurement and still above the older baseline. No parser or
|
|
66
|
+
performance regression should be opened from it alone. Run 2-3 sequential,
|
|
67
|
+
isolated samples with cache state, repository, host and version recorded.
|
|
68
|
+
|
|
69
|
+
### `AUD-606-P02` — `pack gate --since HEAD` measurement contaminated
|
|
70
|
+
|
|
71
|
+
The 70.2s and >120s observations were taken while two other ASK processes were
|
|
72
|
+
running. This is not evidence of an ASK inconsistency. Re-test in an isolated
|
|
73
|
+
session with three sequential samples before changing the gate or its cache
|
|
74
|
+
path.
|
|
75
|
+
|
|
76
|
+
### `AUD-606-I01` — `pr-impact --files -` with redirected null stdin
|
|
77
|
+
|
|
78
|
+
`--files -` works with an actual empty pipe, but the reported `< /dev/null`
|
|
79
|
+
path is classified as a terminal under the auditor's shell. This may be
|
|
80
|
+
Git Bash/MSYS descriptor behaviour rather than an ASK defect. Reproduce in
|
|
81
|
+
native PowerShell and `cmd.exe` before changing stdin detection.
|
|
82
|
+
|
|
83
|
+
## Not Reopened
|
|
84
|
+
|
|
85
|
+
The verified cache, auth, progress and historical-anchor changes are recorded
|
|
86
|
+
as release capabilities, not new defects. Previously closed pack fixes are not
|
|
87
|
+
duplicated; their remaining release-artifact verification stays in the ledger.
|
|
@@ -16,6 +16,24 @@ The facts these rows are keyed to are published: `ask schema facts-v1` prints th
|
|
|
16
16
|
|
|
17
17
|
## Current Synchronization
|
|
18
18
|
|
|
19
|
+
**External `5.8.31` audit received, 2026-08-26 - `AUD-606`.**
|
|
20
|
+
[`AUDIT-2026-08-26-EXTERNAL-5.8.31.md`](AUDIT-2026-08-26-EXTERNAL-5.8.31.md)
|
|
21
|
+
confirms the new progress and shared-cache controls, and records one actionable
|
|
22
|
+
external-subject follow-up `AUD-606-O01`, where `posture --diff --compact --limit`
|
|
23
|
+
was effectively unchanged on the auditor's nested output; the current checkout
|
|
24
|
+
reproduces no such gap and its bounding batteries pass. It also opens the CLI
|
|
25
|
+
consistency row `AUD-606-R01` for heterogeneous `retrieve` target flags, fixed
|
|
26
|
+
in the current checkout by `be16c04` with help-parity coverage.
|
|
27
|
+
The 137.8s cold run is a single-sample improvement and remains `AUD-606-P01`
|
|
28
|
+
benchmark follow-up, not a parser regression. `AUD-606-P02` (`pack gate` timing)
|
|
29
|
+
and `AUD-606-I01` (`pr-impact --files -` with `/dev/null`) are inconclusive due
|
|
30
|
+
to process contamination and shell-specific stdin behaviour respectively.
|
|
31
|
+
|
|
32
|
+
**Current `5.8.31` queue:** external-subject follow-up `AUD-606-O01`; controlled
|
|
33
|
+
benchmark/portability follow-ups `AUD-606-P01`, `AUD-606-P02` and `AUD-606-I01`.
|
|
34
|
+
The existing `AUD-604-R01` and `AUD-605` release-artifact verification items
|
|
35
|
+
remain unchanged.
|
|
36
|
+
|
|
19
37
|
**External pack audit received, 2026-08-26 - `AUD-605`.**
|
|
20
38
|
[`AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md`](AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md)
|
|
21
39
|
adds two rows: `AUD-605-G01`, where an unresolved test file broadened pack-gate unknown
|
|
@@ -25,7 +43,7 @@ checkout by `52bcc36` and `f89ae18`, with focused regression batteries passing;
|
|
|
25
43
|
artefact verification remains pending. The pack's `--since` timing is additional evidence
|
|
26
44
|
for `AUD-604-P01`, not a duplicate performance finding.
|
|
27
45
|
|
|
28
|
-
**
|
|
46
|
+
**Previous `5.8.31` pack queue:** artefact verification for `AUD-604-R01`; the two `AUD-605`
|
|
29
47
|
fixes are included in this release and await release-artefact verification.
|
|
30
48
|
|
|
31
49
|
**External `5.8.28` audit received, 2026-08-26 - `AUD-604`.**
|
|
@@ -3,7 +3,11 @@
|
|
|
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.8.
|
|
6
|
+
> **CURRENT QUEUE — release `5.8.32`, following the external audit of `5.8.31`, received 2026-08-26.** `AUD-606-O01` (P2,
|
|
7
|
+
> posture diff explicit `--limit` was ineffective on the auditor's nested output but is not reproduced in the current
|
|
8
|
+
> checkout) and `AUD-606-R01` (P2, heterogeneous `retrieve` target flags) is fixed in the current checkout by `be16c04`. `AUD-606-P01` is a one-sample cold-cache improvement requiring
|
|
9
|
+
> controlled confirmation; `AUD-606-P02` and `AUD-606-I01` are inconclusive measurements, not confirmed regressions.
|
|
10
|
+
> `AUD-605-G01` (P2,
|
|
7
11
|
> unresolved test files broadened pack-gate uncertainty to unrelated endpoints) and `AUD-605-U01` (P2, pack assessment did not
|
|
8
12
|
> forward foreground progress) are implemented in the current checkout in commits `52bcc36` and `f89ae18`; focused batteries pass.
|
|
9
13
|
> The pack audit adds evidence to `AUD-604-P01`, but does not open a duplicate performance row.
|
|
@@ -13,9 +17,60 @@ customer-facing `docs/EXECUTIVE-ROADMAP.md`.*
|
|
|
13
17
|
> `AUD-604-P01` is closed as an unconfirmed, non-attributable signal after controlled profiling.
|
|
14
18
|
> Full evidence is
|
|
15
19
|
> in [`AUDIT-2026-08-26-EXTERNAL-5.8.28.md`](AUDIT-2026-08-26-EXTERNAL-5.8.28.md).
|
|
16
|
-
> Pack evidence is in [`AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md`](AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md).
|
|
20
|
+
> Pack evidence is in [`AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md`](AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md). The latest audit
|
|
21
|
+
> synthesis is in [`AUDIT-2026-08-26-EXTERNAL-5.8.31.md`](AUDIT-2026-08-26-EXTERNAL-5.8.31.md). Release-artifact
|
|
17
22
|
> verification of the two pack fixes remains after `AUD-604-R01`.
|
|
18
23
|
|
|
24
|
+
> **STRATEGY DECISION — 2026-08-26.** Two external strategy reports were reconciled into
|
|
25
|
+
> [`STRATEGY-2026-08-26-AGENT-CONTEXT.md`](STRATEGY-2026-08-26-AGENT-CONTEXT.md).
|
|
26
|
+
> The winning route is verified Spring domain context infrastructure for agentic coding and CI platforms:
|
|
27
|
+
> reliability and semantic accuracy first, then a stable MCP/API contract, with `pack gate` as the adoption wedge.
|
|
28
|
+
> Generic multi-framework expansion, dashboards, consulting-led positioning and a premature `ask defects` command
|
|
29
|
+
> are deferred or rejected. This supersedes conflicting strategy suggestions below while preserving them as history.
|
|
30
|
+
|
|
31
|
+
## Current Product Direction
|
|
32
|
+
|
|
33
|
+
This is the adopted interpretation of the external strategy report. It supersedes
|
|
34
|
+
the report's broader or duplicate proposals while retaining the historical queues
|
|
35
|
+
below as evidence. The governing product boundary remains the deterministic,
|
|
36
|
+
source-backed Java/Spring evidence layer in [`PRODUCT-ROUTE.md`](PRODUCT-ROUTE.md).
|
|
37
|
+
|
|
38
|
+
### Fixes
|
|
39
|
+
|
|
40
|
+
| ID | Priority | Scope | Acceptance criteria | Status/order |
|
|
41
|
+
|---|---:|---|---|---|
|
|
42
|
+
| `DIR-F01` | P1 | Replace pattern-only security decisions with shared semantic authorities. Distinguish definitions from invocations and production code from tests, examples and library code. | Each affected rule has a named population, source-backed reason and `non_coverage`; false-positive fixtures cover the reported `SEC-004` / `DEAD-001` shapes. | **Implemented:** current security scans exclude platform definitions, imports, Javadoc and live controls; future rules must use the same authority. |
|
|
43
|
+
| `DIR-F02` | P1 | Extend safe guardrails to genuinely heavy commands and compositions. | A bounded run stops the phase doing the work, publishes partial counts and confidence reduction, preserves completed evidence, and never presents an advisory-only command as enforceable. | **Implemented:** `BUDGETED_ANALYSIS_COMMANDS`, `PhasedRun` and partial-answer contracts bind the current heavy population. New heavy commands must join this registry. |
|
|
44
|
+
| `DIR-F03` | P1 | Finish CI gate ergonomics without weakening its evidence contract. | Verify the `5.8.32` pack fixes in release artefacts, then add only evidence-backed improvements such as PR-native change resolution and selective component control. `AUD-605-G01` is already fixed; test-only unresolved files must not return as a roadmap item. | **Implemented in `d662ca3` and `ea27e27`:** `pack gate --pr` uses GitHub changed files and requires the exact local base SHA; MCP exposes the same PR mode and selective assessment control. Release-artifact verification remains. |
|
|
45
|
+
| `DIR-F04` | P2 | Consolidate reusable semantic predicates used by security and dead-code rules. | One authority is consumed by all relevant rules; population and parity tests prevent a rule from silently reverting to textual matching. This is an implementation constraint, not a new user-facing command. | **Implemented for current rules:** `source_text` owns comment/Javadoc views and security scans consume them. Future rules remain bound to this constraint. |
|
|
46
|
+
| `DIR-F05` | P2 | Continue operational observability for cost and confidence. | Timed answers publish cache state, phase/component progress, coverage, confidence and attributable run conditions; no cross-repository SLA or single-machine duration promise is published. | **Implemented for current timed surfaces;** continuous admission rule for new ones. |
|
|
47
|
+
|
|
48
|
+
### Features
|
|
49
|
+
|
|
50
|
+
| ID | Priority | Feature | Boundary and acceptance criteria | Status/order |
|
|
51
|
+
|---|---:|---|---|---|
|
|
52
|
+
| `DIR-X01` | P1 | Narrow Spring data-flow analysis. | Start with HTTP inputs, SQL/command/network/template sinks and explicit sanitizers. Publish confirmed paths, confidence and non-coverage; do not claim CodeQL-equivalent coverage. Design only after `DIR-F01` and `DIR-F02` are stable. | Conditional medium-term bet |
|
|
53
|
+
| `DIR-X02` | P2 | CI and developer-surface integrations. | Prefer a thin GitHub Action and existing SARIF/CI renderers over another analyzer. A future IDE integration must consume ASK JSON/MCP evidence, preserve attribution and add no second semantic model. | **Implemented baseline:** MCP, SARIF and GitHub/GitLab renderers ship. A distributable Action or IDE surface needs named-buyer validation. |
|
|
54
|
+
| `DIR-X03` | P2 | Selective and reusable pack execution. | `pack assessment` may select or reuse declared components only when tree state, inputs and fingerprints prove reuse; the manifest must say what ran and what was reused. This extends existing `S-24`, not a new pack architecture. | **Selection implemented in `9f4c0e1` and exposed through MCP in `ea27e27`:** declared components run in canonical order and omissions are published. Artifact reuse remains evidence-gated. |
|
|
55
|
+
| `DIR-X04` | P3 | Targeted Spring ecosystem coverage. | Admit Spring Cloud, GraphQL or another adjacent surface only when a named buyer supplies a reproducible gap and the new parser/rule set preserves the same evidence contract. | Evidence-gated |
|
|
56
|
+
|
|
57
|
+
### Explicitly Rejected
|
|
58
|
+
|
|
59
|
+
These are not roadmap work: `--format` and `--compact` remain separate contracts;
|
|
60
|
+
`ask defects` is not a product priority; broad .NET/Node/TypeScript expansion is
|
|
61
|
+
deferred; ML-based prioritisation and automatic refactoring stay outside ASK's
|
|
62
|
+
deterministic core; SBOM/dashboard/hosted-agent scope is outside the product route;
|
|
63
|
+
and competitor accuracy claims require a reproducible benchmark before they can be
|
|
64
|
+
documented as facts.
|
|
65
|
+
|
|
66
|
+
### Decision Order
|
|
67
|
+
|
|
68
|
+
1. Verify the `5.8.32` release artefacts, especially Windows detached execution and packs.
|
|
69
|
+
2. Keep `DIR-F01`, `DIR-F02`, `DIR-F04` and `DIR-F05` as admission constraints for every new rule or heavy command.
|
|
70
|
+
3. Validate `DIR-F03` and `DIR-X03` on named CI repositories before adding artifact reuse or a packaged Action.
|
|
71
|
+
4. Design `DIR-X01` only after a source/sink/sanitizer corpus establishes its coverage contract; admit `DIR-X04` only from buyer evidence.
|
|
72
|
+
5. Keep all rejected items out of active planning unless the product route is explicitly revised.
|
|
73
|
+
|
|
19
74
|
> **Previous queue — external audit of `5.8.27`, received 2026-08-26.** `AUD-603-R01` (P1,
|
|
20
75
|
> detached worker exits because the module entry point is not invoked) -> `AUD-603-S01`
|
|
21
76
|
> (P1, DEAD-001 comment-prose false positive) -> `AUD-603-O01` (P2, posture diff compact
|
|
@@ -5,7 +5,15 @@
|
|
|
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 STATUS — release `5.8.
|
|
8
|
+
> **CURRENT STATUS — release `5.8.32`, following the `5.8.31` external audit intake, 2026-08-26.** The latest
|
|
9
|
+
> audit leaves one actionable residue: `AUD-606-R01` (inconsistent target option names across `retrieve`),
|
|
10
|
+
> fixed in the current checkout by `be16c04`.
|
|
11
|
+
> `AUD-606-O01` (posture diff explicit `--limit`) is retained as an external-subject follow-up because it does
|
|
12
|
+
> not reproduce in the current checkout. The reported cold-cost
|
|
13
|
+
> improvement needs controlled samples; `pack gate` timing and `/dev/null` stdin behaviour remain inconclusive.
|
|
14
|
+
> Details are in [`AUDIT-2026-08-26-EXTERNAL-5.8.31.md`](AUDIT-2026-08-26-EXTERNAL-5.8.31.md).
|
|
15
|
+
>
|
|
16
|
+
> The semantic
|
|
9
17
|
> regression matrix remains green: detached execution, DEAD-001 comment handling,
|
|
10
18
|
> Boot 3 applicability, non-interactive selftest scope communication, nested diff
|
|
11
19
|
> bounding and help timing guidance are confirmed fixed. The reported cold-cost signal
|
|
@@ -28,6 +36,37 @@
|
|
|
28
36
|
> not a separate regression claim. Details are in
|
|
29
37
|
> [`AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md`](AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md).
|
|
30
38
|
|
|
39
|
+
> **ADOPTED DIRECTION — strategy review, 2026-08-26.** ASK will deepen its existing
|
|
40
|
+
> moat instead of becoming a general SAST or AI platform. Semantic security accuracy,
|
|
41
|
+
> safe guardrails and honest operational metrics are now implementation constraints;
|
|
42
|
+
> CI gate ergonomics and selective pack execution are implemented in `d662ca3` and
|
|
43
|
+
> `ea27e27`. The remaining strategic candidates are a narrowly scoped Spring data-flow
|
|
44
|
+
> prototype and evidence-led coverage of adjacent Spring surfaces.
|
|
45
|
+
|
|
46
|
+
> **STRATEGY RECONCILIATION — two reports, 2026-08-26.** The selected route is
|
|
47
|
+
> deterministic Spring domain context infrastructure for agentic coding and CI platforms:
|
|
48
|
+
> reliability first, then a stable MCP/API integration contract, with `pack gate` as the entry wedge.
|
|
49
|
+
> Spring remains the focus; generic framework expansion, dashboards, consulting-led positioning and a premature
|
|
50
|
+
> `ask defects` product surface are deferred or rejected. The full decision and rationale are in
|
|
51
|
+
> [`STRATEGY-2026-08-26-AGENT-CONTEXT.md`](STRATEGY-2026-08-26-AGENT-CONTEXT.md).
|
|
52
|
+
|
|
53
|
+
> **What this means in practice.** Every fix must name its analysed population, source
|
|
54
|
+
> authority, confidence and non-coverage, and ship with a regression fixture. Every new
|
|
55
|
+
> feature must reuse the shared semantic model, preserve deterministic evidence and have
|
|
56
|
+
> a named buyer or reproducible user gap. `AUD-605-G01` is already fixed in 5.8.32; it is
|
|
57
|
+
> not reopened as a future feature merely because the report described the old behaviour.
|
|
58
|
+
|
|
59
|
+
> **Explicitly out of scope.** `--format` and `--compact` remain separate contracts;
|
|
60
|
+
> a defect-ledger command, broad .NET/Node/TypeScript support, ML prioritisation,
|
|
61
|
+
> automatic refactoring, generic SBOM/dashboard management and a hosted coding agent
|
|
62
|
+
> are rejected for this route. Competitor accuracy figures are not roadmap evidence
|
|
63
|
+
> without a reproducible benchmark.
|
|
64
|
+
|
|
65
|
+
> **Order:** verify the 5.8.32 artefacts; validate the new CI/pack paths with named buyers;
|
|
66
|
+
> then admit data-flow only with a source/sink/sanitizer corpus and ecosystem work only with
|
|
67
|
+
> buyer evidence. Detailed IDs, boundaries and acceptance criteria are in
|
|
68
|
+
> [`DEVELOPMENT-ROADMAP.md`](DEVELOPMENT-ROADMAP.md) under *Current Product Direction*.
|
|
69
|
+
|
|
31
70
|
> **CURRENT STATUS — `5.8.26` external audit intake, 2026-08-23.** The active engineering
|
|
32
71
|
> queue is `impact-chain` bounded-output regression, `posture --diff --compact` usability,
|
|
33
72
|
> deterministic root fingerprints, sustained warm-path performance and closure-provenance
|
|
@@ -75,6 +75,8 @@ los agrupan para un flujo de trabajo completo:
|
|
|
75
75
|
ask pack list
|
|
76
76
|
ask pack assessment . --profile prod --output-dir .ask/packs/assessment
|
|
77
77
|
ask pack gate . --since origin/main --output-dir .ask/packs/gate
|
|
78
|
+
ask pack assessment . --only risk,posture --output-dir .ask/packs/assessment
|
|
79
|
+
ask pack gate . --pr 123 --output-dir .ask/packs/gate
|
|
78
80
|
```
|
|
79
81
|
|
|
80
82
|
`assessment` entrega la foto de modernización y riesgo. `gate` entrega
|
|
@@ -96,8 +98,21 @@ GitHub Actions o GitLab:
|
|
|
96
98
|
```bash
|
|
97
99
|
ask pack gate . --since origin/main --format github-actions
|
|
98
100
|
ask pack gate . --since origin/main --format gitlab
|
|
101
|
+
ask pack gate . --since origin/main --format sarif -o gate.sarif
|
|
99
102
|
```
|
|
100
103
|
|
|
104
|
+
`pack assessment --only` permite ejecutar solo los componentes declarados que
|
|
105
|
+
necesite el flujo. El `manifest` deja constancia de los componentes omitidos;
|
|
106
|
+
`audit-report` requiere incluir también `risk`.
|
|
107
|
+
|
|
108
|
+
`pack gate --pr NUMBER` obtiene los ficheros modificados mediante el `gh` local
|
|
109
|
+
y usa el commit base exacto de la pull request. Ese commit debe estar disponible
|
|
110
|
+
localmente; no hace `fetch` ni modifica el repositorio y es incompatible con
|
|
111
|
+
`--since`.
|
|
112
|
+
|
|
113
|
+
El formato `sarif` del gate genera un SARIF 2.1.0 acotado a las decisiones
|
|
114
|
+
propias de ASK. No vuelve a emitir resultados de analizadores externos.
|
|
115
|
+
|
|
101
116
|
El `manifest` identifica cada componente, su invocación y su fingerprint. Un
|
|
102
117
|
resultado `BLOCK` o `UNVERIFIED` sigue siendo un resultado estructurado; el
|
|
103
118
|
código de salida es la señal que debe consumir el pipeline.
|
|
@@ -985,7 +1000,8 @@ foto).
|
|
|
985
1000
|
|
|
986
1001
|
```bash
|
|
987
1002
|
ask cache status # estadísticas de la caché del repo
|
|
988
|
-
ask cache warm # pre-construye
|
|
1003
|
+
ask cache warm # pre-construye todas las vistas declaradas
|
|
1004
|
+
ask cache warm . --views compact,agent # limita el calentamiento a esas vistas
|
|
989
1005
|
ask cache clear # borra las fotos cacheadas del repo
|
|
990
1006
|
ask cache freshness # frescura del RIS respecto al HEAD de git actual
|
|
991
1007
|
ask cache model . # qué mejora realmente una caché caliente por comando
|
|
@@ -1017,8 +1033,12 @@ Además de las consultas individuales, MCP expone los packs como operaciones
|
|
|
1017
1033
|
estructuradas de alto nivel:
|
|
1018
1034
|
|
|
1019
1035
|
- `get_assessment_pack`: assessment de modernización y riesgo con `manifest` e
|
|
1020
|
-
identidad de cada componente.
|
|
1036
|
+
identidad de cada componente. Admite `only` como lista de componentes para
|
|
1037
|
+
una evaluación acotada; las omisiones quedan registradas como no cubiertas.
|
|
1021
1038
|
- `get_change_safety_gate`: gate de cambios con `PASS`, `BLOCK` o `UNVERIFIED`.
|
|
1039
|
+
Acepta `since` para una referencia Git local o `pr` para resolver una pull
|
|
1040
|
+
request mediante `gh`; son opciones mutuamente excluyentes y el SHA base debe
|
|
1041
|
+
estar disponible localmente.
|
|
1022
1042
|
|
|
1023
1043
|
Ambas herramientas usan `compact=true` por defecto para agentes. Un resultado
|
|
1024
1044
|
`BLOCK` o `UNVERIFIED` es una respuesta válida con datos, no un error de
|
|
@@ -43,8 +43,12 @@ The assessment pack composes `migrate-check`, `posture`, `endpoints`,
|
|
|
43
43
|
|
|
44
44
|
```bash
|
|
45
45
|
ask pack assessment . --profile prod --output-dir .ask/packs/assessment
|
|
46
|
+
ask pack assessment . --only risk,posture --output-dir .ask/packs/assessment
|
|
46
47
|
```
|
|
47
48
|
|
|
49
|
+
`--only` runs a comma-separated subset of declared assessment components and
|
|
50
|
+
records omitted components in the manifest. `audit-report` requires `risk`.
|
|
51
|
+
|
|
48
52
|
When the repository contains several possible environments, pass the artefact
|
|
49
53
|
that describes the deployment being assessed. The option is repeatable and
|
|
50
54
|
keeps disagreement between deployment descriptions visible:
|
|
@@ -82,6 +86,16 @@ The gate composes `verify`, `verify-edit`, `posture --since` and
|
|
|
82
86
|
ask pack gate . --since origin/main --output-dir .ask/packs/gate
|
|
83
87
|
```
|
|
84
88
|
|
|
89
|
+
For a GitHub pull request, the gate can resolve the changed files directly:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
ask pack gate . --pr 123 --output-dir .ask/packs/gate
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
This uses the local `gh` CLI and requires the pull request's exact base SHA to
|
|
96
|
+
be available locally. It does not fetch or mutate the repository and cannot be
|
|
97
|
+
combined with `--since`.
|
|
98
|
+
|
|
85
99
|
Its exit contract is:
|
|
86
100
|
|
|
87
101
|
- `0` / `PASS`: all component gates passed;
|
|
@@ -100,9 +114,13 @@ ask pack gate . --since origin/main --format github-actions
|
|
|
100
114
|
|
|
101
115
|
# GitLab collapsible job-log section
|
|
102
116
|
ask pack gate . --since origin/main --format gitlab
|
|
117
|
+
|
|
118
|
+
# SARIF 2.1.0 decisions owned by ASK
|
|
119
|
+
ask pack gate . --since origin/main --format sarif -o gate.sarif
|
|
103
120
|
```
|
|
104
121
|
|
|
105
|
-
|
|
122
|
+
The CI formats are bounded summaries or decisions only. The SARIF renderer
|
|
123
|
+
does not re-emit third-party scanner findings. Persist `--output-dir .ask/packs/gate`
|
|
106
124
|
when the job must publish component evidence and the aggregate `pack.json`; use
|
|
107
125
|
`--output FILE` when the aggregate needs a separately controlled path. The
|
|
108
126
|
process exit code remains the only pass/fail signal for the job.
|