gitzette / @NikolayS / Mar 30 – Apr 5 W14
← W13 W14 W15 →
@NikolayS — open-source digest March 29 – April 4, 2026
Vol. 1, No. 4 github.com/NikolayS
the dispatch
@NikolayS
pg_plumbing fills the dump catalog; rpg's ash gets a crosshair cursor
48 commits 40 PRs 4 releases 6 repos

Four repos. Sixty-three merged PRs. One week of steady, unglamorous work.

FEATURE

pg_plumbing's catalog went from empty to complete in a week

Twenty merged PRs crossed the finish line on the dump/restore feature parity sprint.

pg_plumbing started the week with a skeleton dump emitter — tables, columns, basic constraints. The catalog was silent on everything else: sequences, views, ownership, privileges, comments, schemas, FDW, publications, materialized views, triggers, procedures, text search objects, aggregates, casts, collations, and a dozen more object types that pg_dump handles routinely. @NikolayS merged PRs #46 through #63 that week, each one drilling into a specific object class and emitting the corresponding DDL. The sprint closed with support for partitioned tables, generated columns, domains, operators, large objects, RLS policies, parallel dump/restore (-j N), format variants (plain/custom/tar), and --section/--role/--no-* filters. The dump output now covers the full breadth of what pg_dump can serialize.

FEATURE

rpg's /ash observer effect: 500ms timeout prevents the monitor from blocking the cluster

Live pg_stat_activity queries now fail fast rather than pile up under load.

The /ash live-mode sampler queries pg_stat_activity on every tick without a timeout. On large clusters with thousands of connections, this query itself can take hundreds of milliseconds, causing TUI lag and sample-interval drift. If it ever hangs, the entire interface freezes. PR #770 wraps each live snapshot with a 500ms statement_timeout, matching the pattern pg_ash uses in its own cron job. On timeout, the sampler increments a missed-sample counter and continues — no crash, no blocking. The effect: the monitor no longer becomes a performance bottleneck on the very cluster it's trying to observe.

FEATURE

rpg's /ash timeline now tracks your cursor through history

A crosshair overlay and left/right navigation make the performance timeline feel interactive rather than read-only.

Previously, rpg's /ash (Activity Stream History) displayed a stacked bar chart of wait events but offered no way to inspect a specific moment in time — you could only watch live or scroll through the raw data. PR #774 adds a vertical cursor line that marks the selected column, with a floating overlay showing the exact timestamp, AAS, and wait-type breakdown for that bucket. Arrow keys reassigned: [ and ] now zoom, while ← and → pan through history backward and forward by one bucket width. When panning from Live mode, the TUI auto-switches to History and anchors at the current moment. The timeline is now interactive the way a real monitoring dashboard feels — drill into any historical moment without leaving the chart.

FEATURE

macOS Terminal.app now shows rpg output — no more silent DECSTBM

A scroll-region workaround restores interactive REPL output on Apple's stock terminal.

Users on macOS Terminal.app reported that rpg's interactive mode produced no visible output when the status bar was enabled — backslash commands and query results simply vanished, though the prompt returned. The statusline used DECSTBM (\x1b[1;{rows-1}r) to reserve the bottom row as a scroll region, a technique that works in iTerm2 and Alacritty but confuses Terminal.app's output handling. PR #783 detects TERM_PROGRAM=Apple_Terminal and skips DECSTBM entirely, relying instead on cursor save/restore to render the status bar. The fix is minimal and platform-specific — one conditional branch — and restores full functionality on macOS without affecting other terminals.

the dispatch — Vol. 1, No. 4 March 29 – April 4, 2026
PENDING

sqlever's v1.0 spec locks in schema diff and safe-mode semantics

PR #206 formalizes the offline schema diff engine and production-safe migration rewriting—two capabilities pg_plumbing can now lean on.

sqlever is still in heavy specification phase, but PR #206 closes the v1.0 feature roadmap: offline schema diff (structural comparison without a running database), safe-mode migration rewriting (automatic rewrites of ALTER TABLEs to avoid downtime), and verify-with-rewrites (testing that a rewritten migration produces the same schema). The spec sits adjacent to pg_plumbing's dump/restore work — once pg_plumbing's catalog is complete, sqlever gains a solid foundation for parsing production schemas and diffing them offline. PR #210 adds pgTAP test suite infrastructure and PG18 compatibility CI.

FEATURE

gitzette-dispatch now scans alpha channels to wrap text around illustrations

Per-row contour detection replaces rectangular floats, letting body copy flow around irregular image shapes.

The dispatch generator previously floated illustrations in a simple rectangular bounding box — the mental model of CSS float:left, which meant text always re-flowed to the side in a straight line. PR #6 implements true shape-wrapping: the layout engine reads the PNG alpha channel row-by-row to detect exactly where the illustration's edge sits at each text line. layoutNextLine from @chenglou/pretext then positions each line with the correct maxWidth for that row. Beside the image, lines are narrower. Below it, lines span full width. Text now flows around the actual contour of the illustration, not a box.

RELEASE

rpg v0.10 release: /ash UX overhaul lands in three releases

Three point releases in three days ship the history pan, cursor crosshair, and terminal compatibility fixes.

The /ash feature sprint shipped across v0.10.0, v0.10.1, and v0.10.2. v0.10.0 added the zoom/pan/cursor system (#774). v0.10.1 fixed bugs in UTC-8 systems and overlay positioning. v0.10.2 polished the cursor rendering — the half-block character no longer obscures the bar color, overlay positioning uses saturating arithmetic to avoid u16 overflow panics on wide terminals, and display freeze after Escape key is fixed (was stuck up to 60s). Grid lines, improved axis labels, and cursor detection during history panning round out the polish. The three releases together represent a complete rethink of how users interact with the timeline.

stats corner
48
commits
40
pull requests
4
releases
commits by repo
REPO COMMITS pg_plumbing 31 rpg 6 database-lab-engine 5 gitzette 4 sqlever 2
release timeline
SUNMONTUEWEDTHUFRISAT rpg v0.9.2 rpg v0.10.0 rpg v0.10.1 rpg v0.10.2
repo index
  • rpg
    rpg — modern Postgres terminal written in Rust. psql-compatible, with built-in DBA diagnostics and AI assistant
    6 commits · 4 releases · ★ 176
  • pg_plumbing
    pg_dump/pg_restore rewritten in Rust, on steroids
    31 commits · 0 releases · ★ 1
  • sqlever
    Sqitch-compatible PostgreSQL migration tool with static analysis and zero-downtime migrations
    2 commits · 0 releases · ★ 4
  • gitzette-dispatch
    Weekly engineering newspaper generator — dispatches for gitzette.online
    0 commits · 0 releases · ★ 1
  • gitzette
    Turn your GitHub activity into a weekly newspaper — AI-generated headlines, styled HTML output
    4 commits · 0 releases · ★ 4
  • database-lab-engine
    DBLab enables 🖖 database branching and ⚡️ thin cloning for any Postgres database and empowers DB testing in CI/CD. This optimizes database-related costs while improving time-to-market and software quality. Follow to stay updated.
    5 commits · 0 releases · ★ 2441
← Mar 23 – Mar 29 Apr 6 – Apr 12 →
gitzette @NikolayS on gitzette @NikolayS on GitHub
share: post on X share on LinkedIn

Your GitHub week, turned into something worth reading.

Generate your dispatch →
gitzette.online  ·  2026 © AISlopMedia, Inc.