Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions .github/release-notes/v0.4.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
OffPDF v0.4.0 completes the direct-editing foundation while keeping unsupported PDF structures fail-closed.

Highlights:

- Source-content inspection uses one bounded input snapshot with deterministic locators.
- Oversized, malformed, compressed, or ambiguous content is rejected explicitly.
- Font encodings and unsafe PDF text-state operators are checked before a source edit can be considered.
- Desktop job identifiers are validated before filesystem use.
- Operating-system file intake keeps the original file order.
- CI requires the same PDF engines exercised by production paths.

This release does not claim Word-like editing for arbitrary PDFs. Existing source text and image replacement remains limited to separately proven structures; overlays continue to be treated as new content.

Known issue:

- Some real-device HEIC/HEIF files may still crash on Windows; investigation continues in issue #14.

Thanks to @Aaqibhafeezkhan for contributing to this release.

Packages:

- Signed and notarized DMG for Apple Silicon Macs
- Windows x64 NSIS installer — unsigned while Authenticode signing is pending. Verify the accompanying SHA-256 file before use.

See [CHANGELOG.md](https://github.com/McanKul/offpdf/blob/v0.4.0/CHANGELOG.md) for full details.
26 changes: 26 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,32 @@ All notable project changes should be documented here.

## Unreleased

## 0.4.0 - 2026-10-05

### Added

- Completed the v0.4 direct-editing foundation with a documented compatibility matrix and an explicit boundary between safe overlays and narrowly proven source-content edits.
- Added deterministic, read-only source locators for supported whole-string text and uniquely referenced image structures without exposing a general save capability.

### Fixed

- Source-content inspection now reads from one bounded snapshot and fails closed on oversized, malformed, compressed, or ambiguous PDF structures.
- Cross-reference tables, indirect objects, decoded content streams, font encodings, and unsafe text-state operators are bounded or rejected with explicit reasons.
- Desktop job identifiers are validated before they can reach temporary filesystem paths.
- Files opened through the operating system retain their original intake order.

### CI

- Rust CI now installs and requires the PDF engines used by production paths instead of silently skipping their tests.

### Contributors

- Thank you to @Aaqibhafeezkhan for contributing to this release.

### Known issues

- Some real-device HEIC/HEIF files may still crash on Windows; investigation continues in issue #14.

## 0.3.2 - 2026-09-11

### Added
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "offpdf",
"private": true,
"version": "0.3.2",
"version": "0.4.0",
"type": "module",
"description": "Free, open-source, offline-first desktop PDF utility.",
"license": "MIT",
Expand Down
2 changes: 1 addition & 1 deletion src-tauri/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "offpdf"
version = "0.3.2"
version = "0.4.0"
description = "Free, open-source, offline-first desktop PDF utility."
authors = ["OffPDF contributors"]
edition = "2021"
Expand Down
2 changes: 1 addition & 1 deletion src-tauri/tauri.conf.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://schema.tauri.app/config/2",
"productName": "OffPDF",
"version": "0.3.2",
"version": "0.4.0",
"identifier": "app.offpdf.desktop",
"build": {
"frontendDist": "../dist",
Expand Down
Loading