This document separates the public release surface from lower-level helpers, research lanes, and compatibility paths. The goal is to make adoption safer: users should know which APIs are expected to be stable, which APIs are useful but still evolving, and which APIs are primarily present for benchmarks or backward compatibility.
Stability levels
Level
Contract
Compatibility expectation
Recommended for apps
Stable
Primary product API with regression and lifecycle coverage
Backward-compatible within the extension release line
Yes
Beta
Useful and tested, but still subject to shape changes
Best-effort compatibility; may be promoted after more use
Only with pinned version
Experimental
Research or benchmark lane
May change or disappear between releases
No
Legacy/manual
Older compatibility path or manual workflow
Kept for migration and comparison when practical
Prefer stable alternatives
Stable
Surface
What it provides
Main evidence
sorted_heap table access method
Physically sorted heap storage with zone-map pruning
Required for PostgreSQL extension upgrade compatibility
Release gates
Stable-surface changes should pass the strongest relevant subset of:
make installcheck REGRESS=pg_sorted_heap
make installcheck REGRESS=sorted_hnsw
make installcheck REGRESS=graph_rag
make test-dump-restore
make test-pg-upgrade
make test-crash-recovery
make test-concurrent
make test-hnsw-chunked-cache
make test-graphrag-release
make test-release
Experimental-surface changes should still compile and should include a focused benchmark or smoke test, but they are not promoted to stable solely because a research benchmark passes.