sourcecode 4.7.0__tar.gz → 4.8.0__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-4.7.0 → sourcecode-4.8.0}/CHANGELOG.md +40 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/PKG-INFO +7 -7
- {sourcecode-4.7.0 → sourcecode-4.8.0}/README.md +6 -6
- {sourcecode-4.7.0 → sourcecode-4.8.0}/pyproject.toml +1 -1
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/__init__.py +1 -1
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/cli.py +529 -75
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/context_cache.py +48 -1
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/hibernate_strat.py +28 -6
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/migrate_check.py +20 -3
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/risk.py +159 -6
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/spring_impact.py +8 -2
- {sourcecode-4.7.0 → sourcecode-4.8.0}/.github/workflows/build-windows.yml +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/.gitignore +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/.ruff.toml +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/CLAUDE.md +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/CONTRIBUTING.md +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/LICENSE +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/SECURITY.md +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/raw +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/scripts/compare_integration_engines.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/scripts/customer_smoke_test.sh +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/scripts/generate_jdk_exports.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/scripts/perf_harness.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/adaptive_scanner.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/archetype.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/architectural_baseline.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/architectural_delta.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/architecture_analyzer.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/architecture_summary.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/ast_extractor.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/baseline_autocapture.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/cache.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/cache_model.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/call_surface.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/caller_metrics.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/caller_reach.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/canonical_ir.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/chain_rules.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/change_plan.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/cir_graphs.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/classifier.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/client_calls.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/code_notes_analyzer.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/compare.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/confidence_analyzer.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/constraint_diff.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/context_graph.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/context_scorer.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/context_summarizer.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/contract_diff.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/contract_init.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/contract_model.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/contract_pipeline.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/coverage_parser.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/data_exposure.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/data_labels.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/defect_identity.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/degradation.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/dependency_analyzer.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/deployment_prefix.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/__init__.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/base.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/csproj_parser.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/dart.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/dotnet.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/elixir.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/go.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/heuristic.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/hybrid.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/java.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/jvm_ext.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/nodejs.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/parsers.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/php.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/project.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/python.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/ruby.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/rust.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/systems.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/terraform.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/detectors/tooling.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/doc_analyzer.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/dynamic_argument_surface.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/endpoint_literals.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/endpoint_metrics.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/entrypoint_classifier.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/env_analyzer.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/envelope.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/environment_resolution.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/error_schema.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/evidence_provider.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/explain.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/facts/__init__.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/facts/registry.json +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/file_chunker.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/file_classifier.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/filter_surface.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/format_contract.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/fqn_utils.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/git_analyzer.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/git_checkout.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/graph_analyzer.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/graph_evidence.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/identity_fallback.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/integration_coordinates.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/jdk_exports.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/license.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/mcp/__init__.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/mcp/onboarding/applier.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/mcp/onboarding/backup.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/mcp/onboarding/detector.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/mcp/onboarding/planner.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/mcp/orchestrator.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/mcp/registry.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/mcp/runner.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/mcp/server.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/mcp_nudge.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/metrics_analyzer.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/migration_blast.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/non_coverage.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/openapi_surface.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/openrewrite_recipe.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/output_budget.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/parse_cache.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/path_admission.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/path_filters.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/perf.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/pipe_contract.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/posture.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/pr_comment_renderer.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/pr_impact.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/prepare_context.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/progress.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/ranking_engine.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/readiness_timeline.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/reconciliation.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/redactor.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/reference_facts.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/release_info.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/relevance_scorer.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/remedies.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/rename_refactor.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/repo_classifier.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/repository_ir.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/__init__.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/context.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/errors.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/executor.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/planner.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/query.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/request.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/resolution.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/result.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/retriever.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/runtime.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/steps.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/steps_endpoint.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/steps_graph.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/steps_impact.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/steps_intf.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/steps_struct.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/retrieval/steps_txsec.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/ris.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/rule_catalog.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/runtime_classifier.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/sarif.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/scanner.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/schema.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/schemas/envelope-v1.schema.json +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/security_config.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/security_config_scan.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/security_posture.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/semantic_analyzer.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/semantic_impact_engine.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/semantic_integration_engine.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/semantic_services.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/serializer.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/servlet_surface.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/source_text.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/spring_event_topology.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/spring_findings.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/spring_model.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/spring_profiles.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/spring_properties.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/spring_security_audit.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/spring_semantic.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/spring_tx_analyzer.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/summarizer.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/target_admission.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/telemetry/__init__.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/telemetry/config.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/telemetry/consent.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/telemetry/events.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/telemetry/filters.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/telemetry/transport.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/test_gap_ranking.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/test_sources.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/token_estimate.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/tree_utils.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/type_usage_surface.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/validation_inference.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/validation_surface.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/verify_edit.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/verify_repo.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/verify_rules.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/version_check.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/src/sourcecode/workspace.py +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/supabase/functions/README.md +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/supabase/functions/get-license/index.ts +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/supabase/functions/lemonsqueezy-webhook/index.ts +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/supabase/functions/telemetry/index.ts +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/supabase/sql/license_event_ordering.sql +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/supabase/sql/licensing_schema.sql +0 -0
- {sourcecode-4.7.0 → sourcecode-4.8.0}/supabase/sql/telemetry_events.sql +0 -0
|
@@ -2,6 +2,46 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [4.8.0] — 2026-08-04
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- **`risk` now gives MyBatis XML findings real reach.** `SEC-008` mapper XML
|
|
10
|
+
binds to the Java mapper interface named by the XML namespace, then walks that
|
|
11
|
+
interface's callers instead of publishing manufactured zero reach.
|
|
12
|
+
- **`risk` now maps deployment descriptor controls to endpoint reach.**
|
|
13
|
+
`DEAD-001` in `web.xml` reads descriptor URL patterns and reports the
|
|
14
|
+
endpoint population they cover, or an explicit unknown reach reason when the
|
|
15
|
+
descriptor scope cannot be parsed.
|
|
16
|
+
- **`migrate-check` no longer scores unresolved transitive Hibernate as ready.**
|
|
17
|
+
`spring-boot-starter-data-jpa` without a resolved Hibernate version now
|
|
18
|
+
degrades to unresolved transitive evidence instead of `hibernate_readiness:
|
|
19
|
+
100`.
|
|
20
|
+
- **`impact-chain` names caller-count units.** List entries, distinct symbols and
|
|
21
|
+
distinct classes are published separately so truncation warnings and metadata
|
|
22
|
+
no longer reuse one ambiguous "direct callers" phrase.
|
|
23
|
+
- **Expensive semantic passes warn about repository contention.** `spring-audit`,
|
|
24
|
+
`risk`, `migrate-check` and `verify` register an advisory analysis scope and
|
|
25
|
+
warn interactive users when another expensive `ask` process is already running
|
|
26
|
+
against the same repository.
|
|
27
|
+
- **Cache context stats publish lookup distributions.** `cache context-stats`
|
|
28
|
+
now includes lookup/build p50/p95 and context-layer payload sizes so cache-hit
|
|
29
|
+
cost can be budgeted instead of inferred.
|
|
30
|
+
- **Cache command grammar is consistent.** `ask cache model [path]` accepts a
|
|
31
|
+
repository path like sibling cache commands.
|
|
32
|
+
|
|
33
|
+
### Added
|
|
34
|
+
|
|
35
|
+
- **Human-scale table triage for large audits.** `spring-audit`, `risk` and
|
|
36
|
+
`migrate-check` now support table renderers with direct filtering:
|
|
37
|
+
`--table`, `--rule`/`--only`, `--band` where applicable, and `--top-n`.
|
|
38
|
+
|
|
39
|
+
### Documentation
|
|
40
|
+
|
|
41
|
+
- README and user guide examples now report `4.8.0`.
|
|
42
|
+
- The development roadmap records the saint-server field-evaluation fixes and
|
|
43
|
+
future feature queue.
|
|
44
|
+
|
|
5
45
|
## [4.7.0] — 2026-08-04
|
|
6
46
|
|
|
7
47
|
### Fixed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sourcecode
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.8.0
|
|
4
4
|
Summary: Persistent structural context and ultra-fast repeated analysis for AI coding agents
|
|
5
5
|
License-File: LICENSE
|
|
6
6
|
Keywords: agents,ai,codebase,context,developer-tools,llm
|
|
@@ -42,7 +42,7 @@ Description-Content-Type: text/markdown
|
|
|
42
42
|
|
|
43
43
|
**Context · Impact · Migration · Architecture · Review — everything from one structural model.**
|
|
44
44
|
|
|
45
|
-

|
|
46
46
|

|
|
47
47
|
|
|
48
48
|
> **ASK Engine** is the product. The CLI command is **`ask`**. The legacy **`sourcecode`**
|
|
@@ -97,7 +97,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
|
|
|
97
97
|
# pip / pipx
|
|
98
98
|
pipx install sourcecode # or: pip install sourcecode
|
|
99
99
|
|
|
100
|
-
ask version # ask 4.
|
|
100
|
+
ask version # ask 4.8.0 — and, on a build that has aged,
|
|
101
101
|
# how many releases have probably shipped since
|
|
102
102
|
```
|
|
103
103
|
|
|
@@ -306,13 +306,13 @@ from it.
|
|
|
306
306
|
| Command | Tier | Answers | Note |
|
|
307
307
|
|---|---|---|---|
|
|
308
308
|
| `posture` | experimental | which beans a profile set wires, and how effective endpoint access differs between two sets | the most differentiated capability here |
|
|
309
|
-
| `risk` | experimental | what each defect actually costs, once reach, access, write effect and the shape of the input path are in it | `defect_severity × reachability × auth_verdict × write_effect × query_construction × input_constraints`; every factor names its authority |
|
|
309
|
+
| `risk` | experimental | what each defect actually costs, once reach, access, write effect and the shape of the input path are in it | `defect_severity × reachability × auth_verdict × write_effect × query_construction × input_constraints`; every factor names its authority; `--table --rule SEC-008 --band high --top-n 20` gives audit triage without `jq` |
|
|
310
310
|
| `enrich` | experimental | another scanner's SARIF findings, ranked by what this repository does with them | `--sarif <log>`; the same composition as `risk`, with the scanner as the severity authority |
|
|
311
311
|
| `migrate-recipe` | experimental | the migration report as the OpenRewrite recipe that applies it | only recipes a finding named; the manual remainder published beside them; writes nothing without `--write`, and never a runnable command for an empty recipe list |
|
|
312
312
|
| `data-exposure` | experimental | which routes can carry the data you labelled, and who reaches them | labels declared in `sourcecode.config.json` — never inferred from a name; `signature` and `call_reach` evidence published apart, field-level flow out of scope (NC-008). With nothing declared, `ask data-exposure /path/to/repo` answers `answered: false` and hands back the file, the key and an example to declare — it never reports zero exposed routes |
|
|
313
313
|
| `endpoints` | core | every REST endpoint, effective path, security policy, confidence | Spring MVC + JAX-RS (~65 % recall on JAX-RS sub-resource locators). `--compact` answers the exposure census without the rows; `--servlets` lists the servlet-mounted surface as its own population; `--client-usage` says which routes the TS/JS client in this repository actually calls |
|
|
314
|
-
| `spring-audit` | core | transactional anomalies + security surface + validation gaps | `--ci`, `-f github-comment` |
|
|
315
|
-
| `migrate-check` | core | Boot 2→3 readiness: located blockers, per-dimension score, effort | `--blast-radius` orders the re-test plan |
|
|
314
|
+
| `spring-audit` | core | transactional anomalies + security surface + validation gaps | `--ci`, `-f github-comment`; `--table --rule SEC-008 --top-n 20` for human-scale review |
|
|
315
|
+
| `migrate-check` | core | Boot 2→3 readiness: located blockers, per-dimension score, effort | `--blast-radius` orders the re-test plan; `--table --rule MIG-001 --band critical --top-n 20` for blocker triage |
|
|
316
316
|
| `impact` / `impact-chain` | core | blast radius of a change, to the endpoints it reaches | target the **interface**, not the `Impl` |
|
|
317
317
|
| `pr-impact` | core | the same, scoped to a PR diff | gating command: `--fail-on`, exit codes |
|
|
318
318
|
| `verify` | core | does the repo satisfy its declared contracts, **relative to a baseline** | `.ask/contracts.yml`; exit 0/1/2 |
|
|
@@ -328,7 +328,7 @@ from it.
|
|
|
328
328
|
| `retrieve` | parked | typed knowledge queries over the model | |
|
|
329
329
|
| `archetype` | experimental | evidence-based architectural archetype | |
|
|
330
330
|
| `rename-class` / `chunk-file` | supported | word-boundary Java rename; split a large file for an agent | |
|
|
331
|
-
| `cache status\|warm\|model\|clear` · `auth` · `telemetry` · `mcp` · `config` · `version` | supported | housekeeping | `activate` too |
|
|
331
|
+
| `cache status\|warm\|model\|clear` · `auth` · `telemetry` · `mcp` · `config` · `version` | supported | housekeeping | `cache model [path]` explains what a warm buys per command; `activate` too |
|
|
332
332
|
|
|
333
333
|
---
|
|
334
334
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
**Context · Impact · Migration · Architecture · Review — everything from one structural model.**
|
|
6
6
|
|
|
7
|
-

|
|
8
8
|

|
|
9
9
|
|
|
10
10
|
> **ASK Engine** is the product. The CLI command is **`ask`**. The legacy **`sourcecode`**
|
|
@@ -59,7 +59,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
|
|
|
59
59
|
# pip / pipx
|
|
60
60
|
pipx install sourcecode # or: pip install sourcecode
|
|
61
61
|
|
|
62
|
-
ask version # ask 4.
|
|
62
|
+
ask version # ask 4.8.0 — and, on a build that has aged,
|
|
63
63
|
# how many releases have probably shipped since
|
|
64
64
|
```
|
|
65
65
|
|
|
@@ -268,13 +268,13 @@ from it.
|
|
|
268
268
|
| Command | Tier | Answers | Note |
|
|
269
269
|
|---|---|---|---|
|
|
270
270
|
| `posture` | experimental | which beans a profile set wires, and how effective endpoint access differs between two sets | the most differentiated capability here |
|
|
271
|
-
| `risk` | experimental | what each defect actually costs, once reach, access, write effect and the shape of the input path are in it | `defect_severity × reachability × auth_verdict × write_effect × query_construction × input_constraints`; every factor names its authority |
|
|
271
|
+
| `risk` | experimental | what each defect actually costs, once reach, access, write effect and the shape of the input path are in it | `defect_severity × reachability × auth_verdict × write_effect × query_construction × input_constraints`; every factor names its authority; `--table --rule SEC-008 --band high --top-n 20` gives audit triage without `jq` |
|
|
272
272
|
| `enrich` | experimental | another scanner's SARIF findings, ranked by what this repository does with them | `--sarif <log>`; the same composition as `risk`, with the scanner as the severity authority |
|
|
273
273
|
| `migrate-recipe` | experimental | the migration report as the OpenRewrite recipe that applies it | only recipes a finding named; the manual remainder published beside them; writes nothing without `--write`, and never a runnable command for an empty recipe list |
|
|
274
274
|
| `data-exposure` | experimental | which routes can carry the data you labelled, and who reaches them | labels declared in `sourcecode.config.json` — never inferred from a name; `signature` and `call_reach` evidence published apart, field-level flow out of scope (NC-008). With nothing declared, `ask data-exposure /path/to/repo` answers `answered: false` and hands back the file, the key and an example to declare — it never reports zero exposed routes |
|
|
275
275
|
| `endpoints` | core | every REST endpoint, effective path, security policy, confidence | Spring MVC + JAX-RS (~65 % recall on JAX-RS sub-resource locators). `--compact` answers the exposure census without the rows; `--servlets` lists the servlet-mounted surface as its own population; `--client-usage` says which routes the TS/JS client in this repository actually calls |
|
|
276
|
-
| `spring-audit` | core | transactional anomalies + security surface + validation gaps | `--ci`, `-f github-comment` |
|
|
277
|
-
| `migrate-check` | core | Boot 2→3 readiness: located blockers, per-dimension score, effort | `--blast-radius` orders the re-test plan |
|
|
276
|
+
| `spring-audit` | core | transactional anomalies + security surface + validation gaps | `--ci`, `-f github-comment`; `--table --rule SEC-008 --top-n 20` for human-scale review |
|
|
277
|
+
| `migrate-check` | core | Boot 2→3 readiness: located blockers, per-dimension score, effort | `--blast-radius` orders the re-test plan; `--table --rule MIG-001 --band critical --top-n 20` for blocker triage |
|
|
278
278
|
| `impact` / `impact-chain` | core | blast radius of a change, to the endpoints it reaches | target the **interface**, not the `Impl` |
|
|
279
279
|
| `pr-impact` | core | the same, scoped to a PR diff | gating command: `--fail-on`, exit codes |
|
|
280
280
|
| `verify` | core | does the repo satisfy its declared contracts, **relative to a baseline** | `.ask/contracts.yml`; exit 0/1/2 |
|
|
@@ -290,7 +290,7 @@ from it.
|
|
|
290
290
|
| `retrieve` | parked | typed knowledge queries over the model | |
|
|
291
291
|
| `archetype` | experimental | evidence-based architectural archetype | |
|
|
292
292
|
| `rename-class` / `chunk-file` | supported | word-boundary Java rename; split a large file for an agent | |
|
|
293
|
-
| `cache status\|warm\|model\|clear` · `auth` · `telemetry` · `mcp` · `config` · `version` | supported | housekeeping | `activate` too |
|
|
293
|
+
| `cache status\|warm\|model\|clear` · `auth` · `telemetry` · `mcp` · `config` · `version` | supported | housekeeping | `cache model [path]` explains what a warm buys per command; `activate` too |
|
|
294
294
|
|
|
295
295
|
---
|
|
296
296
|
|