{"id":20,"date":"2026-09-09T06:58:17","date_gmt":"2026-09-09T06:58:17","guid":{"rendered":"https:\/\/grooni.com\/docs\/groovy-bookmark-manager\/changelog\/"},"modified":"2026-09-09T06:58:17","modified_gmt":"2026-09-09T06:58:17","slug":"changelog","status":"publish","type":"page","link":"https:\/\/grooni.com\/docs\/groovy-bookmark-manager\/changelog\/","title":{"rendered":"Complete changelog"},"content":{"rendered":"<div class=\"gbm-docs\">\n<p class=\"gbm-docs-notice\"><strong>Release status:<\/strong> this is the cumulative development history. The latest storage and main-search folder fixes are local DEV changes, not a new customer release. The document distinguishes those changes from distributed packages.<\/p>\n<details class=\"gbm-docs-toc\">\n<summary>Jump to a feature<\/summary>\n<ul>\n<li><a href=\"#highlights-across-the-product-s-history\">HIGHLIGHTS ACROSS THE PRODUCT&#8217;S HISTORY<\/a><\/li>\n<li><a href=\"#first-release-july-31-2026\">First release \u2014 July 31, 2026<\/a><\/li>\n<li><a href=\"#new-name-one-shared-product\">NEW NAME, ONE SHARED PRODUCT<\/a><\/li>\n<li><a href=\"#your-existing-browser-bookmarks\">YOUR EXISTING BROWSER BOOKMARKS<\/a><\/li>\n<li><a href=\"#folders-hierarchy-and-home\">FOLDERS, HIERARCHY, AND HOME<\/a><\/li>\n<li><a href=\"#drag-and-drop-and-organization\">DRAG AND DROP AND ORGANIZATION<\/a><\/li>\n<li><a href=\"#groovy-trash-recoverable-folder-deletion\">GROOVY TRASH \u2014 RECOVERABLE FOLDER DELETION<\/a><\/li>\n<li><a href=\"#fast-and-semantic-search\">FAST AND SEMANTIC SEARCH<\/a><\/li>\n<li><a href=\"#ai-organization\">AI ORGANIZATION<\/a><\/li>\n<li><a href=\"#automatic-website-previews\">AUTOMATIC WEBSITE PREVIEWS<\/a><\/li>\n<li><a href=\"#custom-tile-appearance\">CUSTOM TILE APPEARANCE<\/a><\/li>\n<li><a href=\"#smart-tile-types\">SMART TILE TYPES<\/a><\/li>\n<li><a href=\"#built-in-video-player\">BUILT-IN VIDEO PLAYER<\/a><\/li>\n<li><a href=\"#web-search-above-your-bookmarks\">WEB SEARCH ABOVE YOUR BOOKMARKS<\/a><\/li>\n<li><a href=\"#sticky-notes-and-tasks\">STICKY NOTES AND TASKS<\/a><\/li>\n<li><a href=\"#pomodoro-and-focus\">POMODORO AND FOCUS<\/a><\/li>\n<li><a href=\"#themes-and-personalization\">THEMES AND PERSONALIZATION<\/a><\/li>\n<li><a href=\"#working-with-large-collections\">WORKING WITH LARGE COLLECTIONS<\/a><\/li>\n<li><a href=\"#folder-lock-protecting-ordinary-folders\">FOLDER LOCK \u2014 PROTECTING ORDINARY FOLDERS<\/a><\/li>\n<li><a href=\"#private-vault-private-groovy-folders\">PRIVATE VAULT \u2014 PRIVATE GROOVY FOLDERS<\/a><\/li>\n<li><a href=\"#deletion-protection\">DELETION PROTECTION<\/a><\/li>\n<li><a href=\"#browser-editions\">BROWSER EDITIONS<\/a><\/li>\n<li><a href=\"#free-trial-and-pro\">FREE, TRIAL, AND PRO<\/a><\/li>\n<li><a href=\"#local-storage-and-privacy\">LOCAL STORAGE AND PRIVACY<\/a><\/li>\n<li><a href=\"#protection-against-settings-and-lock-resets\">PROTECTION AGAINST SETTINGS AND LOCK RESETS<\/a><\/li>\n<li><a href=\"#10-languages-and-accessibility\">10 LANGUAGES AND ACCESSIBILITY<\/a><\/li>\n<li><a href=\"#settings-and-ux-refinements\">SETTINGS AND UX REFINEMENTS<\/a><\/li>\n<li><a href=\"#performance-and-stability\">PERFORMANCE AND STABILITY<\/a><\/li>\n<li><a href=\"#builds-licensing-and-delivery\">BUILDS, LICENSING, AND DELIVERY<\/a><\/li>\n<li><a href=\"#website-and-commercial-materials\">WEBSITE AND COMMERCIAL MATERIALS<\/a><\/li>\n<li><a href=\"#features-not-yet-claimed-as-complete\">FEATURES NOT YET CLAIMED AS COMPLETE<\/a><\/li>\n<li><a href=\"#last-document-update-september-9-2026\">Last document update \u2014 September 9, 2026<\/a><\/li>\n<li><a href=\"#important-when-updating\">IMPORTANT WHEN UPDATING<\/a><\/li>\n<\/ul>\n<\/details>\n<p>Current version: <strong>1.0.34<\/strong><\/p>\n<p>This cumulative changelog covers the product&#8217;s development from the first working version of Simple Dial to <strong>Groovy Bookmark Manager Free \/ PRO<\/strong>.<\/p>\n<p>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 <strong>DEV PRO 1.0.34<\/strong> build. Customer archives and store packages have not yet been rebuilt with these fixes.<\/p>\n<h2 id=\"highlights-across-the-product-s-history\">HIGHLIGHTS ACROSS THE PRODUCT&#8217;S HISTORY<\/h2>\n<ul>\n<li><strong>A visual collection:<\/strong> website previews, custom covers, folder mosaics, and multiple pinned sections on Home.<\/li>\n<li><strong>Bookmark and folder search:<\/strong> standard global search, search through linked notes, and optional semantic search with page-content indexing.<\/li>\n<li><strong>Real bookmark management:<\/strong> editing, group selection, moving, reordering, and changing folder hierarchy.<\/li>\n<li><strong>Smart tiles:<\/strong> saved search queries, the first page of accessible PDFs, and YouTube and VK Video with a compact player.<\/li>\n<li><strong>Notes next to their source:<\/strong> movable colored sticky notes, tasks, bookmark attachments, and a searchable notes catalog.<\/li>\n<li><strong>Pomodoro:<\/strong> set time directly on the dial, receive background alerts, see the timer on the extension icon, and link it to a note.<\/li>\n<li><strong>Two types of folder protection:<\/strong> a lock on an existing browser folder or a separate encrypted Private Vault, with a pattern or a text password.<\/li>\n<li><strong>Protection against accidental deletion:<\/strong> a deletion password, confirmations, and a recoverable trash folder for ordinary bookmark folders.<\/li>\n<li><strong>Workspace customization:<\/strong> light and dark themes, Glass, background images, Aurora, and live grid controls without a Save button.<\/li>\n<li><strong>Free and PRO on one shared core:<\/strong> browser-specific editions, license activation, installation guides, and delivery infrastructure.<\/li>\n<\/ul>\n<h2 id=\"first-release-july-31-2026\">First release \u2014 July 31, 2026<\/h2>\n<p>The first version was a compact visual dial for existing browser bookmarks. It opened from the extension icon, read the browser&#8217;s actual bookmark tree, and did not replace New Tab unless a separate edition was installed.<\/p>\n<p>The original feature set included:<\/p>\n<ul>\n<li>reading actual bookmarks through the browser Bookmarks API;<\/li>\n<li>choosing a folder from a dropdown;<\/li>\n<li>displaying bookmarks as tiles;<\/li>\n<li>showing folders and subfolders;<\/li>\n<li>searching saved sites;<\/li>\n<li>configuring the number of tiles and the Show more button;<\/li>\n<li>a light Material-style interface;<\/li>\n<li>separate browser builds.<\/li>\n<\/ul>\n<hr>\n<h2 id=\"new-name-one-shared-product\">NEW NAME, ONE SHARED PRODUCT<\/h2>\n<ul>\n<li>Renamed <strong>Groovy Simple Dial<\/strong> to <strong>Groovy Bookmark Manager<\/strong>.<\/li>\n<li>Kept the simplicity of a speed dial while expanding it into a visual bookmark workspace.<\/li>\n<li>Free and PRO share the same core and the same basic browser-bookmark management features.<\/li>\n<li>The interface explicitly identifies the <strong>FREE<\/strong>, <strong>TRIAL<\/strong>, or <strong>PRO<\/strong> edition.<\/li>\n<li>Updated the product name, logo, store materials, landing page, guides, and archives.<\/li>\n<li>Added a revised brand mark with an extended bookmark ribbon.<\/li>\n<li>Refined the wordmark hierarchy: larger <code>GROOVY<\/code>, a more compact <code>Bookmark Manager<\/code>, and a separate edition badge.<\/li>\n<\/ul>\n<h2 id=\"your-existing-browser-bookmarks\">YOUR EXISTING BROWSER BOOKMARKS<\/h2>\n<ul>\n<li>Groovy works with the collection already saved in your browser.<\/li>\n<li>No import into a separate cloud service is required.<\/li>\n<li>Displays titles, URLs, domains, folders, subfolders, and full folder paths.<\/li>\n<li>Changes to order and structure are applied to the browser&#8217;s actual bookmark tree.<\/li>\n<li>Add a new bookmark directly to a selected folder.<\/li>\n<li>Edit an existing bookmark&#8217;s title.<\/li>\n<li>Move a single bookmark to another folder.<\/li>\n<li>Select multiple bookmarks and move them together.<\/li>\n<li>Delete individual bookmarks or groups after confirmation.<\/li>\n<li>Bulk deletion requires a deliberate slider confirmation.<\/li>\n<li>Bookmark access permission is requested explicitly.<\/li>\n<li>Reset consent in Settings to view the access explanation again.<\/li>\n<\/ul>\n<h2 id=\"folders-hierarchy-and-home\">FOLDERS, HIERARCHY, AND HOME<\/h2>\n<ul>\n<li>The folder dropdown displays the complete hierarchy.<\/li>\n<li>Nested folders show their full paths.<\/li>\n<li>The list shows the number of accessible bookmarks.<\/li>\n<li>Added quick folder search.<\/li>\n<li>Groovy remembers the last folder you opened.<\/li>\n<li>Set any ordinary folder as Home.<\/li>\n<li>Pin multiple folders to Home and display them as sections, one below another.<\/li>\n<li>Hide the redundant navigation panel when only one folder is pinned.<\/li>\n<li>Show compact navigation between sections when several folders are pinned.<\/li>\n<li>Place folder cards at the beginning or end of the grid.<\/li>\n<li>Turn subfolder cards off.<\/li>\n<li>Folder tiles display mosaics made from the first available website previews inside them.<\/li>\n<li>Added distinct states for locked and empty folders.<\/li>\n<li>Prevent unsupported deletion of the browser&#8217;s system folders.<\/li>\n<\/ul>\n<h2 id=\"drag-and-drop-and-organization\">DRAG AND DROP AND ORGANIZATION<\/h2>\n<ul>\n<li>Drag tiles to change the actual order of browser bookmarks.<\/li>\n<li>A blue insertion line marks the position before or after a neighboring tile.<\/li>\n<li>Drop a bookmark directly onto a subfolder tile.<\/li>\n<li>Move a selected group of bookmarks into a subfolder with one drag.<\/li>\n<li>Reorder folders at the same level.<\/li>\n<li>Nest a folder inside another by dropping it into the center of the destination tile.<\/li>\n<li>Use the edges of a folder tile to insert before or after it.<\/li>\n<li>Protected folders and Private Vaults reject accidental drops.<\/li>\n<li>Moving folders between levels also works in sorted views. Manual bookmark-tile reordering is available in browser-order mode, outside search.<\/li>\n<li>Right-click a folder to open its context menu at the pointer.<\/li>\n<li>The same menu is available on folder cards and in the folder dropdown.<\/li>\n<\/ul>\n<h2 id=\"groovy-trash-recoverable-folder-deletion\">GROOVY TRASH \u2014 RECOVERABLE FOLDER DELETION<\/h2>\n<ul>\n<li>Deleting an ordinary folder no longer destroys it immediately.<\/li>\n<li>The entire folder moves to <strong>Groovy Trash<\/strong>, including its bookmarks and subfolders.<\/li>\n<li>Its original parent folder and position are recorded.<\/li>\n<li>Trash contents are excluded from <code>All bookmarks<\/code>.<\/li>\n<li>Trash contents are excluded from ordinary search and AI actions.<\/li>\n<li>Restore a trashed folder through its right-click menu.<\/li>\n<li>Restoration returns the folder to its previous location and attempts to restore its original order.<\/li>\n<li>Trash provides a separate, irreversible Delete permanently action.<\/li>\n<li>Groovy prevents deletion of the trash folder itself and the browser&#8217;s system root folders.<\/li>\n<li>Moving a folder to Trash preserves local previews and tile customization.<\/li>\n<\/ul>\n<h2 id=\"fast-and-semantic-search\">FAST AND SEMANTIC SEARCH<\/h2>\n<ul>\n<li>Standard search matches titles, URLs, domains, and folder paths.<\/li>\n<li>The main search field now finds <strong>folders themselves<\/strong> by name and full path, not just bookmarks inside them.<\/li>\n<li>Empty folders also appear in results.<\/li>\n<li>Folders with identical names appear separately, with paths to distinguish their locations.<\/li>\n<li>Folder search works regardless of the current folder, pinned Home, or subfolder-card visibility setting.<\/li>\n<li>A matching locked folder appears with a lock and prompts for its password or pattern when opened.<\/li>\n<li>Names of nested folders and bookmarks inside a locked folder remain hidden from results until it is unlocked.<\/li>\n<li>Opening a folder result clears the search query and navigates to that folder&#8217;s contents.<\/li>\n<li>The search counter reports matching folders separately from bookmarks. The empty state no longer appears when folder results exist.<\/li>\n<li>Search covers the entire accessible collection, not just the currently displayed portion of the grid.<\/li>\n<li>Results update without reloading the page.<\/li>\n<li>Search includes the text of linked notes.<\/li>\n<li>Added optional <strong>Semantic Search<\/strong> through OpenRouter.<\/li>\n<li>Semantic search can find a page even when the query does not match its title.<\/li>\n<li>Index page content for a selected folder or the entire collection.<\/li>\n<li>Indexing starts only when requested by the user.<\/li>\n<li>The interface shows progress, successful items, and unavailable pages.<\/li>\n<li>AI features do not run automatically in the background.<\/li>\n<\/ul>\n<h2 id=\"ai-organization\">AI ORGANIZATION<\/h2>\n<ul>\n<li>Added suggestions for suitable existing folders for selected bookmarks.<\/li>\n<li>Groovy shows each suggestion before moving a bookmark.<\/li>\n<li>Keep a bookmark where it is or explicitly approve the move.<\/li>\n<li>AI does not reorganize the library without permission.<\/li>\n<li>Supports your own OpenRouter API key: Bring Your Own Key, or BYOK.<\/li>\n<li>Choose separate models for organization and semantic search.<\/li>\n<li>The OpenRouter key is stored locally.<\/li>\n<li>Added a license-protected Groovy AI gateway with PRO entitlement checks and fair-use limits.<\/li>\n<li>Settings explain which data is sent when you run an AI action.<\/li>\n<\/ul>\n<h2 id=\"automatic-website-previews\">AUTOMATIC WEBSITE PREVIEWS<\/h2>\n<ul>\n<li>Display websites as visual page previews, not just letter tiles.<\/li>\n<li>Free includes the first <strong>20 automatic previews<\/strong>.<\/li>\n<li>PRO enables automatic previews across the collection.<\/li>\n<li>Added preview refresh.<\/li>\n<li>Added local caching to avoid downloading the same image on every visit.<\/li>\n<li>Restore the cache before initially displaying the grid to reduce tile flicker.<\/li>\n<li>Cache startup has a time limit so loading images cannot hold up the workspace indefinitely.<\/li>\n<li>Decode images before displaying them.<\/li>\n<li>Choose a screenshot API provider.<\/li>\n<li>PRO can connect to a compatible custom Preview API.<\/li>\n<li>Choose between an exact page URL and a domain-only preview.<\/li>\n<li>In exact-page mode, the provider receives the saved URL&#8217;s path and parameters, not just the site&#8217;s home page. This is explained when previews are enabled.<\/li>\n<li>Disable the automatic image for an individual tile.<\/li>\n<li>Save the visible page as a local preview through the extension menu.<\/li>\n<li>A local snapshot provides an alternative when automatic capture shows CAPTCHA, a sign-in page, or the wrong content.<\/li>\n<li>Remove a saved snapshot to return the tile to its standard state.<\/li>\n<li>Folder previews combine several of the first websites inside the folder.<\/li>\n<li>Placeholders reserve the correct preview height without disrupting the grid while images load.<\/li>\n<\/ul>\n<h2 id=\"custom-tile-appearance\">CUSTOM TILE APPEARANCE<\/h2>\n<ul>\n<li>Change the displayed tile title.<\/li>\n<li>Choose a tile color.<\/li>\n<li>Use a short letter label.<\/li>\n<li>Upload a custom cover image.<\/li>\n<li>Custom covers are available in both Free and PRO.<\/li>\n<li>Tile customization is saved locally and applied after reloading.<\/li>\n<li>Hide an unsuitable automatic preview for one bookmark only.<\/li>\n<li>Turn off tile borders.<\/li>\n<\/ul>\n<h2 id=\"smart-tile-types\">SMART TILE TYPES<\/h2>\n<ul>\n<li>Recognize saved searches from Google, Yandex, DuckDuckGo, Bing, and supported Perplexity URLs.<\/li>\n<li>Show a branded search tile and the saved query instead of a CAPTCHA screenshot.<\/li>\n<li>Long queries wrap and remain readable.<\/li>\n<li>PDF bookmarks use a dedicated document tile.<\/li>\n<li>Extract first-page text from an accessible PDF.<\/li>\n<li>A scanned PDF can display a rendered image of its first page.<\/li>\n<li>Local PDF handling explains the need for <code>file:\/\/<\/code> access permission.<\/li>\n<li>Use a safe PDF fallback when CORS blocks access, without flooding the interface with errors.<\/li>\n<li>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.<\/li>\n<li>Recognize YouTube video links, including supported Shorts URLs.<\/li>\n<li>VK Video has a dedicated video state and a play button.<\/li>\n<li>Ordinary VK pages are not turned into video players without a video identifier.<\/li>\n<\/ul>\n<h2 id=\"built-in-video-player\">BUILT-IN VIDEO PLAYER<\/h2>\n<ul>\n<li>Supported YouTube and VK Video bookmarks open in a compact modal player.<\/li>\n<li>Move the player around the screen.<\/li>\n<li>Resize it manually.<\/li>\n<li>Minimize the player and continue working with bookmarks.<\/li>\n<li>The mini player stays inside the Groovy window.<\/li>\n<li>Removed the duplicate video title above the embedded player.<\/li>\n<li>Made controls more compact to avoid covering important video controls.<\/li>\n<li>Pass the current playback position when opening the video on YouTube.<\/li>\n<li>Stop embedded playback after handing the video over to YouTube.<\/li>\n<li>Open the original page when the source does not allow embedding.<\/li>\n<li>Added handling for YouTube player configuration errors and a safe fallback.<\/li>\n<\/ul>\n<h2 id=\"web-search-above-your-bookmarks\">WEB SEARCH ABOVE YOUR BOOKMARKS<\/h2>\n<ul>\n<li>Enable a separate web search bar above the folder controls.<\/li>\n<li>Supports Google, Yandex, DuckDuckGo, Bing, Perplexity, and dedicated AI-search options.<\/li>\n<li>Add a custom search URL template using <code>{query}<\/code>.<\/li>\n<li>Voice input is available where supported by the browser.<\/li>\n<li>The search-engine selector matches the rest of the interface.<\/li>\n<li>Adjust the spacing above and below web search separately.<\/li>\n<li>Turn the web search bar off entirely.<\/li>\n<\/ul>\n<h2 id=\"sticky-notes-and-tasks\">STICKY NOTES AND TASKS<\/h2>\n<ul>\n<li>Added the Sticky Note widget.<\/li>\n<li>Move and resize notes freely.<\/li>\n<li>Note position and size are saved automatically.<\/li>\n<li>Choose from a palette of note colors.<\/li>\n<li>Turn a note into a task and mark it as complete.<\/li>\n<li>Attach a note to a specific bookmark.<\/li>\n<li>A colored note marker appears on the linked tile.<\/li>\n<li>Reopen the note from its marker.<\/li>\n<li>Return a note to the shared catalog or detach it from a bookmark.<\/li>\n<li><strong>All Notes<\/strong> lists notes and the paths to their linked folders or bookmarks.<\/li>\n<li>Search the notes catalog and filter active or completed tasks.<\/li>\n<li>Deleting a note is separate from closing or minimizing it.<\/li>\n<li>Pin a shortcut for creating notes next to Groovy&#8217;s main controls.<\/li>\n<li>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.<\/li>\n<\/ul>\n<h2 id=\"pomodoro-and-focus\">POMODORO AND FOCUS<\/h2>\n<ul>\n<li>Added a movable Pomodoro timer.<\/li>\n<li>Choose preset intervals or set a custom duration.<\/li>\n<li>Set the time directly on the circular dial.<\/li>\n<li>Second markers use a consistent visual pattern.<\/li>\n<li>Added Focus and Break states.<\/li>\n<li>Start, pause, and reset the timer.<\/li>\n<li>Collapse the widget into a compact state.<\/li>\n<li>Pomodoro keeps counting down after the Groovy page closes.<\/li>\n<li>Timer status appears on the extension&#8217;s toolbar icon.<\/li>\n<li>Completion triggers sound, a repeating alarm, and a system notification.<\/li>\n<li>The alarm stops after user interaction or a safety timeout.<\/li>\n<li>Optimized the timer so hidden tabs do not run continuous heavy animation.<\/li>\n<li>Link a Pomodoro to a task note.<\/li>\n<li>Open the linked timer from a note, or the linked note from its timer.<\/li>\n<li>Pin a Pomodoro shortcut to the top toolbar.<\/li>\n<\/ul>\n<h2 id=\"themes-and-personalization\">THEMES AND PERSONALIZATION<\/h2>\n<ul>\n<li>Retained a complete light-theme option.<\/li>\n<li>Added a dark theme.<\/li>\n<li>System mode follows the operating system&#8217;s light or dark preference.<\/li>\n<li>Apply the theme before the first frame to prevent a white flash at startup.<\/li>\n<li>Added scheduled switching between light and dark themes.<\/li>\n<li>Choose an accent color.<\/li>\n<li>Choose a preset background color.<\/li>\n<li>Upload a custom background image.<\/li>\n<li>Configure how the background image fits and is positioned.<\/li>\n<li>Added Solid and Glass surfaces.<\/li>\n<li>Adjust Glass blur and transparency.<\/li>\n<li>Apply Glass styling consistently to the main workspace elements and Settings.<\/li>\n<li>Added an optional minimalist Aurora background.<\/li>\n<li>Animation respects <code>prefers-reduced-motion<\/code> and stops when the page is hidden.<\/li>\n<li>Turn tile borders off.<\/li>\n<li>Change tile proportions in real time.<\/li>\n<li>Choose the number of tiles per row.<\/li>\n<li>Adjust content width as a percentage of the available space.<\/li>\n<li>Set how many cards the Show more button adds.<\/li>\n<li>The cards-per-step increment follows the number of columns.<\/li>\n<li>Settings save immediately; a separate Save button is no longer required.<\/li>\n<\/ul>\n<h2 id=\"working-with-large-collections\">WORKING WITH LARGE COLLECTIONS<\/h2>\n<ul>\n<li>Designed the interface for hundreds or thousands of bookmarks.<\/li>\n<li>Let users control the number of cards displayed at a time.<\/li>\n<li>The Show more button can be disabled.<\/li>\n<li>Search is not limited to cards that have already been rendered.<\/li>\n<li>Supports browser order and forward or reverse display order.<\/li>\n<li>Show newer bookmarks first or last.<\/li>\n<li>Use Ctrl to select individual tiles.<\/li>\n<li>Use Shift to select a range.<\/li>\n<li>Arrow keys support grid navigation.<\/li>\n<li>A dedicated action bar appears for a selected group.<\/li>\n<li>Added an explicit command to clear the selection.<\/li>\n<li>Load heavy preview and PDF components separately from the main interface.<\/li>\n<li>Use <code>content-visibility<\/code>, local caching, and deferred work to reduce processing load.<\/li>\n<\/ul>\n<h2 id=\"folder-lock-protecting-ordinary-folders\">FOLDER LOCK \u2014 PROTECTING ORDINARY FOLDERS<\/h2>\n<ul>\n<li>Lock an existing browser folder inside Groovy.<\/li>\n<li>Choose a pattern or a text password.<\/li>\n<li>Pattern protection uses a 4 \u00d7 4 grid with at least six distinct points.<\/li>\n<li>The pattern line responds smoothly and provides feedback as points are connected.<\/li>\n<li>Text passwords support letters, numbers, and symbols.<\/li>\n<li>Leaving a protected folder locks it again.<\/li>\n<li>Locked folders hide their contents and nested folders inside Groovy.<\/li>\n<li>A locked card remains clickable and opens the unlock form.<\/li>\n<li>Repeated failed attempts trigger a temporary delay.<\/li>\n<li>Folder Lock explains its limitation: the bookmarks remain visible in the browser&#8217;s native bookmark manager.<\/li>\n<li>Remove protection after unlocking the folder and confirming the action. A locked folder first requires its pattern or password.<\/li>\n<li>A new lock is saved to extension storage before the protection form closes.<\/li>\n<li>Protection changes from different tabs are merged with current data, so locking one folder does not overwrite another folder&#8217;s lock.<\/li>\n<li>When protection changes in another open tab, Groovy hides the stale view and reloads the lock state.<\/li>\n<li>A lock-reading error no longer becomes an empty lock list that is then automatically saved.<\/li>\n<\/ul>\n<h2 id=\"private-vault-private-groovy-folders\">PRIVATE VAULT \u2014 PRIVATE GROOVY FOLDERS<\/h2>\n<ul>\n<li>Added private folders that are separate from browser bookmark folders.<\/li>\n<li>Saved link titles and URLs are encrypted locally on the device.<\/li>\n<li>Private Vault contents do not appear in the native bookmark manager.<\/li>\n<li>Supports a 4 \u00d7 4 pattern or a text password.<\/li>\n<li>There is no hidden password-recovery mechanism; the interface warns about this before setup.<\/li>\n<li>Copy or move ordinary browser bookmarks into a Vault.<\/li>\n<li>The default option preserves the original bookmarks.<\/li>\n<li>A Vault locks automatically when you switch to another folder.<\/li>\n<li>Deleting a Vault requires separate confirmation.<\/li>\n<li>Keep descriptions short in compact lists, with details in the creation dialog.<\/li>\n<li>The feature is marked PRO and visually distinguished from ordinary folders.<\/li>\n<\/ul>\n<h2 id=\"deletion-protection\">DELETION PROTECTION<\/h2>\n<ul>\n<li>Enable a separate deletion password in Settings.<\/li>\n<li>Require the password before deleting browser bookmarks or folders.<\/li>\n<li>Apply the check to both individual and bulk actions.<\/li>\n<li>Do not store the password in plain text.<\/li>\n<li>Disabling deletion protection also requires the current password.<\/li>\n<li>Separate recoverable folder deletion into Trash from permanent deletion out of Trash.<\/li>\n<\/ul>\n<h2 id=\"browser-editions\">BROWSER EDITIONS<\/h2>\n<ul>\n<li>Prepared <strong>Toolbar only<\/strong>: open Groovy from its icon without changing New Tab.<\/li>\n<li>Prepared <strong>New Tab + Toolbar<\/strong>: replace New Tab and also open Groovy from its icon.<\/li>\n<li>Choose a mode by installing the corresponding edition, not through an in-app switch afterward.<\/li>\n<li>Chromium Toolbar supports Chrome, Edge, Opera, and Yandex Browser.<\/li>\n<li>Chromium New Tab is intended primarily for Chrome and Edge.<\/li>\n<li>Toolbar only is the recommended conservative option for Yandex Browser.<\/li>\n<li>Prepared separate Firefox Toolbar and Firefox New Tab editions.<\/li>\n<li>Firefox packages go through Mozilla signing before customer distribution.<\/li>\n<li>Prepared source material for later conversion to a Safari Web Extension; a finished Safari release is not claimed.<\/li>\n<li>Clicking the toolbar icon again reuses an existing Groovy tab.<\/li>\n<li>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.<\/li>\n<\/ul>\n<h2 id=\"free-trial-and-pro\">FREE, TRIAL, AND PRO<\/h2>\n<ul>\n<li>Free does not limit the number of browser bookmarks or folders.<\/li>\n<li>Free includes the first 20 automatic previews.<\/li>\n<li>Free supports custom covers and the core customization controls.<\/li>\n<li>Free includes standard search, editing, moving, and sorting.<\/li>\n<li>Free supports up to three saved widgets, including hidden ones.<\/li>\n<li>PRO enables automatic previews across the collection.<\/li>\n<li>PRO includes semantic search and AI folder suggestions.<\/li>\n<li>PRO removes the product-imposed limit on Sticky Notes and Pomodoro timers.<\/li>\n<li>PRO supports choosing a Preview API or connecting a custom service.<\/li>\n<li>Customer PRO builds activate with a license key.<\/li>\n<li>One membership supports up to three active installations.<\/li>\n<li>Deactivate an installation to free up a slot.<\/li>\n<li>License checks account for active membership, cancellation at the end of the paid period, and refunds.<\/li>\n<li>Managed Groovy AI includes authorization and fair-use controls.<\/li>\n<\/ul>\n<h2 id=\"local-storage-and-privacy\">LOCAL STORAGE AND PRIVACY<\/h2>\n<ul>\n<li>Settings are stored locally in the extension&#8217;s browser profile.<\/li>\n<li>Custom covers and backgrounds are saved locally.<\/li>\n<li>Preview caching is local.<\/li>\n<li>Notes, tasks, and widgets are stored locally.<\/li>\n<li>Ordinary bookmarks remain in the browser&#8217;s own storage.<\/li>\n<li>Groovy does not require a cloud copy of the library.<\/li>\n<li>Preview URLs are sent to an external service only when previews are enabled.<\/li>\n<li>AI data is sent only in response to an explicit user action.<\/li>\n<li>OpenRouter BYOK uses the user&#8217;s own API key.<\/li>\n<li>Privacy Policy, EULA, Support, and publication documents were prepared separately.<\/li>\n<\/ul>\n<h2 id=\"protection-against-settings-and-lock-resets\">PROTECTION AGAINST SETTINGS AND LOCK RESETS<\/h2>\n<ul>\n<li>Moved settings, preview consent, pinned folders, custom covers and backgrounds, notes, widget settings, and ordinary folder-lock records from <code>localStorage<\/code> alone to managed <code>chrome.storage.local<\/code> storage.<\/li>\n<li>Migrate valid existing data at startup before displaying the workspace, without deleting the original values.<\/li>\n<li>Keep a primary copy, a matching backup copy, and a checksum for integrity verification of managed records.<\/li>\n<li>After a successful migration, clearing only <code>localStorage<\/code> no longer destroys these records: the local cache is restored from extension storage.<\/li>\n<li>Repair a damaged primary record only from a backup that matches its integrity record. A stale backup is not accepted as current data.<\/li>\n<li>If no verified copy is available, Groovy displays a blocking message instead of opening an unprotected workspace.<\/li>\n<li>A write failure is not reported as a successfully saved password. The app pauses rather than continuing with unsaved settings.<\/li>\n<li>Autosave does not write unchanged values again.<\/li>\n<li>Added automated checks for cleared local caches, damaged records, write failures, and simultaneous lock changes from two tabs.<\/li>\n<\/ul>\n<p><strong>This protects against a specific local-cache reset; it is not an independent backup.<\/strong> 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.<\/p>\n<p>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.<\/p>\n<h2 id=\"10-languages-and-accessibility\">10 LANGUAGES AND ACCESSIBILITY<\/h2>\n<ul>\n<li>Added Russian and English interfaces.<\/li>\n<li>Added Spanish, German, French, Portuguese, and Italian.<\/li>\n<li>Added Turkish, Chinese, and Japanese.<\/li>\n<li>Auto mode follows the browser&#8217;s language.<\/li>\n<li>Removed the mixed-language Auto label from localized interfaces.<\/li>\n<li>Added accessible labels for primary actions, folders, menus, and dialogs.<\/li>\n<li>Added keyboard navigation and visible focus states.<\/li>\n<li>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.<\/li>\n<\/ul>\n<h2 id=\"settings-and-ux-refinements\">SETTINGS AND UX REFINEMENTS<\/h2>\n<ul>\n<li>Apply and save settings immediately after changes.<\/li>\n<li>Removed the unnecessary mandatory Save step.<\/li>\n<li>Fixed double scrolling in the Settings panel.<\/li>\n<li>Fixed excessive panel width and horizontal overflow.<\/li>\n<li>Increased the size of labels, input values, descriptions, and folder paths.<\/li>\n<li>Keep <code>?<\/code> tooltips within the visible area.<\/li>\n<li>Styled dropdowns for light, dark, and Glass themes.<\/li>\n<li>Fixed repeated arrows in select controls.<\/li>\n<li>Added appropriate right padding around dropdown arrows.<\/li>\n<li>Added readable hover states to Settings and Widgets controls.<\/li>\n<li>The optional Add Bookmark button is hidden by default and can be enabled in Settings.<\/li>\n<li>Settings display the version, browser edition, and Free\/Trial\/PRO status.<\/li>\n<li>The Groovy link opens the product page; the Grooni logo links to Grooni.com.<\/li>\n<li>Added a brand footer below the bookmark grid.<\/li>\n<\/ul>\n<h2 id=\"performance-and-stability\">PERFORMANCE AND STABILITY<\/h2>\n<ul>\n<li>Avoid unnecessary preview regeneration on every visit.<\/li>\n<li>Load the preview cache before displaying cards.<\/li>\n<li>Reduce visible flashes of light placeholders in dark mode.<\/li>\n<li>Reserve preview space to prevent height jumps.<\/li>\n<li>Fixed folder mosaics overlapping their labels.<\/li>\n<li>Fixed proportions of individual and composite previews.<\/li>\n<li>Reduced unnecessary card re-renders and image reloads when changing settings.<\/li>\n<li>Pause Aurora when the document is hidden.<\/li>\n<li>Calculate timer state from timestamps rather than rendering frequency.<\/li>\n<li>Move background Pomodoro logic into the extension background context or service worker.<\/li>\n<li>Separate large PDF components from the main bundle.<\/li>\n<li>Added handling for unavailable pages, CORS restrictions, CAPTCHA, and screenshot-provider errors.<\/li>\n<\/ul>\n<h2 id=\"builds-licensing-and-delivery\">BUILDS, LICENSING, AND DELIVERY<\/h2>\n<ul>\n<li>Added reproducible build commands for Free, Trial, DEV PRO, and Customer PRO.<\/li>\n<li>Keep DEV PRO separate from licensed customer PRO builds.<\/li>\n<li>Include <code>INSTALL.html<\/code>, <code>README.txt<\/code>, and the cumulative changelog in release archives.<\/li>\n<li>Installation guides include Windows-specific steps and browser extension-page addresses.<\/li>\n<li>Recommend updating the existing folder or edition without uninstalling the extension.<\/li>\n<li>Generate <code>SHA256SUMS<\/code> for release sets.<\/li>\n<li>Check Firefox XPI files for Mozilla <code>META-INF<\/code> signatures.<\/li>\n<li>Prepared Firefox signing automation through the AMO API.<\/li>\n<li>Prepared customer delivery through Gumroad.<\/li>\n<li>Prepared license activation, deactivation, and installation limits.<\/li>\n<li>Added a server-side license API and a protected AI gateway.<\/li>\n<li>Added a Free-download counter and a public APEXDATA manifest.<\/li>\n<li>Server-side download metrics distinguish editions, versions, and filenames.<\/li>\n<li>Added download attribution data for APEXDATA.<\/li>\n<li>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.<\/li>\n<li>Local DEV fixes can update an unpacked build without creating new ZIP files or increasing the version number.<\/li>\n<\/ul>\n<h2 id=\"website-and-commercial-materials\">WEBSITE AND COMMERCIAL MATERIALS<\/h2>\n<ul>\n<li>Created the main English-language Groovy Bookmark Manager landing page.<\/li>\n<li>Added interactive demos of themes, tiles, notes, and Pomodoro.<\/li>\n<li>Used actual visual-bookmark scenarios instead of an unrelated masonry layout.<\/li>\n<li>Prepared separate SEO landing pages for Chrome Bookmark Manager, Organizer, Speed Dial, New Tab, and AI Organizer.<\/li>\n<li>Added unique titles, descriptions, canonical URLs, Open Graph tags, Twitter Cards, and JSON-LD.<\/li>\n<li>Created responsive WebP variants for large images.<\/li>\n<li>Optimized website covers for their tile display sizes.<\/li>\n<li>Deferred below-the-fold video loading until the section approaches the viewport.<\/li>\n<li>Added a Free-download modal and direct browser-package links.<\/li>\n<li>Connected PRO buttons to Gumroad checkout.<\/li>\n<li>Prepared Gumroad covers, thumbnails, a vertical banner, and promotional materials.<\/li>\n<li>Created instructions for store review and customers.<\/li>\n<\/ul>\n<hr>\n<h2 id=\"features-not-yet-claimed-as-complete\">FEATURES NOT YET CLAIMED AS COMPLETE<\/h2>\n<ul>\n<li>Exporting all data to an encrypted file and importing that file are not yet implemented.<\/li>\n<li>Synchronizing Groovy settings, notes, and covers between computers is not implemented. Browser-bookmark sync is a separate browser feature.<\/li>\n<li>Duplicate detection and checks for permanently deleted pages have been discussed, but a finished Collection Health tool is not claimed here.<\/li>\n<li>Inbox, bookmark reminders, and saving all open tabs with AI-assisted organization are not listed as released features.<\/li>\n<li>The existence of the Groovy AI server gateway does not mean every customer already receives an included model-usage allowance. BYOK uses the customer&#8217;s own OpenRouter key and balance.<\/li>\n<li>A finished Safari build is not claimed. Preparing source code for conversion is not the same as releasing the extension.<\/li>\n<\/ul>\n<h2 id=\"last-document-update-september-9-2026\">Last document update \u2014 September 9, 2026<\/h2>\n<ul>\n<li>Preserved the cumulative history of the entire product without separate entries for every intermediate version.<\/li>\n<li>Included the latest settings-storage and folder-protection changes.<\/li>\n<li>Included folder results in the main search field, including empty folders and folders with identical names.<\/li>\n<li>Explained the limits of internal backup copies and the absence of independent export.<\/li>\n<li>The latest code changes were checked with 16 storage tests, 6 search tests, TypeScript validation, and scenarios in a separate Chromium profile.<\/li>\n<li>The version remains <strong>1.0.34<\/strong>. No new customer archives have been issued since the latest local fixes.<\/li>\n<li>Prepared this complete English translation while retaining the Russian document.<\/li>\n<\/ul>\n<hr>\n<h2 id=\"important-when-updating\">IMPORTANT WHEN UPDATING<\/h2>\n<p><strong>Do not uninstall the existing extension before updating.<\/strong> Local settings, custom covers, caches, notes, widgets, protection credentials, and Private Vault data belong to a specific browser installation.<\/p>\n<ul>\n<li>Chromium: extract the updated build into the same permanent folder and click <strong>Reload<\/strong> on the browser&#8217;s extensions page.<\/li>\n<li>Firefox: install the new signed XPI over the same edition.<\/li>\n<li>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.<\/li>\n<li>Deactivate a PRO installation before removing it to free up its license slot.<\/li>\n<li>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.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/grooni.com\/docs\/wp-content\/themes\/wedocs-child\/images\/gbm-changelog-en.md\" download>Download the complete English changelog (Markdown)<\/a><\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Release status: this is the cumulative development history. The latest storage and main-search folder fixes are local DEV changes, not &hellip; <a href=\"https:\/\/grooni.com\/docs\/groovy-bookmark-manager\/changelog\/\">Read more &rarr;<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/grooni.com\/docs\/groovy-bookmark-manager\/wp-json\/wp\/v2\/pages\/20"}],"collection":[{"href":"https:\/\/grooni.com\/docs\/groovy-bookmark-manager\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/grooni.com\/docs\/groovy-bookmark-manager\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/grooni.com\/docs\/groovy-bookmark-manager\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/grooni.com\/docs\/groovy-bookmark-manager\/wp-json\/wp\/v2\/comments?post=20"}],"version-history":[{"count":0,"href":"https:\/\/grooni.com\/docs\/groovy-bookmark-manager\/wp-json\/wp\/v2\/pages\/20\/revisions"}],"wp:attachment":[{"href":"https:\/\/grooni.com\/docs\/groovy-bookmark-manager\/wp-json\/wp\/v2\/media?parent=20"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}