Gemini Project Manager Pro

jmngplnmgpfacedmkemopgdbapjbcmjk

Transform Gemini sidebar into a professional workspace with projects, folders, and quick prompts. **Organize Your Gemini AI Conversations Like a Pro** Gemini Project Manager Pro transforms your Gemini AI sidebar into a powerful project management workspace. Keep your conversations organized, access quick prompts instantly, and boost your productivity. πŸ“ **Project Organization** β€’ Create unlimited projects and subfolders β€’ Drag & drop chats into projects β€’ Custom icons and colors for visual organization β€’ Nested folder structure for complex workflows ⚑ **Quick Prompts** β€’ Save your frequently used prompts β€’ One-click insertion into chat β€’ Search and filter your prompt library β€’ Backup and restore functionality 🎨 **Native Integration** β€’ Seamlessly integrates with Gemini's UI β€’ Matches Google's Material Design 3 β€’ Dark mode support β€’ Google Sans typography πŸ’Ύ **Privacy-Focused** β€’ All data stored locally β€’ No cloud sync or external servers β€’ Export/import for backup β€’ Complete data control **Perfect For:** β€’ Developers managing multiple projects β€’ Writers organizing research and drafts β€’ Students tracking assignments β€’ Professionals managing client work β€’ Anyone who wants organized AI conversations **How It Works:** 1. Install the extension 2. Visit gemini.google.com 3. See the new Projects section in sidebar 4. Start organizing your chats! **Privacy:** All data is stored locally in your browser. No data is sent to external servers. The extension only requires the storage permission to save your projects and settings. ## v1.3.0 β€” Bug Fixes & Performance Fix: Drag-drop chat title was stale β€” now reads live from DOM at drag time Fix: Search input stripped spaces on each keystroke β€” spaces are now preserved Fix: Prevented project section from injecting into wrong element (top nav/main content) Fix: Memory leak β€” _aliasRecheckInterval and _fallbackDeletionInterval never cleared on re-init Fix: Storage lock chain broke after first error, subsequent writes ran without synchronization Fix: Migration failure left storage in inconsistent state with no recovery marker Fix: Backup panel calls not properly error-handled (uncaught promise rejections) Fix: Integrity auto-fix didn't persist chatMap for orphan/missing-parent/circular-ref fixes Fix: Undo delete-project didn't restore parent-children relationships for nested projects Fix: Arrow key keyboard shortcuts didn't work (key normalization bug) Fix: Recovery UI style element never removed on dismiss (DOM accumulation) Fix: Duplicate gpmStopHealthMonitor call in reset Fix: Drag-drop isDescendant used stale closure data instead of fresh storage Fix: Redundant storage read in chat drop handler Perf: Projects now inject immediately into sidebar even before chat links load Perf: Sidebar content wait reduced from 10s to 3s Perf: Navigation re-inject delay reduced from 600ms to 300ms Perf: Storage reads parallelized in render (getProjects + getChatMap) Perf: gpmGetCurrentChatId() cached per render instead of per chat row Perf: Backup creation serialized with lock to prevent concurrent overwrite Quality: gpmClearSelectorCache uses Object.keys() instead of for...in Quality: Toast removal guard added to prevent infinite loop - Fixed Projects section appearing in the wrong place (top bar instead of left sidebar) on Gemini's redesigned layout - Sidebar is now discovered by climbing up from chat links instead of relying on fragile CSS selectors - Quick Prompt button no longer flickers β€” added fast-path cache, stale insertRef guard, and floating button idempotency - Reduced initialization latency by parallelizing storage, sidebar wait, and non-blocking setup steps - Fixed critical `gpmInit` deadlock: `_initializing` flag is now guaranteed to clear via `try/finally`, preventing permanent init lock after any error - Cross-tab write lock (`_withLock`) now skips execution instead of running unlocked when lock cannot be acquired - Added `createdAt`/`updatedAt` timestamps to all newly created/updated projects - Timer leak fixes: `gpmCleanupObservers` now clears `_deletionCheckTimer` and `_sidebarStabilizeTimer` - Auto-assign promise (`GPMStorage.assignChat`) now has `.catch` to prevent unhandled rejections - Sidebar observer resilience: if `gpmInit` throws inside observer, it re-attaches itself for retry - Fixed false-positive "chat deleted" detection when Gemini's sidebar loads chats lazily β€” the extension no longer treats unloaded chats as deleted - Added sidebar stabilization tracking: deletion detection now waits until the sidebar chat count stabilizes (2 consecutive identical counts) before running any checks - Stricter threshold: deletion check is skipped entirely if DOM chat count is less than stored chat count, preventing premature false positives - Stabilization resets on tab visibility change to handle fresh sidebar loads correctly - Fixed a regression where the Space key stopped working in Gemini's message composer because global keyboard shortcuts were incorrectly intercepting contenteditable input fields - Made keyboard shortcut initialization idempotent to prevent duplicate listeners during re-initialization - Reworked routine UI refresh sync to react to `chrome.storage` changes instead of relying on tab messaging for standard refresh flows - Made import and backup restore flows atomic by validating first, creating a backup, and writing the full target state in a single storage operation - Reduced sync fragility by removing routine dependency on `chrome.tabs` messaging for local refresh propagation - Added coverage for duplicate keyboard shortcut initialization - Strengthened test and mock infrastructure for storage change handling - Improved DOM observer cleanup behavior during re-initialization and tests - Switched to allowlist-based text sanitization β€” only known-safe characters are allowed (letters, numbers, punctuation, emoji, and international characters) - Turkish, CJK, Arabic, and other Unicode scripts are fully preserved while blocking potential XSS characters - Fixed a regression where the Space key stopped working in Gemini's message composer because global keyboard shortcuts were incorrectly intercepting contenteditable input fields - Made keyboard shortcut initialization idempotent to prevent duplicate listeners during re-initialization - Reworked local sync handling to react to `chrome.storage` changes instead of relying on tab messaging for routine UI refreshes - Made import and backup restore flows atomic by validating first, creating a backup, and writing the full target state in a single storage operation - Invalid JSON imports now show a clear error message with character position hint instead of crashing silently - Lock chain errors are now logged to console for debugging instead of being silently swallowed - Replaced `innerHTML` usage in bulk toolbar with safe DOM methods (`createElement` + `textContent`) β€” eliminates potential XSS injection vector - Added delete button for each backup in the Manage Backups panel β€” you can now individually remove backups you no longer need - Export filename now includes human-readable date and time (e.g. `gpm-backup-2026-04-05_14-07-34.json`) instead of random numbers - Consolidated 7+ backup keys into a single slot β€” prevents storage quota overflow - Quota monitoring warns at 80% of 10MB limit and skips backup automatically if storage is nearly full - `deleteBackupConfirm` translation added for all 17 languages - Star/unstar any chat for quick access across all projects β€” replaces the old tag/label system - Starred chats sorted by date for easy browsing - Fixed critical schema version conflict between storage and background scripts that could cause data loss during extension updates - Cross-tab write lock with 5s timeout prevents data corruption when using multiple Gemini tabs - Atomic saves β€” projects and chat mappings are now written in a single operation - 3-phase deletion verification with safety ratio check ensures chats are never falsely removed - `unlimitedStorage` permission removed β€” no longer needed with the new quota-aware design - ✨ **Added:** Automatic cleanup after importing/restoring backup β€” deleted chats are now removed from GPM projects - πŸ”„ **Added:** Retry logic (3 attempts, 1.5s intervals) waits for Gemini sidebar to load before cleanup - πŸ’¬ **Added:** User notification showing how many deleted chats were cleaned up - 🌍 **Added:** `deletedChatsCleaned` message in all 17 languages - πŸ› **Fixed:** `zh_CN` locale folder renamed to `zh-CN` (Chrome requires hyphen format) - πŸ› **Fixed:** Removed illegal `nul` file that caused Chrome extension loading error - 🌍 **Updated:** Chinese language code standardized across all files (`zh` β†’ `zh-CN`) - πŸ› **Fixed:** Chats deleted from Gemini's native interface now automatically disappear from GPM project folders β€” no more ghost entries - πŸ›‘οΈ **Added:** Two-phase deletion verification with debounce prevents false positives from Gemini's lazy-loading or DOM recycling - πŸ›‘οΈ **Added:** Safety guard skips cleanup when sidebar is still loading (zero chat links detected) - πŸ” **Added:** Search bar in Projects sidebar β€” quickly filter and find chats across all projects - πŸ›‘οΈ **Added:** Self-healing DOM observer β€” extension auto-recovers when Gemini re-mounts its page - πŸ›‘οΈ **Added:** Adaptive selector engine with structural discovery fallbacks for sidebar and input area - πŸ›‘οΈ **Added:** Multi-strategy toolbar detection (CSS classes, content-based "Tools" label search, structural walk-up) - πŸ›‘οΈ **Added:** DOM health monitor with container watchdog - πŸ› **Fixed:** Quick Prompt ⚑ button stuck as floating fallback β€” retry logic now properly relocates it into the toolbar once available - πŸ› **Fixed:** MutationObserver and interval check suppressed by floating button presence β€” both now continue retrying until toolbar placement succeeds - ⚑ **Improved:** Quick Prompt button toolbar discovery walks up from "Tools" label to find proper toolbar row container - ⚑ **Improved:** MutationObserver uses content-based detection ("Tools" label in 17 languages) to trigger toolbar injection - 🌍 **Added:** 8 new languages: Arabic (Ψ§Ω„ΨΉΨ±Ψ¨ΩŠΨ©), Bengali (বাংলা), Hindi (ΰ€Ήΰ€Ώΰ€¨ΰ₯ΰ€¦ΰ₯€), Indonesian (Bahasa Indonesia), Korean (ν•œκ΅­μ–΄), Portuguese (PortuguΓͺs), Thai (ΰΉ„ΰΈ—ΰΈ’), Vietnamese (TiαΊΏng Việt) - πŸ› **Fixed:** Data import now correctly preserves Hindi, Korean, and Arabic language preferences - πŸ“Š Expanded from 9 β†’ 17 languages total - πŸ› **Fixed:** Critical bug where chats assigned to projects would randomly disappear due to false-positive cleanup triggered by Gemini's lazy-loading sidebar - πŸ›‘οΈ **Added:** Auto-backup before every save β€” your data is always protected - πŸ›‘οΈ **Added:** "Restore from Backup" button in Settings with timestamp and content preview - πŸ›‘οΈ **Added:** Mutex-based write serialization prevents data corruption across multiple tabs - ⚑ **Improved:** Cross-tab sync debounced (300ms) for smoother multi-tab experience - πŸ—‘οΈ **Removed:** Aggressive auto-cleanup that incorrectly removed chats not visible in sidebar DOM - Project and subfolder creation with custom icons and colors - Drag & drop chat organization - Quick prompts with search, edit, backup/restore - 10-language localization - Native Gemini UI integration with dark/light mode - Export/import all data as JSON

Related extensions