# v0.55.0 — Final Pre-1.0 Polish > **Full details:** [v0.55.0.md-full.md](v0.55.0.md-full.md) ## What's New v0.55.0 delivers the final pre-1.0 polish pass across scalability, module structure, security, documentation, and one new SQL feature. ### M-1: GUC-Configurable Invalidation Ring (up to 4,096) The shared-memory invalidation ring capacity ceiling is raised from 1,024 to 4,096 entries, and the GUC default is updated from 128 to 1,024. Clusters experiencing excessive full DAG rebuilds in DDL-burst environments can now tune this higher without recompiling the extension. ### M-2: api/mod.rs Module Decomposition `src/api/mod.rs` (8,000+ lines) is split into three focused submodules: - `api/create.rs` — `create_stream_table`, `create_or_replace_stream_table`, `bulk_create`, and all creation helpers - `api/alter.rs` — `alter_stream_table`, `alter_stream_table_query`, `drop_stream_table`, `resume_stream_table`, `repair_stream_table`, and schema-migration helpers - `api/refresh.rs` — `refresh_stream_table`, `execute_manual_refresh`, `execute_manual_full_refresh`, `execute_manual_differential_refresh` `api/mod.rs` retains shared helpers, error reporting, and re-exports so all existing call sites continue to compile without changes. ### M-3: monitor.rs Module Decomposition `src/monitor.rs` (4,000+ lines) is split into three focused submodules: - `monitor/alert.rs` — `AlertEvent`, `emit_alert`, and all `alert_*` helpers - `monitor/health.rs` — `health_check`, `health_summary`, `slot_health`, `check_cdc_health`, and related helpers - `monitor/tree.rs` — `dependency_tree`, `render_dependency_tree`, and DFS traversal `monitor/mod.rs` retains SQL-callable functions and re-exports from submodules. ### M-4: serde_json NOTIFY Payloads NOTIFY alert payloads are now built with `serde_json::json!()` instead of manually escaped format strings. This guarantees well-formed JSON for error messages that contain backslashes, control characters, or embedded quotes, closing a latent security/correctness gap. ### M-5: Multi-Column IN Rewrite to EXISTS The DVM parser now automatically rewrites `WHERE (a, b) IN (SELECT x, y FROM ...)` to the semantically equivalent `WHERE EXISTS (SELECT 1 FROM ... WHERE a = x AND b = y)`. Previously, such queries were rejected with an unsupported-feature error. This closes the last user-visible SQL coverage gap in DIFFERENTIAL mode. ### M-6: DVM Parse Metrics Two new Prometheus gauges are exported at the `/metrics` endpoint: - `pg_trickle_dvm_parse_ms` — cumulative time spent in the DVM parser (milliseconds) - `pg_trickle_delta_query_size_bytes` — cumulative size of generated delta SQL (bytes) These metrics help operators identify queries with expensive parse overhead or abnormally large delta SQL. ### M-7: Reserved-Prefix Documentation The `__PGS_*` and `__PGT_*` column-name prefixes used internally by the extension are now documented in `docs/SQL_REFERENCE.md`. User-defined columns with these prefixes will conflict with internal template tokens and produce incorrect results. ### M-8: GUC Rationale Comments All magic-number GUC defaults in `src/config.rs` now include a rationale comment explaining the choice of default value and the expected impact of raising or lowering it. ### M-9: PR Coverage Gate Codecov coverage reporting is now wired into the PR gate. Coverage regressions of more than 1% fail the PR, making coverage drops visible before merge.