Repository navigation
Readout 3.0.1
3.0.1
A correctness and privacy hardening release. No new features, no format
changes — everything below is a fix verified by the new release pipeline
(signed-product smoke tests, WebKit patch-engine tests, Core unit tests).
Fixed
- Document headings such as
## Noticeno longer inherit the reader's own
element styles or steal#fragmentlinks; interface ids now live under
ro-, andro--prefixed slugs gain anh-prefix (#3). - "Show Only Changes" keeps the reading position: hidden blocks no longer
break anchor capture/restore, and the resize compensator no longer
double-corrects filter reflow (#4). - Writes that land during the first load are replayed right after the
initial patch instead of being lost until the next write
(#6). - Resume prefers the excerpt match nearest the saved position when several
blocks look alike (#6). - Word count and reading time cover prose blocks only (code, math,
diagrams, raw HTML and front matter excluded);don'tcounts as one
word; timing is mixed-pace Latin 230 wpm + CJK 450 cpm
(#6). - Background update checks never pop up: they add a menu item that opens
the release page; the manual-check dialog shows plain-text notes with a
"View Full Release Notes" button (#6). - The Welcome window height follows the recent-file count instead of
jumping between two fixed sizes; change-rail buttons use localized
labels (#6). - Heading-id collision tests now also assert alignment-sensitive styles,
and the fragment test starts scrolled at the bottom
(#6).
Privacy
- The renderer Content-Security-Policy allows no
http:/https:sources
at all: background images, video posters, SVG images, image inputs,
table backgrounds andsrcsetcandidates can no longer phone home at
render time. Remote images load only on click, downloaded by the app
without cookies (15 s timeout, 20 MB cap,image/*only); video/audio
open externally; Quick Look never loads remotely
(#5). - The in-app privacy wording is now exact: nothing is fetched at render
time; the only automatic networking is the weekly update check, which
can be turned off in Settings (#5). - HTML sanitizing neutralizes navigation-capable tags (
metarefresh,
base,form,link) so they cannot survive parsing
(#7).
Process
- Releases now ship only the verified signed artifact: Release build +
ad-hoc sign + boot from/Applications+ smoke assertions + Quick Look
check, published as draft, re-download-verified, then undrafted
(#1). - Preflight gates every release on tag format, strict semver growth,
release notes,MARKETING_VERSION, tag-on-main, and green CI on the
tagged commit; manual dispatches only re-run existing tags
(#1, #2). - v1.0.0 (which crashed at launch inside dyld) carries a do-not-use
warning and no longer offers downloads.