Skip to content

Releases: willibrandon/pgtail

v0.5.0

16 Jan 16:03

Choose a tag to compare

Full Changelog: v0.4.1...v0.5.0

Full Changelog: v0.4.1...v0.5.0

Full Changelog: v0.4.1...v0.5.0

Full Changelog: v0.4.1...v0.5.0

Full Changelog: v0.4.1...v0.5.0

v0.4.1

14 Jan 18:13

Choose a tag to compare

Fixed

  • Windows log file flip-flopping between .log and .csv when PostgreSQL logs to both formats simultaneously

Full Changelog: v0.4.0...v0.4.1

v0.4.0

13 Jan 06:54

Choose a tag to compare

What's Changed

  • Add REPL bottom toolbar with instance count, filters, and theme display by @willibrandon in #13

Full Changelog: v0.3.0...v0.4.0

v0.3.0

13 Jan 00:07

Choose a tag to compare

What's Changed

  • feat(tail): add --file and --stdin options for arbitrary log files by @willibrandon in #12

New Contributors

Full Changelog: v0.2.4...v0.3.0

v0.2.4

04 Jan 15:59

Choose a tag to compare

What's New

Bug Fixes

  • Fixed winget validation - Wrapped REPL startup in try/except on Windows to catch any initialization failures (e.g., prompt_toolkit failing in non-interactive environments). Now exits gracefully with code 0 instead of propagating exceptions as code 1.

Installation

Windows (winget)

winget install willibrandon.pgtail

macOS (Homebrew)

brew install willibrandon/tap/pgtail

From Source

pip install pgtail

Checksums

See individual .sha256 files attached to this release.

v0.2.3

03 Jan 18:33

Choose a tag to compare

What's New

Bug Fixes

  • Fixed winget validation exit code - When stdin is not a TTY (like during winget package validation where stdout is captured), pgtail now exits silently with code 0 instead of attempting to write to stdout which could fail.

Technical Details

The previous fix for Windows standalone launch detection only handled the case where a new console window was created. However, winget validation runs with stdout redirected to capture output, which means:

  • sys.stdin.isatty() returns False
  • The previous code tried to call typer.echo() which could fail when stdout is in an unusual state
  • This caused exit code 1 instead of 0

The fix now uses SystemExit(0) directly when stdin is not a TTY, avoiding any stdout writes that could fail.

Installation

Windows (winget)

winget install willibrandon.pgtail

Note: Pending winget PR approval

macOS (Homebrew)

brew install willibrandon/tap/pgtail

From Source

pip install pgtail

Checksums

See individual .sha256 files attached to this release.

v0.2.2

02 Jan 19:17

Choose a tag to compare

What's New

Bug Fixes

  • Fixed Windows standalone launch detection - pgtail now correctly exits when launched without an interactive terminal (e.g., double-click, Start-Process, winget validation). Previously, the application would hang waiting for input that would never come.

Technical Details

When Windows launches a GUI application, it allocates a new console window where isatty() returns True, but there's no user to provide input. This caused the REPL to hang indefinitely during winget package validation.

The fix uses GetConsoleProcessList() to detect when pgtail is the only process attached to its console (indicating a standalone launch), and exits gracefully in that case.

Installation

Windows (winget)

winget install willibrandon.pgtail

Note: Pending winget PR approval

macOS (Homebrew)

brew install willibrandon/tap/pgtail

From Source

pip install pgtail

Checksums

See individual .sha256 files attached to this release.

v0.2.1

02 Jan 10:49

Choose a tag to compare

Release Notes: pgtail v0.2.1

Bug Fixes

Non-TTY Exit Code

  • Fixed exit code when running without a terminal (stdin not a TTY)
  • Now returns exit code 0 with a helpful message instead of hanging
  • Fixes winget automated validation which runs the binary non-interactively

What Changed

When pgtail is run without a terminal (e.g., in automated CI/CD pipelines or package validation), it now outputs:

pgtail: interactive mode requires a terminal
Run 'pgtail --help' for usage information

And exits with code 0 instead of attempting to start the interactive REPL.

Upgrade

This is a minor patch release. All v0.2.0 functionality is preserved.

# Homebrew
brew upgrade pgtail

# pip
pip install --upgrade git+https://github.com/willibrandon/pgtail.git

# winget (pending approval)
winget upgrade willibrandon.pgtail

v0.2.0

02 Jan 03:35

Choose a tag to compare

Release Notes: pgtail v0.2.0

Overview

This release migrates pgtail's binary distribution from PyInstaller to Nuitka, dramatically improving startup performance.

Performance Improvements

Startup Time

  • Before (PyInstaller --onefile): ~5.1 seconds cold start
  • After (Nuitka --mode=standalone): ~68ms startup time
  • Improvement: ~75x faster startup

The PyInstaller onefile format extracted a compressed archive to a temp directory on every execution. Nuitka standalone mode compiles Python to native C code, eliminating extraction overhead entirely.

Distribution Changes

Archive Format

Binary downloads have changed from single executables to compressed archives:

Platform Old Format New Format
macOS ARM64 pgtail-macos-arm64 pgtail-macos-arm64.tar.gz
macOS x86_64 pgtail-macos-x86_64 pgtail-macos-x86_64.tar.gz
Linux x86_64 pgtail-linux-x86_64 pgtail-linux-x86_64.tar.gz
Linux ARM64 pgtail-linux-arm64 pgtail-linux-arm64.tar.gz
Windows pgtail-windows-x86_64.exe pgtail-windows-x86_64.zip or .msi

Installation

Unix (macOS/Linux):

# Download and extract
tar -xzf pgtail-macos-arm64.tar.gz

# Run from extracted folder
./pgtail-macos-arm64/pgtail --version

Windows (MSI):

# Download MSI and run installer
msiexec /i pgtail-windows-x86_64.msi

# After install, pgtail is available system-wide
pgtail --version

Windows (Portable ZIP):

# Extract and run
Expand-Archive pgtail-windows-x86_64.zip
.\pgtail-windows-x86_64\pgtail.exe --version

Package Manager Updates

  • Homebrew: brew install willibrandon/tap/pgtail
  • winget: Pending approval (PR #327397)

Download Sizes

Platform Compressed
macOS ARM64 22 MB
macOS x86_64 24 MB
Linux x86_64 40 MB
Linux ARM64 37 MB
Windows ZIP 20 MB
Windows MSI 15 MB

What's New

  • Migrated from PyInstaller to Nuitka for binary builds
  • Added Windows MSI installer (adds to system PATH)
  • Added scripts/build-nuitka.sh for local builds
  • Added scripts/check-version-sync.sh for release validation
  • Updated Makefile with Nuitka build targets

Compatibility

  • All existing functionality preserved
  • Same command-line interface
  • Same configuration files
  • Same behavior across all platforms

v0.1.0

01 Jan 17:57

Choose a tag to compare