# v0.79.0 — Code Quality, API Ergonomics & Security > **Status:** Planned → Released > **Full details:** [v0.79.0.md-full.md](v0.79.0.md-full.md) ## What's in this release? v0.79.0 is a maintainability and security polish release that reduces accumulated technical debt between hardening arcs. ### Code Quality - **Q-1** — Unused-import suppressions removed from `src/refresh/codegen.rs` and `src/refresh/merge/mod.rs` module-by-module. The `use super::*` glob is removed from `codegen.rs` (it was unused); `merge/mod.rs` keeps it since it brings in `set_effective_mode` and `classify_*` from the parent module. - **Q-2** — Internal `create`/`alter` API implementations converted to typed parameter structs (`AlterStreamTableOptions`), eliminating `#[allow(clippy::too_many_arguments)]` from business-logic functions. The pg_extern wrapper functions retain individual parameters (required by pgrx). - **Q-3** — Global `#![allow(dead_code)]` at crate root replaced with narrower per-module `#[allow(dead_code)]` attributes on pgrx/export boundaries where items are intentionally visible to SQL but not to Rust's call-graph analysis. - **Q-4** — `consume_slot_changes()` in `src/cdc/mod.rs` is marked `#[deprecated]`; the function is removed from all call paths (it was already unused in the refresh pipeline). ### API Ergonomics - **A-1** — Three SQL convenience helpers added: `create_stream_table_fast_append_only()`, `set_stream_table_refresh_policy()`, `set_stream_table_storage_policy()`. - **A-2** — First-class `pause_stream_table()` wrapper added (complementing the existing `resume_stream_table()`). ### Security - **S-1** — Semgrep rules for dynamic SQL strengthened: new rules flag `format!()` strings passed to `Spi::run_with_args` / `Spi::get_one_with_args` and distinguish identifier-building from literal-building patterns. - **S-2** — Runtime `WARNING` emitted at `create_stream_table` time when any source table has Row Level Security enabled (already present via A45-3; confirmed tested in v0.79.0). - **S-3** — CI test added: inspects every SECURITY DEFINER trigger function created by the extension and asserts that each has `SET search_path` pinned. ### Reliability & Test Coverage - **D-3** — Cleanup chaos test: forces three consecutive `DELETE FROM changes_*` failures via a conflict trigger, asserts the stream table enters SUSPENDED with a relevant error, then resumes and verifies normal operation. - **T-5** — dbt adapter compatibility matrix: covers `create`, `alter`, `drop`, and `rebuild` flows; tests pass against the integration dbt project.