Vol. IIChangelog · the log book2026
VII.Changelog
Everything that shipped, newest first.
Release notes for every pgen update — the whole flight log, from features down to the small fixes that make a difference.
Fig. 2310 releases
v1.15.1Jun 12, 2026 pgen 1.15.1 — Streaming large query results
- Streaming query results. Large result sets load page by page through a server-side cursor, so the grid stays responsive and memory stays in check on big queries instead of waiting for everything at once.
- Adaptive AI schema context. The AI assistant scales how much database schema it sends with each request to fit your selected model's context window.
v1.15.0Jun 4, 2026 pgen 1.15.0 — Session restore
- Pick up where you left off. Reconnect to a database and pgen reopens your workspace as you left it — your open table tabs, your SQL editor tabs with their query text intact, and the view you were working in. Data loads fresh on reconnect.
- Reconnect on launch. Turn on a startup option to have pgen reconnect to your most recent connection automatically when you open the app, so you land straight in your workspace.
v1.14.0Jun 3, 2026 pgen 1.14.0 — Instant Explorer and a snappier app
- Instant Explorer. The database object tree appears the moment you connect — loaded from a local cache and refreshed in the background as you work.
- Instant everywhere. Table data, the server dashboard, the ER diagram, and the SQL, function, and view editors reopen instantly from cache and refresh in the background, so moving between them stays snappy.
- Faster connections. Loading your schema on connect uses far fewer database round-trips — a noticeable speedup on pooled or remote databases.
v1.13.1Jun 1, 2026 pgen 1.13.1 — Guided recovery for denied launch permissions
- Guided recovery screen if macOS denies pgen the file access it needs at launch, with a one-click shortcut into System Settings.
v1.13.0Jun 1, 2026 pgen 1.13.0 — Transparent reconnect across the app
- Transparent reconnect across the entire app. Every database operation — table reads and edits, EXPLAIN plans, schema changes, dashboard refreshes, imports, exports, AI tools, function / view / trigger editors, explorer expansions — runs through a single recovery path. When the database connection drops, the app reconnects in the background and the work resumes uninterrupted. If recovery exhausts its retries, a non-modal toast surfaces the failure with a retry action.
- Silent reconnects. The first connection to a database shows a brief progress overlay while pgen verifies the link. Subsequent reconnects run in the background without interrupting your work.
- Polished query editor surfaces. Unified background tones across the editor and results pane, tightened dividers between sections, and a leaner results strip that hides the outer tab row when there's no EXPLAIN plan to show.
v1.12.0May 31, 2026 pgen 1.12.0 — Pooler reconnect across the workspace
- Pooler reconnect status banner. When the database connection drops, the query editor shows a live banner while the app reconnects to the pooler. The banner updates as the reconnect progresses, so you can watch the recovery happen without leaving the editor.
- Connection-aware workspace. Every workspace panel — Explorer, Dashboard, ER diagram, Table Viewer, function/view/trigger editors, Index Advisor, Schema Wizard, Import / Export, and AI assistant — resolves the active database connection on every operation. Works with Supabase, Neon, RDS Proxy, Crunchy Bridge, and self-hosted PgBouncer.
v1.11.0May 27, 2026 pgen 1.11.0 — Visual refresh
- Refreshed brand palette. Copper accent paired with a slate-cool neutral scale, in line with the redesigned pgendb.com.
- New typography. Hanken Grotesk across the interface, with Instrument Serif used for editorial accents.
- Brand-aligned SQL editor. A new syntax-highlight palette tuned for the copper + slate scheme, with a unified gutter and selection treatment.
- Unified workspace surfaces. The explorer, query results, and editor pane share a single content surface — same background, same border treatment, same elevation feel.
- Sharpened light theme. Brighter scaffold, clearer card edges on white, and softer hover states for long sessions over dense data grids.
- Title bar polish. Breathing and elevation tuned to match the website's hero treatment.
v1.10.0May 26, 2026 pgen 1.10.0 — Production runtime safety
- Read-only connection mode. A per-connection toggle marks a profile as read-only. Right after the handshake, pgen issues
SET default_transaction_read_only = on, so any stray mutation hits a server-side error — and at the UI layer the same toggle gates query runs, inline cell edits, and schema-wizard DDL. The status bar surfaces a Read-only lock segment so you always know which mode you're in. - Production mutation guard. Connections tagged Production gain a "Block production mutations" toggle. With it on, the first mutation in a session opens a confirm dialog with three actions — Cancel, Allow once, or Allow until disconnect. Approvals are session-scoped per profile and are cleared the moment you disconnect. The status bar shows a Locked segment for blocked production and a Production warning segment otherwise.
- Default safety
LIMITonSELECT. BareSELECTstatements (without an explicitLIMIT) automatically wrap inLIMIT 1000so a forgotten predicate doesn't pull a million rows into the result grid. The cap is configurable, and the whole feature is toggleable, under Settings → Editor → Query Safety. When a query was capped, the results panel surfaces a chip with a one-click Run without limit override that re-runs the same script with the cap turned off for that run. - Server-side query cancellation. The cancel button issues
pg_cancel_backendfrom a sibling connection, stopping the running statement on the server. A longANALYZE, a runawaySELECT, or a stuckpg_sleephalts the moment you hit cancel.
- Read-only connection mode. A per-connection toggle marks a profile as read-only. Right after the handshake, pgen issues
v1.9.0May 24, 2026 pgen 1.9.0 — Explorer and Connections
- Show Dependencies dialog. Right-click any object → Show Dependencies and see exactly what depends on it and what it depends on. Find every view, function, or constraint that would break before you drop a column or rename a table.
- View Details for types, extensions, and roles. A read-only details dialog for each — full type definition (with composite attributes and enum labels), extension metadata, and role attributes / memberships — without leaving the explorer.
- Reset Sequence dialog. Right-click a sequence → Reset, pick the next value, and the generated
ALTER SEQUENCE … RESTART WITH …opens in a new SQL tab for review before you run it. - Copy Definition and View Definition. Both actions output the full CREATE statement for any object — table, view, extension, role, foreign table, and more. View Definition opens it in a SQL tab; Copy Definition puts it on the clipboard with proper identifier quoting.
- Create new sequences, enums, domains, composite types, triggers, and indexes from the explorer. Right-click a folder → New and a SQL tab opens pre-filled with a CREATE template for that object type, ready for you to fill in.
- Run Function from the function editor. Type your arguments into the parameter-binding panel and invoke the function from the same place you read or edit it. View Trigger Function automatically opens the trigger's underlying function the same way.
- Reveal Referenced Table jumps the explorer to the target. Right-click a foreign-key column → Reveal Referenced Table and the explorer scrolls the destination row into view, expanding every ancestor — schema, folder, table — along the way.
- All six PostgreSQL SSL modes. The connection form supports the full set — disable, allow, prefer, require, verify-ca, and verify-full. Verify-ca and verify-full validate the server's certificate against a trusted CA so you can be sure you're connecting to the server you intend to.
- Client certificate authentication. PEM file pickers in the connection form for client certificate, client key, and CA certificate. pgen validates the files before it tries to connect and tells you if one is missing, unreadable, or if you've supplied only half of a cert / key pair.
- SSL-aware import from pgAdmin and TablePlus. Connection profiles imported from either tool map allow, prefer, verify-ca, and require to your imported profile distinctly.
v1.8.0May 20, 2026 pgen 1.8.0 — SSH tunneling
Features
- Connect to PostgreSQL through an SSH tunnel. New connection profiles can now route through a bastion / jump host before reaching your database. Configure SSH host, port, user, and password directly in the connection form — the tunnel is brought up before the Postgres handshake and torn down cleanly when you disconnect.
- Host-key verification with a proper trust dialog. On the first connection to a new SSH host, pgen shows a Material dialog with the host's fingerprint and lets you decide whether to trust it. Trusted keys are remembered in pgen's own known-hosts store. If a host key changes later, pgen blocks the connection and tells you exactly why — no silent acceptance.
- SSH-aware error reporting. When something goes wrong inside the tunnel — auth failure, bad host key, network reset, tunnel never came up — the connection toast tells you it was the SSH layer, not the database. No more guessing whether a failed connection was your bastion or your Postgres credentials.
- ⌘⇧F opens Query History from anywhere in the workspace.
Fixes
- Identifier quoting now matches
quote_ident. Schemas, tables, columns, and other identifiers with mixed case, reserved words, or special characters are now properly quoted everywhere — table viewer reads, edits, and the underlying introspection queries. Mixed-case schema names like"MyApp"no longer break View Data or inline editing. - NULL-safe edits on tables without a primary key. Committing a row edit on a PK-less table now uses
IS NOT DISTINCT FROMso NULL-valued columns are matched correctly. If your edit could affect multiple identical rows, pgen now refuses the commit and tells you instead of silently updating all of them. - Filter values are cast to the column's type, not the other way around. Filtering an integer column for
42now sendscol = 42, notcol::text = '42'. Indexes get used, query plans look like you'd expect, and filters work correctly on types where text-casting was lossy or wrong. - Switching to an already-open tab returns you to the Explorer view instead of leaving you on the SQL editor with the tab apparently doing nothing.
- No more crash when disconnecting with the dashboard open. A race in
DashboardBlocwhere its refresh timer could be armed on a closed bloc — the source of the "Cannot add new events after calling close" reports in 1.7.0 — is fixed. - JSON cells with
"char"-typed values render again. Postgres returnsUndecodedBytesfor OIDs without a codec (notably the internal"char"type), which crashed the JSON viewer. pgen now decodes these the same way the rest of the app does.