Commit Graph

69 Commits

Author SHA1 Message Date
JonKazama-Hellion 7bacd1aaba Remove webinterface settings tab and configuration fields
Webinterface adds a third-party HTTP surface that contradicts the
DSGVO-by-default promise: it broadcasts every chat message including
filtered ChatTypes (privacy filter only covers DB writes), ships a
five-digit numeric auth code seeded from System.Random, binds on all
interfaces by default and sets cookies without security flags.

Hardening it for our threat model would land 500+ lines of code and
permanent maintenance for a feature very few users actually use. The
forks audience wants less surface, not more, so the entire feature is
being removed in a focused commit cluster. This first commit drops
the user-facing surface: settings tab class, tab registration and
the Configuration fields plus their UpdateFrom mirror.
2026-05-02 02:18:43 +02:00
JonKazama-Hellion 984b00ac0d Bundle the Hellion icon and Exo 2 font
Replace the inherited Chat 2 icon with the 1024×1024 Hellion logo
from the Hellion Online Media brand assets so the plugin shows
its real identity in Dalamud's plugin list. Bundle Exo 2 Variable
(SIL Open Font License 1.1) as an embedded resource together with
the OFL license text — keeps the license travelling with the font
inside the assembly as the OFL requires.

A new Configuration.UseHellionFont (default true) plus a checkbox
in the Privacy tab Appearance section route FontManager's regular
font handle through tk.AddFontFromMemory using the embedded TTF
bytes when the toggle is on; flipping it off falls back to the
existing AddFontWithFallback path so users who picked their own
system font under Settings → Fonts keep that choice.

Settings.cs now treats UseHellionFont as a font-changing setting
so toggling it triggers FontManager.BuildFonts on save without
needing a plugin reload.
2026-05-01 22:45:43 +02:00
JonKazama-Hellion 2401ea5864 Add retroactive cleanup for the existing database
The privacy filter only catches new messages. Two new MessageStore
methods support a one-shot retroactive sweep: GetMessageCountsByChatType
returns a (ChatType, count) snapshot so the UI can preview the impact,
and CleanupRetainOnly hard-deletes everything outside the supplied
allowlist and runs VACUUM to reclaim disk space.

The Privacy tab gains a new section with a refresh-preview button, a
keep/delete summary, a per-channel breakdown tree, and a Ctrl+Shift
confirm. The cleanup runs on a background thread so a 800+ MB VACUUM
does not block the settings UI; tabs are rebuilt via the framework
thread once the delete finishes. The cleanup deliberately uses the
saved Plugin.Config whitelist (not unsaved Mutable edits) so it stays
consistent with the prospective filter.
2026-05-01 18:34:28 +02:00
JonKazama-Hellion 1ad5cb3164 Add privacy filter with channel whitelist (GDPR Art. 25)
Introduce an opt-out channel whitelist so the database only persists
messages from channels the user explicitly wants to keep. Default
profile follows GDPR data minimization: own conversations only
(Tells, Party, FC, Linkshells, Cross-World Linkshells, Alliance,
ExtraChat). Public chat (Say/Shout/Yell), Novice Network, NPC
dialogue and system logs are dropped by default.

The filter sits inside MessageStore.UpsertMessage so any current or
future write path is covered uniformly. Configuration provides an
IsAllowedForStorage(ChatType) helper plus a "persist unknown
channels" failsafe (default off) for ChatTypes added by future
patches.

A new Privacy settings tab exposes the whitelist as grouped
checkboxes with three preset buttons (Privacy-First, Clear all,
Select all). Configuration version bumps from 6 to 7; existing
users are migrated to the Privacy-First defaults on first load
and notified once via the Dalamud notification manager.

Also includes a small .env.example and gitignore hygiene for local
development setup.
2026-05-01 18:20:09 +02:00
Infi efddaf30ad - API 13 2025-08-06 22:24:45 +02:00
Infi c9674b0646 - API 12
- Cleanup
2025-03-26 21:12:41 +01:00
Infi 97a8b96326 - Display name even if invalid channel is selected
- Add NoMove & NoResize to tabs
2024-12-14 14:54:20 +01:00
Infi 1a1995759a - Handle NBSP payloads
- Use ingame version of axis font
2024-11-21 08:34:24 +01:00
Infi 5e93732183 Add pre-testing version of the webinterface 2024-08-24 03:05:33 +02:00
Infi ed87430859 Also reload if enabled state changed 2024-07-25 15:43:33 +02:00
Infi e9790d355f Reload fonts for italic too 2024-07-25 15:40:35 +02:00
Infi 9c86ee788f fix 2024-07-25 14:03:08 +02:00
Infi 97654b1c53 Rewrite font handling, use dalamud font chooser 2024-07-23 20:46:38 +02:00
Dean Sheather e9ae8362f5 fix: fix sorting problems 2024-05-25 21:50:30 +10:00
Infi c91858183a Add changelog tab 2024-05-22 03:39:31 +02:00
Infi 6daa0bb9e2 Move preview config to its own tab 2024-05-21 10:53:37 +02:00
Infi fa41d22cb8 Only load emote list if the user has them activated 2024-05-11 05:13:31 +02:00
Infi b7286b8010 Implement emotes part 2 2024-05-09 19:09:36 +02:00
Infi bdb308ec02 Adjustable chat log position through sliders 2024-05-03 11:36:05 +02:00
Infi fd08ec20ef Split Display tab 2024-05-03 10:34:41 +02:00
Dean Sheather 477290ce7e Merge pull request #37
* chore: use threads for DB reading and writing
2024-05-02 14:42:50 +02:00
Infi c892577f54 Fix freezing popouts on saving the settings 2024-04-23 07:48:57 +02:00
Infi 77ceffceef Fix setting conditions not working 2024-04-22 05:10:24 +02:00
Infi c152f3dfde use ImRaii in settings window 2024-04-21 16:44:45 +02:00
Dean Sheather bb6c6b0034 feat: replace LiteDB with Sqlite
- Replace LiteDB database engine with Sqlite
  Note: old databases will not be deleted
- Message duplication detection improvements
- Tolerate parse errors in release builds, log them
2024-04-20 21:18:51 +10:00
Infi 51658c178c Disable window sounds and remove goto 2024-04-16 16:31:24 +02:00
Infi 795c8a6bb5 We don't respect the close key in any window 2024-04-11 16:12:57 +02:00
Dean Sheather 715fb7aa5b feat: add database details section to settings
Shows path to database (click to copy), database size, database log
size, message count.

Also adds a Ctrl+Shift button to wipe the database permanently. This is
performed by clearing the Messages collection and then rebuilding the
database, which brings it down to around 48KB on my machine (even with
many messages).
2024-04-11 21:13:04 +10:00
Infi 20edc10961 Switch to dalamud window system 2024-04-06 23:09:20 +02:00
Infi 882099affe Add ko-fi and switch crowdin project 2024-04-06 17:35:23 +02:00
Infi 1cafb45825 - net8
- Switch to new font api,
- Fix null ref on login
- Fix game freeze from chat link handler
2024-04-03 00:57:49 +02:00
Anna c9cd28589b refactor: update for api 9 2023-10-03 02:59:51 -04:00
Anna 32e7fbe586 chore: bump version to 1.18.8 2023-08-24 14:44:02 -04:00
Anna 79669f8314 fix: change signatures for 6.3 2023-01-11 14:08:20 -05:00
Anna cfa57ae11a feat: add ExtraChat channel filtering 2022-08-27 13:26:21 -04:00
Anna 744d9e1941 fix: rebuild fonts if glyphs changed 2022-06-01 17:16:51 -04:00
Anna 28545f1df6 feat: disable scrolling container windows 2022-02-19 07:20:38 -05:00
Anna 725c15ff2d fix: initialise in settings in ctor 2022-02-19 06:56:57 -05:00
Anna 4d3b961704 feat: add open config button 2022-02-19 06:56:38 -05:00
Anna 458f4a673c feat: add multi-client mode 2022-02-16 15:38:55 -05:00
Anna 1409da708d refactor: rework the command system 2022-02-15 16:57:15 -05:00
Anna a0525562ff chore: remove boms 2022-02-15 13:02:46 -05:00
Anna 9b7b84a58d feat: add chat database 2022-02-15 12:58:55 -05:00
Anna c09b21185b chore: remove comment 2022-02-10 20:12:33 -05:00
Anna 43a539a465 feat: turn settings tabs into a sidebar 2022-02-08 19:26:11 -05:00
Anna 4779ed0f48 feat: add language override 2022-02-08 15:23:00 -05:00
Anna f70b23a476 feat: add keybind mode options 2022-02-08 15:20:10 -05:00
Anna c034e66354 feat: add about tab 2022-02-06 23:33:11 -05:00
Anna 3daad60560 fix: update some things for localisation 2022-02-05 19:55:05 -05:00
Anna 2ef42aa211 feat: add symbol and japanese font sizes 2022-02-05 19:31:26 -05:00