Skip to content

Releases: k3snyder/document-summarizer

v0.4.1

Choose a tag to compare

@k3snyder k3snyder released this 14 Jul 23:26

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 report quality_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

Choose a tag to compare

@k3snyder k3snyder released this 14 Jul 17:58

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 / --set overrides, 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 set CODEX_CLI_MODEL for 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-cli skill grows
    --doctor preflight, --estimate projections, 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-cli binary (exit codes: 0 completed, 1
    pipeline failure, 2 usage/config, 3 environment) bundled into the macOS
    app as a sidecar.
  • Codex model dropdown in Settings plus CODEX_CLI_MODEL env 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.
  • --doctor and --estimate preflight 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, and install_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 app when 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_TOKEN and a SHA-256-pinned PDFium
    test-library download.

Download

  • macOS (Apple Silicon): document-summarizer-0.4.0-macos-arm64.dmg below.
    Drag Document Summarizer.app to 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

Choose a tag to compare

@k3snyder k3snyder released this 30 Jun 14:41

Highlights

  • GitHub Copilot provider. Use the copilot CLI for vision and summarization
    alongside codex, claude, and grok, 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 an Update button 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 commands check_for_update, skip_update_version,
    app_version).
  • Settings → Updates section: Check for updates on launch toggle and current
    version, persisted as updates.enabled / updates.skipped_version in
    settings.json.
  • Tauri opener capability (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-json now 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

Choose a tag to compare

@k3snyder k3snyder released this 26 Jun 01:59

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_RETRIES env 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 --enqueue and an optional
    --config-json pipeline 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

Choose a tag to compare

@k3snyder k3snyder released this 24 Jun 02:01

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 --enqueue and an optional --config-json override.
  • 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 in apps/desktop/src-tauri/resources/pdfium/PDFIUM_VERSION.txt.

See the CHANGELOG for the full list of changes.