> VERSION_HISTORY
All notable changes to Good Terminal PDF Viewer (GTPV).
Format: Keep a Changelog | Versioning: Semantic Versioning
> [0.2.6] - 2026-01-25
Added
- Screenshots in README: terminal preview, info command, Neovim integration
- Sample PDF (
tests/fixtures/testing.pdf) for users to test immediately - Quick Start section in README with 30-second setup instructions
- Expanded Neovim integration documentation with performance comparison
Changed
- Improved README structure with hero screenshot and better navigation
- Enhanced Neovim section explaining Stream API benefits
> [0.2.5] - 2026-01-25
Added
- Justfile commands for release workflow:
just sync- Sync VERSION file to all project filesjust pre-push- Format and lint with auto-fixjust pre-release- Full validation with testsjust dev-push- Push to dev branchjust release-dev- Complete dev release workflowjust release- Merge dev into main with merge commit
Changed
- CI now runs on push to
devbranch (in addition to PRs to main) - Release workflow uses
--no-fffor merge commits
> [0.2.4] - 2026-01-25
Fixed
- Windows build failure caused by platform-specific size assertions in FFI bindings
- Removed 20 size assertion blocks from
pdfium_bindings.rs - Fixed
cargo fmtformatting invendor/pdfium-bind/build.rs
Changed
- Binary size remains ~5.6 MB across all platforms
> [0.2.3] - 2026-01-24
Added
- Pre-bundled PDFium dynamic libraries for all 7 platforms:
- macOS ARM64 (
libpdfium.dylib) - macOS x64 (
libpdfium.dylib) - Linux x64 (
libpdfium.so) - Linux ARM64 (
libpdfium.so) - Windows x64/x86/ARM64 (
pdfium.dll)
- macOS ARM64 (
- Pre-generated Rust FFI bindings (
pdfium_bindings.rs) - Windows import libraries (
.dll.libfiles) for linking
Changed
- Build no longer downloads PDFium at compile time
- Build no longer runs bindgen at compile time
- Reduced build dependencies from ~90 packages to ~20 packages
Removed
- Build-time PDFium download
- Build-time bindgen code generation
- ~70 transitive build dependencies
> [0.2.2] - 2026-01-24
Fixed
- Vendored
pdfium-bindfork to fixlibloading0.9 compatibility issue - MSRV compatibility: pinned
libloadingto 0.8.x for Rust 1.85
Changed
- Moved
pdfium-bindtovendor/pdfium-bindas local dependency
> [0.2.1] - 2026-01-24
Changed
- Replaced
pdfium-renderwithpdfium-bindfor bundled PDFium - PDFium is now embedded in the binary (extracted at runtime)
- No external PDFium installation required
Removed
- External PDFium dependency requirement
LD_LIBRARY_PATH/DYLD_LIBRARY_PATHrequirements
> [0.2.0] - 2026-01-24
Added
- Custom CLI argument parser (replaced
clap) - Custom LRU cache implementation (replaced
lrucrate) - Custom JSON writer for
--jsonoutput (replacedserde_json) - Custom error types with Display/Error impls (replaced
thiserror/anyhow) - Custom logging macros (replaced
tracing) - Blocking I/O for stream mode (replaced
tokio)
Removed
clap,lru,serde,serde_json,thiserror,anyhow,tracing,tokiodependencies
Changed
- Significantly reduced dependency tree
- Improved startup time due to fewer dependencies
> [0.1.0] - 2026-01-24
Initial Release
- PDF document loading and parsing via PDFium
- Page rasterization with configurable DPI (default: 150)
- Kitty graphics protocol support
- iTerm2 inline images support
- Sixel protocol support
- Text-based fallback modes:
halfblock,braille,block - Interactive viewer:
j/knavigation,g/Gjump,qquit - Stream API for editor integration (
gtpv stream) - LRU page cache with preloading
- Commands:
view,render,info,stream - Cross-platform: macOS (ARM64/x64), Linux (x64 glibc/musl), Windows x64