Releases: wpdlf/local-doc-analyzer
Release list
v1.10.0 — Better chapters for Word, PowerPoint and HWPX
Better chapters for Word, PowerPoint and HWPX, and extraction progress
This release comes from a full review of v1.9.0. PDF handling is unchanged.
Chapters follow the document's structure
Chapters built from headings could multiply: every heading at every level became a chapter, so one slide or page could be summarized several times (a real Word file of 11 pages produced 32 chapters; a 112-slide deck produced 112). Chapters now split the document instead:
- PowerPoint sections are used first when the deck has them.
- Otherwise the highest heading level that actually divides the document is used, and headings on the same unit are merged.
- Repeated identical headings are folded together, and there are at most 50 chapters.
- Content before the first heading is kept in the first chapter.
Word sessions saved by v1.8.0 have their overlapping chapter boundaries cleaned up when reopened.
Extraction progress
Opening a Word, PowerPoint or HWPX file now shows "n / total" progress while it is read.
PowerPoint
- Pictures used as shape fills are no longer dropped (common in Canva-style decks).
- Charts keep multi-level categories, scatter charts and literal series names, and show when data was truncated.
- A malformed or very large
presentation.xmlno longer freezes the app; lists inside XML comments are ignored. - Text in groups nested deeper than 32 levels is kept.
HWPX (한글)
- Tables longer than 256 rows are no longer cut off.
- Table size follows the cells actually present, so a bogus declared row count no longer adds empty rows.
- Pictures survive a missing or damaged
container.xml.
Also
- Range selection, range markers in summaries, "too many" messages, invalid-citation notices and fallback chapter titles use the document's unit (slide, page…) instead of always saying "page".
- The source panel shows
[p.N]and math written in the document as plain text instead of turning them into citation buttons or formulas, and screen readers read unit names naturally. - A truncated image header no longer fails the whole document.
- Dependency security updates (
npm audit: 10 → 0).
Windows installer SHA-256
8d298c948be1117473e4622dd77238afa8b806348ce633b3744602861727b61f Local-Doc-Analyzer-Setup-1.10.0.exe
🇰🇷 한국어
Word·PowerPoint·HWPX 챕터 개선, 추출 진행률 표시
v1.9.0 을 전수 점검해 찾은 문제를 고쳤습니다. PDF 처리는 바뀌지 않았습니다.
챕터가 문서 구조를 따릅니다
제목으로 만든 챕터가 불어날 수 있었습니다. 모든 수준의 모든 제목이 챕터가 되어, 한 슬라이드·쪽이 여러 번 요약되기도 했습니다(실제 Word 11쪽 → 챕터 32개, 112장 덱 → 챕터 112개). 이제 챕터는 문서를 나눕니다.
- PowerPoint 에 구역(섹션) 이 있으면 그것을 먼저 씁니다.
- 없으면 문서를 실제로 나누는 가장 높은 제목 수준을 쓰고, 같은 단위의 제목은 합칩니다.
- 연달아 같은 제목은 하나로 접고, 챕터는 최대 50개입니다.
- 첫 제목 앞의 내용은 첫 챕터에 들어갑니다.
v1.8.0 에서 저장한 Word 세션은 다시 열 때 겹친 챕터 경계가 정리됩니다.
추출 진행률
Word·PowerPoint·HWPX 파일을 여는 동안 "n / 전체" 진행률이 표시됩니다.
PowerPoint
- 도형 채우기로 들어간 그림이 더는 빠지지 않습니다(Canva 계열 덱에서 흔함).
- 차트의 다단계 항목·분산형·직접 입력한 계열 이름을 읽고, 데이터가 잘렸으면 표시합니다.
- 깨졌거나 매우 큰
presentation.xml때문에 앱이 멈추지 않습니다. XML 주석 안의 목록은 무시합니다. - 32단계보다 깊게 묶인 그룹의 텍스트도 보존합니다.
HWPX (한글)
- 256행을 넘는 표가 더는 잘리지 않습니다.
- 표 크기를 실제 셀 범위로 정해, 잘못 선언된 행 수가 빈 행을 만들지 않습니다.
container.xml이 없거나 깨져도 그림을 잃지 않습니다.
그 밖에
- 범위 선택, 요약의 범위 표식, "너무 많음" 안내, 잘못된 인용 안내, 대체 챕터 제목이 늘 "페이지"가 아니라 문서 단위(슬라이드·쪽 등)를 따릅니다.
- 원문 패널이 문서에 적힌
[p.N]과 수식을 인용 버튼·수식으로 바꾸지 않고 글자 그대로 보여 주며, 스크린 리더가 단위 이름을 자연스럽게 읽습니다. - 잘린 그림 헤더 때문에 문서 열기 전체가 실패하지 않습니다.
- 의존성 보안 업데이트(
npm audit10건 → 0건).
v1.9.0 — PowerPoint and HWPX (한글) documents
PowerPoint and HWPX (한글) documents
You can now open PowerPoint (.pptx) and HWPX (.hwpx, 한글) files, alongside PDF and Word. Summaries, Q&A, citations, search, collections and the mind map work the same way they do for other documents.
- Slides are cited as slides. In a presentation, citations, search results, the recent-documents list and the tab header say "Slide 3" rather than "p.3". Clicking a citation opens the source panel at that slide.
- Speaker notes come along. Notes are included under each slide, shown as a quote so they stay distinct from the slide text.
- Tables keep their columns. Merged cells in PowerPoint and HWPX tables stay under the right headings. Chart data is read from the chart itself and shown as a table.
- Grouped shapes and text boxes are read. Text inside grouped shapes and HWPX text boxes (where much of a typical Korean office document lives) is no longer missed.
- Images are analyzed, including BMP pictures common in HWPX files.
- What is left out on purpose: slide numbers and dates, PowerPoint layout/master placeholder text, and HWPX headers, footers and page numbers.
EPUB is still planned.
Known limitations
- Text that exists only in a PowerPoint layout or master (not on the slide itself) is not read.
- EMF, WMF, GIF and TIFF images are not analyzed.
- HWPX footnotes, endnotes and equations are not extracted.
Also in this release
- Chapter summaries no longer repeat a page. Chapters built from a document's headings used to include the first page of the next chapter, and pages before the first heading were left out. Each page now belongs to one chapter, and the opening pages go into the first.
- Documents that reuse the same image many times (a logo on every slide, for example) no longer cause later images to be skipped.
- Very large presentations (up to the 500-slide limit) are no longer refused as "too large".
- The "unsupported file" message now lists the supported formats, and its English wording changed accordingly.
Windows installer SHA-256
955a9abb37b240a0c0a05a66a60f28d7856f9d7c60e206173bb0cc7225523720 Local-Doc-Analyzer-Setup-1.9.0.exe
🇰🇷 한국어
PowerPoint · 한글(HWPX) 문서
이제 PDF·Word 에 더해 PowerPoint(.pptx) 와 한글(.hwpx) 파일을 열 수 있습니다. 요약·Q&A·인용·검색·컬렉션·마인드맵이 다른 문서와 똑같이 동작합니다.
- 슬라이드는 슬라이드로 인용합니다. 발표 자료에서는 인용·검색 결과·최근 문서 목록·탭 헤더가 "p.3" 대신 "슬라이드 3" 으로 표시됩니다. 인용을 누르면 원문 패널이 그 슬라이드로 열립니다.
- 발표자 노트도 함께 읽습니다. 각 슬라이드 아래에 인용부로 붙어 슬라이드 본문과 구분됩니다.
- 표가 열을 지킵니다. PowerPoint·한글 표의 병합된 셀이 제 머리글 아래에 있습니다. 차트는 차트 자체의 데이터를 읽어 표로 보여 줍니다.
- 그룹 도형과 글상자도 읽습니다. 그룹 도형 안의 텍스트와, 한국 사무 문서에서 내용이 많이 들어가는 한글 글상자를 놓치지 않습니다.
- 그림도 분석합니다. 한글 파일에 흔한 BMP 그림도 포함입니다.
- 일부러 빼는 것: 슬라이드 번호·날짜, PowerPoint 레이아웃·마스터의 안내 문구, 한글의 머리말·꼬리말·쪽 번호.
EPUB 은 지원 예정입니다.
알려진 한계
- 슬라이드가 아니라 PowerPoint 레이아웃·마스터에만 있는 문구는 읽지 않습니다.
- EMF·WMF·GIF·TIFF 그림은 분석하지 않습니다.
- 한글의 각주·미주·수식은 추출하지 않습니다.
함께 바뀐 것
- 장별 요약이 한 페이지를 두 번 넣지 않습니다. 문서의 제목으로 나눈 장이 다음 장의 첫 페이지까지 포함하고, 첫 제목 앞의 페이지는 빠졌습니다. 이제 각 페이지는 한 장에만 속하고, 앞부분은 첫 장에 들어갑니다.
- 같은 그림을 여러 번 쓰는 문서(모든 슬라이드의 로고 등)에서 뒤쪽 그림이 건너뛰어지지 않습니다.
- 아주 큰 발표 자료(최대 500장)가 "너무 큰 파일" 로 거부되지 않습니다.
- "지원하지 않는 파일" 안내가 지원 형식 목록을 보여 줍니다(영어 문구도 바뀌었습니다).
v1.8.1 — Word document fixes, and your v1.7.x data carried over
Fixes for Word documents, and your data carried over from v1.7.x
This release fixes problems found in a full review of v1.8.0. PDF handling is unchanged.
Your data now follows you from v1.7.x
v1.7.x offered v1.8.0 as an in-app update. Because v1.8.0 has a new application identifier, it installed alongside the old version and started with an empty data folder, so sessions, settings and API keys looked lost. The v1.8.0 notes asked you to move the folder before first launch, which that path made impossible.
v1.8.1 now copies your data on first launch: sessions, settings, collections and saved API keys, from %APPDATA%\summary-lecture-material to %APPDATA%\local-doc-analyzer. The original folder is left untouched. The copy only runs when the new folder holds no data of your own. If you already re-entered keys or settings in v1.8.0, nothing is overwritten; move the folder manually if you want the old data back. The leftover old update download (~113 MB) is also removed.
Word documents
- Headings from Korean Word are recognized. Korean Word stores "제목 1" under a style ID the app did not recognize, so no headings were found. Heading styles are now read from the document's style definitions.
- Merged table cells stay in their columns. Cells spanning several columns or rows used to shift values under the wrong header.
- Text boxes are no longer duplicated, and content in form controls, nested tables, and wrapped table rows or cells is no longer dropped.
- Special characters survive: non-breaking hyphens (
010-1234no longer becomes0101234), line breaks inside cells, and checkboxes (☑/☐). - Section breaks count as page breaks. A section that starts on a new page now starts a new unit.
- The source panel can be closed with ✕ or Esc. Focus returns to the citation you clicked.
- Tables in the source panel are readable: they now have cell spacing and borders.
- Ranges like
9/1~9/30no longer render as strikethrough, in the app or in exported PDFs. - Changing only page breaks gives you a fresh summary. Previously, citations from the old summary could point at the wrong place. A Word document summarized in v1.8.0 is summarized again once.
- Large or oversized images are resized or skipped as they are for PDFs, so one huge photo no longer disables image analysis for the whole document.
- Opening a large Word file shows the progress spinner and can be cancelled.
- Dropping a password-protected Word file shows the password message instead of "only PDF and Word files".
Also
- Electron 44.4.5 (Chromium, PDFium and V8 security fixes).
- File-open error messages follow the UI language.
- AI instructions no longer call every document a "PDF", so Word summaries don't start with "This PDF…".
Windows installer SHA-256
4d70db01450caca8b41812b9f80b1d0431deef3182abce87f6596fde759db819 Local-Doc-Analyzer-Setup-1.8.1.exe
🇰🇷 한국어
Word 문서 수정, 그리고 v1.7.x 데이터 이전
v1.8.0 을 전수 점검해 찾은 문제를 고쳤습니다. PDF 처리는 바뀌지 않았습니다.
v1.7.x 의 데이터가 이제 따라옵니다
v1.7.x 는 v1.8.0 을 인앱 업데이트로 받았습니다. 그런데 v1.8.0 은 앱 식별자가 바뀌어 기존 버전 옆에 따로 설치됐고, 빈 데이터 폴더로 시작해 세션·설정·API 키가 사라진 것처럼 보였습니다. v1.8.0 노트는 "첫 실행 전에 폴더를 옮기라"고 안내했지만, 이 경로로 받은 경우에는 그렇게 할 수 없었습니다.
v1.8.1 은 첫 실행 때 데이터를 자동으로 복사합니다. 세션·설정·컬렉션·저장된 API 키를 %APPDATA%\summary-lecture-material 에서 %APPDATA%\local-doc-analyzer 로 복사하고, 원본은 그대로 둡니다. 복사는 새 폴더에 사용자 데이터가 없을 때만 일어납니다. v1.8.0 에서 이미 키나 설정을 다시 입력하셨다면 아무것도 덮어쓰지 않으니, 예전 데이터가 필요하면 폴더를 직접 옮겨 주세요. 옛 업데이트 다운로드 파일(약 113MB)도 정리합니다.
Word 문서
- 한국어 Word 의 제목을 인식합니다. 한국어 Word 는 "제목 1" 을 앱이 몰랐던 스타일 ID 로 저장해서 제목이 하나도 잡히지 않았습니다. 이제 문서의 스타일 정의를 읽어 판단합니다.
- 병합된 셀이 제 열에 있습니다. 여러 열·행에 걸친 셀 때문에 값이 다른 머리글 아래로 밀리던 문제를 고쳤습니다.
- 글상자 텍스트가 두 번 들어가지 않습니다. 양식 컨트롤, 표 안의 표, 래퍼로 감싼 표의 행·셀 내용도 더는 빠지지 않습니다.
- 특수 문자가 살아남습니다. 줄바꿈하지 않는 하이픈(
010-1234가0101234로 바뀌지 않음), 셀 안 줄바꿈, 체크박스(☑/☐)가 그대로 남습니다. - 구역 나눔도 쪽나눔으로 봅니다. 새 페이지에서 시작하는 구역은 새 단위가 됩니다.
- 원문 패널을 닫을 수 있습니다. ✕ 나 Esc 로 닫히고, 포커스가 누르셨던 인용으로 돌아갑니다.
- 원문 패널의 표가 읽기 쉬워졌습니다. 셀 간격과 테두리가 생겼습니다.
9/1~9/30같은 범위 표기가 앱 화면과 PDF 내보내기 모두에서 더는 취소선으로 그려지지 않습니다.- 쪽나눔만 바꿔도 새로 요약합니다. 예전에는 옛 요약의 인용이 엉뚱한 곳을 가리킬 수 있었습니다. v1.8.0 에서 요약한 Word 문서는 한 번 다시 요약됩니다.
- 크거나 지나치게 큰 그림은 PDF 와 같이 줄이거나 건너뜁니다. 큰 사진 한 장 때문에 문서 전체의 이미지 분석이 꺼지지 않습니다.
- 큰 Word 파일을 열 때 진행 표시가 뜨고 취소할 수 있습니다.
- 암호가 걸린 Word 파일을 끌어다 놓으면 "PDF · Word 파일만" 대신 암호 안내가 뜹니다.
그 밖에
- Electron 44.4.5 (Chromium·PDFium·V8 보안 수정)
- 파일 열기 오류 문구가 UI 언어를 따릅니다.
- AI 지시문이 모든 문서를 "PDF" 라고 부르지 않아, Word 요약이 "이 PDF 는…" 으로 시작하지 않습니다.
v1.8.0 — Word documents, not just PDFs
Word documents, not just PDFs
You can now open Word (.docx) files. Summaries, Q&A, citations, search, collections and the mind map all work the same as they do for PDFs — the whole pipeline was reused rather than rebuilt.
- Citations land where they should. Click
[p.3]in a summary and the original text panel scrolls to that spot, just as it does for a PDF page. - Tables stay tables. A Word table is carried through as a table rather than flattened into a run-on line, so the AI can still tell which value belongs to which column — and you see it as a table in the source panel.
- Images are analyzed too. Charts and diagrams embedded in a document go to Vision analysis, including ones inside table cells.
- Page breaks are respected. Where the author inserted a page break, that is where a "page" ends. Elsewhere the text is split by length at paragraph boundaries.
HWPX, PPTX and EPUB are planned but not in this release.
Also in this release
- The app is now Local Doc Analyzer (로컬 문서 분석기). The old name no longer described what it does.
- Wording that said "PDF" on paths that now handle any document has been corrected.
Upgrading from v1.7.x
This release changes the application identifier, so it installs alongside the old version rather than replacing it. Uninstall the previous "PDF 자료 분석기" entry once you have confirmed v1.8.0 works.
Update (v1.8.1): if v1.8.0 arrived as an in-app update from v1.7.x, it started with an empty data folder and the "move it before first launch" step below was not possible. Update to v1.8.1, which copies your sessions, settings and API keys automatically on first launch (your original folder is kept).
Your data is not migrated automatically: if you had sessions or settings, move %APPDATA%\summary-lecture-material to %APPDATA%\local-doc-analyzer before first launch.
Installers before v1.8.0 were named Local-PDF-Analyzer-Setup-x.x.x.exe.
Windows installer SHA-256
b7be5f427eb1f4a2a2834fc06826bcced76daf71751a9b00104dc96491f6f8fe Local-Doc-Analyzer-Setup-1.8.0.exe
🇰🇷 한국어
PDF 만이 아니라 Word 문서도
이제 Word(.docx) 파일을 열 수 있습니다. 요약·Q&A·인용·검색·컬렉션·마인드맵이 PDF 와 똑같이 동작합니다 — 파이프라인을 새로 만든 게 아니라 그대로 재사용했습니다.
- 인용이 제자리를 가리킵니다. 요약의
[p.3]을 누르면 원문 패널이 그 자리로 스크롤합니다. PDF 페이지와 같은 동작입니다. - 표가 표로 남습니다. Word 의 표를 한 줄로 뭉개지 않고 표 구조 그대로 전달합니다. 그래야 AI 가 어느 값이 어느 열인지 알 수 있고, 원문 패널에서도 표로 보입니다.
- 그림도 분석합니다. 문서에 삽입된 차트·도표가 Vision 분석에 들어갑니다. 표 셀 안에 있는 것도 포함입니다.
- 쪽나눠를 존중합니다. 작성자가 쪽을 나눈 자리가 한 "페이지"의 끝이 됩니다. 나눠지지 않은 구간은 문단 경계를 지키며 분량으로 끊습니다.
HWPX·PPTX·EPUB 는 예정이며 이번 릴리즈에는 포함되지 않았습니다.
함께 바뀐 것
- 앱 이름이 로컬 문서 분석기(Local Doc Analyzer)가 됐습니다. 옛 이름이 더는 하는 일을 설명하지 못했습니다.
- 이제 모든 문서를 처리하는 경로인데 문구만 "PDF" 이던 자리들을 정정했습니다.
v1.7.x 에서 올라오실 때
이번 릴리즈는 앱 식별자가 바뀌어 기존 버전을 대체하지 않고 나란히 설치됩니다. v1.8.0 이 정상 동작하는 것을 확인한 뒤 기존 "PDF 자료 분석기" 항목을 제거해 주세요.
정정 (v1.8.1): v1.7.x 에서 인앱 업데이트로 v1.8.0 을 받으셨다면 빈 데이터 폴더로 시작해, 아래의 "첫 실행 전에 옮기기"를 할 수 없었습니다. v1.8.1 로 업데이트하시면 첫 실행 때 세션·설정·API 키를 자동으로 복사합니다(원래 폴더는 그대로 둡니다).
데이터는 자동으로 옮겨지지 않습니다. 기존 세션·설정이 있다면 첫 실행 전에 %APPDATA%\summary-lecture-material 을 %APPDATA%\local-doc-analyzer 로 옮겨 주세요.
v1.8.0 이전 설치 파일은 Local-PDF-Analyzer-Setup-x.x.x.exe 라는 이름이었습니다.
v1.7.1 — electron 44.3.0 · js-yaml security update
A maintenance release with no feature or behavior changes. It carries two dependency security updates; the second one is the reason it ships now rather than waiting for the next feature.
What changed
- electron 44.2.0 → 44.3.0. Chromium 152.0.7977.78, plus a fix for a possible crash on Windows when a file dialog is shown for a window that is being closed at the same time — this app opens its Open/Export dialogs from the main process, so a close racing a dialog was a real path. Internal reply IPCs are also now validated against the sending frame.
- js-yaml 4.3.1 → 4.3.2 (GHSA-2883-xcg3-v3hh, high). The advisory was published on 2026-09-08, the day after v1.7.0. js-yaml is not something this app uses directly, but it is what electron-updater uses to parse the
latest.ymlupdate feed — so it is inside the shipped surface, and the blocking supply-chain gates in CI correctly refused to build until it was fixed. The fixed version was within the declared range, so only the lockfile moved.
Verification for this release: type check, build with the CMap and eager-chunk gates, 2567 unit tests across 122 files, 17/17 end-to-end runs including the packaged-app smoke test against a live Ollama, and both audit gates at zero findings.
Installer: unsigned. Windows SmartScreen will warn on first run — choose "More info" → "Run anyway". Verify the download against SHA256SUMS-windows.txt.
🇰🇷 한국어
기능이나 동작 변경이 없는 유지보수 릴리즈입니다. 의존성 보안 갱신 둘을 담고 있으며, 두 번째 항목 때문에 다음 기능 릴리즈를 기다리지 않고 지금 내보냅니다.
변경 내용
- electron 44.2.0 → 44.3.0. Chromium 152.0.7977.78 과 함께, Windows 에서 창이 닫히는 도중 파일 다이얼로그가 표시될 때 발생할 수 있던 크래시가 수정됐습니다. 이 앱은 열기·내보내기 다이얼로그를 메인 프로세스에서 띄우므로 창 닫힘과 다이얼로그가 경합하는 경로가 실제로 있었습니다. 내부 응답 IPC 도 이제 발신 프레임 기준으로 검증됩니다.
- js-yaml 4.3.1 → 4.3.2 (GHSA-2883-xcg3-v3hh, high). 이 권고는 v1.7.0 다음날인 2026-09-08 에 공개됐습니다. js-yaml 은 앱이 직접 쓰는 라이브러리는 아니지만 electron-updater 가 업데이트 피드
latest.yml을 파싱하는 데 쓰므로 배포 표면 안에 있고, CI 의 blocking 공급망 게이트가 수정 전까지 빌드를 정확히 거부했습니다. 수정판이 선언 범위 안이라 lockfile 만 바뀌었습니다.
이 릴리즈의 검증: 타입 체크, CMap·eager 청크 게이트를 포함한 빌드, 122 파일 2567 유닛 테스트, 실 Ollama 를 상대로 한 패키징 앱 스모크를 포함한 E2E 17/17, 그리고 두 audit 게이트 0건.
인스톨러: 코드 서명이 없습니다. 첫 실행 시 Windows SmartScreen 경고가 뜨면 "추가 정보" → "실행"으로 진행하세요. 내려받은 파일은 SHA256SUMS-windows.txt 로 검증할 수 있습니다.
Windows installer SHA-256
90fa511d88ae457cb75aa4cc7cad3b140f3c9fa883645994398a219c28e1e5c6 Local-PDF-Analyzer-Setup-1.7.1.exe
v1.7.0 — Zoom that tells the truth, and the guards that keep it
Round 33 of the full-codebase QA closed 35 findings. The theme this time: the features and the CI gates were correct — what was missing was the thing that keeps them correct. Both v1.5.0 and v1.6.0 shipped with well-tested pure functions but unprotected wiring, and several CI gates worked fine while the switch that turns them on was pinned by nothing.
What you will notice
- The menu bar is gone on Windows. The app never defined a menu, so Electron's default one was still attached — and its View → Zoom In/Out/Actual Size own
Ctrl++/-/0, the same keys v1.6.0 gave to the document viewer. With focus in a text field the app-wide zoom fired instead. Menu accelerators are handled before the page, so the only way to remove the clash is to remove the menu. - Zoom now stops where it actually stops. On large pages (drawings, A0) the number kept climbing while the canvas did not — and the same page could produce a ~100MB canvas, which Chromium silently renders as blank past its limit. The limit is now computed from the page size, and the percentage never claims more than what was rendered.
- Zooming keeps your place. Scroll restoration mixed two coordinate systems and drifted by a constant ≈114px on every change, accumulating as you clicked. Horizontal position is preserved too, and holding
Ctrlwhile scrolling no longer collapses the document while pages re-render. - Dragging the summary/chat divider follows the cursor. It used to move about 13% less than your pointer, because the ratio was measured against the whole panel including the toolbar.
- Long summaries no longer die at two minutes. A watchdog that was supposed to back up the main process was firing before it.
Under the hood
- The Ollama context ladder was documented as "the default workflow lands on 8192". Measured against the real prompt builder and chunker, a 40-page Korean document needed 9,450 tokens and jumped straight to the maximum window — every default run paid the maximum memory (+2.00GB on llama3.2) and the widest timeout. A 12288 step was added, and a test now measures the real pipeline instead of synthetic strings.
- When input exceeds the context window, llama.cpp drops the front of the prompt — which is the citation-rules block. The main process had been reporting this since v1.4.0, but nothing in the renderer could receive it (the bridge type did not even have the field). Affected summaries are now marked.
- electron 44.1.1 → 44.2.0, which fixes an application crash after a large number of IPC messages from renderers — exactly the shape of token streaming.
Safety nets added
Mutation testing found 17 of 89 injected defects surviving. Among them: the entire vertical-split feature (restore, clamp, persistence and layout wiring could all be replaced with constants and the suite stayed green), the accessibility banner rule that only ever looked at one file — and had a real violation hiding in its blind spot — and, in CI, a one-character change to a job condition that would silently skip every push/PR gate while leaving the commands in place for the guards to find.
Installer: unsigned. Windows SmartScreen will warn on first run — choose "More info" → "Run anyway". Verify the download against SHA256SUMS-windows.txt.
🇰🇷 한국어
33차 전수 QA 에서 35건을 수정했습니다. 이번 라운드의 주제는 기능과 CI 게이트는 맞는데, 그것이 계속 맞도록 지켜주는 쪽이 비어 있었다는 것입니다. v1.5.0 과 v1.6.0 은 순수 함수는 촘촘히 테스트돼 있었지만 배선이 무보호였고, CI 는 게이트가 잘 도는데 그 게이트를 켜는 스위치가 아무것에도 고정돼 있지 않았습니다.
눈에 보이는 변화
- Windows 에서 메뉴 바가 사라집니다. 이 앱은 메뉴를 정의한 적이 없어 Electron 기본 메뉴가 그대로 붙어 있었고, 거기 View → Zoom In/Out/Actual Size 가
Ctrl++/-/0을 차지하고 있었습니다 — v1.6.0 이 원문 뷰어 배율에 배정한 바로 그 조합입니다. 입력창에 포커스가 있으면 앱 전체 줌만 발동했습니다. 메뉴 액셀러레이터는 페이지보다 먼저 처리되므로 겹침을 없애려면 메뉴를 내리는 수밖에 없습니다. - 배율이 실제로 멈추는 지점에서 멈춥니다. 큰 페이지(도면·A0)에서는 숫자만 계속 올라가고 캔버스는 그대로였고, 같은 페이지가 100MB 짜리 캔버스를 만들면 Chromium 한도를 넘어 빈 화면으로 조용히 그려졌습니다. 이제 상한을 페이지 크기에서 계산하고, 표시되는 퍼센트는 실제로 그려진 것 이상을 주장하지 않습니다.
- 배율을 바꿔도 보던 자리를 지킵니다. 스크롤 복원이 두 좌표계를 섞어 변경할 때마다 ≈114px 씩 어긋났고 연타하면 누적됐습니다. 가로 위치도 함께 보존되며, Ctrl+휠을 굴리는 동안 페이지가 무너지지 않습니다.
- 요약↔채팅 경계 드래그가 커서를 그대로 따라옵니다. 종전에는 툴바까지 포함한 패널 전체를 기준으로 비율을 재서 포인터보다 약 13% 덜 움직였습니다.
- 긴 요약이 2분에 죽지 않습니다. 메인 프로세스를 보조해야 할 감시견이 오히려 먼저 발화하고 있었습니다.
내부 변경
- Ollama 컨텍스트 사다리는 "기본 워크플로는 8192 에 모인다"고 문서화돼 있었습니다. 실제 프롬프트 생성기와 청커로 재보니 한국어 40쪽 문서는 9,450토큰이 필요해 곧장 최대 창으로 올라갔습니다 — 기본 실행이 매번 최대 메모리(llama3.2 기준 +2.00GB)와 가장 넓은 타임아웃을 지불하고 있었습니다. 12288 단계를 추가했고, 이제 합성 문자열이 아니라 실제 파이프라인을 재는 테스트가 이 관계를 지킵니다.
- 입력이 컨텍스트 창을 넘으면 llama.cpp 는 프롬프트의 앞부분을 버리는데, 그 자리가 인용 규칙 블록입니다. 메인 프로세스는 v1.4.0 부터 이 사실을 보고하고 있었지만 렌더러에는 받을 경로가 없었습니다(브리지 타입에 필드조차 없었습니다). 해당 요약에는 이제 표식이 붙습니다.
- electron 44.1.1 → 44.2.0 — 렌더러가 IPC 메시지를 다량 전송한 뒤 발생하는 앱 크래시가 수정됐습니다. 토큰 스트리밍이 정확히 그 형태입니다.
새로 추가된 안전망
뮤테이션 테스트로 주입한 결함 89종 중 17종이 살아남는 것을 확인했습니다. 그중에는 세로 분할 기능 전체(복원·clamp·영속화·레이아웃 배선을 전부 상수로 바꿔도 스위트가 초록이었습니다), 한 파일만 들여다보던 접근성 배너 규칙(그 사각지대에 실제 위반이 숨어 있었습니다), 그리고 CI 에서 잡 조건 한 글자만 바꾸면 명령은 파일에 그대로 남겨둔 채 push/PR 게이트 전부를 조용히 건너뛰게 만들 수 있었던 자리가 있습니다.
인스톨러: 코드 서명이 없습니다. 첫 실행 시 Windows SmartScreen 경고가 뜨면 "추가 정보" → "실행"으로 진행하세요. 내려받은 파일은 SHA256SUMS-windows.txt 로 검증할 수 있습니다.
Windows installer SHA-256
7cb1ba5bc5dd6852da36901f2848620057dce9ea4d6164aa680bad0d75d7a1c6 Local-PDF-Analyzer-Setup-1.7.0.exe
v1.6.0 — Viewer zoom
The source viewer can now be zoomed. Until now the viewer only auto-fitted the page to the panel width, which made small-print papers and scanned documents hard to read.
New — viewer zoom
−/+buttons in the viewer header (25% steps), and click the percentage to return to fit-to-width.Ctrl+ mouse wheel over the page (10% steps).Ctrl+=/Ctrl+-/Ctrl+0while the viewer is open (ignored while typing in an input).- Range 50–300%. The page you were reading stays in place when the scale changes, and the level is remembered across restarts.
- Pages wider than the panel scroll horizontally.
Fixed
- At 100% the viewer could show a horizontal scrollbar and clip the right edge of the page. The fit width was measured before the vertical scrollbar appeared; the scrollbar space is now always reserved.
Tests
- 2510 unit tests / 120 files (was 2470 / 118). New pure-function tests for the zoom arithmetic and scroll anchoring, component tests for buttons, wheel, keys and scroll preservation, and a local-only Playwright smoke that opens the real viewer from a citation and checks canvas size, that
Ctrl+wheel does not zoom the whole app, and that 100% has no horizontal scroll.
🇰🇷 한국어
원문 뷰어를 확대·축소할 수 있습니다. 지금까지는 패널 너비에 맞춘 자동 맞춤만 있어 작은 글씨 논문이나 스캔 문서를 읽기 어려웠습니다.
새 기능 — 뷰어 확대·축소
- 뷰어 상단의
−/+버튼(25% 단위), 퍼센트 표시를 클릭하면 화면 맞춤으로 복귀. - 페이지 위에서
Ctrl+ 마우스 휠(10% 단위). - 뷰어가 열린 상태에서
Ctrl+=/Ctrl+-/Ctrl+0(입력창에 타이핑 중일 때는 무시). - 범위 50~300%. 배율을 바꿔도 보던 위치가 유지되고, 배율은 재시작 후에도 기억됩니다.
- 패널보다 넓어진 페이지는 가로로 스크롤합니다.
수정
- 100% 인데도 뷰어에 가로 스크롤바가 생기고 페이지 오른쪽이 잘리던 문제. 맞춤 폭이 세로 스크롤바가 생기기 전에 측정되던 것이 원인이며, 이제 스크롤바 자리를 항상 예약합니다.
테스트
- 단위 테스트 2510건 / 120파일(이전 2470 / 118). 배율 산술·스크롤 앵커 순수 함수 테스트, 버튼·휠·키·스크롤 보존 컴포넌트 테스트, 그리고 인용에서 실제 뷰어를 열어 canvas 크기·
Ctrl+휠이 앱 전체를 키우지 않는지·100% 에서 가로 스크롤이 없는지 확인하는 로컬 전용 Playwright 스모크를 추가했습니다.
Windows installer SHA-256
7e58f58224418be254713109297f7cf39c29a401adb16e6faf13963e8b3d67fa Local-PDF-Analyzer-Setup-1.6.0.exe
v1.5.1 — Screen reader fixes
Screen reader fixes from an accessibility re-audit.
Fixed
The status bar never announced anything. It shows whether the local model is running, stopped, or not installed — and that changes when you restart Ollama from settings or switch providers. None of it reached screen readers. It is now a live region.
Decorative icons were being read aloud. The check marks and warning symbols next to status text carry no information the text doesn't already say, but readers announced them anyway ("check mark, running"). They are now marked as decorative — in the status bar, the collection notice, the Ollama-not-ready message, the PDF viewer's error states, and the crash screen.
The summary region announced its own emoji. Its accessible name was "📎 Summary result"; it is now just "Summary result". The same string was also used as a fallback filename when exporting a PDF without an open document, which put the emoji in the file name — that now uses the plain text too.
Internal
The re-audit's larger finding was that the previous accessibility work had no regression net: removing the error banner's alert role — the highest-severity item that audit fixed — left every test green. New guards now derive what they check from the source (banner markup, emoji-bearing text) rather than listing it, so future banners and strings are covered automatically.
2,470 unit tests / 118 files.
🇰🇷 한국어
접근성 재감사에서 나온 스크린리더 관련 수정입니다.
수정
상태 표시줄이 아무것도 알리지 않았습니다. 로컬 모델이 실행 중인지·중지됐는지·미설치인지를 보여주는 자리이고, 설정에서 Ollama 를 재시작하거나 프로바이더를 바꾸면 값이 바뀝니다. 그 변화가 스크린리더에 전혀 전달되지 않았습니다. 이제 라이브 리전입니다.
장식용 아이콘이 낭독되고 있었습니다. 상태 문구 옆의 체크·경고 기호는 문구가 이미 말하는 것 외에 정보를 더하지 않는데, 리더는 그것까지 읽었습니다("체크 표시, 실행 중"). 이제 장식으로 표시됩니다 — 상태 표시줄, 컬렉션 안내, Ollama 미준비 메시지, PDF 뷰어 오류 화면, 그리고 앱 오류 화면.
요약 영역이 자기 이모지를 읽었습니다. 접근성 이름이 "📎 요약 결과" 였는데 이제 "요약 결과" 입니다. 같은 문구가 문서 없이 PDF 를 내보낼 때의 파일명 폴백으로도 쓰여 파일 이름에 이모지가 들어갔는데, 그쪽도 평문으로 바꿨습니다.
내부
재감사의 더 큰 발견은, 지난 접근성 작업에 회귀 넷이 없었다는 것입니다 — 그 감사가 고친 최고 심각도 항목인 에러 배너의 alert 역할을 지워도 모든 테스트가 초록이었습니다. 새 가드는 검사 대상을 나열하지 않고 소스에서 도출합니다(배너 마크업, 이모지가 든 문구). 앞으로 배너나 문구가 늘어도 자동으로 포함됩니다.
단위 테스트 2,470건 / 118파일.
Windows installer SHA-256
35b5376f11bf5143f88d1b223d6b732af98a97c2f6bd89ba8cfa6d06fba6a7ef Local-PDF-Analyzer-Setup-1.5.1.exe
v1.5.0 — Resizable summary and chat panes
You can now drag the divider between the summary and the chat to change how much room each one gets.
Why
A unified or comparison summary across several documents is written into the chat area, not the summary pane above it. Those are the longest outputs this app produces — and the two panes were locked at a fixed 50/50 split. Collapsing the summary didn't help either: it hid the Q&A along with it. So the longest result had the least room, and there was no way to change that.
What changed
A drag handle sits between the summary and the chat. Pull it up to give the chat more space, down to give the summary more. The position is remembered, so setting it once is enough.
It works the same way as the existing divider for the citation panel — drag with the mouse, or focus it and use the arrow keys (Home / End jump to the limits). Neither pane can be squeezed away entirely.
🇰🇷 한국어
이제 요약과 채팅 사이의 경계를 드래그해서 각 영역의 높이를 조절할 수 있습니다.
왜
여러 문서를 묶은 통합·비교 요약의 결과는 위쪽 요약 칸이 아니라 채팅 영역에 쓰입니다. 이 앱에서 가장 긴 출력인데, 두 영역이 고정 50:50 으로 묶여 있었습니다. 요약을 접어도 소용이 없었습니다 — Q&A까지 함께 숨겨졌기 때문입니다. 결국 가장 긴 결과가 가장 좁은 자리에 놓였고, 그걸 바꿀 방법이 없었습니다.
무엇이 달라졌나
요약과 채팅 사이에 드래그 핸들이 생겼습니다. 위로 끌면 채팅이, 아래로 끌면 요약이 넓어집니다. 조절한 위치는 기억되므로 한 번만 맞춰 두면 됩니다.
인용 패널의 기존 경계선과 같은 방식입니다 — 마우스로 끌거나, 포커스를 준 뒤 방향키로 조절합니다(Home / End 는 양 끝으로). 어느 쪽도 완전히 사라지지는 않습니다.
Windows installer SHA-256
dc2e5cb141c7623bd95056b066649b66377d261537e9f7272ce88c6de75ee459 Local-PDF-Analyzer-Setup-1.5.0.exe
v1.4.0 — Local models were only seeing part of the prompt
When the app talks to a local Ollama model, it never told the model how much context to use — so Ollama applied its 4096-token default and silently dropped the beginning of every prompt that exceeded it. No error, no warning: the response simply came back written from a partial view.
Fixed
Cross-document summaries were losing the instructions and the first document. The prompt for a unified or comparison summary is assembled as instructions, then each document's block. Measured: 35% of it was being discarded from the front — which meant the model often never saw what it was being asked to do, and never saw the first document at all, while the instructions it did receive told it to cite every claim. The result could cite a document it had not read. This path is now given the context window it needs.
Q&A lost the opening of the summary it was reasoning from. Only 2% was cut, but truncation removes the front of the prompt first, and that is where the summary excerpt sits. The question itself and recent turns survived at the end, so answers stayed on topic while quietly missing their opening context.
Summaries were running at the very edge of the window. A standard chunk occupied 96% of the 4096-token context once the model's own output was counted, leaving room for only a short answer. Longer summaries were being cut off.
A stale index build could clear the new document's search index. Switching documents while an index was being built could leave the new document marked as failed, which in turn stopped its session from being saved with an index.
A tab you closed could come back, and a document you had just opened could be silently replaced by a slower session restore finishing behind it.
Summaries made from part of a document now say so. A page-range summary, a custom-template summary that hit the length budget, and a collection member summarised from its opening pages all used to be stored exactly like a complete summary — and reopening the document showed them as such. They now carry a note in the text itself.
Copy confirmation could appear off-screen. When a banner was showing, the document view overflowed past the bottom of the window and took the confirmation with it. The layout no longer overflows.
Also
electron 44.1.1. Cross-document summary output no longer leaves page citations that jump to the wrong document. Deleting a session no longer risks leaving an unrecoverable phantom entry in the index.
Internal: 2,456 unit tests / 117 files. A four-agent audit of this release found five high-severity issues — four of them introduced by the fixes above — and all are addressed here.
🇰🇷 한국어
로컬 Ollama 모델을 쓸 때 앱이 컨텍스트 크기를 알려 주지 않아, Ollama 의 기본값 4096 토큰이 적용되고 그것을 넘는 프롬프트는 앞부분부터 조용히 버려지고 있었습니다. 에러도 경고도 없이, 일부만 보고 쓴 답이 그대로 돌아왔습니다.
수정
교차 문서 요약이 지시문과 첫 문서를 잃고 있었습니다. 통합·비교 요약의 프롬프트는 지시문 다음에 각 문서 블록 순서로 조립됩니다. 실측 결과 그 앞부분 35%가 버려지고 있었습니다 — 모델이 무엇을 하라는 것인지조차 못 본 채, 첫 문서도 못 본 채 요약했다는 뜻입니다. 그러면서 전달된 지시문은 "모든 근거에 출처를 표기하라"고 요구했기 때문에, 읽지도 않은 문서를 인용하는 일이 생길 수 있었습니다. 이제 이 경로가 필요한 만큼의 컨텍스트를 받습니다.
Q&A 가 근거로 삼는 요약의 앞부분을 잃고 있었습니다. 잘린 양은 2%뿐이지만 절단은 프롬프트 앞에서부터 일어나고, 거기가 요약 발췌가 놓이는 자리입니다. 질문과 최근 대화는 뒤에 있어 살아남았기 때문에 답변은 주제에 맞되 도입부 맥락만 조용히 빠져 있었습니다.
요약이 컨텍스트 한계 바로 앞에서 돌고 있었습니다. 기본 청크 하나가 모델의 출력까지 합치면 4096 토큰 창의 96%를 썼습니다 — 짧은 답변만 들어갈 여유였고, 조금만 길어지면 잘렸습니다.
낡은 색인 작업이 새 문서의 검색 인덱스를 지울 수 있었습니다. 색인 중 문서를 전환하면 새 문서가 실패 표시된 채 남고, 그 결과 인덱스 없이 세션이 저장되는 경우가 있었습니다.
닫은 탭이 되살아나거나, 방금 연 문서가 뒤늦게 끝난 세션 복원에 조용히 덮어써질 수 있었습니다.
문서의 일부만으로 만든 요약에 그 사실이 표시됩니다. 페이지 범위 요약, 길이 예산에 걸린 커스텀 템플릿 요약, 앞부분만 읽고 만든 컬렉션 멤버 요약 — 셋 다 완전한 요약과 똑같이 저장돼 재오픈하면 구분할 수 없었습니다. 이제 본문에 안내가 남습니다.
복사 확인이 화면 밖에 뜰 수 있었습니다. 배너가 떠 있으면 문서 뷰가 창 아래로 넘치면서 확인 알림도 함께 밀려났습니다. 레이아웃이 더 이상 넘치지 않습니다.
그 외
electron 44.1.1. 교차 문서 요약 결과에 남던 페이지 인용이 엉뚱한 문서로 점프하지 않습니다. 세션 삭제가 회수 불가능한 유령 항목을 남길 위험을 없앴습니다.
내부: 단위 테스트 2,456건 / 117파일. 이번 릴리즈를 대상으로 한 4-에이전트 감사에서 높은 심각도 5건이 나왔고 그중 4건이 위 수정들이 만든 것이었습니다 — 전부 이번에 함께 처리했습니다.
Windows installer SHA-256
fef60c0cd8e339945ef6b3f3d30677fffe4266dd3cabcfc4150dd4172f6b7577 Local-PDF-Analyzer-Setup-1.4.0.exe