docs: hold the documentation against the code

Every claim in the user-facing docs, checked against what the plugin
actually does after A2 to A5.

The two GDPR sections in PRIVACY.md describe features that only exist
again as of this cycle, so they now name the screens they live on and
say what the cleanup does with a channel this build does not recognise.
The export sentence promised a date range; the form offers an age in
days.

PRIVACY.md also named "Show emotes" in Settings as the way to stop the
one outbound call the plugin makes. That switch has had no control since
May, and a documented opt-out that only exists in the JSON is not an
opt-out, so the toggle is back in the chat tab. Both its strings were
already translated.

Dead paths: the README source tree still listed a file deleted in May,
docs/IPC.md cited a window that no longer exists, the first-run wizard
pointed at the same removed file, and the theme authoring guide sent
readers to a Themes tab that is called Appearance.

The changelog lost two double blank lines that were failing markdownlint
and holding preflight red. Preflight is green again.

Historical documents keep their old paths on purpose: the changelog and
the AI disclosure describe what was true when they were written.
This commit is contained in:
2026-08-18 21:51:15 +02:00
parent e24ea79302
commit 1987d745d8
7 changed files with 41 additions and 19 deletions
+16 -6
View File
@@ -95,7 +95,7 @@ does on your behalf.
incoming chat message contains a token matching one of the cached IDs. These are cached locally
(`emoteCache/`) and reused across sessions.
- **Cached:** Yes, in `emoteCache/`. A given emote is downloaded once per machine and reused.
- **How to opt out:** Turn off the **Show emotes** option in Settings → Chat. With it disabled, the
- **How to opt out:** Turn off the **Show emotes** option in Settings → Chat → Display modes. With it disabled, the
emote cache does not load and no requests to BetterTTV are made for the rest of the session.
- **BetterTTV's privacy policy:** <https://betterttv.com/privacy>
@@ -148,17 +148,27 @@ locally, those rights translate directly into plugin features:
### Right to access (Art. 15)
Use the export feature in the plugin settings. You can export to **Markdown**, **JSON** or **CSV**,
filtered by channel, date range or sender substring. The export goes through a Dalamud file dialog
and writes wherever you point it, on your machine.
Settings → Data & Privacy → Export. You can export to **Markdown**, **JSON** or **CSV**, narrowed
by channel group, by age in days, or by a substring of the sender's name. The export goes through a
Dalamud file dialog and writes wherever you point it, on your machine. It reads the database on its
own connection and writes to a temporary file first, so a run that is interrupted leaves the
previous export in place rather than a file that looks complete and is not.
### Right to erasure (Art. 17)
Two options:
1. **Targeted deletion.** The "retroactive cleanup" feature lets you apply your current whitelist to
the existing database. It shows a preview of what will be removed before you confirm with
1. **Targeted deletion.** Settings → Data & Privacy → Cleanup applies your current channel list to
the messages already stored. It shows a preview of what will be removed before you confirm with
Ctrl+Shift, runs in the background, and calls `VACUUM` afterwards to actually shrink the file.
Channels this build does not recognise -- ones a game patch added after the plugin was released
-- survive the cleanup while "save unknown channel types" is on, for the same reason they are
stored in the first place: so the decision about them stays yours.
The cleanup is only offered when it can mean something. With the privacy filter off, every
channel is stored and nothing contradicts your settings; with no channel selected, a cleanup
would delete everything, and that is what the clear button is for. Both cases say so instead of
offering a button that does not do what it looks like.
2. **Full deletion.** Close the game and delete the `pluginConfigs/HellionChat/` directory. The next
plugin start will produce a fresh, empty configuration.