{
  "manifest_version": 2,
  "release_version": "0.108.3",
  "capabilities": [
    {
      "id": "trigger-capture",
      "capability": "trigger_cdc",
      "major_version": 1,
      "minor_version": 0,
      "status": "stable",
      "enabled": true,
      "strategy": "trigger",
      "reason_code": null,
      "target": null
    },
    {
      "id": "wal-capture",
      "capability": "wal_cdc",
      "major_version": 1,
      "minor_version": 0,
      "status": "stable",
      "enabled": true,
      "strategy": "wal",
      "reason_code": null,
      "target": null
    },
    {
      "id": "graph-v1",
      "capability": "external_graph_refresh",
      "major_version": 1,
      "minor_version": 2,
      "status": "stable",
      "enabled": true,
      "strategy": "public_sql",
      "reason_code": null,
      "target": null,
      "details": {
        "differential_features": [
          "stable_row_identity_encoder_v3",
          "custom_table_srf_out_columns",
          "lateral_immutable_composite_function"
        ]
      }
    },
    {
      "id": "delta-v1",
      "capability": "output_delta_consumer",
      "major_version": 1,
      "minor_version": 1,
      "status": "stable",
      "enabled": true,
      "strategy": "public_sql",
      "reason_code": null,
      "target": null,
      "details": {
        "consumer_recovery_version": 1,
        "public_resnapshot_request": true,
        "public_consumer_validation": true,
        "qualification_api": "qualify_output_delta_recovery",
        "typed_delta_encoding_version": 1
      }
    },
    {
      "id": "vector-aggregates",
      "capability": "vector_aggregate_dvm",
      "major_version": 0,
      "minor_version": 1,
      "status": "experimental",
      "enabled": false,
      "strategy": "differential",
      "reason_code": "PGT_EXT_CAPABILITY_DISABLED",
      "target": "pg_trickle.enable_vector_agg=on"
    },
    {
      "id": "set-operation-differential",
      "capability": "intersect_except_dvm",
      "major_version": 0,
      "minor_version": 0,
      "status": "unavailable",
      "enabled": false,
      "strategy": "unavailable",
      "reason_code": "UNSUPPORTED_OPERATOR",
      "target": null
    },
    {
      "id": "incremental-window-state",
      "capability": "incremental_window_state",
      "major_version": 0,
      "minor_version": 0,
      "status": "future",
      "enabled": false,
      "strategy": "unavailable",
      "reason_code": "WINDOW_INCREMENTAL_UNIMPLEMENTED",
      "target": null
    }
  ],
  "examples": [
    {
      "id": "stable-capability-discovery",
      "test": "test_v104_capabilities_are_stable_by_default",
      "command": "just test-v104-conformance",
      "sql": "SELECT * FROM pgtrickle.integration_capabilities()",
      "outcome": "accepted",
      "declared_mode": "PUBLIC_SQL",
      "effective_strategy": "PUBLIC_SQL",
      "recomputation_scope": "none",
      "fallback_scope": "none",
      "reason_code": null
    },
    {
      "id": "graph-v1-reference-coordinator",
      "test": "test_v104_graph_reference_coordinator_commits_publication",
      "command": "just test-v104-conformance",
      "sql": "SELECT * FROM pgtrickle.refresh_graph_strict(...) ",
      "outcome": "accepted",
      "declared_mode": "PUBLIC_SQL",
      "effective_strategy": "PUBLIC_SQL",
      "recomputation_scope": "none",
      "fallback_scope": "none",
      "reason_code": null
    },
    {
      "id": "delta-v1-reference-consumer",
      "test": "test_v104_delta_reference_consumer_reads_and_acknowledges",
      "command": "just test-v104-conformance",
      "sql": "SELECT * FROM pgtrickle.output_delta_batches(...) ",
      "outcome": "accepted",
      "declared_mode": "PUBLIC_SQL",
      "effective_strategy": "PUBLIC_SQL",
      "recomputation_scope": "none",
      "fallback_scope": "none",
      "reason_code": null
    },
    {
      "id": "default-statement-trigger-capture",
      "test": "test_stmt_cdc_default_trigger_is_statement_level",
      "command": "bash scripts/run_light_e2e_tests.sh --test e2e_stmt_cdc_tests --filter test_stmt_cdc_default_trigger_is_statement_level",
      "sql": "SELECT pgtrickle.create_stream_table('s', 'SELECT id FROM source')",
      "outcome": "accepted",
      "declared_mode": "AUTO",
      "effective_strategy": "DIFFERENTIAL",
      "requested_capture": "trigger",
      "effective_capture": "TRIGGER",
      "recomputation_scope": "none",
      "fallback_scope": "none",
      "reason_code": null
    },
    {
      "id": "auto-cdc-wal-admission",
      "test": "test_v107_auto_wal_transition_captures_changes",
      "command": "cargo test --features pg18 --test e2e_v107_wal_transition_tests test_v107_auto_wal_transition_captures_changes -- --exact --nocapture",
      "sql": "SELECT pgtrickle.create_stream_table('s', 'SELECT id FROM source', cdc_mode => 'auto')",
      "outcome": "accepted",
      "declared_mode": "DIFFERENTIAL",
      "effective_strategy": "DIFFERENTIAL",
      "requested_capture": "auto",
      "effective_capture": "WAL",
      "recomputation_scope": "none",
      "fallback_scope": "none",
      "reason_code": null
    },
    {
      "id": "recursive-cte-recomputation-delta",
      "test": "test_recursive_cte_non_monotone_agg_subquery_recomputation",
      "command": "bash scripts/run_light_e2e_tests.sh --test e2e_cte_tests --filter test_recursive_cte_non_monotone_agg_subquery_recomputation",
      "sql": "WITH RECURSIVE t AS (...) SELECT * FROM t",
      "outcome": "accepted",
      "declared_mode": "DIFFERENTIAL",
      "effective_strategy": "DIFFERENTIAL",
      "recomputation_scope": "recursive-result",
      "fallback_scope": "none",
      "reason_code": "recursive_cte_fallback"
    },
    {
      "id": "window-partition-recomputation",
      "test": "test_row_number_rejected_candidate_converges_via_partition_recompute",
      "command": "bash scripts/run_light_e2e_tests.sh --test e2e_window_incremental_tests --filter test_row_number_rejected_candidate_converges_via_partition_recompute",
      "sql": "SELECT id, ROW_NUMBER() OVER (PARTITION BY grp ORDER BY id) FROM source",
      "outcome": "accepted",
      "declared_mode": "DIFFERENTIAL",
      "effective_strategy": "DIFFERENTIAL",
      "recomputation_scope": "partition",
      "fallback_scope": "none",
      "reason_code": "WINDOW_RECOMPUTE_CHEAPER"
    },
    {
      "id": "nullable-group-key-rescan",
      "test": "test_v0873_mandatory_composition_matrix",
      "command": "bash scripts/run_light_e2e_tests.sh --test e2e_dvm_composition_tests --filter test_v0873_mandatory_composition_matrix",
      "sql": "SELECT nullable_key, STRING_AGG(value, ',') FROM source GROUP BY nullable_key",
      "outcome": "accepted",
      "declared_mode": "DIFFERENTIAL",
      "effective_strategy": "DIFFERENTIAL",
      "recomputation_scope": "group",
      "fallback_scope": "none",
      "reason_code": null
    },
    {
      "id": "intersect-auto-full",
      "test": "test_diff_full_equivalence_intersect",
      "command": "bash scripts/run_light_e2e_tests.sh --test e2e_diff_full_equivalence_tests --filter test_diff_full_equivalence_intersect",
      "sql": "SELECT value FROM left_source INTERSECT SELECT value FROM right_source",
      "outcome": "accepted",
      "declared_mode": "AUTO",
      "effective_strategy": "FULL",
      "recomputation_scope": "whole-query",
      "fallback_scope": "whole-query",
      "reason_code": "UNSUPPORTED_OPERATOR"
    },
    {
      "id": "mutable-case-aggregate-full-fallback",
      "test": "test_dvm1_case_in_list_mutable_full_fallback",
      "command": "bash scripts/run_light_e2e_tests.sh --test e2e_v078_tests --filter test_dvm1_case_in_list_mutable_full_fallback",
      "sql": "SELECT key, SUM(CASE WHEN value IN (...) THEN amount ELSE 0 END) FROM source GROUP BY key",
      "outcome": "accepted",
      "declared_mode": "DIFFERENTIAL",
      "effective_strategy": "DIFFERENTIAL",
      "recomputation_scope": "whole-query",
      "fallback_scope": "whole-query",
      "reason_code": "CASE_IN_LIST_DVM_DRIFT_FULL_FALLBACK"
    },
    {
      "command": "just test-v108-conformance",
      "outcome": "accepted",
      "declared_mode": "PUBLIC_SQL",
      "effective_strategy": "PUBLIC_SQL",
      "recomputation_scope": "none",
      "fallback_scope": "none",
      "reason_code": null,
      "id": "graph-v1-2-capability-details",
      "test": "test_v108_capability_details_publish_graph_1_2_and_delta_1_1",
      "sql": "SELECT * FROM pgtrickle.integration_capabilities()"
    },
    {
      "command": "just test-v108-conformance",
      "outcome": "accepted",
      "declared_mode": "DIFFERENTIAL",
      "effective_strategy": "DIFFERENTIAL",
      "recomputation_scope": "none",
      "fallback_scope": "none",
      "reason_code": null,
      "id": "graph-v1-2-row-identity-table-srf",
      "test": "test_v108_graph_row_identity_and_table_srf_stay_differential",
      "sql": "SELECT pgtrickle.refresh_graph_strict(..., full_policy => 'ERROR')"
    },
    {
      "command": "just test-v108-conformance",
      "outcome": "rejected",
      "declared_mode": "DIFFERENTIAL",
      "effective_strategy": "UNAVAILABLE",
      "recomputation_scope": "none",
      "fallback_scope": "none",
      "reason_code": "UNSUPPORTED_OPERATOR",
      "id": "graph-v1-2-pg-mdm-compiler-v9-exact-evidence",
      "test": "test_pg_mdm_compiler_v9_bootstrap_and_mutations_match_full_without_fallback",
      "sql": "pg-mdm compiler-v9 exact evidence SQL using pg_catalog.concat_ws"
    },
    {
      "command": "just test-v108-conformance",
      "outcome": "accepted",
      "declared_mode": "DIFFERENTIAL",
      "effective_strategy": "DIFFERENTIAL",
      "recomputation_scope": "none",
      "fallback_scope": "none",
      "reason_code": null,
      "id": "graph-v1-2-pg-mdm-compiler-v9-immutable-equivalent",
      "test": "test_pg_mdm_compiler_v9_bootstrap_and_mutations_match_full_without_fallback",
      "sql": "pg-mdm compiler-v9 graph with fixture-only immutable concat_ws equivalent"
    },
    {
      "command": "just test-v108-conformance",
      "outcome": "accepted",
      "declared_mode": "PUBLIC_SQL",
      "effective_strategy": "PUBLIC_SQL",
      "recomputation_scope": "none",
      "fallback_scope": "none",
      "reason_code": null,
      "id": "delta-v1-1-public-resnapshot",
      "test": "test_v108_non_pristine_registration_and_public_resnapshot",
      "sql": "SELECT * FROM pgtrickle.request_output_delta_resnapshot(...)"
    },
    {
      "command": "just test-v108-conformance",
      "outcome": "accepted",
      "declared_mode": "PUBLIC_SQL",
      "effective_strategy": "PUBLIC_SQL",
      "recomputation_scope": "none",
      "fallback_scope": "none",
      "reason_code": null,
      "id": "delta-v1-1-exact-rollback",
      "test": "test_v108_exact_batch_acknowledgement_rolls_back",
      "sql": "SELECT pgtrickle.ack_output_delta(..., 'APPLIED')"
    },
    {
      "command": "just test-v108-conformance",
      "outcome": "accepted",
      "declared_mode": "PUBLIC_SQL",
      "effective_strategy": "PUBLIC_SQL",
      "recomputation_scope": "none",
      "fallback_scope": "none",
      "reason_code": null,
      "id": "delta-v1-1-full-invalidation",
      "test": "test_v108_full_invalidation_requires_resynchronized_ack",
      "sql": "SELECT pgtrickle.qualify_output_delta_recovery(..., 'FULL_INVALIDATION')"
    },
    {
      "command": "just test-v108-conformance",
      "outcome": "accepted",
      "declared_mode": "PUBLIC_SQL",
      "effective_strategy": "PUBLIC_SQL",
      "recomputation_scope": "none",
      "fallback_scope": "none",
      "reason_code": null,
      "id": "delta-v1-1-contract-mismatch",
      "test": "test_v108_qualification_requires_resnapshot_for_contract_mismatch",
      "sql": "SELECT pgtrickle.qualify_output_delta_recovery(..., 'CONTRACT_MISMATCH')"
    },
    {
      "command": "just test-v108-conformance",
      "outcome": "accepted",
      "declared_mode": "PUBLIC_SQL",
      "effective_strategy": "PUBLIC_SQL",
      "recomputation_scope": "none",
      "fallback_scope": "none",
      "reason_code": null,
      "id": "delta-v1-1-gap",
      "test": "test_v108_qualification_requires_resnapshot_for_delta_gap",
      "sql": "SELECT pgtrickle.qualify_output_delta_recovery(..., 'DELTA_GAP')"
    },
    {
      "command": "just test-v108-conformance",
      "outcome": "accepted",
      "declared_mode": "PUBLIC_SQL",
      "effective_strategy": "PUBLIC_SQL",
      "recomputation_scope": "none",
      "fallback_scope": "none",
      "reason_code": null,
      "id": "delta-v1-1-invalidated-read",
      "test": "test_v108_invalidated_consumer_returns_no_partial_batch_range",
      "sql": "SELECT * FROM pgtrickle.output_delta_batches(...)"
    },
    {
      "command": "just test-v108-conformance",
      "outcome": "accepted",
      "declared_mode": "PUBLIC_SQL",
      "effective_strategy": "PUBLIC_SQL",
      "recomputation_scope": "none",
      "fallback_scope": "none",
      "reason_code": "DELTA_GAP",
      "id": "delta-v1-1-detected-gap",
      "test": "test_v108_validation_persists_detected_delta_gap",
      "sql": "SELECT * FROM pgtrickle.validate_output_delta_consumer(...)"
    },
    {
      "command": "just test-v108-conformance",
      "outcome": "accepted",
      "declared_mode": "PUBLIC_SQL",
      "effective_strategy": "PUBLIC_SQL",
      "recomputation_scope": "none",
      "fallback_scope": "none",
      "reason_code": "PAYLOAD_INCONSISTENT",
      "id": "delta-v1-1-detected-payload-mismatch",
      "test": "test_v108_validation_persists_detected_payload_mismatch",
      "sql": "SELECT * FROM pgtrickle.validate_output_delta_consumer(...)"
    },
    {
      "command": "just test-v108-conformance",
      "outcome": "accepted",
      "declared_mode": "PUBLIC_SQL",
      "effective_strategy": "PUBLIC_SQL",
      "recomputation_scope": "none",
      "fallback_scope": "none",
      "reason_code": "CONTRACT_MISMATCH",
      "id": "delta-v1-1-detected-contract-mismatch",
      "test": "test_v108_validation_persists_detected_contract_mismatch",
      "sql": "SELECT * FROM pgtrickle.validate_output_delta_consumer(...)"
    },
    {
      "command": "just test-v108-conformance",
      "outcome": "accepted",
      "declared_mode": "PUBLIC_SQL",
      "effective_strategy": "PUBLIC_SQL",
      "recomputation_scope": "none",
      "fallback_scope": "none",
      "reason_code": "ROW_IDENTITY_VERSION_MISMATCH",
      "id": "delta-v1-1-detected-row-identity-version-mismatch",
      "test": "test_v108_validation_persists_detected_row_identity_version_mismatch",
      "sql": "SELECT * FROM pgtrickle.validate_output_delta_consumer(...)"
    },
    {
      "command": "just test-v108-conformance",
      "outcome": "accepted",
      "declared_mode": "PUBLIC_SQL",
      "effective_strategy": "PUBLIC_SQL",
      "recomputation_scope": "none",
      "fallback_scope": "none",
      "reason_code": "DATABASE_INSTANCE_CHANGED",
      "id": "delta-v1-1-clone-adoption",
      "test": "test_v108_clone_adoption_allows_new_consumer_baseline",
      "sql": "SELECT * FROM pgtrickle.begin_output_delta_resnapshot(...)"
    },
    {
      "command": "just test-v108-conformance",
      "outcome": "accepted",
      "declared_mode": "PUBLIC_SQL",
      "effective_strategy": "PUBLIC_SQL",
      "recomputation_scope": "none",
      "fallback_scope": "none",
      "reason_code": "DATABASE_INSTANCE_CHANGED",
      "id": "delta-v1-1-detected-database-instance-change",
      "test": "test_v108_validation_persists_detected_database_instance_change",
      "sql": "SELECT * FROM pgtrickle.validate_output_delta_consumer(...)"
    }
  ],
  "stable_reason_identifiers": [
    "CASE_IN_LIST_DVM_DRIFT_FULL_FALLBACK",
    "CONTRACT_MISMATCH",
    "DATABASE_INSTANCE_CHANGED",
    "DELTA_GAP",
    "PAYLOAD_INCONSISTENT",
    "PGT_EXT_CAPABILITY_DISABLED",
    "PGT_EXT_CDC_UNAVAILABLE",
    "ROW_IDENTITY_VERSION_MISMATCH",
    "UNSUPPORTED_OPERATOR",
    "VOLATILE_FUNCTION",
    "recursive_cte_fallback",
    "WINDOW_INCREMENTAL_UNIMPLEMENTED",
    "WINDOW_RECOMPUTE_CHEAPER"
  ],
  "documentation": {
    "canonical_manifest": "docs/capability-manifest.json",
    "generated_summary": "docs/SUPPORT_SUMMARY.md",
    "reconciled_sources": [
      "README.md",
      "docs/SUPPORT_SUMMARY.md",
      "docs/DVM_SUPPORT_MATRIX.md",
      "docs/CDC_MODES.md",
      "docs/SQL_REFERENCE.md",
      "docs/GUC_CATALOG.md",
      "docs/CONFIGURATION.md",
      "docs/QUICKSTART_5MIN.md",
      "docs/OPS_CHEATSHEET.md",
      "docs/integrations/citus.md",
      "docs/integrations/extension-contracts.md"
    ]
  },
  "manifest_digest": "sha256:f35e3f154797dc13c8dcc252150c90d75bfd618f91c292ab2ae96638ee0cca72"
}
