Changelog
All notable changes to MindTab. Format follows Keep a Changelog; versioning follows Semantic Versioning.
The repo CHANGELOG.md tracks the complete release history.
1.5.1 — 2026-08-24
Changed
- GitLab mirror: added a README badge linking to the project's GitLab mirror.
- Development dependency: updated the indirect
postcssdependency from 8.5.15 to 8.5.25, including itsnanoidtransitive dependency update. - Release version: bumped the extension and npm package version to 1.5.1.
Development
- JavaScript type checking: added TypeScript JSDoc checking across the extension source with a new
npm run typecheckscript. - Typecheck configuration: added browser-extension ambient types, module scoping, and Node-compatible module resolution so type checking passes across the extension source.
- Continuous integration: CI now runs the JSDoc type check and uses Node.js 22 for lint and test jobs.
- Dependency maintenance: added weekly Dependabot updates for npm packages and GitHub Actions.
1.5.0 — 2026-06-24
Added
- Default card deletion: once a user has at least one custom card, delete buttons appear on default deck rows; removed defaults are stored in
mindtabDeletedDefaultssync storage and respected when picking the next card. - Storage meter: the Flashcard Manager shows custom-card storage usage against the 7,500-byte limit, with green, orange, and red warning states.
- Inline card editing: custom card rows can be edited in place with pre-filled question and answer fields, Save, and Cancel controls.
- Flashcard timing controls: Settings exposes sliders for “Show after” (5–60 minutes) and “Display for” (5–30 seconds), stored in sync storage.
- Per-site exceptions: users can disable Feed Sanitizer, Ad Blocker, Tone Translator, or Flashcards for specific domains.
- Feed Sanitizer platform support: added promoted-content selectors for Reddit, LinkedIn, TikTok, and Threads.
- Community filter lists: expanded target domains and controller merging so community selectors apply to the new platforms.
- Popup daily stats: the popup shows the number of elements hidden today; the count resets at midnight.
- Tone improvement suggestions: writing suggestions now include an italic tip explaining how to fix the issue.
- Ad Blocker keyword editor: Settings now supports custom malicious text keywords and URL patterns, merged with bundled lists at runtime.
- Ad Blocker allowlist: “Trust this site” adds the current domain to an allowlist managed in Settings.
- Onboarding page: new installations open a single-page guide covering all four features, shortcuts, and tips.
- Stats dashboard: new
ui/stats.htmlpage shows hidden elements, trusted sites, card totals, due cards, reviewed cards, ease factor, and retention status. - Card search and filter: the Flashcard Manager filters custom and default cards while preserving source indices for editing and deletion.
- Anki-compatible CSV export: added a
Front,BackCSV export with escaping for quotation marks.
Changed
- Updated the default card subtitle to explain custom-card syncing and default-card removal.
- Refactored
makeCardItem()to accept delete and edit options and group row actions. - Placed Stats and Settings side by side beneath Manage Flashcards in the popup.
- Relabelled the JSON export button to “Export JSON”.
1.4.0 — 2026-06-18
Added
- Alt+Shift+T shortcut: reopens and re-runs the Tone Translator panel on demand.
- SRS progress in export/import: flashcard exports now include spaced-repetition state as
{ version: 1, cards, srs }; legacy plain-array exports remain supported.
Fixed
- Malicious iframe URLs: ad-blocker URL checks now inspect iframe
srcvalues as well as anchorhrefvalues. - Filter fetch timeout: filter-list updates now abort after 10 seconds instead of stalling the service worker.
- Custom card storage overflow: adding and importing cards now checks serialized size before writing and reports a clear error.
Tests
- Added ad-blocker tests for URL and text matches, clean elements, empty inputs, truncation, and iframe sources.
- Added filter integrity tests for threshold boundaries and empty-cache behavior.
- Extended flashcard tests for stable
cardKeyhandling of special characters and emoji. - Aligned the
pickCardPuretest helper with the implementation and pinned randomness in tests.
1.3.0 — 2026-06-05
Fixed
- cardKey collision: replaced question truncation with a djb2 hash of the full question string.
- SRS storage quota: moved SRS state from
chrome.storage.synctochrome.storage.local, with automatic migration. - Silent storage errors: storage operations now catch and log failures instead of silently breaking SRS tracking.
- Flashcard focus trap: the flashcard dialog now traps focus and dismisses with Escape.
Added
- Flashcard keyboard navigation: Space/Enter reveals a card, 1 marks “Got it”, and 2 skips it.
- Flashcard light theme: the widget follows the extension theme and updates without a page reload.
Changed
- Persisted the Writing Assistant collapse state in
chrome.storage.local. - Extracted the shared
DEFAULTSconstant for the background service worker and popup.
1.2.1 — 2026-05-12
Fixed
- Added
aria-live="polite"to address issue #14.
Changed
- Updated the extension name in documentation to match the store listing.
- Bumped the version to 1.2.1.
1.2.0 — 2026-05-16
Added
- Spaced repetition (SM-2): flashcards now prioritize due cards and track progress from “Got it”, “Skip”, and timeout results.
- Flashcard export/import: custom cards can be shared as validated JSON decks.
- Writing check controls: each Tone Translator check and the long-sentence threshold can be configured.
- Manual theme override: Settings provides System, Light, and Dark options.
- Custom filter list sources: Settings can add and remove the three filter-list URLs.
- CodeQL security scanning: added automated JavaScript SAST on every PR and weekly.
- CONTRIBUTING.md: added architecture, local setup, style, security, and PR guidance.
- Vitest test suite: added 43 unit tests across tone analysis, filter parsing, and CORS validation.
Changed
- Added Escape and Alt+Shift+F keyboard shortcuts.
- Improved ARIA roles and attributes for the Tone Translator and flashcard overlay.
- Added a 750 ms grammar-server cooldown after analysis.
- Rejected filter-list updates that drop selector counts by more than 30%.
- Updated branding credits to AetherAssembly across UI pages.
- Bumped the version to 1.2.0.
1.1.2 — 2026-05-12
Added
- Dedicated Settings page: settings moved to
ui/settings.html. - Test Connection: verifies the grammar server health endpoint and reports latency.
- Grammar server status: the Writing Assistant shows connected, unavailable, or not-configured states with retry feedback.
Fixed
- URL sanitization: YouTube host checks now use exact and suffix matching instead of
includes(). - CORS validation: the grammar proxy now validates extension and localhost origins without a configurable wildcard bypass.
Changed
- Updated manifest icons to PNG for broader Safari Web Extension compatibility.
- Bumped the version to 1.1.2.
1.1.0 — 2026-05-12
Added
- Badge counter: the toolbar icon shows the number of elements blocked on the current page.
- Light mode: popup and Flashcard Manager support light system themes.
- Shared
utils.js: centralized theescHtmlutility. - Flashcard selection is now random while avoiding the last-shown card.
Fixed
- Added Firefox MV3 background-script compatibility.
- Fixed the readability score parameter mismatch that produced
NaN. - Corrected YouTube Shorts selectors and reran feed sanitization after SPA navigation.
- Improved feed-sanitizer parent traversal for link-based selectors.
- Preserved cached filters when all filter-list sources fail.
Security
- Replaced dynamic
innerHTMLandinsertAdjacentHTMLusage with explicit DOM methods.
Compatibility
- Added Firefox's required
data_collection_permissionssetting. - Added background scripts alongside the service worker for cross-browser support.
1.0.0 — 2025-05-09
Added
- Feed Sanitizer: removes YouTube Shorts, Instagram Reels, and Facebook Reels with community-maintained filter lists.
- Malicious Ad Blocker: scans for scam ad patterns, fake alerts, and phishing links.
- Writing Assistant: provides tone detection, passive voice, weak-word, long-sentence, filler-word, repeated-word, readability, and live text statistics checks.
- Flash Learning: configurable flashcard overlay with 30 default general-knowledge cards.
- Flashcard Manager: full-page editor for custom and default cards.
- Popup UI: four independent feature toggles and grammar-server configuration.
- Cross-browser support: Manifest V3 compatibility for Firefox, Chrome, and Safari via Xcode conversion.
- README documentation in English, Spanish, French, German, and Portuguese.