Releases: k3snyder/document-summarizer
Release list
v0.4.1
A UI-polish and correctness release for the desktop app.
Fixed
- CLI summaries no longer flagged as unvalidated. The relevancy/quality
validation loop only exists for OpenAI-compatible providers (llama.cpp,
Ollama, OpenAI), but summaries produced by the CLI providers (Codex, Claude,
Grok, Copilot) were hard-coded to reportquality_validated: false, so
History showed a misleading "Summary quality validation not reached" badge.
CLI summaries now report no validation state, and the badge additionally
requires a numeric relevancy score — so legacy CLI outputs stop showing the
badge retroactively. - Sidebar footer stays visible. Tall History content pushed the status
pill and Settings button below the fold; the app shell is now capped at the
viewport height and only the workspace pane scrolls.
Changed
- Settings page reorganized. The CLI provider block (Codex, Claude, Grok,
Copilot) now leads the provider sections and is expanded by default;
Appearance and Updates share a single row; Logging and Summarization Budget
moved to the bottom; the Vision/Classifier/Summarizer visibility grids list
providers in a consistent order. - Page Details layout. Sections reordered to Text, Tables, Image Text
(classifier verdict beneath the extracted text), Embedded Images, Summary
Notes, Topics, and Detailed Summary Attempts. Empty blocks no longer render
as placeholders. - Backend crate manifests are now versioned with the release.
Full Changelog: v0.4.0...v0.4.1
Install
Download document-summarizer-0.4.1-macos-arm64.dmg below (macOS, Apple
Silicon). The app is ad-hoc signed: on first launch, right-click the app and
choose Open, or allow it under System Settings → Privacy & Security.
v0.4.0
Highlights
- Headless
summarizer-cli. Run the full extraction → vision → summarization
pipeline from a terminal or an agent with no GUI: one JSON manifest on stdout,
deterministic exit codes,--config-json/--setoverrides, and explicit
PDFium resolution (never an implicit download). The macOS app now bundles the
CLI as a sidecar, so installed agent skills find it without a repo checkout. - Codex model selection. Pick the Codex CLI model in Settings
(gpt-5.6-sol,gpt-5.6-terra,gpt-5.6-luna,gpt-5.5, or CLI default),
or setCODEX_CLI_MODELfor headless runs. Custom Codex args always win, and
the flag is never emitted twice. - Model visibility. Output metrics, job logs, and the Processing Metrics
tiles now show the actual model used per stage (for example
Codex CLI / gpt-5.6-luna), preferring the provider-reported model. - Agent skillpack workbench. The bundled
summarizer-cliskill grows
--doctorpreflight,--estimateprojections, batch and detached jobs, a
content-hash run cache, result query/export tooling, OKF (Open Knowledge
Format v0.1) conversion, corpus briefs, and a dataset compiler — stdlib-only,
with its own test harness.
Added
- Standalone headless
summarizer-clibinary (exit codes:0completed,1
pipeline failure,2usage/config,3environment) bundled into the macOS
app as a sidecar. Codex modeldropdown in Settings plusCODEX_CLI_MODELenv override, with
duplicate-flag suppression when custom args already select a model.- Per-stage model info in
metrics.config.vision_model/
summarizer_model, job logs, and the metrics UI. --doctorand--estimatepreflight modes in the CLI and skill.- Page-range and sampling support across PDF, PPTX, DOCX, TXT, and Markdown
extraction. - Skillpack: CLI-first backend with app fallback (
--backend auto|cli|app),
run catalog + cache, batch (--dir/--glob/--parallel), detach
(--detach/--status/--wait/--cancel),query_result.py,
to_okf.py,synthesize.py,to_dataset.py, andinstall_skill.sh.
Changed
- Provider settings and CLI argument construction moved into the shared
pipeline crate, so the desktop app and headless CLI configure providers
identically; partial config overrides merge onto desktop defaults everywhere. - CLI runs are recorded in the CLI catalog rather than app History; use
--backend appwhen History visibility is wanted.
Security
- Image decompression-bomb guard in PPTX/DOCX extraction: header-only dimension
check (16-million-pixel cap) rejects oversized images before decode. - Project CI hardened: read-only
GITHUB_TOKENand a SHA-256-pinned PDFium
test-library download.
Download
- macOS (Apple Silicon):
document-summarizer-0.4.0-macos-arm64.dmgbelow.
DragDocument Summarizer.appto Applications. Local-first: your documents
never leave your machine (the only outbound call is the opt-out update check).
Full changelog: v0.3.0...v0.4.0
v0.3.0
Highlights
- GitHub Copilot provider. Use the
copilotCLI for vision and summarization
alongsidecodex,claude, andgrok, with its own executable/args/timeout
settings and visibility toggle. - In-app update checker. On launch, the app checks the GitHub Releases API
and shows anUpdatebutton when a newer version is published. The dialog
shows release notes with View release, Download DMG, Later, and
Skip this version. It is opt-out under Settings → Updates (on by
default), and the README documents its network/privacy footprint. The check is
the only outbound call — your documents still never leave your machine.
Added
- GitHub Copilot CLI provider (
copilot) for vision and summarization. - On-launch update check via the GitHub Releases API with an in-app update
dialog (Tauri commandscheck_for_update,skip_update_version,
app_version). Settings → Updatessection:Check for updates on launchtoggle and current
version, persisted asupdates.enabled/updates.skipped_versionin
settings.json.- Tauri
openercapability (opener:default,opener:allow-open-url) so the
update dialog can open release/download URLs in the browser.
Changed
- Default Ollama summarizer model is now
gemma4:12b-it-qat(vision stays
llava).
Fixed
--config-jsonnow merges a partial override onto the desktop default pipeline
config instead of resetting omitted fields, so flipping one toggle no longer
silently disables vision; non-object payloads are rejected.- The file-upload prompt no longer appears while a job is actively processing.
Full changelog: v0.2.0...v0.3.0
Download: document-summarizer-0.3.0-macos-arm64.dmg below (macOS, Apple
Silicon). Local-first — your documents never leave your machine.
v0.2.0
Highlights
Timeout recovery for vision and summarization. A single CLI provider timeout
or crash no longer aborts the whole job. Vision and summarization invocations
(codex, claude, grok) now recover from transient timeouts, crashes, and
spawn failures by retrying with exponential backoff — 3 attempts by default,
configurable per provider via CODEX_CLI_RETRIES, CLAUDE_CLI_RETRIES, and
GROK_CLI_RETRIES. If a page still fails after retries, the pipeline degrades
gracefully (continuing without that page's summary, classification, or image
text) instead of failing the document.
Added
- Automatic retry with exponential backoff for CLI vision and summarization
providers (configurable via*_CLI_RETRIESenv vars). --enqueue <file>headless job submission: relaunching the desktop binary
forwards the document to the already-running instance, so the job lands in the
live queue and History. Supports repeatable--enqueueand an optional
--config-jsonpipeline override.- Structured quality-gate observability with per-page validation status.
- Shared OPC package handling for PPTX/DOCX relationship parsing and embedded
image conversion.
Changed
- Desktop runs providers from explicit settings passed into the embedded
pipeline instead of mutating process environment variables. - Vision image normalization runs off the async runtime with a bounded cache and
page-level release hooks.
Fixed
- Improved timeout recovery for vision and summarization (see Highlights).
- Relevancy score parsing for common judge formats (
8/10,92%,0.85). - Gemini vision authentication now sends API keys by header instead of URL query
string. - HTTP provider timeouts so wedged providers fail instead of hanging
indefinitely. - Serialized PDFium use for concurrent jobs; private permissions on server temp
and output directories.
Removed
- Legacy Axum REST server (
summarizer-server) and HTTP CLI client
(summarizer-cli) crates. The desktop app is the sole product surface;
headless automation goes through--enqueue.
Full changelog: v0.1.0...v0.2.0
Download: document-summarizer-0.2.0-macos-arm64.dmg below (macOS, Apple
Silicon). Local-first — documents never leave your machine.
v0.1.0
Document Summarizer is a local-first macOS desktop app that turns PDF, PPTX, DOCX, TXT, and Markdown files into structured summaries. Documents are processed entirely on your machine through an embedded Rust pipeline — extraction, vision classification, and summarization — using the local or API providers you configure.
Download
macOS (Apple Silicon) — download the .dmg below, open it, and drag the app into /Applications.
The build is signed with a Developer ID and notarized by Apple (Team C93YHC84GR, PHIZZOG LLC), so it opens with a normal double-click — no Gatekeeper workaround required.
Highlights
- Extraction for PDF, PPTX, DOCX, TXT, and Markdown, with shared OPC handling for PPTX/DOCX relationships and embedded images.
- Embedded Rust pipeline with extraction, vision classification/extraction, and summarization stages.
- Provider support for llama.cpp, Ollama, OpenAI-compatible APIs, Codex CLI, Claude CLI, and Grok CLI.
- Local desktop settings, job history, JSON/Markdown outputs, and redacted job logs under
~/.summarizer. --enqueue <file>headless job submission: relaunching the binary forwards the document to the running instance so it lands in the live queue and History. Supports repeatable--enqueueand an optional--config-jsonoverride.- Structured quality-gate observability with per-page validation status.
Notes
- This release targets macOS Apple Silicon. The app operates local-first — your documents do not leave your machine except when you point it at a remote API provider.
- PDFium integration tests are gated behind
RUN_PDFIUM_TESTS=1; bundled PDFium provenance is recorded inapps/desktop/src-tauri/resources/pdfium/PDFIUM_VERSION.txt.
See the CHANGELOG for the full list of changes.