> **Plain-language companion:** [v0.79.0.md](v0.79.0.md) ## v0.79.0 — Code Quality, API Ergonomics & Security **Status: In progress.** > **Release Theme** > Sweep of maintainability debt between hardening arcs: unused-import > suppressions removed, internal API implementations converted to typed > parameter structs, the global dead-code allow replaced with per-module > allowances, a deprecated function cleaned up, user-facing convenience > helpers added, security enforcement tightened, a cleanup chaos test > added, and the dbt adapter compatibility matrix extended. --- ### Code Quality | ID | Title | Effort | Priority | |----|-------|--------|----------| | Q-1 | Remove `#[allow(unused_imports)]` from `codegen.rs` and `merge/mod.rs` | S | P1 | | Q-2 | Convert `alter_stream_table_impl` to `AlterStreamTableOptions` struct | M | P1 | | Q-3 | Replace `#![allow(dead_code)]` with per-module allowances | M | P1 | | Q-4 | Mark `consume_slot_changes()` `#[deprecated]` | S | P1 | ### API Ergonomics | ID | Title | Effort | Priority | |----|-------|--------|----------| | A-1 | Add `create_stream_table_fast_append_only` / `set_stream_table_refresh_policy` / `set_stream_table_storage_policy` | M | P1 | | A-2 | Add `pause_stream_table` wrapper | S | P1 | ### Security | ID | Title | Effort | Priority | |----|-------|--------|----------| | S-1 | Strengthen semgrep rules for dynamic SQL identifier/literal/OID | S | P1 | | S-2 | Emit WARNING when source has RLS at create_stream_table time | S | P1 | | S-3 | CI test for SECURITY DEFINER trigger functions with SET search_path | S | P1 | ### Reliability & Test Coverage | ID | Title | Effort | Priority | |----|-------|--------|----------| | D-3 | Cleanup chaos test: three consecutive DELETE failures | M | P1 | | T-5 | dbt adapter compatibility matrix (alter/drop/rebuild + version matrix) | M | P1 | --- ### Recommended Implementation Order **Phase 1: Code quality** (Q-1 → Q-2 → Q-3 → Q-4) **Phase 2: API ergonomics** (A-1 → A-2) with SQL migration **Phase 3: Security** (S-1 → S-2 → S-3) **Phase 4: Tests** (D-3 → T-5) --- ### Implementation Status | ID | Title | Status | |----|-------|--------| | Q-1 | Remove unused-import suppressions codegen.rs / merge/mod.rs | ✅ Done | | Q-2 | AlterStreamTableOptions typed struct | ✅ Done | | Q-3 | Replace global allow(dead_code) | ✅ Done | | Q-4 | Deprecate consume_slot_changes() | ✅ Done | | A-1 | create_stream_table_fast_append_only / set_*_policy helpers | ✅ Done | | A-2 | pause_stream_table wrapper | ✅ Done | | S-1 | Semgrep rules for dynamic SQL identifier/literal/OID | ✅ Done | | S-2 | RLS WARNING at create_stream_table time | ✅ Done | | S-3 | CI test for SECURITY DEFINER trigger search_path | ✅ Done | | D-3 | Cleanup chaos test | ✅ Done | | T-5 | dbt adapter compatibility matrix | ✅ Done | --- ### Exit Criteria - [x] All P0/P1 items ✅ Done - [x] `just test-all` passes - [x] `just check-version-sync` exits 0 - [x] CHANGELOG.md entry written - [x] ROADMAP.md v0.79.0 row marked ✅ Released