# GROOVY BOOKMARK MANAGER — COMPLETE CHANGELOG

Current version: **1.0.34**

This cumulative changelog covers the product's development from the first working version of Simple Dial to **Groovy Bookmark Manager Free / PRO**.

Changes are grouped by feature, rather than by dozens of intermediate builds. The latest search and data-storage fixes are included in the source code and the local **DEV PRO 1.0.34** build. Customer archives and store packages have not yet been rebuilt with these fixes.

## HIGHLIGHTS ACROSS THE PRODUCT'S HISTORY

- **A visual collection:** website previews, custom covers, folder mosaics, and multiple pinned sections on Home.
- **Bookmark and folder search:** standard global search, search through linked notes, and optional semantic search with page-content indexing.
- **Real bookmark management:** editing, group selection, moving, reordering, and changing folder hierarchy.
- **Smart tiles:** saved search queries, the first page of accessible PDFs, and YouTube and VK Video with a compact player.
- **Notes next to their source:** movable colored sticky notes, tasks, bookmark attachments, and a searchable notes catalog.
- **Pomodoro:** set time directly on the dial, receive background alerts, see the timer on the extension icon, and link it to a note.
- **Two types of folder protection:** a lock on an existing browser folder or a separate encrypted Private Vault, with a pattern or a text password.
- **Protection against accidental deletion:** a deletion password, confirmations, and a recoverable trash folder for ordinary bookmark folders.
- **Workspace customization:** light and dark themes, Glass, background images, Aurora, and live grid controls without a Save button.
- **Free and PRO on one shared core:** browser-specific editions, license activation, installation guides, and delivery infrastructure.

## First release — July 31, 2026

The first version was a compact visual dial for existing browser bookmarks. It opened from the extension icon, read the browser's actual bookmark tree, and did not replace New Tab unless a separate edition was installed.

The original feature set included:

- reading actual bookmarks through the browser Bookmarks API;
- choosing a folder from a dropdown;
- displaying bookmarks as tiles;
- showing folders and subfolders;
- searching saved sites;
- configuring the number of tiles and the Show more button;
- a light Material-style interface;
- separate browser builds.

---

## NEW NAME, ONE SHARED PRODUCT

- Renamed **Groovy Simple Dial** to **Groovy Bookmark Manager**.
- Kept the simplicity of a speed dial while expanding it into a visual bookmark workspace.
- Free and PRO share the same core and the same basic browser-bookmark management features.
- The interface explicitly identifies the **FREE**, **TRIAL**, or **PRO** edition.
- Updated the product name, logo, store materials, landing page, guides, and archives.
- Added a revised brand mark with an extended bookmark ribbon.
- Refined the wordmark hierarchy: larger `GROOVY`, a more compact `Bookmark Manager`, and a separate edition badge.

## YOUR EXISTING BROWSER BOOKMARKS

- Groovy works with the collection already saved in your browser.
- No import into a separate cloud service is required.
- Displays titles, URLs, domains, folders, subfolders, and full folder paths.
- Changes to order and structure are applied to the browser's actual bookmark tree.
- Add a new bookmark directly to a selected folder.
- Edit an existing bookmark's title.
- Move a single bookmark to another folder.
- Select multiple bookmarks and move them together.
- Delete individual bookmarks or groups after confirmation.
- Bulk deletion requires a deliberate slider confirmation.
- Bookmark access permission is requested explicitly.
- Reset consent in Settings to view the access explanation again.

## FOLDERS, HIERARCHY, AND HOME

- The folder dropdown displays the complete hierarchy.
- Nested folders show their full paths.
- The list shows the number of accessible bookmarks.
- Added quick folder search.
- Groovy remembers the last folder you opened.
- Set any ordinary folder as Home.
- Pin multiple folders to Home and display them as sections, one below another.
- Hide the redundant navigation panel when only one folder is pinned.
- Show compact navigation between sections when several folders are pinned.
- Place folder cards at the beginning or end of the grid.
- Turn subfolder cards off.
- Folder tiles display mosaics made from the first available website previews inside them.
- Added distinct states for locked and empty folders.
- Prevent unsupported deletion of the browser's system folders.

## DRAG AND DROP AND ORGANIZATION

- Drag tiles to change the actual order of browser bookmarks.
- A blue insertion line marks the position before or after a neighboring tile.
- Drop a bookmark directly onto a subfolder tile.
- Move a selected group of bookmarks into a subfolder with one drag.
- Reorder folders at the same level.
- Nest a folder inside another by dropping it into the center of the destination tile.
- Use the edges of a folder tile to insert before or after it.
- Protected folders and Private Vaults reject accidental drops.
- Moving folders between levels also works in sorted views. Manual bookmark-tile reordering is available in browser-order mode, outside search.
- Right-click a folder to open its context menu at the pointer.
- The same menu is available on folder cards and in the folder dropdown.

## GROOVY TRASH — RECOVERABLE FOLDER DELETION

- Deleting an ordinary folder no longer destroys it immediately.
- The entire folder moves to **Groovy Trash**, including its bookmarks and subfolders.
- Its original parent folder and position are recorded.
- Trash contents are excluded from `All bookmarks`.
- Trash contents are excluded from ordinary search and AI actions.
- Restore a trashed folder through its right-click menu.
- Restoration returns the folder to its previous location and attempts to restore its original order.
- Trash provides a separate, irreversible Delete permanently action.
- Groovy prevents deletion of the trash folder itself and the browser's system root folders.
- Moving a folder to Trash preserves local previews and tile customization.

## FAST AND SEMANTIC SEARCH

- Standard search matches titles, URLs, domains, and folder paths.
- The main search field now finds **folders themselves** by name and full path, not just bookmarks inside them.
- Empty folders also appear in results.
- Folders with identical names appear separately, with paths to distinguish their locations.
- Folder search works regardless of the current folder, pinned Home, or subfolder-card visibility setting.
- A matching locked folder appears with a lock and prompts for its password or pattern when opened.
- Names of nested folders and bookmarks inside a locked folder remain hidden from results until it is unlocked.
- Opening a folder result clears the search query and navigates to that folder's contents.
- The search counter reports matching folders separately from bookmarks. The empty state no longer appears when folder results exist.
- Search covers the entire accessible collection, not just the currently displayed portion of the grid.
- Results update without reloading the page.
- Search includes the text of linked notes.
- Added optional **Semantic Search** through OpenRouter.
- Semantic search can find a page even when the query does not match its title.
- Index page content for a selected folder or the entire collection.
- Indexing starts only when requested by the user.
- The interface shows progress, successful items, and unavailable pages.
- AI features do not run automatically in the background.

## AI ORGANIZATION

- Added suggestions for suitable existing folders for selected bookmarks.
- Groovy shows each suggestion before moving a bookmark.
- Keep a bookmark where it is or explicitly approve the move.
- AI does not reorganize the library without permission.
- Supports your own OpenRouter API key: Bring Your Own Key, or BYOK.
- Choose separate models for organization and semantic search.
- The OpenRouter key is stored locally.
- Added a license-protected Groovy AI gateway with PRO entitlement checks and fair-use limits.
- Settings explain which data is sent when you run an AI action.

## AUTOMATIC WEBSITE PREVIEWS

- Display websites as visual page previews, not just letter tiles.
- Free includes the first **20 automatic previews**.
- PRO enables automatic previews across the collection.
- Added preview refresh.
- Added local caching to avoid downloading the same image on every visit.
- Restore the cache before initially displaying the grid to reduce tile flicker.
- Cache startup has a time limit so loading images cannot hold up the workspace indefinitely.
- Decode images before displaying them.
- Choose a screenshot API provider.
- PRO can connect to a compatible custom Preview API.
- Choose between an exact page URL and a domain-only preview.
- In exact-page mode, the provider receives the saved URL's path and parameters, not just the site's home page. This is explained when previews are enabled.
- Disable the automatic image for an individual tile.
- Save the visible page as a local preview through the extension menu.
- A local snapshot provides an alternative when automatic capture shows CAPTCHA, a sign-in page, or the wrong content.
- Remove a saved snapshot to return the tile to its standard state.
- Folder previews combine several of the first websites inside the folder.
- Placeholders reserve the correct preview height without disrupting the grid while images load.

## CUSTOM TILE APPEARANCE

- Change the displayed tile title.
- Choose a tile color.
- Use a short letter label.
- Upload a custom cover image.
- Custom covers are available in both Free and PRO.
- Tile customization is saved locally and applied after reloading.
- Hide an unsuitable automatic preview for one bookmark only.
- Turn off tile borders.

## SMART TILE TYPES

- Recognize saved searches from Google, Yandex, DuckDuckGo, Bing, and supported Perplexity URLs.
- Show a branded search tile and the saved query instead of a CAPTCHA screenshot.
- Long queries wrap and remain readable.
- PDF bookmarks use a dedicated document tile.
- Extract first-page text from an accessible PDF.
- A scanned PDF can display a rendered image of its first page.
- Local PDF handling explains the need for `file://` access permission.
- Use a safe PDF fallback when CORS blocks access, without flooding the interface with errors.
- Check PDF access before fetching. If the file is deleted, unavailable, or blocked by browser permissions, Groovy cannot display its contents or recover the document from its bookmark.
- Recognize YouTube video links, including supported Shorts URLs.
- VK Video has a dedicated video state and a play button.
- Ordinary VK pages are not turned into video players without a video identifier.

## BUILT-IN VIDEO PLAYER

- Supported YouTube and VK Video bookmarks open in a compact modal player.
- Move the player around the screen.
- Resize it manually.
- Minimize the player and continue working with bookmarks.
- The mini player stays inside the Groovy window.
- Removed the duplicate video title above the embedded player.
- Made controls more compact to avoid covering important video controls.
- Pass the current playback position when opening the video on YouTube.
- Stop embedded playback after handing the video over to YouTube.
- Open the original page when the source does not allow embedding.
- Added handling for YouTube player configuration errors and a safe fallback.

## WEB SEARCH ABOVE YOUR BOOKMARKS

- Enable a separate web search bar above the folder controls.
- Supports Google, Yandex, DuckDuckGo, Bing, Perplexity, and dedicated AI-search options.
- Add a custom search URL template using `{query}`.
- Voice input is available where supported by the browser.
- The search-engine selector matches the rest of the interface.
- Adjust the spacing above and below web search separately.
- Turn the web search bar off entirely.

## STICKY NOTES AND TASKS

- Added the Sticky Note widget.
- Move and resize notes freely.
- Note position and size are saved automatically.
- Choose from a palette of note colors.
- Turn a note into a task and mark it as complete.
- Attach a note to a specific bookmark.
- A colored note marker appears on the linked tile.
- Reopen the note from its marker.
- Return a note to the shared catalog or detach it from a bookmark.
- **All Notes** lists notes and the paths to their linked folders or bookmarks.
- Search the notes catalog and filter active or completed tasks.
- Deleting a note is separate from closing or minimizing it.
- Pin a shortcut for creating notes next to Groovy's main controls.
- Free supports up to three widgets; PRO has no product-imposed widget limit. A hidden note is still a saved widget and counts toward the limit.

## POMODORO AND FOCUS

- Added a movable Pomodoro timer.
- Choose preset intervals or set a custom duration.
- Set the time directly on the circular dial.
- Second markers use a consistent visual pattern.
- Added Focus and Break states.
- Start, pause, and reset the timer.
- Collapse the widget into a compact state.
- Pomodoro keeps counting down after the Groovy page closes.
- Timer status appears on the extension's toolbar icon.
- Completion triggers sound, a repeating alarm, and a system notification.
- The alarm stops after user interaction or a safety timeout.
- Optimized the timer so hidden tabs do not run continuous heavy animation.
- Link a Pomodoro to a task note.
- Open the linked timer from a note, or the linked note from its timer.
- Pin a Pomodoro shortcut to the top toolbar.

## THEMES AND PERSONALIZATION

- Retained a complete light-theme option.
- Added a dark theme.
- System mode follows the operating system's light or dark preference.
- Apply the theme before the first frame to prevent a white flash at startup.
- Added scheduled switching between light and dark themes.
- Choose an accent color.
- Choose a preset background color.
- Upload a custom background image.
- Configure how the background image fits and is positioned.
- Added Solid and Glass surfaces.
- Adjust Glass blur and transparency.
- Apply Glass styling consistently to the main workspace elements and Settings.
- Added an optional minimalist Aurora background.
- Animation respects `prefers-reduced-motion` and stops when the page is hidden.
- Turn tile borders off.
- Change tile proportions in real time.
- Choose the number of tiles per row.
- Adjust content width as a percentage of the available space.
- Set how many cards the Show more button adds.
- The cards-per-step increment follows the number of columns.
- Settings save immediately; a separate Save button is no longer required.

## WORKING WITH LARGE COLLECTIONS

- Designed the interface for hundreds or thousands of bookmarks.
- Let users control the number of cards displayed at a time.
- The Show more button can be disabled.
- Search is not limited to cards that have already been rendered.
- Supports browser order and forward or reverse display order.
- Show newer bookmarks first or last.
- Use Ctrl to select individual tiles.
- Use Shift to select a range.
- Arrow keys support grid navigation.
- A dedicated action bar appears for a selected group.
- Added an explicit command to clear the selection.
- Load heavy preview and PDF components separately from the main interface.
- Use `content-visibility`, local caching, and deferred work to reduce processing load.

## FOLDER LOCK — PROTECTING ORDINARY FOLDERS

- Lock an existing browser folder inside Groovy.
- Choose a pattern or a text password.
- Pattern protection uses a 4 × 4 grid with at least six distinct points.
- The pattern line responds smoothly and provides feedback as points are connected.
- Text passwords support letters, numbers, and symbols.
- Leaving a protected folder locks it again.
- Locked folders hide their contents and nested folders inside Groovy.
- A locked card remains clickable and opens the unlock form.
- Repeated failed attempts trigger a temporary delay.
- Folder Lock explains its limitation: the bookmarks remain visible in the browser's native bookmark manager.
- Remove protection after unlocking the folder and confirming the action. A locked folder first requires its pattern or password.
- A new lock is saved to extension storage before the protection form closes.
- Protection changes from different tabs are merged with current data, so locking one folder does not overwrite another folder's lock.
- When protection changes in another open tab, Groovy hides the stale view and reloads the lock state.
- A lock-reading error no longer becomes an empty lock list that is then automatically saved.

## PRIVATE VAULT — PRIVATE GROOVY FOLDERS

- Added private folders that are separate from browser bookmark folders.
- Saved link titles and URLs are encrypted locally on the device.
- Private Vault contents do not appear in the native bookmark manager.
- Supports a 4 × 4 pattern or a text password.
- There is no hidden password-recovery mechanism; the interface warns about this before setup.
- Copy or move ordinary browser bookmarks into a Vault.
- The default option preserves the original bookmarks.
- A Vault locks automatically when you switch to another folder.
- Deleting a Vault requires separate confirmation.
- Keep descriptions short in compact lists, with details in the creation dialog.
- The feature is marked PRO and visually distinguished from ordinary folders.

## DELETION PROTECTION

- Enable a separate deletion password in Settings.
- Require the password before deleting browser bookmarks or folders.
- Apply the check to both individual and bulk actions.
- Do not store the password in plain text.
- Disabling deletion protection also requires the current password.
- Separate recoverable folder deletion into Trash from permanent deletion out of Trash.

## BROWSER EDITIONS

- Prepared **Toolbar only**: open Groovy from its icon without changing New Tab.
- Prepared **New Tab + Toolbar**: replace New Tab and also open Groovy from its icon.
- Choose a mode by installing the corresponding edition, not through an in-app switch afterward.
- Chromium Toolbar supports Chrome, Edge, Opera, and Yandex Browser.
- Chromium New Tab is intended primarily for Chrome and Edge.
- Toolbar only is the recommended conservative option for Yandex Browser.
- Prepared separate Firefox Toolbar and Firefox New Tab editions.
- Firefox packages go through Mozilla signing before customer distribution.
- Prepared source material for later conversion to a Safari Web Extension; a finished Safari release is not claimed.
- Clicking the toolbar icon again reuses an existing Groovy tab.
- Editions have separate storage. Unpacked DEV installations must retain the same path and browser profile. Licensed Chromium packages use fixed manifest keys; Firefox packages use add-on IDs.

## FREE, TRIAL, AND PRO

- Free does not limit the number of browser bookmarks or folders.
- Free includes the first 20 automatic previews.
- Free supports custom covers and the core customization controls.
- Free includes standard search, editing, moving, and sorting.
- Free supports up to three saved widgets, including hidden ones.
- PRO enables automatic previews across the collection.
- PRO includes semantic search and AI folder suggestions.
- PRO removes the product-imposed limit on Sticky Notes and Pomodoro timers.
- PRO supports choosing a Preview API or connecting a custom service.
- Customer PRO builds activate with a license key.
- One membership supports up to three active installations.
- Deactivate an installation to free up a slot.
- License checks account for active membership, cancellation at the end of the paid period, and refunds.
- Managed Groovy AI includes authorization and fair-use controls.

## LOCAL STORAGE AND PRIVACY

- Settings are stored locally in the extension's browser profile.
- Custom covers and backgrounds are saved locally.
- Preview caching is local.
- Notes, tasks, and widgets are stored locally.
- Ordinary bookmarks remain in the browser's own storage.
- Groovy does not require a cloud copy of the library.
- Preview URLs are sent to an external service only when previews are enabled.
- AI data is sent only in response to an explicit user action.
- OpenRouter BYOK uses the user's own API key.
- Privacy Policy, EULA, Support, and publication documents were prepared separately.

## PROTECTION AGAINST SETTINGS AND LOCK RESETS

- Moved settings, preview consent, pinned folders, custom covers and backgrounds, notes, widget settings, and ordinary folder-lock records from `localStorage` alone to managed `chrome.storage.local` storage.
- Migrate valid existing data at startup before displaying the workspace, without deleting the original values.
- Keep a primary copy, a matching backup copy, and a checksum for integrity verification of managed records.
- After a successful migration, clearing only `localStorage` no longer destroys these records: the local cache is restored from extension storage.
- Repair a damaged primary record only from a backup that matches its integrity record. A stale backup is not accepted as current data.
- If no verified copy is available, Groovy displays a blocking message instead of opening an unprotected workspace.
- A write failure is not reported as a successfully saved password. The app pauses rather than continuing with unsaved settings.
- Autosave does not write unchanged values again.
- Added automated checks for cleared local caches, damaged records, write failures, and simultaneous lock changes from two tabs.

**This protects against a specific local-cache reset; it is not an independent backup.** Both copies remain inside the extension. Uninstalling the extension, deleting the entire profile, or losing the disk can destroy both. Export to a separate encrypted file and restoration from that file are not yet implemented.

This fix does not recover settings or passwords lost before a backup record existed. Automatic screenshot caches and captured-tab snapshots are not duplicated by this mechanism. Private Vault uses its own separate encrypted storage; ordinary folder locks still do not encrypt browser bookmarks.

## 10 LANGUAGES AND ACCESSIBILITY

- Added Russian and English interfaces.
- Added Spanish, German, French, Portuguese, and Italian.
- Added Turkish, Chinese, and Japanese.
- Auto mode follows the browser's language.
- Removed the mixed-language Auto label from localized interfaces.
- Added accessible labels for primary actions, folders, menus, and dialogs.
- Added keyboard navigation and visible focus states.
- Adapted promotional demos for touch interactions on tablets and phones. This does not imply that the desktop extension can be installed in mobile Chrome or Safari.

## SETTINGS AND UX REFINEMENTS

- Apply and save settings immediately after changes.
- Removed the unnecessary mandatory Save step.
- Fixed double scrolling in the Settings panel.
- Fixed excessive panel width and horizontal overflow.
- Increased the size of labels, input values, descriptions, and folder paths.
- Keep `?` tooltips within the visible area.
- Styled dropdowns for light, dark, and Glass themes.
- Fixed repeated arrows in select controls.
- Added appropriate right padding around dropdown arrows.
- Added readable hover states to Settings and Widgets controls.
- The optional Add Bookmark button is hidden by default and can be enabled in Settings.
- Settings display the version, browser edition, and Free/Trial/PRO status.
- The Groovy link opens the product page; the Grooni logo links to Grooni.com.
- Added a brand footer below the bookmark grid.

## PERFORMANCE AND STABILITY

- Avoid unnecessary preview regeneration on every visit.
- Load the preview cache before displaying cards.
- Reduce visible flashes of light placeholders in dark mode.
- Reserve preview space to prevent height jumps.
- Fixed folder mosaics overlapping their labels.
- Fixed proportions of individual and composite previews.
- Reduced unnecessary card re-renders and image reloads when changing settings.
- Pause Aurora when the document is hidden.
- Calculate timer state from timestamps rather than rendering frequency.
- Move background Pomodoro logic into the extension background context or service worker.
- Separate large PDF components from the main bundle.
- Added handling for unavailable pages, CORS restrictions, CAPTCHA, and screenshot-provider errors.

## BUILDS, LICENSING, AND DELIVERY

- Added reproducible build commands for Free, Trial, DEV PRO, and Customer PRO.
- Keep DEV PRO separate from licensed customer PRO builds.
- Include `INSTALL.html`, `README.txt`, and the cumulative changelog in release archives.
- Installation guides include Windows-specific steps and browser extension-page addresses.
- Recommend updating the existing folder or edition without uninstalling the extension.
- Generate `SHA256SUMS` for release sets.
- Check Firefox XPI files for Mozilla `META-INF` signatures.
- Prepared Firefox signing automation through the AMO API.
- Prepared customer delivery through Gumroad.
- Prepared license activation, deactivation, and installation limits.
- Added a server-side license API and a protected AI gateway.
- Added a Free-download counter and a public APEXDATA manifest.
- Server-side download metrics distinguish editions, versions, and filenames.
- Added download attribution data for APEXDATA.
- Prepared an optional verified Free-download flow with Turnstile. Verification alone does not count as a download, and repeated delivery using the same ticket should not increment the counter again.
- Local DEV fixes can update an unpacked build without creating new ZIP files or increasing the version number.

## WEBSITE AND COMMERCIAL MATERIALS

- Created the main English-language Groovy Bookmark Manager landing page.
- Added interactive demos of themes, tiles, notes, and Pomodoro.
- Used actual visual-bookmark scenarios instead of an unrelated masonry layout.
- Prepared separate SEO landing pages for Chrome Bookmark Manager, Organizer, Speed Dial, New Tab, and AI Organizer.
- Added unique titles, descriptions, canonical URLs, Open Graph tags, Twitter Cards, and JSON-LD.
- Created responsive WebP variants for large images.
- Optimized website covers for their tile display sizes.
- Deferred below-the-fold video loading until the section approaches the viewport.
- Added a Free-download modal and direct browser-package links.
- Connected PRO buttons to Gumroad checkout.
- Prepared Gumroad covers, thumbnails, a vertical banner, and promotional materials.
- Created instructions for store review and customers.

---

## FEATURES NOT YET CLAIMED AS COMPLETE

- Exporting all data to an encrypted file and importing that file are not yet implemented.
- Synchronizing Groovy settings, notes, and covers between computers is not implemented. Browser-bookmark sync is a separate browser feature.
- Duplicate detection and checks for permanently deleted pages have been discussed, but a finished Collection Health tool is not claimed here.
- Inbox, bookmark reminders, and saving all open tabs with AI-assisted organization are not listed as released features.
- The existence of the Groovy AI server gateway does not mean every customer already receives an included model-usage allowance. BYOK uses the customer's own OpenRouter key and balance.
- A finished Safari build is not claimed. Preparing source code for conversion is not the same as releasing the extension.

## Last document update — September 9, 2026

- Preserved the cumulative history of the entire product without separate entries for every intermediate version.
- Included the latest settings-storage and folder-protection changes.
- Included folder results in the main search field, including empty folders and folders with identical names.
- Explained the limits of internal backup copies and the absence of independent export.
- The latest code changes were checked with 16 storage tests, 6 search tests, TypeScript validation, and scenarios in a separate Chromium profile.
- The version remains **1.0.34**. No new customer archives have been issued since the latest local fixes.
- Prepared this complete English translation while retaining the Russian document.

---

## IMPORTANT WHEN UPDATING

**Do not uninstall the existing extension before updating.** Local settings, custom covers, caches, notes, widgets, protection credentials, and Private Vault data belong to a specific browser installation.

- Chromium: extract the updated build into the same permanent folder and click **Reload** on the browser's extensions page.
- Firefox: install the new signed XPI over the same edition.
- Do not replace Toolbar with New Tab or vice versa as if they were the same installation. They are separate editions with different IDs and local stores.
- Deactivate a PRO installation before removing it to free up its license slot.
- Internal data copies do not survive uninstalling the extension itself. Until export is available, do not use reinstallation or data clearing as a troubleshooting shortcut.
