536e0771a4
Security fixes, widget event system, local favicons, i18n completeness, backdrop-filter fallback, code quality improvements. See CHANGELOG.md.
218 lines
9.3 KiB
Markdown
218 lines
9.3 KiB
Markdown
# ⬡ Hellion Dashboard — Changelog
|
|
|
|
All notable changes per version. Format based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|
|
|
> Changelog entries can be written in English or German. English preferred for consistency.
|
|
|
|
---
|
|
|
|
### v2.0.1 — 16.04.2026
|
|
|
|
#### Security
|
|
|
|
- **Background URL validation** — Only `blob:` and `data:image/` protocols allowed in CSS `backgroundImage` (prevents CSS injection via manipulated storage)
|
|
- **Import URL validation** — `javascript:`, `data:`, and other unsafe protocols are blocked during JSON import
|
|
- **Immutable import mapping** — Imported boards, bookmarks, and notes are sanitized with explicit field selection and string length limits
|
|
|
|
#### Fixed
|
|
|
|
- **Widget minimize race condition** — Replaced `setTimeout` with `transitionend` event; `openWidget()` during animation no longer causes display glitch
|
|
- **Notes import mutation** — Import now uses `Notes.init()` instead of directly setting `Notes._notes`
|
|
- **Complete i18n coverage** — 5 header button tooltips and 3 settings button texts now have `data-i18n` attributes (10 new translation keys)
|
|
|
|
#### Changed
|
|
|
|
- **Widget event system** — `WidgetManager` now dispatches `widget:close`, `widget:minimize`, `widget:open` CustomEvents via `EventTarget`. Calculator, Timer, and ImageRef use `WidgetManager.on()` instead of monkey-patching
|
|
- **Local favicon icons** — Replaced Google Favicons API with local colored letter icons (deterministic hue per title). Zero external network requests, Brave Shields compatible
|
|
- **backdrop-filter fallback** — `@supports not (backdrop-filter)` block with `--bg-solid-fallback` per theme for Brave Shields compatibility
|
|
- **Clock interval cleanup** — `setInterval` ID stored in variable
|
|
|
|
---
|
|
|
|
### v2.0.0 — 22.03.2026
|
|
|
|
#### New Features
|
|
|
|
- **Internationalization (i18n)** — Full DE/EN language support with runtime switching
|
|
- Language setting in Settings panel: German, English or Auto-detect (browser language)
|
|
- `i18n.js` module with ~220+ string keys, `t(key, vars?)` helper and `data-i18n` HTML attributes
|
|
- `_locales/de/` and `_locales/en/` for manifest-level i18n (`__MSG_extName__`, `__MSG_extDesc__`)
|
|
- `<html lang>` attribute updates dynamically when language changes
|
|
- All modules migrated: dialog, boards, onboarding, notes, calculator, timer, image-ref, data, bookmark-import, storage, settings, widgets, app
|
|
|
|
#### Technical
|
|
|
|
- New script load order: `storage → state → i18n → dialog → ...`
|
|
- `applyLanguage()` scans DOM for `data-i18n`, `data-i18n-placeholder`, `data-i18n-title`
|
|
- Onboarding slides use i18n keys instead of hardcoded text (rendered at display time)
|
|
- Clock day/month names via i18n keys instead of hardcoded arrays
|
|
- `resolveLang()` helper for DRY language resolution (auto → browser detect)
|
|
|
|
---
|
|
|
|
### v1.10.0 — 22.03.2026
|
|
|
|
#### Themes
|
|
|
|
- **3 new themes** — Satisfactory (Industrial Desert), Avorion (Deep Void) and Hellion Stealth (Tactical Recon)
|
|
- Now **11 themes** total, each with its own accent colors, overlays and font styles
|
|
- Satisfactory has increased board alpha (0.65) and stronger blur (12px), a deliberate choice for better readability on a visually busy background
|
|
- Avorion uses a radial gradient overlay so the ship in the center of the image stays visible
|
|
- Hellion Stealth is the only theme with a `border-left` hover effect in tactical scanner style
|
|
|
|
---
|
|
|
|
### v1.9.0 — 22.03.2026
|
|
|
|
#### New Features
|
|
|
|
- **Onboarding reworked** — 7 slides instead of 6, new slide explains the widget toolbar with all widgets
|
|
- **Gaming Starter Board** — Opt-in during onboarding: pre-filled board with links to Satisfactory, Factorio, Avorion, Minecraft and Star Citizen
|
|
- **Settings redesign** — Settings panel slimmed down to 3 sections (Widgets, Data & Help, Danger Zone)
|
|
- **Appearance modal** — Theme picker and all display settings combined in one modal instead of spread across the panel
|
|
- **Fixed about footer** — Developer info, license and links are now permanently visible at the bottom of the settings panel
|
|
- **Project documentation** — `docs/architecture.md`, `docs/widget-schema.md` and `docs/patterns.md` for anyone who wants to fork or contribute
|
|
|
|
#### Improvements
|
|
|
|
- All labels and descriptions unified in German, no more language mix
|
|
- Dropdown options use theme colors instead of white browser default
|
|
- Firefox update URL for store publishing added to `manifest.firefox.json`
|
|
|
|
---
|
|
|
|
### v1.8.0 — 21.03.2026
|
|
|
|
#### New Features
|
|
|
|
- **Image Reference Widget** — Drop images as floating reference widgets (max. 3 at once)
|
|
- Canvas API WebP conversion for smaller file sizes, all local in the browser
|
|
- Two-layer storage: metadata persistent, image data session-only (sessionStorage)
|
|
- Load images via drag & drop or file dialog
|
|
- Labels editable with debounced save
|
|
- Feature is off by default, enable via Settings → Widgets
|
|
|
|
---
|
|
|
|
### v1.7.1 — 21.03.2026
|
|
|
|
#### Improvements
|
|
|
|
- **Timer mute toggle** — Alarm can be muted via icon button without restarting the timer
|
|
- Alarm volume reduced to 7%, 30% was a bit much
|
|
- Mute state is saved and persists on next open
|
|
|
|
---
|
|
|
|
### v1.7.0 — 21.03.2026
|
|
|
|
#### New Features
|
|
|
|
- **Calculator widget** — Shunting-yard parser (no `eval()`), history of last calculations, keyboard input
|
|
- **Timer/countdown widget** — Saveable presets, Web Audio API alarm, tab title blinks when timer completes
|
|
- **Widget z-index fix** — Widgets now correctly render above the search bar (z-index 100+)
|
|
|
|
---
|
|
|
|
### v1.6.0 — 21.03.2026
|
|
|
|
#### New Features
|
|
|
|
- **Widget system** — Draggable, resizable floating panels managed by WidgetManager
|
|
- **Notes & checklists** — Multi-instance widgets (max. 5) with text and checklist template, Markdown support, export as `.md`
|
|
- **Notebook sidebar** — All notes at a glance, quick access via toolbar
|
|
- **Widget toolbar** — Floating buttons on the side for quick access to all widgets, position (left/right) configurable in Settings
|
|
- **Sticky note migration** — Old sticky notes are automatically migrated to the new widget system on first launch
|
|
|
|
#### Improvements
|
|
|
|
- Ko-fi support link added to the about section and `FUNDING.yml`
|
|
|
|
---
|
|
|
|
### v1.5.2 — 21.03.2026
|
|
|
|
#### New Features
|
|
|
|
- **Custom dialog system** — Native `confirm()` and `alert()` replaced with frosted glass dialogs (`dialog.js`)
|
|
- **Onboarding** — 6-step welcome flow on first launch with explanations for boards, themes, features and a backup reminder
|
|
- **Backup reminder** — Reminds every 7 days to run a JSON export and warns about data loss on browser reset
|
|
- **Theme modal** — Theme picker moved to its own modal with its own header button
|
|
- **Accordion settings** — All settings sections collapsible (About and Danger Zone closed by default)
|
|
|
|
#### Improvements
|
|
|
|
- Fonts migrated from Google Fonts API to local WOFF2 files (GDPR, ~388 KB saved)
|
|
- `innerHTML` fully replaced with `createElement` and `createElementNS` (XSS protection)
|
|
- SVG icons now via `createElementNS` instead of inline HTML
|
|
- Drag & drop uses CSS classes instead of inline styles (`.drag-ghost`, `.drag-over`, `.dragging-source`)
|
|
- Search bar toggle moved from DATA to BEHAVIOR section
|
|
- Unimplemented "Quick Save" UI element removed
|
|
- Onboarding repeatable via Settings → Help
|
|
|
|
#### Opera / Opera GX
|
|
|
|
- `manifest.opera.json` added (MV3 with workaround scripts)
|
|
- `src/js/opera/background.js` monitors tabs and redirects away from Opera Speed Dial
|
|
- `src/js/opera/redirect.js` fires as content script at `document_start`
|
|
|
|
#### Firefox
|
|
|
|
- `manifest.firefox.json` migrated to Manifest V3
|
|
- `browser_specific_settings` with Gecko ID and `data_collection_permissions` added
|
|
|
|
#### Build & CI
|
|
|
|
- GitHub Actions release now builds 3 ZIP packages (Chrome, Firefox, Opera)
|
|
- Quality check validates all 3 manifests and the Opera folder
|
|
|
|
---
|
|
|
|
### v1.2.0 — 20.03.2026
|
|
|
|
- Project structure split into `src/js/`, `src/css/` and `assets/`
|
|
- JS split into 10 modules (storage, state, themes, boards, drag, settings, search, sticky, data, app)
|
|
- Firefox compatibility (`manifest.firefox.json`, Manifest V3)
|
|
- Vivaldi confirmed compatible
|
|
- Theme image paths fixed (settings preview)
|
|
- URL validation on bookmark creation
|
|
- JSON import validates board and bookmark structure
|
|
- XSS protection: `createElement` instead of `innerHTML` for bookmarks
|
|
- Storage quota check with warning at 8 MB+
|
|
- Event delegation for bookmark clicks (performance)
|
|
- Responsive design (tablet 768px, smartphone 480px)
|
|
- Sticky note header collision fixed
|
|
- FileReader error handling for background image upload
|
|
- GitHub Actions: security scan, code quality, release automation
|
|
- 3 themes replaced: Astronaut → Nebula, Cosmic Clock → Crescent, Void Mage → Event Horizon
|
|
- All theme images checked and documented for license compliance
|
|
- LICENSE (CC BY-NC-SA 4.0), SECURITY.md and DISCLAIMER.md added
|
|
|
|
---
|
|
|
|
### v1.1.0 — 20.03.2026
|
|
|
|
- 5 new themes (Merchantman, Julia & Jin, SC Sunset, Hellion HUD, Hellion Energy)
|
|
- Search bar (Google, DuckDuckGo, Bing)
|
|
- Sticky note widget
|
|
- JSON export & import
|
|
- Date next to the clock
|
|
- About / imprint in settings
|
|
- Board blur function (privacy mode)
|
|
- Drag & drop migrated to Pointer Events API
|
|
- Opera / Opera GX compatibility
|
|
|
|
---
|
|
|
|
### v1.0.0 — 20.03.2026
|
|
|
|
- Initial release
|
|
- Boards & bookmarks with drag & drop
|
|
- 3 themes (Nebula, Crescent, Event Horizon)
|
|
- HTML import (browser bookmarks)
|
|
- Settings panel
|
|
|
|
---
|
|
|
|
**Hellion NewTab** — [Hellion Online Media](https://hellion-media.de) — JonKazama-Hellion
|