Skip to content

Releases: mian196/fmhy-bookmarks-extension

v1.5.3

Choose a tag to compare

@github-actions github-actions released this 16 Oct 08:13

🌟 Release v1.5.3

Added

  • 🗂️ Selective Category-Wise Sync: Added an opt-in Category Filter section in Options (options.html) allowing users to choose exactly which top-level categories (e.g., Video, Privacy, Gaming, Audio) to mirror into their browser bookmarks bar. Eliminates bookmarks bar bloat by selectively syncing only desired categories (e.g., syncing ~2.2k bookmarks instead of the entire ~26k collection).
  • 🏷️ Dynamic Category Metadata & Link Counts: Dynamically extracts top-level categories and calculates exact bookmark counts per category during synchronization, displaying estimated counts and curated descriptions in the Options UI with live search filtering and quick "Select All" / "Deselect All" controls.
  • 🧹 Automatic Obsolete Category Pruning: Category selections integrate directly with the incremental diffing engine (bookmark_sync.js). Deselected categories are cleanly pruned from the browser's bookmarks bar on the next sync, while newly selected categories are added seamlessly.
  • 🔔 Delta-Based Sync Notifications: Updated desktop notifications and popup status banners to report actual bookmark changes (+X added, -Y removed) on subsequent sync runs instead of repeatedly displaying the full collection count (~26k), while retaining the total link count for initial syncs.
  • 📊 Bookmark Diff Statistics Tracking: Enhanced reconcileBookmarkSubtree and syncFMHYBookmarks in bookmark_sync.js to accurately aggregate active additions, deletions (including links within pruned obsolete folders), and title updates across all folder subtrees.

Fixed

  • 🔗 Browser URL Canonicalization Diff Churn: Implemented normalizeBookmarkUrl in bookmark_sync.js to normalize origin URLs (handling trailing slashes). This eliminates recurring false diff churn where 357 domain-root bookmarks were repeatedly reported as +357 added, -357 removed on every run due to browser bookmark storage automatically appending trailing slashes to origin URLs.
  • 📁 Empty Folder Pruning (Starred & Category Sync): Added recursive empty folder pruning (pruneEmptyFolders) in html_parser.js and bookmark_sync.js. Folders and subcategories with zero bookmark links in their subtree (such as empty subfolders like Anime Streaming Apps or empty section markers in the starred preset) are automatically excluded from the bookmark tree and pruned from existing browser bookmarks during synchronization.

v1.5.2

Choose a tag to compare

@github-actions github-actions released this 15 Oct 11:03

🌟 Release v1.5.2

Fixed

  • 📁 Strict FMHY Folder Matching: Updated root folder detection in bookmark_sync.js to strictly match exact uppercase FMHY titles, preventing accidental matching against other folders on the Bookmarks Bar.
  • 🔤 Unicode & Emoji Entity Decoding: Upgraded HTML entity parser in html_parser.js to use String.fromCodePoint() and added ' support, preventing corrupted characters for emojis and symbols above 0xFFFF.
  • 📑 Netscape <DL> Tag Parsing Flexibility: Updated bookmark parser regular expression to support <DL> tags with whitespace and HTML attributes (<dl\b[^>]*>), ensuring compatibility with custom fork exports and tools.
  • 🔗 Custom Fork Path & Repo Sanitization: Automatically strip .git suffixes from repository URLs and leading slashes from custom file paths in service_worker.js and options.js to prevent 404 errors.
  • 💬 Concurrent Sync Status Feedback: Fixed popup status banner to display a clear "Sync operation is already in progress." message instead of reporting 0 synced bookmarks when a sync is triggered while another is active.

Changed

  • 🔒 Local Native System Fonts & Store Compliance: Removed external Google Fonts CDN links from popup.html and options.html, fully relying on local native OS system fonts (-apple-system, Segoe UI, Roboto) for faster offline loads.

Performance

  • ⚡ Selective Settings Sync & Cache Preservation: Optimized saveSettings in options.js to only purge cache and trigger heavy ~3.3MB re-downloads when source repository, collection preset, or file path settings change, keeping theme and notification updates instant.

v1.5.1

Choose a tag to compare

@github-actions github-actions released this 21 Sep 01:25

🌟 Release v1.5.1

Added

  • 🎨 System Default Theme Option: Added support for a System Default (Auto) theme mode across the extension popup and options preferences. The extension now synchronizes automatically with the operating system's dark/light mode preference (prefers-color-scheme), with dynamic real-time theme changes and cross-page storage synchronization.
  • 🔑 Private Repository Support (GitHub PAT Authentication): Added optional GitHub Personal Access Token (PAT) authentication under the Personal Fork strategy. Enables automated synchronization from private repositories via GitHub's raw contents API and elevates rate limits to 5,000 requests/hour.

v1.5.0

Choose a tag to compare

@github-actions github-actions released this 02 Sep 06:32

🌟 Release v1.5.0

Added

  • ⚡ Incremental Diffing Sync Engine: Implemented tree reconciliation (reconcileBookmarkSubtree) in bookmark_sync.js. Reuses existing folder IDs and bookmark nodes to eliminate sync churn and prevent duplicate root folders across Chrome Sync and Firefox Sync devices.
  • 📂 Customizable Sync Target Location: Added a preference in Options (options.html) allowing users to choose where the FMHY directory is synced:
    • Bookmarks Bar: Mounts FMHY at position 0 directly on the main Bookmarks Bar.
    • Other Bookmarks / All Bookmarks: Places FMHY inside Other Bookmarks (populates Chrome "All Bookmarks" side panel).
    • Bookmarks Menu: Firefox-exclusive container that hides FMHY from toolbar/other bookmarks and keeps it in the Bookmark Manager / Library.

Fixed

  • 🔔 Dynamic Desktop Notification Target Labels: Updated service_worker.js to dynamically format notification location names (e.g., "Updated 26609 bookmarks in Other Bookmarks") matching the user's configured sync location.
  • ⏳ Options Re-location Progress Feedback: Added live progress status ("Moving FMHY folder to destination...") and explicit await synchronization in options.js to disable controls until background folder re-location completes.

Performance

  • 🚀 Parallel Subtree Reconciliation & Batch Processing: Concurrently processes subfolder trees per level and increased link creation batch sizes from 25 to 100 promises for faster initial setup and <1s routine re-syncs.

v1.4.4

Choose a tag to compare

@github-actions github-actions released this 27 Aug 11:09

🌟 Release v1.4.4

Fixed

  • 🐛 Starred-Only Startup Re-Sync Loop: Tracked lastPreset in storage.local to detect preset changes and prevent ETags/commit SHAs from cached full collection runs causing redundant bookmark tree rebuilds on Firefox startup.
  • 🧹 Options Cache Invalidation: Automatically clear HTTP caching headers when saving or resetting preferences in options.js.

v1.4.3

Choose a tag to compare

@github-actions github-actions released this 11 Aug 15:35

🌟 Release v1.4.3

Changed

  • 🦊 Firefox Fork Compatibility: Lowered Firefox strict_min_version from 142.0 to 115.0 in platform/firefox/manifest.json to support Firefox ESR 115/128 and Firefox engine forks (Waterfox, Zen Browser, Floorp, LibreWolf).

📜 Commit History

  • de3f798 release: bump version to v1.4.3
  • 75432d1 fix(firefox): lower strict_min_version to 115.0 for Waterfox and Firefox ESR compatibility
  • 465f7a7 docs: update Preset Selection link count to 25,000+ in README.md
  • 0a7c9e2 docs: clarify automated background sync vs manual Sync Now trigger in README.md

v1.4.2

Choose a tag to compare

@github-actions github-actions released this 30 Jul 14:35

🌟 Release v1.4.2

Fixed

  • 🐛 Duplicate FMHY Folder Prevention: Added concurrency mutex lock in service_worker.js and direct Bookmarks Bar folder auditing in bookmark_sync.js to prevent duplicate FMHY folder creation during simultaneous startup/installation events.

📜 Commit History

  • c3f1014 release: bump version to v1.4.2
  • 458ecb0 fix(sync): reuse existing root FMHY folder ID across syncs to prevent Chrome Sync duplicates
  • ed67dde fix(sync): prevent duplicate FMHY folder creation via concurrency mutex lock and direct Bookmarks Bar folder cleanup
  • fc26c17 docs: add CONTRIBUTING.md contributor guide and add status badges to README.md
  • 0f4b979 ci: add GitHub issue templates for Bug Reports and Feature Requests

v1.4.1

Choose a tag to compare

@github-actions github-actions released this 26 Jul 18:27

🌟 Release v1.4.1

Added

  • 🦊 Mozilla Add-on Store Integration: Added official Mozilla Add-on Store listing and 1-click store installation support.
  • 🏷️ Dynamic Popup Version Tag: Automatically fetches and displays extension version directly from manifest.json via api.runtime.getManifest().

📜 Commit History

  • 076294f docs: update CHANGELOG.md for dynamic popup version tag feature
  • 08a1612 feat(popup): dynamically render extension version from manifest.json
  • 7ae0b91 ci: pass release-note parameter to Firefox AMO release step
  • d624746 release: bump version to v1.4.1
  • 734ad30 docs: restrict CHANGELOG entries to extension codebase changes and exclude workflow/readme chores
  • 91a9d69 ci: add automated Firefox AMO release step to release_extension.yml using trmcnvn/firefox-addon@v1
  • 42c02db ci: add automated Firefox AMO release step to release_extension.yml workflow
  • b03beae docs: add Mozilla Add-on store link and banner to README, remove manual Firefox install method
  • 1081e2c docs: enforce local commit policy on every change and prohibit unrequested git push

v1.4.0

Choose a tag to compare

@github-actions github-actions released this 22 Jul 07:39

🌟 Release v1.4.0

Added

  • 🚀 GitHub ETag Rate-Limit Saver: Sends If-None-Match HTTP headers on API checks to handle 304 Not Modified responses. Saves user bandwidth and prevents hitting GitHub's 60 req/hr rate limit.
  • 🕒 Popup "Last Synced" Relative Timestamp: Displays a live, formatted relative timestamp (e.g. "Synced 2 mins ago", "Just now") in the extension popup dashboard.
  • 🖱️ Right-Click Action Context Menu: Added a "Sync FMHY Bookmarks Now" option when right-clicking the extension toolbar icon.
  • ⚙️ Automated CI/CD Validation Workflow: Created .github/workflows/validate_extension.yml to lint manifests and verify multi-platform build scripts on pull requests and branch pushes.
  • 📄 Developer Guidelines Documentation: Created GEMINI.md summarizing development guidelines, performance strategies, build architecture, and release procedures.
  • 🤖 CodeRabbit AI Code Review: Added .coderabbit.yaml and .github/pull_request_template.md for automated AI code reviews on Pull Requests.
  • ♊ Google Gemini AI Release Notes Generator: Added .github/scripts/gemini_release_notes.py and updated .github/workflows/release_extension.yml to automatically generate AI release notes using the free Google Gemini Flash API.

Changed

  • Standardized contextMenus permission across Chromium and Firefox builds.
  • Refactored service_worker.js background listeners to manage context menu interactions and storage timestamp updates.
  • Replaced remote GitHub raw icon URL in options page with bundled local src/assets/icons/fmhy.png asset.
  • Updated preset labels and descriptions in options page and README documentation to accurately reflect ~25,000+ total links (Full Collection) and clarified Starred-Only collection (Starred Only).

Fixed

  • Updated Firefox strict_min_version to 142.0 in platform/firefox/manifest.json to resolve Mozilla AMO validator warning regarding data_collection_permissions support on Firefox for Android.
  • Fixed Chrome desktop notification image loading error (Unable to download all specified images) in service_worker.js by correcting iconUrl path to assets/icons/icon-48.png and wrapping notification calls in Promise rejection handling.
  • Fixed notification setting bypass where manual syncs or installation events triggered desktop notifications even when notifyOnSync was disabled in extension settings.

📜 Commit History

  • 667973d ci: remove release-drafter action to prevent unwanted draft release creation
  • d09d84e docs: consolidate CHANGELOG.md for v1.4.0 final release
  • 0db18d5 docs: enforce post-release version immutability and add [Unreleased] section to CHANGELOG.md
  • 8175596 docs(options): replace Recommended with neutral Full Collection and Starred Only preset badges
  • 6738ade docs: refine starred collection preset description and update total link count to 25,000+
  • a66eb27 updated full bookmark count
  • 2cf9a02 ci: update .coderabbit.yaml with official schema.v2.json language server directive
  • 92d3ee8 fix(ci): update .coderabbit.yaml schema compliance
  • 914cf66 docs: update GEMINI.md for direct main branch development workflow
  • e8d0ad1 fix(ci): add robust CHANGELOG extraction fallback to gemini_release_notes script
  • e2b87a9 ci: integrate Gemini AI release notes generator into release_extension workflow
  • 57ae97a ci: add Gemini AI PR summarizer workflow and script
  • 2537e1b ci: add CodeRabbit AI config, PR template, and Release Drafter workflow
  • 17bcbb5 build: add safe file removal for zip packages in build.py
  • d9524b4 fix(notification): strictly honor notifyOnSync user setting in showNotification
  • ee59d64 fix(notification): fix notification iconUrl path and handle promise rejections
  • 72be162 docs: add GEMINI.md guidelines and update CHANGELOG.md
  • 990e1d7 Merge pull request #2 from mian196/dev
  • d6ec5c4 fix(firefox): bump strict_min_version to 142.0 for data_collection_permissions support
  • 2860460 docs: update CHANGELOG.md for v1.4.0 with local asset icon change
  • eebd9d4 fix(assets): replace raw github icon fetch with local fmhy.png asset
  • af0f944 ci: extract manifest version dynamically in validation workflow
  • 246cd5b feat(v1.4.0): implement ETag rate-limit saver, context menu, last-synced timestamp, CHANGELOG, and CI validation
  • c412fcd docs: update README installation instructions and remove project structure

v1.3.0

Choose a tag to compare

@github-actions github-actions released this 21 Jul 19:19

What's Changed

  • feat: implement platform-split build system for Chrome and Firefox
  • perf: implement parallel batch creation to speed up Firefox bookmark sync 20x

Full Changelog: v1.2.0...v1.3.0