Skip to content

Releases: dventimisupabase/pg_flight_recorder

Release v2.29.2

Choose a tag to compare

@github-actions github-actions released this 28 May 01:53
ea72b3c
  • fix(pgfr_record): tolerate missing UPDATE privilege on cron.job (#69) (ea72b3c)
  • feat(site): one-click install page on GitHub Pages (#68) (6f4a3aa)

Release v2.29.1

Choose a tag to compare

@github-actions github-actions released this 28 May 01:23
e100af8

Highlights

📋 New single-file install bundle for the Supabase SQL editor. Two new release assets — pgfr_record-v2.29.1-bundle.sql and pgfr_analyze-v2.29.1-bundle.sql — are self-contained, copy-pasteable scripts with zero psql metacommands. Open the Supabase dashboard SQL editor, paste, run. No psql, no CLI, no extension registry needed. (#66)

🔍 XID, MultiXID, and xmin horizon monitoring. First-class wraparound observability for both transaction-ID counters and configurable warning/critical thresholds, plus point-in-time identification of the backend holding the cluster's xmin horizon. (#53, #54)

What's new

Features

  • Single-file install bundle for SQL-editor channels (#66)
  • xmin horizon monitoring (#53)
  • MultiXID wraparound monitoring + configurable XID/MXID thresholds (#54)

Refactors

  • Consolidate all pg_cron scheduling into pgfr_record.enable() (#57, #58) — one canonical entry point, easier to reason about during incidents
  • Standardize pg_cron job naming on the pgfr_ underscore prefix (#59, #62)

Fixes

  • Warn when cron.log_run is on, since pgfr's job cadence makes cron.job_run_details grow unbounded (#63)
  • Drain query_map before the "empty initially" assertion to remove a pg_cron race in test_ring_buffer.sql (#65)

Docs

  • README + explainer page consistency pass — split recorder self-check from database diagnostics, accurate Architecture flow, no more bogus "superuser required" requirement (#64)
  • Apache 2.0 license + SPDX headers + license-aware bundling

Installation

# psql users
psql --single-transaction -f pgfr_record/install.sql
psql --single-transaction -f pgfr_analyze/install.sql

# Supabase dashboard / any SQL editor: download the *-bundle.sql assets
#   from this release and paste them in.

# dbdev / CREATE EXTENSION users
select dbdev.install('dventimi-pgfr_record');
select dbdev.install('dventimi-pgfr_analyze');
create extension pgfr_record;
create extension pgfr_analyze;

About v2.29.1

v2.29.1 is a build-pipeline retag of v2.29 with no code differences. v2.29's dbdev publish was rejected by the dbdev API for declaring requires = 'pgfr_record' in pgfr_analyze's control file. v2.29.1 strips that line inside the dbdev publish path only — the source control file keeps the declaration so direct CREATE EXTENSION pgfr_analyze users still get a clean dependency error if pgfr_record is absent. (#67)

Release v2.29

Choose a tag to compare

@github-actions github-actions released this 28 May 00:45
0247725

⚠️ Superseded by v2.29.1. v2.29.1 is a build-pipeline retag with no code differences; v2.29's dbdev publish failed. See v2.29.1 for the readable release announcement and a working dbdev publish.


  • feat(build): add single-file install bundle for SQL-editor channel (#66) (0247725)
  • fix(test): drain query_map before "empty initially" assertion (#65) (5e42651)
  • docs: README + explainer page consistency pass (#64) (de00b20)
  • (feat) add xmin horizon monitoring (#53) (f741d6f)
  • Warn when cron.log_run leaves job_run_details unbounded (#63) (52448f5)
  • chore: add SPDX headers, license-aware bundling, CONTRIBUTING (d6b9eca)
  • chore: add Apache 2.0 license (7f3ac50)
  • docs: align hero terminal mock with real health_check() output (73b56af)
  • docs: remove remaining "high-frequency" claims from landing page (b4e3654)
  • docs: correct architecture blurb on landing page (045430e)
  • docs: refresh landing page stats to reflect current code (84f3811)
  • docs: rename pg-flight-recorder -> pg_flight_recorder (578f348)
  • Minor formatting improvements in PG_COMPAT.md (9fd8986)
  • feat(pgfr): monitor MultiXID wraparound + configurable XID/MXID thresholds (#54) (c79456c)
  • refactor(pgfr_record): standardize pg_cron job names on underscore prefix (#59) (b128a7f)
  • refactor(pgfr_record): consolidate all pg_cron scheduling into enable() (#57) (3d0bdc2)
  • fix(ci): deactivate pgfr_ cron jobs immediately after install (race with #46) (733ee67)
  • fix(ci): tighten readiness probe with SELECT 1 instead of pg_isready (6b4197e)
  • fix(pgfr_analyze): declare hard dependency on pgfr_record in control file (bf8a17c)
  • docs(site): fix inaccurate claims in index.html explainer (ea48806)
  • Minor formatting of tables (8dc0437)
  • Minor formatting of tables (903439e)
  • Minor formatting of tables (b6ac744)
  • Killed the blog (85278f9)
  • fix(pgfr_record): add statement_timeout to all maintenance cron jobs (#49) (1769333)
  • docs: fix inaccurate claims in README.md and REFERENCE.md (2e52b1b)
  • docs(REFERENCE): fix retention profile row — wrong key name and wrong troubleshooting value (fed4316)
  • fix(ci): pin pg_cron/pgtap and make CI builds verbose (#44) (93c6ed5)
  • fix(ci): make PostgreSQL 18 test matrix actually pass (f6d80ba)
  • fix(pgfr_record): add DEFAULT partition to all range-partitioned tables (25481e2)
  • fix(ci): clear lint errors on main (6aa78cb)
  • fix(ci): inline \ir directives when publishing to dbdev (f96003f)
  • refactor: switch install.sql to \ir relative include (e10058e)
  • feat(ci): add PostgreSQL 18 to the test matrix (03b0670)
  • docs: add blog post on stacked PRs in the AI age (cd2203d)
  • refactor: move experimental pgfr_control to feature branch (7af4f46)
  • refactor: rename _record/, _analyze/, _control/ to pgfr_record/, pgfr_analyze/, pgfr_control/ (17451ab)
  • fix(record): lock collection works with snapshot_based = false (f7bd95b)
  • fix(analyze): report() backend_type → backend_state for v2 wait_summary (852dda6)
  • fix(analyze): use delta columns in storm/regression detection (d5e932c)
  • fix(ring): truncate activity_samples on rotation (d9889fb)
  • fix: PG13/PG15/PG18 compat, docker-compose, test fixes (c8f5832)
  • chore: update install.sql entry points to source modular SQL files (a3818bf)
  • refactor(_analyze) + feat: split into modules, add v2 reader functions (6a348d6)
  • feat(phase3): daily-partitioned snapshot tables + migration script (889b76a)
  • feat(phase2): N-partition TRUNCATE ring buffer (wait/activity/lock/query samples) (f948d80)
  • feat(phase1): sparse collectors, partition infra, migration path (7970fde)
  • refactor(_record): split monolithic install.sql into focused modules (8300152)
  • chore: benchmark scripts, PG18 compat notes, Dockerfile (26c6dca)
  • docs(blueprints): storage overhaul spec — zero-bloat partitioned design (bac1144)
  • Let quickstart steps span full container width (bd9d650)
  • Stack quickstart steps vertically to prevent horizontal overflow (65cbb7e)
  • Use
     instead of  for quickstart blocks to properly display multi-line content (5bd6401)
  • Add copy buttons to quickstart code blocks and clean up formatting (22c49d7)
  • Add link to project website in README (4d1b297)
  • Add GitHub Pages deployment workflow (67cde00)
  • Add landing page with Supabase brand identity (c089234)
  • Killed some pointless comments (2b97742)

Release v2.28.1

Choose a tag to compare

@dventimisupabase dventimisupabase released this 20 Feb 23:20
  • mothball benchmark and .claude directories (9e77e65)
  • fix REFERENCE.md schema version and statements_interval defaults (2865b4e)
  • add missing COMMENT ON statements for 4 analyze functions (91e50c6)
  • add missing COMMENT ON statements for 14 public functions (3b2a1ae)
  • fix ring retention to use configured slots instead of hardcoded 120 (5544b0e)
  • fix profile table defaults, enable() fallback, and stale comments (58166dc)
  • fix remaining stale interval references across codebase (165b9bf)
  • update stale interval/retention values to match 60s default (1f5da31)
  • fix stale install notice and adjust retention warning thresholds (b57f222)
  • change default snapshot and statement intervals to every minute (a121a53)
  • change default sample interval from 3 minutes to 1 minute (423dc52)
  • rename core schema from pgfr to pgfr_record for consistency (fde159e)
  • move analysis functions from pgfr_record internals to pgfr_analyze (7fcef53)
  • update docs to reflect renamed functions and enforce package boundaries (5511e5b)
  • update _record/README.md to reference pgfr_analyze wrapper names (9537366)
  • internalize analysis functions in pgfr_record, add user-facing API in pgfr_analyze (d607a2b)
  • add delta columns and improve pg_stat_statements collection (544b66e)
  • remove SQL_INDEX.json and its supporting infrastructure (20cb531)
  • update REFERENCE.md: fix stale skip reason and add missing safety features (63e36fb)
  • update top-level README safety table to reflect current features (f3bca6d)
  • add outer statement_timeout to all pg_cron jobs (89def08)
  • regenerate SQL_INDEX.json (7f994d4)
  • remove backup detection from pre-flight checks (32705ca)
  • Minor formatting changes (6513664)
  • regenerate SQL_INDEX.json (7ea2a07)
  • fix backup detection self-matching in _should_skip_collection() (4f4ad57)
  • regenerate SQL_INDEX.json (7e1fe0c)
  • remove broken/dead safety features: DDL lock check, load throttle, walsender false-positive, collection jitter, job deduplication, adaptive sampling, and auto-mode adjustment (45b926c)
  • regenerate SQL_INDEX.json (76f299c)
  • remove broken checkpoint detection from pre-flight checks (b558f47)
  • regenerate SQL_INDEX.json (1e9ca2a)
  • remove dead replica lag check from pre-flight safety gates (651e991)

Release v2.28

Choose a tag to compare

@github-actions github-actions released this 14 Feb 23:44
  • drop individual file assets from release (archives are sufficient) (803426f)
  • include _control in release assets and remove redundant flat copies (975b3d2)
  • add supabase/ to .gitignore (3e61c5c)
  • rewrite REFERENCE.md as exhaustive lookup reference (2fa2a3d)
  • rewrite top-level README as project landing page (bd0b51a)
  • make sub-package READMEs self-contained for dbdev publishing (8de16b1)
  • use fully-qualified URL for top-level README link in _record/README.md (291cbc6)

Release v2.27

Choose a tag to compare

@dventimisupabase dventimisupabase released this 14 Feb 20:48
  • regenerate SQL_INDEX.json (4337b7c)
  • remove obsolete table of contents from _record/install.sql (2341df8)
  • normalize markdown table formatting in README.md and REFERENCE.md (bcc55ec)
  • update sql-index workflow to commit SQL_INDEX.json to main (ff2922f)
  • track SQL_INDEX.json in main branch, regenerate for current structure (084d0a4)
  • remove vestigial migrations directory (7119c24)
  • update CLAUDE.md with per-extension compose file structure (0fcbca6)
  • update REFERENCE.md for three-extension structure (f891456)
  • decompose docker-compose.yml into per-extension compose files (2276250)
  • update README.md with project structure table (3a464ac)
  • update CLAUDE.md to reflect new project structure (01354f3)
  • move control functions to pgfr_control schema, simplify uninstalls (4708c54)
  • distribute tests among extension subdirectories (4a2d157)
  • move uninstall files into subdirs, rename .control to extension.control (ba5dadf)
  • move SQL files into their extension subdirectories (146ec5b)
  • rename pg_flight_recorder → pgfr across all extensions and schemas (f647461)

Release v2.25

Choose a tag to compare

@github-actions github-actions released this 06 Feb 20:49
  • remove blog/, tests/PATHOLOGY_TESTS.md, requirements.txt (51c17cb)
  • Added the Resent deck (8bbaa82)
  • remove pglite directory, was severely out of date (5f6d6c0)
  • remove migrations directory, simplify upgrade path (565d861)
  • remove tools/sql-find, query SQL_INDEX.json directly (bf2b9eb)
  • fix sql-index to recover from per-statement parse errors (1bf4d65)
  • bump schema_version to 2.25, add migration for reporting schema move (35ce340)
  • move reporting functions to flight_recorder_reporting schema (df514b5)
  • docs: clarify two install methods in README (3369e8d)
  • move badges from README.md to REFERENCE.md for database.dev compatibility (06952fe)
  • rename pg-flight-recorder to pg_flight_recorder for extension naming consistency (a0e7327)
  • docs: update REFERENCE.md for core/reporting split (7002a35)
  • docs: update install instructions for core/reporting split (3a4781b)
  • feat: split reporting functions into separate file and two dbdev packages (423b264)
  • fix(ci): use correct credentials.toml format for dbdev (9d92fc9)
  • ci: extract publish-dbdev into standalone workflow (0ded618)
  • fix(ci): use GitHub API to find dbdev CLI download URL (7691f48)

Release v2.19

Choose a tag to compare

@dventimisupabase dventimisupabase released this 03 Feb 21:45
  • fix: remove psql-specific \set command for Supabase compatibility (5e37114)

v2.18 - Extension-Free Bloat Tracking

Choose a tag to compare

@dventimisupabase dventimisupabase released this 02 Feb 20:35

What's New

Features

  • Extension-free table bloat tracking - Track table bloat without requiring pgstattuple extension
  • Flight recorder skill - Added /flight-recorder skill for database analysis

Improvements

  • Major codebase simplification - Removed ~7000 lines of code while preserving functionality
  • Config consolidation - Eliminated config duplication with single source of truth
  • Documentation rewrite - Completely rewritten README.md and REFERENCE.md for clarity

Fixes

  • Fixed test reliability by disabling adaptive_sampling during tests

Export Enhancements

  • Added snapshot_deltas example for SQLite delta computation
  • Added _schema table to exports to prevent AI query errors

Release v2.17

Choose a tag to compare

@dventimisupabase dventimisupabase released this 31 Jan 05:19
  • docs: remove DIAGNOSTIC_PLAYBOOKS.md (0f0799c)
  • docs: restore DIAGNOSTIC_PLAYBOOKS.md (47fb089)
  • chore: remove outdated PATHOLOGY_WORK_IN_PROGRESS.md (400d3a0)
  • chore: remove outdated documentation and archive directory (8249c08)
  • feat: replace timing-based metrics with buffer-based metrics as default (1b420c4)
  • docs: add comprehensive in-database documentation for AI analysis (cbdd1b1)
  • feat: add SQLite export function for AI-driven analysis (a1de5c1)
  • docs: add section on hierarchical presentation to balance "record everything" (1fc6e3f)
  • docs: expand profile documentation with detailed settings tables (c06d1df)
  • feat: expand configuration profiles with 77 of 112 parameters (85bf40d)
  • docs: document all 112 configuration parameters (23727ce)
  • feat: add new feature parameters to configuration profiles (bcf1710)
  • docs: add Canary Queries documentation to REFERENCE.md (cd43346)
  • fix: correct markdown link fragments in archived feature ideas (dbdf9e5)
  • docs: archive completed feature ideas, add future directions (3563b36)
  • ci: add version badge and automated release workflow (864fbbe)
  • docs: update documentation for complete 9/9 pathology coverage (88da7c0)
  • fix: correct column name in anomaly_report query (details -> description) (92dc5f5)
  • feat: complete all 9 pathology generators (48 tests) (66017b5)
  • docs: update documentation for 6 pathologies (33 tests) (cc0b24b)
  • fix: make pathology tests more lenient for CI environment (ff0f821)
  • feat: add Connection Exhaustion pathology using dblink + fix SQL error (c96f97d)
  • feat: add 3 more pathology generators (High CPU, Slow Realtime, Slow Queries) (60d6333)
  • docs: fix markdown lint errors in documentation files (94b7738)
  • docs: add session memory for pathology generator work (f6b28ea)
  • docs: add PR description for pathology generators (4802ad6)
  • feat: add pathological data generators for diagnostic validation (3ecafb5)