Repository navigation
Releases
v2.0.1 — predictable summary language
Summaries now come back in the language you expect.
Fixed — output language was unpredictable (#16)
Every prompt is written in English and nothing stated which language to answer in, so the model inferred one. A mostly-Chinese document carrying a few English acronyms would come back as a long English summary, while a pure-Chinese one stayed Chinese. Every request now states the language explicitly.
New — choose the summary language
A Summary language picker on the Config screen and -l/--language on the CLI. The default, Auto, matches the document. Any language name is accepted, not only the listed ones.
docsummarizer-cli notes.txt -l Chinese
Fixed — release binaries were built without Qt
The v2.0.0 downloadable assets were built without the gui extra, so they failed at startup with ModuleNotFoundError: No module named PySide6. Anyone who hit that: the assets below are the working builds.
Windows and Linux builds are CPU-only; the ~2.5 GB model downloads on first run.
DocSummarizer 2.0.0
DocSummarizer 2.0.0
A ground-up redesign of the desktop application around a new offline-first interface.
Highlights
- New desktop UI — a redesigned two-pane console: brief / detailed / structured summaries, a raw-extraction view with search, and batch processing with live per-file status.
- Source-grounded provenance — click a summary point to highlight the exact sentence it was drawn from.
- Cancellable summaries — Stop interrupts a running summary immediately.
- Whole-document summarization — long documents are processed in chunks (map-reduce), not truncated.
- Refined visual design with bundled typography.
- Accurate compute reporting — the GPU toggle reflects what the build actually supports.
Notes
- The portable
DocSummarizer.exeruns entirely on CPU and needs no GPU or installation. - On first launch it downloads the local model (~2.5 GB, one-time); everything runs offline afterwards.
Windows portable executable attached below.
v1.1.0
Security
- Bump
llama-cpp-pythonto the 0.3.x line (clears GHSA-56xg-wfcc-g829, a critical RCE via Jinja2 SSTI in chat-template parsing). - Bump
pypdfto the 6.x line (clears ~24 DoS / RAM-exhaustion advisories that apply to attacker-supplied PDFs). - Bump
tqdmpast CVE-2024-34062 (CLI eval injection; not exploitable in this app but bumped on principle). - Move every other dependency to its current major.
Reliability
- Fix Tk widget mutation from worker threads across the load, download, summarize, and batch paths.
- Lock-protected
Summarizeraccess with explicitclose()+ context-manager support (replaces unreliable__del__). - Fix PyInstaller spec on macOS — it was silently bundling zero llama backend libraries because the lookup path was hardcoded to
venv//venv_linux/. - Drop the
.docextension claim (legacy OLE compound; python-docx cannot read it)..docxonly. - Single
stat()in document_parser metadata to avoid a network-share race.
UX
- Real progress bar during the 4.4 GB model download (was 0% → 100% only).
- Initial model load now shows a loading dialog and disables inputs.
- Batch processing reports per-file success/failure with a list of failures in the completion popup.
Infrastructure
- The package is now installable:
src/docsummarizer/layout,pip install -e .,docsummarizeranddocsummarizer-clientry points. llama-cpp-pythonlives behind the[runtime]extra so CI installs the package without the heavy native backend.- GitHub Actions CI on Ubuntu × Python 3.10 / 3.11 / 3.12 — ruff check, ruff format check, 42 pytest tests.
- Hash-pinned
requirements.lock(generated byuv pip compile --generate-hashes --all-extras) for reproducible release builds. - Dependabot enabled (weekly, pip + github-actions).
- Branch protection on
masterrequiring all three matrix CI jobs.
Upgrade notes
The package install path changed: pip install -r requirements.txt no longer works (the file is gone). Use the setup scripts (setup_and_run.{sh,bat}) — they now run pip install -e ".[runtime]". For development, pip install -e ".[dev]" is enough (skips the C++ backend; tests stub it).
Release v1.0.1
What's New
CPU Usage Control
- Added CPU threads slider in Settings tab (2 to max cores)
- Users can now balance between speed and system responsiveness
- Default: uses half of available CPU cores instead of all
Improved User Experience
- Added loading dialog with progress indicator during model reload
- Visual feedback when changing thread settings
Logging & Diagnostics
- Added logging system for troubleshooting
- Logs stored in %LOCALAPPDATA%\DocSummarizer\logs\ (Windows) or ~/.local/share/DocSummarizer/logs/ (Linux)
- Tracks: startup info, model loading time, summarization speed (tokens/sec)
- No sensitive data logged (document content is never stored)
Bug Fixes
- Fixed "NoneType object has no attribute 'write'" error when downloading model on Windows
- Fixed "system cannot find the path" error when loading model (llama_cpp DLLs now bundled)
- Fixed window not closing properly on X button
- Reduced CPU usage during inference with n_threads_batch optimization