1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
## 1.0.1 — 2026-11-09
A review that drove the page in Chromium found that the 1.0.0 file **did not run at all**. Every fix
below was reproduced before it was made.
- **P0: the console showed `SyntaxError: Identifier 'config' has already been declared`** — a
duplicated `const config = loadConfig()` inside `fetchModels`, so no handler was ever bound: no
extraction, no translation, no config. Both inline scripts are now syntax-checked at packaging time.
- **The API key was written to `localStorage`**, on an origin shared with the rest of the site, and the
**whole extracted document was stored** on every action. The key now lives in `sessionStorage`
(per tab, gone when the tab closes), old copies are scrubbed on load, and the document is never
persisted.
- Extraction joins pages with `hasEOL` instead of spaces, so paragraphs survive.
- Chunks split on word boundaries (they used to cut mid-word); the size is clamped to 500–5000.
- A 200 response that is not JSON, or a reply without a `response` field, now reports the real error
instead of writing the literal text `undefined` into the editor and logging success.
- Translate re-enables its button and hides the banner in a `finally`; `stopRequested` resets, so a
second run after Stop actually runs; a failed workflow step stops the workflow (the `break` used to
break only the `switch`).
- A PDF with no text layer says so, disables Download/Translate and keeps the previous text.
- `.PDF` (uppercase) is recognised as a PDF; the page count is shown after parsing.
- Mobile: the `@media (max-width: 600px)` block was unterminated and held no rules — fixed and filled
in; the Fullscreen button no longer overlaps the first line of the editor.
- Accessibility: the drop zone is a real `role="button"` with `tabindex="0"` and Enter/Space opens the
file picker; the file input stays in the accessibility tree; every visible label is associated and
the icon-only buttons carry `aria-label`s (39 controls, 0 unnamed).
## [1.0.0] - 2026-11-09
First packaged release: single-file browser app plus local PDF.js vendor assets.
|