graphcheck 0.3.0__tar.gz → 0.4.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.
- {graphcheck-0.3.0 → graphcheck-0.4.0}/.gitignore +1 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/CHANGELOG.md +154 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/PKG-INFO +19 -7
- {graphcheck-0.3.0 → graphcheck-0.4.0}/README.md +18 -6
- graphcheck-0.4.0/docs/schemas/results-1.0.schema.json +715 -0
- graphcheck-0.4.0/docs/schemas/results-1.1.schema.json +742 -0
- graphcheck-0.3.0/docs/schemas/results.schema.json → graphcheck-0.4.0/docs/schemas/results-1.2.schema.json +5 -5
- {graphcheck-0.3.0 → graphcheck-0.4.0}/pyproject.toml +17 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/__init__.py +1 -1
- graphcheck-0.4.0/src/graphcheck/application/artifacts.py +218 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/application/run.py +63 -28
- graphcheck-0.4.0/src/graphcheck/application/suites.py +86 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/baselines.py +27 -12
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/cli.py +121 -86
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/connection_profiles.py +13 -21
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/contracts/check.py +24 -3
- graphcheck-0.4.0/src/graphcheck/contracts/historical_results.py +34 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/contracts/profile.py +31 -3
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/contracts/results.py +13 -1
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/contracts/schemas.py +0 -35
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/diff.py +83 -4
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/engine/baseline.py +95 -23
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/engine/compiler.py +191 -3
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/engine/core_pack.py +29 -10
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/engine/evaluator.py +313 -44
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/engine/executor.py +0 -4
- graphcheck-0.4.0/src/graphcheck/engine/graphrag_pack.py +449 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/engine/identifiers.py +2 -1
- graphcheck-0.4.0/src/graphcheck/engine/limits.py +18 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/engine/parameters.py +2 -32
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/engine/pii_pack.py +13 -15
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/engine/runner.py +300 -64
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/mcp/adapter.py +9 -2
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/neo4j_adapter.py +66 -21
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/packs/__init__.py +12 -1
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/packs/catalog.py +3 -0
- graphcheck-0.4.0/src/graphcheck/packs/graphrag.py +97 -0
- graphcheck-0.4.0/src/graphcheck/packs/graphrag.yml +68 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/packs/metadata.py +68 -2
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/profiler.py +311 -11
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/project.py +65 -10
- graphcheck-0.4.0/src/graphcheck/provenance.py +9 -0
- graphcheck-0.4.0/src/graphcheck/reporting/changes.py +236 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/reporting/explorer.py +33 -13
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/reporting/history.py +270 -76
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/reporting/presentation.py +3 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/reporting/redaction.py +20 -10
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/reporting/writer.py +34 -3
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/telemetry/policy.py +1 -16
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/telemetry/posthog.py +9 -2
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/yaml_loader.py +2 -2
- graphcheck-0.3.0/.gitattributes +0 -2
- graphcheck-0.3.0/.github/CODEOWNERS +0 -2
- graphcheck-0.3.0/.github/ISSUE_TEMPLATE/bug_report.md +0 -30
- graphcheck-0.3.0/.github/ISSUE_TEMPLATE/deliverable.md +0 -15
- graphcheck-0.3.0/.github/ISSUE_TEMPLATE/docs.md +0 -19
- graphcheck-0.3.0/.github/ISSUE_TEMPLATE/feature_request.md +0 -18
- graphcheck-0.3.0/.github/pull_request_template.md +0 -16
- graphcheck-0.3.0/.github/scripts/first-run.sh +0 -107
- graphcheck-0.3.0/.github/scripts/first_run_evidence.py +0 -403
- graphcheck-0.3.0/.github/workflows/ci.yml +0 -144
- graphcheck-0.3.0/.github/workflows/extended-ci.yml +0 -232
- graphcheck-0.3.0/.github/workflows/graphcheck.yml +0 -35
- graphcheck-0.3.0/.github/workflows/hostile-scale.yml +0 -26
- graphcheck-0.3.0/.github/workflows/release.yml +0 -73
- graphcheck-0.3.0/.gitmodules +0 -3
- graphcheck-0.3.0/.pre-commit-config.yaml +0 -7
- graphcheck-0.3.0/.python-version +0 -1
- graphcheck-0.3.0/CONTRIBUTING.md +0 -115
- graphcheck-0.3.0/docs/README.md +0 -9
- graphcheck-0.3.0/docs/assets/graphcheck-demo.gif +0 -0
- graphcheck-0.3.0/docs/getting-started/quickstart.md +0 -30
- graphcheck-0.3.0/docs/guides/agents.md +0 -275
- graphcheck-0.3.0/docs/guides/ci-cd.md +0 -400
- graphcheck-0.3.0/docs/guides/github-actions.md +0 -87
- graphcheck-0.3.0/docs/guides/troubleshooting.md +0 -73
- graphcheck-0.3.0/docs/guides/user-guide.md +0 -484
- graphcheck-0.3.0/docs/llms.txt +0 -94
- graphcheck-0.3.0/docs/maintainers/ci.md +0 -97
- graphcheck-0.3.0/docs/maintainers/clean-machine-test.md +0 -105
- graphcheck-0.3.0/docs/maintainers/releasing.md +0 -56
- graphcheck-0.3.0/docs/reference/checks.md +0 -161
- graphcheck-0.3.0/docs/reference/compatibility.md +0 -66
- graphcheck-0.3.0/docs/reference/telemetry.md +0 -259
- graphcheck-0.3.0/docs/samples/report-clean.html +0 -12
- graphcheck-0.3.0/docs/samples/report-findings.html +0 -12
- graphcheck-0.3.0/docs/samples/reports/report-clean.html +0 -1530
- graphcheck-0.3.0/docs/samples/reports/report-findings.html +0 -1530
- graphcheck-0.3.0/docs/schemas/check.envelope.schema.json +0 -404
- graphcheck-0.3.0/docs/schemas/check.schema.json +0 -1130
- graphcheck-0.3.0/docs/schemas/pack.schema.json +0 -604
- graphcheck-0.3.0/docs/schemas/profile.schema.json +0 -419
- graphcheck-0.3.0/docs/specifications/spec-01-results-json.md +0 -173
- graphcheck-0.3.0/docs/specifications/spec-02-check-yaml.md +0 -102
- graphcheck-0.3.0/docs/specifications/spec-03-connector.md +0 -331
- graphcheck-0.3.0/docs/specifications/spec-04-engine.md +0 -688
- graphcheck-0.3.0/docs/specifications/spec-05-profiler-baseline.md +0 -397
- graphcheck-0.3.0/docs/specifications/spec-06-scorer-html-report.md +0 -453
- graphcheck-0.3.0/docs/specifications/spec-09-packs.md +0 -393
- graphcheck-0.3.0/docs/specifications/spec-10-telemetry-events.md +0 -790
- graphcheck-0.3.0/docs/specifications/spec-11-generate.md +0 -1286
- graphcheck-0.3.0/docs/specifications/spec-12-observability-support.md +0 -417
- graphcheck-0.3.0/examples/README.md +0 -8
- graphcheck-0.3.0/examples/fraud-ring/README.md +0 -84
- graphcheck-0.3.0/examples/fraud-ring/checks/fraud-ring-conformance.yml +0 -19
- graphcheck-0.3.0/examples/fraud-ring/checks/smoke.yml +0 -7
- graphcheck-0.3.0/examples/fraud-ring/compose.yml +0 -57
- graphcheck-0.3.0/examples/fraud-ring/graphcheck.yml +0 -4
- graphcheck-0.3.0/examples/fraud-ring/profiles.example.yml +0 -16
- graphcheck-0.3.0/examples/minimal/README.md +0 -17
- graphcheck-0.3.0/examples/minimal/checks/example.yml +0 -13
- graphcheck-0.3.0/examples/minimal/graphcheck.yml +0 -4
- graphcheck-0.3.0/examples/minimal/optional-checks/customer-count-drift.yml +0 -8
- graphcheck-0.3.0/examples/minimal/profiles.example.yml +0 -8
- graphcheck-0.3.0/examples/monitoring/README.md +0 -71
- graphcheck-0.3.0/examples/monitoring/compose.yml +0 -35
- graphcheck-0.3.0/examples/monitoring/grafana/dashboards/graphcheck-database-health.json +0 -229
- graphcheck-0.3.0/examples/monitoring/grafana/provisioning/dashboards/dashboards.yml +0 -11
- graphcheck-0.3.0/examples/monitoring/grafana/provisioning/datasources/prometheus-datasource.yml +0 -9
- graphcheck-0.3.0/examples/monitoring/prometheus/README.md +0 -21
- graphcheck-0.3.0/examples/monitoring/prometheus/prometheus.yml +0 -13
- graphcheck-0.3.0/src/graphcheck/application/artifacts.py +0 -145
- graphcheck-0.3.0/src/graphcheck/application/suites.py +0 -44
- graphcheck-0.3.0/tests/__init__.py +0 -1
- graphcheck-0.3.0/tests/conftest.py +0 -198
- graphcheck-0.3.0/tests/integration/conftest.py +0 -62
- graphcheck-0.3.0/tests/integration/hostile/README.md +0 -41
- graphcheck-0.3.0/tests/integration/hostile/apoc-less.yml +0 -10
- graphcheck-0.3.0/tests/integration/hostile/cases.yml +0 -42
- graphcheck-0.3.0/tests/integration/hostile/empty.yml +0 -6
- graphcheck-0.3.0/tests/integration/hostile/llm-kg-builder.cypher +0 -71
- graphcheck-0.3.0/tests/integration/hostile/llm-kg-builder.yml +0 -14
- graphcheck-0.3.0/tests/integration/hostile/neo4j-44-cluster.yml +0 -62
- graphcheck-0.3.0/tests/integration/hostile/public-scale.yml +0 -6
- graphcheck-0.3.0/tests/integration/test_generate_integration.py +0 -211
- graphcheck-0.3.0/tests/integration/test_generate_live.py +0 -56
- graphcheck-0.3.0/tests/integration/test_hostile_graphs.py +0 -376
- graphcheck-0.3.0/tests/integration/test_integration_engine.py +0 -279
- graphcheck-0.3.0/tests/integration/test_integration_neo4j_adapter.py +0 -280
- graphcheck-0.3.0/tests/integration/test_mcp_agent_surface.py +0 -59
- graphcheck-0.3.0/tests/integration/test_mcp_failure_isolation.py +0 -189
- graphcheck-0.3.0/tests/integration/test_mcp_neo4j_workflow.py +0 -78
- graphcheck-0.3.0/tests/integration/test_performance_plans.py +0 -235
- graphcheck-0.3.0/tests/performance/__init__.py +0 -1
- graphcheck-0.3.0/tests/performance/budgets.json +0 -50
- graphcheck-0.3.0/tests/performance/gates.py +0 -118
- graphcheck-0.3.0/tests/performance/helpers.py +0 -322
- graphcheck-0.3.0/tests/performance/test_cli_startup.py +0 -138
- graphcheck-0.3.0/tests/performance/test_engine_budget.py +0 -335
- graphcheck-0.3.0/tests/performance/test_measurement_helpers.py +0 -126
- graphcheck-0.3.0/tests/performance/test_memory_gates.py +0 -119
- graphcheck-0.3.0/tests/performance/test_regression_gates.py +0 -76
- graphcheck-0.3.0/tests/property/test_evaluator_properties.py +0 -321
- graphcheck-0.3.0/tests/repository/test_ci_action_boundary.py +0 -19
- graphcheck-0.3.0/tests/repository/test_docker_quickstart.py +0 -102
- graphcheck-0.3.0/tests/repository/test_first_run_evidence.py +0 -174
- graphcheck-0.3.0/tests/repository/test_hostile_manifest.py +0 -66
- graphcheck-0.3.0/tests/repository/test_minimal_example.py +0 -31
- graphcheck-0.3.0/tests/repository/test_packaging.py +0 -16
- graphcheck-0.3.0/tests/repository/test_sample_reports.py +0 -305
- graphcheck-0.3.0/tests/unit/application/test_baselines.py +0 -215
- graphcheck-0.3.0/tests/unit/application/test_debug_diagnostics.py +0 -223
- graphcheck-0.3.0/tests/unit/application/test_diff.py +0 -303
- graphcheck-0.3.0/tests/unit/application/test_profiler.py +0 -889
- graphcheck-0.3.0/tests/unit/application/test_project_profiles.py +0 -261
- graphcheck-0.3.0/tests/unit/cli/test_cli.py +0 -1148
- graphcheck-0.3.0/tests/unit/cli/test_cli_lazy_imports.py +0 -198
- graphcheck-0.3.0/tests/unit/cli/test_generate_cli.py +0 -104
- graphcheck-0.3.0/tests/unit/cli/test_monitor_cli.py +0 -124
- graphcheck-0.3.0/tests/unit/cli/test_run_cli.py +0 -1716
- graphcheck-0.3.0/tests/unit/connectors/test_neo4j_adapter.py +0 -2177
- graphcheck-0.3.0/tests/unit/contracts/fixtures/agent-suite.yml +0 -20
- graphcheck-0.3.0/tests/unit/contracts/fixtures/baseline.json +0 -114
- graphcheck-0.3.0/tests/unit/contracts/fixtures/results.clean.json +0 -124
- graphcheck-0.3.0/tests/unit/contracts/fixtures/results.complete.json +0 -191
- graphcheck-0.3.0/tests/unit/contracts/fixtures/results.complete.rendered.json +0 -191
- graphcheck-0.3.0/tests/unit/contracts/fixtures/results.failed.json +0 -39
- graphcheck-0.3.0/tests/unit/contracts/fixtures/results.generated-only.json +0 -94
- graphcheck-0.3.0/tests/unit/contracts/fixtures/results.partial.json +0 -122
- graphcheck-0.3.0/tests/unit/contracts/fixtures/suite.invalid-bad-expect.yml +0 -6
- graphcheck-0.3.0/tests/unit/contracts/fixtures/suite.invalid-duplicate-key.yml +0 -2
- graphcheck-0.3.0/tests/unit/contracts/fixtures/suite.invalid-unknown-check.yml +0 -5
- graphcheck-0.3.0/tests/unit/contracts/fixtures/suite.invalid-unknown-key.yml +0 -6
- graphcheck-0.3.0/tests/unit/contracts/fixtures/suite.valid.yml +0 -21
- graphcheck-0.3.0/tests/unit/contracts/test_agents_example.py +0 -13
- graphcheck-0.3.0/tests/unit/contracts/test_check_validation.py +0 -642
- graphcheck-0.3.0/tests/unit/contracts/test_profile.py +0 -305
- graphcheck-0.3.0/tests/unit/contracts/test_results.py +0 -474
- graphcheck-0.3.0/tests/unit/engine/test_baseline.py +0 -362
- graphcheck-0.3.0/tests/unit/engine/test_compiler.py +0 -240
- graphcheck-0.3.0/tests/unit/engine/test_core_pack_compiler.py +0 -363
- graphcheck-0.3.0/tests/unit/engine/test_evaluator.py +0 -867
- graphcheck-0.3.0/tests/unit/engine/test_executor.py +0 -153
- graphcheck-0.3.0/tests/unit/engine/test_identifiers.py +0 -37
- graphcheck-0.3.0/tests/unit/engine/test_packs.py +0 -607
- graphcheck-0.3.0/tests/unit/engine/test_parameters.py +0 -176
- graphcheck-0.3.0/tests/unit/engine/test_pii_pack_runtime.py +0 -555
- graphcheck-0.3.0/tests/unit/engine/test_runner.py +0 -1160
- graphcheck-0.3.0/tests/unit/engine/test_sampling.py +0 -276
- graphcheck-0.3.0/tests/unit/engine/test_sampling_runner.py +0 -177
- graphcheck-0.3.0/tests/unit/engine/test_scoring.py +0 -144
- graphcheck-0.3.0/tests/unit/generation/test_client.py +0 -548
- graphcheck-0.3.0/tests/unit/generation/test_generation.py +0 -361
- graphcheck-0.3.0/tests/unit/generation/test_service.py +0 -372
- graphcheck-0.3.0/tests/unit/mcp/test_mcp_adapter.py +0 -37
- graphcheck-0.3.0/tests/unit/observability/__init__.py +0 -1
- graphcheck-0.3.0/tests/unit/observability/test_collector.py +0 -253
- graphcheck-0.3.0/tests/unit/observability/test_health.py +0 -104
- graphcheck-0.3.0/tests/unit/observability/test_monitoring_config.py +0 -89
- graphcheck-0.3.0/tests/unit/observability/test_runner.py +0 -30
- graphcheck-0.3.0/tests/unit/observability/test_server.py +0 -23
- graphcheck-0.3.0/tests/unit/reporting/test_coverage.py +0 -25
- graphcheck-0.3.0/tests/unit/reporting/test_redaction.py +0 -251
- graphcheck-0.3.0/tests/unit/reporting/test_report_explorer.py +0 -286
- graphcheck-0.3.0/tests/unit/reporting/test_report_history.py +0 -485
- graphcheck-0.3.0/tests/unit/reporting/test_reporting.py +0 -1147
- graphcheck-0.3.0/tests/unit/reporting/test_result_presentation.py +0 -246
- graphcheck-0.3.0/tests/unit/telemetry/test_boundary_payloads.py +0 -190
- graphcheck-0.3.0/tests/unit/telemetry/test_cli_boundary_integration.py +0 -804
- graphcheck-0.3.0/tests/unit/telemetry/test_cli_controls.py +0 -146
- graphcheck-0.3.0/tests/unit/telemetry/test_engine_events.py +0 -302
- graphcheck-0.3.0/tests/unit/telemetry/test_events.py +0 -171
- graphcheck-0.3.0/tests/unit/telemetry/test_policy.py +0 -165
- graphcheck-0.3.0/tests/unit/telemetry/test_posthog.py +0 -171
- graphcheck-0.3.0/tests/unit/telemetry/test_privacy_properties.py +0 -54
- graphcheck-0.3.0/tests/unit/telemetry/test_transparency_doc.py +0 -38
- graphcheck-0.3.0/tools/generate_sample_reports.py +0 -375
- graphcheck-0.3.0/tools/run_hostile_graphs.py +0 -54
- graphcheck-0.3.0/uv.lock +0 -2294
- {graphcheck-0.3.0 → graphcheck-0.4.0}/LICENSE +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/application/__init__.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/application/paths.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/bootstrap.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/contracts/__init__.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/contracts/scalars.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/debug_diagnostics.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/engine/__init__.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/engine/sampling.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/errors.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/generation/__init__.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/generation/client.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/generation/config.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/generation/disclosure.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/generation/prompts.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/generation/proposals.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/generation/service.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/generation/transmission.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/generation/writer.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/mcp/server.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/observability/__init__.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/observability/collector.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/observability/health.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/observability/metrics.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/observability/runner.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/observability/server.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/packs/core.yml +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/packs/pii.yml +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/reporting/__init__.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/reporting/coverage.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/reporting/html.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/scoring.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/telemetry/__init__.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/telemetry/collector.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/telemetry/consent.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/telemetry/events.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/telemetry/inactive.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/telemetry/release.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/telemetry/runtime.py +0 -0
- {graphcheck-0.3.0 → graphcheck-0.4.0}/src/graphcheck/telemetry/types.py +0 -0
|
@@ -97,6 +97,7 @@ ipython_config.py
|
|
|
97
97
|
# Pipfile.lock
|
|
98
98
|
|
|
99
99
|
# UV
|
|
100
|
+
.uv-cache*/
|
|
100
101
|
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
|
|
101
102
|
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
102
103
|
# commonly ignored for libraries.
|
|
@@ -2,6 +2,160 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
4
4
|
|
|
5
|
+
## [0.4.0] - 2026-09-18
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- The agent guide and schema descriptions now explain regression value shapes, evidence identities,
|
|
10
|
+
and count scope, with a complete aggregate-witness example in the guide. Missing-evidence
|
|
11
|
+
diagnostics identify accepted element aliases and retain the failed assertion.
|
|
12
|
+
|
|
13
|
+
- Published a 10-million-node audit ceiling and sampling thresholds.
|
|
14
|
+
Larger graphs fail before check dispatch with `engine.graph_size_exceeded` and a
|
|
15
|
+
`Fix:` diagnostic; the reference 2 GiB transaction-memory limit cannot complete PII at 10M.
|
|
16
|
+
|
|
17
|
+
- Published the [artifact compatibility policy](docs/reference/artifact-compatibility.md), with
|
|
18
|
+
committed results fixtures for schemas 1.0, 1.1, 1.2, and 2.0 and archived 1.x JSON Schemas.
|
|
19
|
+
The policy includes a tested transformer that writes a validated 2.0 copy. Migration of 1.0/1.1
|
|
20
|
+
requires trusted historical inventory because those schemas did not record it.
|
|
21
|
+
- GraphRAG `chunk_coverage` reports the share of Chunks linked to at least one Entity against
|
|
22
|
+
a configurable threshold (default 0.95), naming entity-less Chunks in evidence.
|
|
23
|
+
`label_explosion` flags labels and relationship types across the whole schema at or below
|
|
24
|
+
a configurable threshold (default 1), reporting findings and node evidence; graphs under a
|
|
25
|
+
configurable minimum node count (default 50) are not evaluated rather than flagged, since a
|
|
26
|
+
small graph makes almost every label look like a singleton.
|
|
27
|
+
- After a comparable previous run, `summary.json` includes a compact `changes` block with new
|
|
28
|
+
failures, fixed checks, and node/relationship count deltas from the runs. Check lists retain
|
|
29
|
+
at most 20 entries each and report omitted counts; first runs and unavailable comparisons
|
|
30
|
+
omit the block. Artifact retries preserve the original block after history is pruned.
|
|
31
|
+
- Runs now include `previous_run_id`, `baseline_ref`, and `config_hash` in results schema 2.0,
|
|
32
|
+
with compatibility for older artifacts and a new lineage fixture. Profile references identify
|
|
33
|
+
the latest existing timestamped snapshot; running checks does not trigger profiling. History
|
|
34
|
+
summaries and `graphcheck report --history` show the previous-run links, assigned under the
|
|
35
|
+
publication lock for concurrent CLI and MCP runs. Redacted exports clear lineage metadata.
|
|
36
|
+
- Added `graphcheck changes [--since <run-id|previous>] [--json]` to combine check outcome,
|
|
37
|
+
coverage, suite-score, and profile deltas through the existing report comparison and profile
|
|
38
|
+
diff implementations. JSON is deterministic; exit codes distinguish no regressions (`0`),
|
|
39
|
+
regressions or new failures (`1`), and invalid or unavailable comparison inputs (`2`).
|
|
40
|
+
- Changes output includes appeared and disappeared evidence element IDs per check, sharing the
|
|
41
|
+
smaller input evidence cap across both directions, counting dropped deltas, and identifying
|
|
42
|
+
truncated input evidence. Added fraud-ring and public-scale hostile acceptance coverage.
|
|
43
|
+
- GraphRAG `embedding_consistency` checks every chunk for missing, invalid, empty, zero,
|
|
44
|
+
NaN-containing, and inconsistent-dimension embeddings. It uses the most frequent valid
|
|
45
|
+
dimension (smallest on ties) and returns exact counts plus capped element-ID, dimension,
|
|
46
|
+
and defect evidence without transferring vectors to Python.
|
|
47
|
+
- Hostile GraphRAG planted/clean cases with expected CLI exit codes, assertions identifying every
|
|
48
|
+
planted defect, and a copyable suite under `examples/graphrag/`. Singleton labels and uncovered
|
|
49
|
+
chunks remain fixture-only assertions. The public-scale hostile lane exercises all five checks
|
|
50
|
+
with a 60-second pack-run budget and verifies planted embedding defects over 265,214 nodes.
|
|
51
|
+
- Drift metrics `degree_distribution` (degree quantiles `p50`/`p95`/`max` per label, relationship
|
|
52
|
+
type, and direction, using `percentileDisc` and `COUNT { }` for Cypher 5/25 compatibility) and
|
|
53
|
+
`schema_inventory` (labels, relationship types, and label-scoped property names added or
|
|
54
|
+
removed since baseline, evaluated as the count of differences rather than net inventory size
|
|
55
|
+
so a simultaneous addition and removal cannot cancel out to zero). See
|
|
56
|
+
[SPEC-04](docs/specifications/spec-04-engine.md) and
|
|
57
|
+
[SPEC-05](docs/specifications/spec-05-profiler-baseline.md) for details.
|
|
58
|
+
- Optional GraphRAG pack enabled by `graphcheck init --pack graphrag`, with configurable
|
|
59
|
+
Document, Chunk, and Entity labels, relationship types/directions, extraction relationship
|
|
60
|
+
selection, and name/embedding properties in `graphcheck.yml`.
|
|
61
|
+
- GraphRAG provenance checks `orphan_chunks`, `entity_without_provenance`, and
|
|
62
|
+
`dangling_extraction_relationships`, with exhaustive counts, capped element-ID evidence,
|
|
63
|
+
and missing configured paths. Chunks may have multiple documents; entity provenance requires
|
|
64
|
+
a direct chunk link, and extraction relationships are flagged when either endpoint lacks one.
|
|
65
|
+
- Seeded `near_duplicate_entities` sampling with normalized-name equality or character-bigram
|
|
66
|
+
Dice similarity strictly above a configurable threshold (default 0.9). Connected duplicate
|
|
67
|
+
groups include normalized keys and element IDs. Samples default to 1,000 names, allow up to
|
|
68
|
+
2,000 subject to engine limits, and exclude non-string names and names over 256 characters.
|
|
69
|
+
Sampled results state sample size/population without inferring a population confidence interval.
|
|
70
|
+
- GraphRAG metadata/schema validation, planted and clean builder fixtures, and opt-in fraud-ring
|
|
71
|
+
and public-scale acceptance coverage. [GraphRAG documentation](docs/graphrag.md) details the new
|
|
72
|
+
check semantics requiring separate approval.
|
|
73
|
+
- Added `engine.result_row_limit` project configuration, shared by CLI and MCP, with a default
|
|
74
|
+
ceiling of 100,000 competency rows and strict positive-integer validation.
|
|
75
|
+
- Baseline schema 1.1 preserves declared RANGE index property order while reading legacy 1.0
|
|
76
|
+
profiles with unknown order. Diff format 1.1 explains property inventory/type changes and
|
|
77
|
+
distinguishes newly available index-order metadata from known definition changes.
|
|
78
|
+
|
|
79
|
+
### Changed
|
|
80
|
+
|
|
81
|
+
- Source distributions now contain only application sources, runtime compatibility schemas, and
|
|
82
|
+
release metadata/documentation. Repository tooling, tests, examples, and local caches are excluded.
|
|
83
|
+
- Schema file generation moves to `tools/generate_schemas.py`; runtime schema generation and
|
|
84
|
+
validation remain available. Removed unused Python helpers `default_profiles`, `print_profile`,
|
|
85
|
+
and `count_band`, plus the repository-only `SCHEMAS_DIR` constant and `write_*schema*` helpers
|
|
86
|
+
from `graphcheck.contracts.schemas`.
|
|
87
|
+
|
|
88
|
+
- Reading pre-2.0 results emits one `results.schema_deprecated` warning on stderr per artifact
|
|
89
|
+
read. Removal is planned for CLI 0.5.0, postponed while the current/previous-schema guarantee
|
|
90
|
+
requires support. The warning must ship at least one release before removal. Migrate saved
|
|
91
|
+
artifacts with the transformer above; current 2.0 reads and model revalidation stay quiet.
|
|
92
|
+
- GraphRAG checks report `skipped:model_absent` with an explicit reason when the model is
|
|
93
|
+
unconfigured or any configured role label has no nodes. Completed runs containing only these
|
|
94
|
+
skips exit 0 with a null score and incomplete report coverage. Missing relationship types remain
|
|
95
|
+
defects when role populations exist; actual execution errors remain errors. This new skip/exit
|
|
96
|
+
policy requires separate approval.
|
|
97
|
+
- `no_orphans` accepts optional `to_label` filtering for the opposite endpoint; omitting it
|
|
98
|
+
preserves existing behavior. This additional check semantic requires separate approval.
|
|
99
|
+
- Runs prepare suites once, prefer the C-backed safe YAML parser, and show loading, connecting,
|
|
100
|
+
running, and report-writing stages in interactive terminals.
|
|
101
|
+
- Graph inventory uses one combined request, and built-in same-label completeness checks share
|
|
102
|
+
bounded scans while retaining individual verdicts, evidence, and executed-query provenance.
|
|
103
|
+
- PII candidate selection orders eligible properties within each node while preserving its
|
|
104
|
+
deterministic sampling inputs and final sample ordering.
|
|
105
|
+
- Optional telemetry delivery gets a 50 ms command-exit allowance and pending events may be dropped.
|
|
106
|
+
- Report IDs include a unique component; redacted exports use independent random identifiers.
|
|
107
|
+
Existing history names remain readable, and identical artifact publication can be retried.
|
|
108
|
+
- Corrected read-consistency documentation: measurement and evidence share a transaction and
|
|
109
|
+
deadline, but Neo4j read-committed isolation permits concurrent writes to change observations.
|
|
110
|
+
|
|
111
|
+
### Fixed
|
|
112
|
+
|
|
113
|
+
- Redaction preserves historical results schema context: 1.0/1.1 artifacts retain unknown
|
|
114
|
+
inventory and 1.2 artifacts keep their original version when exported by `graphcheck redact`.
|
|
115
|
+
- Historical results are validated against their declared archived JSON Schema before
|
|
116
|
+
normalization, rejecting fields and enum values introduced by later schemas. Installed wheels
|
|
117
|
+
include the same contracts.
|
|
118
|
+
- Historical exports also validate the final payload before serialization, rejecting incompatible
|
|
119
|
+
model mutations such as aggregate evidence in schema 1.0 before writing any output file.
|
|
120
|
+
- Schema 1.0 exports always omit graph counts, even if a loaded model was subsequently populated.
|
|
121
|
+
Schema 1.1 exports preserve recorded counts and omit unknown (null) counts.
|
|
122
|
+
- Run configuration hashes include the authenticated username so permission changes between
|
|
123
|
+
users have distinct provenance, while passwords and password environment variables stay excluded.
|
|
124
|
+
- Integration CI initializes the pinned fraud-ring fixture submodule for every Neo4j target,
|
|
125
|
+
so the changes acceptance test can load its Cypher parser and seed data.
|
|
126
|
+
- The fraud-ring changes acceptance test uses the explicit `node_element_id` evidence alias,
|
|
127
|
+
so its planted tax-ID finding fails with evidence and then passes after the repair.
|
|
128
|
+
- GraphRAG embedding consistency accepts stored numeric arrays on Neo4j 5.26 LTS by using
|
|
129
|
+
concrete non-null integer/float list predicates. GraphRAG integration tests now run in every
|
|
130
|
+
supported CI lane, including stored integer, float, and mixed-numeric embedding regressions.
|
|
131
|
+
- Drift checks retain partial run status when using present measurements from incomplete
|
|
132
|
+
baselines, without changing their measured verdict or exit-code precedence.
|
|
133
|
+
- Connection and credential preflight now share the run deadline with check execution.
|
|
134
|
+
- Baseline references and parsed snapshots are pinned per run, and snapshots/selection metadata
|
|
135
|
+
are published atomically so interrupted writes cannot become selectable partial files.
|
|
136
|
+
- Distinct runs cannot overwrite history on timestamp collisions. Managed report readers now
|
|
137
|
+
coordinate with publication/deletion and retain access to healthy records beside corrupt ones.
|
|
138
|
+
- Pruning uses compact summaries instead of retaining full historical results, and partial
|
|
139
|
+
profiles preserve successfully collected relationship counts and property coverage.
|
|
140
|
+
- Equality checks stop on decisive unexpected values or excess duplicates while preserving bag
|
|
141
|
+
semantics, honest partial-stream measurements, and graph-evidence requirements.
|
|
142
|
+
- Escaped Unicode-encoded backticks in schema identifiers and shared the same escaping between
|
|
143
|
+
check compilation and profiling to prevent identifiers from changing the generated Cypher.
|
|
144
|
+
- Configuration errors no longer echo input values or YAML source snippets, connection profile
|
|
145
|
+
representations hide passwords, and project/profile files reject duplicate mapping keys.
|
|
146
|
+
- Missing requested suites now make a run partial with an actionable diagnostic, including when
|
|
147
|
+
the other requested suites pass.
|
|
148
|
+
- Read preflights now reject missing-schema warnings before bounded queries can stop early;
|
|
149
|
+
permissive empty-graph preflights cannot satisfy a stricter cached read.
|
|
150
|
+
- Competency assertions compare every field of ordinary result maps, including maps resembling
|
|
151
|
+
evidence pointers, and graph properties cannot override actual Neo4j element identities.
|
|
152
|
+
- Reduced `contains` assertion work from repeated scans to hash-based membership in both streaming
|
|
153
|
+
and final evaluation while preserving typed value comparisons.
|
|
154
|
+
- Report deletion and pruning now share the publication lock so history mutations cannot race
|
|
155
|
+
with publication or restoration of the `latest` report.
|
|
156
|
+
- The local report explorer rejects malformed authentication without crashing, responds to
|
|
157
|
+
unauthorized requests without waiting for their bodies, and limits socket inactivity.
|
|
158
|
+
|
|
5
159
|
## [0.3.0] - 2026-09-04
|
|
6
160
|
|
|
7
161
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: graphcheck
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: Semantic observability for property graphs.
|
|
5
5
|
Project-URL: Homepage, https://github.com/graphora/graphcheck
|
|
6
6
|
Project-URL: Repository, https://github.com/graphora/graphcheck
|
|
@@ -40,7 +40,7 @@ Description-Content-Type: text/markdown
|
|
|
40
40
|
|
|
41
41
|
# GraphCheck
|
|
42
42
|
|
|
43
|
-
[](https://github.com/graphora/graphcheck/releases)
|
|
44
44
|
[](https://www.python.org/)
|
|
45
45
|
[](LICENSE)
|
|
46
46
|
|
|
@@ -72,6 +72,8 @@ the **[full user guide](docs/guides/user-guide.md)**.
|
|
|
72
72
|
|
|
73
73
|
GraphCheck requires Python 3.12, 3.13, or 3.14 and a supported Neo4j server. See the
|
|
74
74
|
[compatibility matrix](docs/reference/compatibility.md) for the tested Neo4j and Cypher versions.
|
|
75
|
+
The audit ceiling is **10 million nodes**, see [supported graph size](docs/reference/compatibility.md#supported-graph-size)
|
|
76
|
+
for measured runtimes, sampling, and the transaction-memory limitation observed with PII at 10M.
|
|
75
77
|
|
|
76
78
|
Install the published CLI and scaffold a project:
|
|
77
79
|
|
|
@@ -190,11 +192,21 @@ Suite YAML is strict: duplicate keys, unknown fields, invalid payloads, and inco
|
|
|
190
192
|
fail before execution. Runtime evaluation is rule-based; generated check suggestions remain inert
|
|
191
193
|
until a person reviews and activates them.
|
|
192
194
|
|
|
193
|
-
For
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
and [
|
|
195
|
+
For document/chunk/entity graphs, enable the optional [GraphRAG pack](docs/graphrag.md) with
|
|
196
|
+
`graphcheck init --pack graphrag`. It checks provenance, embedding consistency, and sampled duplicate names using your
|
|
197
|
+
configured labels, relationships, and properties.
|
|
198
|
+
|
|
199
|
+
For authoring and execution details, see the [user guide](docs/guides/user-guide.md) and
|
|
200
|
+
[JSON Schemas](docs/schemas/). The [agent guide](docs/guides/agents.md),
|
|
201
|
+
[telemetry disclosure](docs/reference/telemetry.md), and [contributor guide](CONTRIBUTING.md)
|
|
202
|
+
cover integration and operational workflows.
|
|
203
|
+
|
|
204
|
+
## Support
|
|
205
|
+
|
|
206
|
+
See the [Neo4j compatibility matrix](docs/reference/compatibility.md) for supported servers and
|
|
207
|
+
the [artifact compatibility policy](docs/reference/artifact-compatibility.md) for schema support,
|
|
208
|
+
deprecation deadlines, and migration of saved `results.json` files. Schema versions are independent
|
|
209
|
+
of CLI versions; the current and previous schemas remain readable.
|
|
198
210
|
|
|
199
211
|
## Non-goals
|
|
200
212
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# GraphCheck
|
|
4
4
|
|
|
5
|
-
[](https://github.com/graphora/graphcheck/releases)
|
|
6
6
|
[](https://www.python.org/)
|
|
7
7
|
[](LICENSE)
|
|
8
8
|
|
|
@@ -34,6 +34,8 @@ the **[full user guide](docs/guides/user-guide.md)**.
|
|
|
34
34
|
|
|
35
35
|
GraphCheck requires Python 3.12, 3.13, or 3.14 and a supported Neo4j server. See the
|
|
36
36
|
[compatibility matrix](docs/reference/compatibility.md) for the tested Neo4j and Cypher versions.
|
|
37
|
+
The audit ceiling is **10 million nodes**, see [supported graph size](docs/reference/compatibility.md#supported-graph-size)
|
|
38
|
+
for measured runtimes, sampling, and the transaction-memory limitation observed with PII at 10M.
|
|
37
39
|
|
|
38
40
|
Install the published CLI and scaffold a project:
|
|
39
41
|
|
|
@@ -152,11 +154,21 @@ Suite YAML is strict: duplicate keys, unknown fields, invalid payloads, and inco
|
|
|
152
154
|
fail before execution. Runtime evaluation is rule-based; generated check suggestions remain inert
|
|
153
155
|
until a person reviews and activates them.
|
|
154
156
|
|
|
155
|
-
For
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
and [
|
|
157
|
+
For document/chunk/entity graphs, enable the optional [GraphRAG pack](docs/graphrag.md) with
|
|
158
|
+
`graphcheck init --pack graphrag`. It checks provenance, embedding consistency, and sampled duplicate names using your
|
|
159
|
+
configured labels, relationships, and properties.
|
|
160
|
+
|
|
161
|
+
For authoring and execution details, see the [user guide](docs/guides/user-guide.md) and
|
|
162
|
+
[JSON Schemas](docs/schemas/). The [agent guide](docs/guides/agents.md),
|
|
163
|
+
[telemetry disclosure](docs/reference/telemetry.md), and [contributor guide](CONTRIBUTING.md)
|
|
164
|
+
cover integration and operational workflows.
|
|
165
|
+
|
|
166
|
+
## Support
|
|
167
|
+
|
|
168
|
+
See the [Neo4j compatibility matrix](docs/reference/compatibility.md) for supported servers and
|
|
169
|
+
the [artifact compatibility policy](docs/reference/artifact-compatibility.md) for schema support,
|
|
170
|
+
deprecation deadlines, and migration of saved `results.json` files. Schema versions are independent
|
|
171
|
+
of CLI versions; the current and previous schemas remain readable.
|
|
160
172
|
|
|
161
173
|
## Non-goals
|
|
162
174
|
|