Workspaces version history - 19 versions
Workspaces by Kustrica
Be careful with old versions! These versions are displayed for testing and reference purposes.You should always use the latest version of an add-on.
Latest version
Version 1.19.7
Released Sep 15, 2026 - 702.5 KBWorks with firefox 142.0 and later[1.19.7]
Fixed
- Duplicate URLs sync like export/import. Sync now packs the same{ url, groupId }[]lists as export/backup, compares them by count (three identical pages - three rows), and merges with URL close-counts.Source code released under MIT License
Older versions
Version 1.19.4
Released Sep 15, 2026 - 700.94 KBWorks with firefox 142.0 and later[1.19.3]- Sync apply no longer dims the whole sidebar/options with a big percentage overlay. Instead:
soft Changed / Quiet edge breath, plus a compact toast (opened/closed counts) that stays
~30 seconds and dismisses on click. - Breath colors are selectable in Options (Orange, Amber, Mint, Sky, Rose; default Orange).
- Light theme breath is much stronger so the glow is visible on white backgrounds.
Source code released under MIT License
- Sync apply no longer dims the whole sidebar/options with a big percentage overlay. Instead:
Version 1.19.2
Released Sep 15, 2026 - 719.29 KBWorks with firefox 142.0 and later[1.19]
Fixed:
- Sync opened the same tabs over and over. After an apply created a tab, the tab reports
about:blankwhile it loads (and a different URL after a redirect), so the next five-second
cycle still saw the requested URL as missing and created it again — 165 tabs grew past 300,
climbing with every exchange. A tab created by sync now keeps its requested URL as its
identity until it has finished loading, after which the real URL is published instead. A live
guard also re-checks what is already open immediately before creating anything, so a stale
diff cannot produce a duplicate.
- All synced tabs ended up in Main instead of their own workspaces. The incremental apply
set only its own internal flag, sotabs.onCreatedtreated every tab it created as a
user-opened tab and re-assigned it to the current workspace. The apply now runs with the
same restore flag the JSON import uses, which is exactly what suppresses that resolver.
Because the tabs then landed in the wrong workspace, the next cycle also saw them as still
missing — the two bugs were feeding each other.
- A sync apply can no longer flip the view into All Tabs mode by itself. The previous mode
is restored and persisted explicitly at the end of the apply.Source code released under MIT License
Version 1.18
Released Sep 15, 2026 - 695.26 KBWorks with firefox 142.0 and later[1.18]
Fixed (critical — sync never actually exchanged data)
- Two devices kept overwriting each other instead of syncing. The pull path compared the
remote document timestamp with the local one, but a local snapshot is stamped at collect
time (Date.now()), so "local is newer" was always true. Every device therefore took the
push branch on every exchange and no data ever crossed: the roster showed both machines,
the quota and last-sync time differed on each, pressing Sync Now anywhere changed nothing,
and no conflict window could appear because both devices already counted as members.
Decisions are now made againstsyncBaseFp— the fingerprint both sides last agreed on —
in one pure, unit-tested function: only the peer moved means fast-forward, only we moved
means publish, both moved means a real merge and then publish.
- Closed tabs came back from the dead. Convergence was a union of both sides, so closing a
tab on one device re-added it from the other on the next exchange, forever. Deletions are now
recorded as facts (tombstones, 30-day life) alongside per-workspace revisions, and a deletion
beats a resurrection unless the URL was genuinely reopened afterwards. The same applies to
deleted workspaces.
- Remote changes no longer rebuild every tab. Routine convergence applies only the
difference — create what is missing, close what is gone — instead of closing and recreating
the whole profile, which on a 160-tab setup destroyed scroll position and history.
- The interface was partly in the wrong language. The sync block had its own
DOMContentLoadedlistener and rendered beforeinitI18n()resolved, so strings fell back to
the browser locale instead of the chosen interface language, andcurrentLangwas still
"auto" when dates were formatted — which is why month names stayed in another language.
The block now waits for the dictionary and the stored language before its first render.Source code released under MIT License
Version 1.17
Released Sep 15, 2026 - 667.76 KBWorks with firefox 142.0 and later[1.17]
Added
- One-time join on a new device only: Replace synced copy or Merge with local tabs. After that, sync runs automatically with no more conflict prompts on established devices.
- Device list in Options with leave request (yellow pending until the other device confirms) and optional force remove.
- Selective sync checkboxes for theme, interface language, sidebar/UI settings, and History log.
- Info card for last sync, quota, and status (same inset style as Auto-Backups). Toolbar badge and sidebar banner when join is needed.
- Clearer Sync Now feedback: data is saved locally, then Firefox Sync transfers it to other devices.Source code released under MIT License
Version 1.16
Released Sep 15, 2026 - 627.12 KBWorks with firefox 142.0 and later[1.14]
Added
- Sync of workspaces and tabs across devices through your Firefox Account (browser.storage.sync).
- New control in Options, Data Management, Firefox Sync: enable/disable toggle (default on), visible Sync on / Sync off / Syncing state, Sync Now button, last-synced time, and quota usage (X KB of 100 KB).
- Synced data: workspaces (name, icon, order), tab URLs per workspace (including tab-group membership), and settings that should travel (theme, interface language, action-bar visibility, auto-backup preferences).
- Not synced: live tab ids, tabWorkspaceMap, auto-backup history, action logs.
- Safe conflict resolution when the synced copy and this device both have data and they differ. Chooser shows counts for both sides: Use synced copy, Use this device, or Merge both.
- Merge keeps workspaces from both sides (match by id, then by name so the same name is not duplicated), appends tabs and removes duplicate URLs, and never deletes anything.
- Destructive choices ask for confirmation and reuse the existing warning not to touch the browser while tabs restore. If one side is empty and the other is not, the non-empty side is accepted automatically.
- Compression and chunking for Sync quotas: payload is gzipped, base64-encoded, and split across sync_payload_N keys with a sync_meta descriptor, because each storage.sync item is capped at 8 KB even when the total limit is 100 KB.
- Quota is checked before writing. An oversized payload fails with a clear message (reduce tabs or use JSON export) and leaves both local and synced data untouched.
- History log entry Sync Applied with applied workspace and tab counts.
Notes
- Firefox Sync is periodic (roughly every 10 minutes) or on demand via the browser Sync Now. The extension cannot force a device-to-device transfer, and the UI does not claim instant sync. A 15-minute internal alarm re-checks for incoming changes.
- Requires the same Mozilla account on each device with Add-ons enabled in Firefox Sync settings.
- Pushes are suppressed while the extension is initializing, while a restore is running, and while a conflict is waiting for the user, so nothing is silently overwritten on either side.
[1.13]
- Fixed workspace switching (including keyboard shortcuts) so the last active tab in that workspace opens again, instead of the first tab in the list.Source code released under MIT License
Version 1.14
Released Jul 27, 2026 - 580.91 KBWorks with firefox 142.0 and later- Resolved an issue where tabs became hidden and workspaces appeared empty after restarting Firefox.
- Prevented stale storage snapshots from overwriting restored session tab mappings during browser startup.
- Ensured reliable tab visibility recovery across all open browser windows simultaneously.
Source code released under MIT License
Version 1.13
Released Jul 27, 2026 - 580.72 KBWorks with firefox 142.0 and later- Three-State Action Control & Tab Counts in Sidebar — clicking the header "eye" icon now cycles through three distinct states: Hide controls $\to$ Show action controls $\to$ Show tab counts.
- Interactive Pill Badge Tab Counters — when the tab counts view is enabled, soft pill-style badges (
.ws-tab-count) appear to the right of each workspace name showing real-time count of open tabs assigned to that space. Designed with clean typography and adaptive--icon-filtersupport for both light and dark themes without AI clutter. - Resolved chaotic tab behavior and orphan migrations after browser restart — stripped out recent experimental crash recovery snapshots (
maybeRecoverAfterUnexpectedClose,fireCrashRecoverySnapshot). The extension no longer attempts artificial emergency recovery on normal startup, eliminating duplicate blank tabs and false recovery warnings. - Stopped automatic "orphan adoption" during workspace switching — switching between workspaces or exiting All Tabs mode will no longer forcefully reassign visible unassigned tabs into the active workspace.
- Performance optimization — removed repetitive localStorage write bursts (
fireCrashRecoverySnapshot) previously triggering on every tab switch or deletion, significantly enhancing Firefox memory usage and responsiveness.
Source code released under MIT License
Version 1.12
Released Jul 27, 2026 - 580.44 KBWorks with firefox 142.0 and laterEmoji picker now includes the full emoji set (~1870)Source code released under MIT License
Version 1.8
Released Jul 26, 2026 - 547.36 KBWorks with firefox 142.0 and later- Focus jumps to Main when clicking a tab - on background cold wake,
onActivatedcouldsaveState()with default Main and then force a workspace switch, stealing focus. Init now skips early saves, ignores activation during load, and only soft-repairs tab visibility without changing the active tab when it already belongs to the current workspace.
Source code released under MIT License
- Focus jumps to Main when clicking a tab - on background cold wake,
Version 1.7
Released Jul 26, 2026 - 545.69 KBWorks with firefox 142.0 and later- Tabs jumping to Main – middle-click / Ctrl+click / “Open in new tab” could assign the new tab to Main. Fixed assignment order (opener – active tab – current/last-active workspace), wait for background init on cold wake, and stop using session values for user-opened tabs.
- “All Tabs” stuck after reopening the sidebar – after enabling All Tabs, closing and reopening the extension panel, the All Tabs button could not be turned off (
lastActiveWsIdwas not declared/restored). State is now restored correctly from storage.
Source code released under MIT License
Version 1.6
Released Jul 26, 2026 - 544.84 KBWorks with firefox 142.0 and later- Scheduled auto-backup – added the
alarmspermission (without itbrowser.alarmswas unavailable, so only startup backups worked). TheautoBackupAlarmis recreated on install, browser startup, script load, and when backup settings change. - Tabs jumping to Main – new tabs are assigned synchronously before any async session lookup; workspace is inherited from the opener tab when possible.
- Tabs disappearing on workspace switch –
switchWorkspaceno longer claims unmapped tabs into the previous/Main workspace during races withonCreated. - Active tab left visible in the wrong workspace – switch order is show → activate a tab of the target workspace then hide others.
- All Tabs mode – in-memory
isAllTabsMode/currentWorkspaceIdstay in sync with the UI. - Orphan tabs – pending assignments are not claimed into Main; true orphans attach to the destination workspace so they are not lost forever.
- Options “Next backup” – uses the real alarm
scheduledTimewhen available instead of estimating from the last backup timestamp.
Source code released under MIT License
- Scheduled auto-backup – added the
Version 1.5.1
Released Jul 3, 2026 - 544.22 KBWorks with firefox 142.0 and later- Removed unnecessary all_urls host permission to eliminate privacy warnings and streamline extension permissions.
- Optimized background script lifecycle to prevent redundant timer resets and duplicate startup operations.
Source code released under MIT License
Version 1.5
Released Jul 2, 2026 - 547.95 KBWorks with firefox 142.0 and laterWhat's New:
- Auto-Backups: Added a fully-featured automated backup system for tabs and workspaces, saving directly to browser storage.
- Auto-Backups: Added frequency settings (1, 3, 6, 8, 12 hours, 1 day, 3 days, 1 week) and an option to trigger a backup on browser startup.
- Auto-Backups: Added a beautiful UI in Options to view backup history with localized date formats and 1-click manual restoration.
- Auto-Backups: Advanced management displaying size in KB/MB, Restore, Download, and Delete buttons for each backup, plus a Clear All Backups button.
- Auto-Backups: Configurable max limit for saved backups (1 to 10000) with built-in validation preventing higher inputs.
- Auto-Backups: Added a Max Storage Limit (MB) setting (up to 5000 MB). The background worker automatically deletes the oldest backups if the limit is exceeded.
- Auto-Backups: Clicking Restore automatically creates a safety backup of the current state before applying the chosen backup.
- Auto-Backups: Added new statistics showing Next Backup time, Oldest Backup time, current number of backups out of the maximum limit, and total storage size.
- Auto-Backups: Added the unlimitedStorage permission to bypass the 5MB browser quota for large backups.
- Added a warning dialog before starting an import.
- Added a visual percentage progress indicator in the sidebar and a global blocking overlay on the Options page during data restoration to keep the user informed.
- Workspace Reset: Added a new Reset All & Close Tabs option to the global reset modal in the sidebar.
- Workspace Reset: Added strict secondary confirmation dialogs before executing a global reset to prevent accidental clicks.
- Language Switcher: The Auto option now dynamically displays the system language name that will be used (e.g. English (Auto)).
- Added a smart throttling mechanism (yielding 30ms every 3 tabs) during mass tab restoration to prevent the browser from freezing when opening 80+ tabs.
- Added an active state highlight (rounded square) to the History (Logs) icon in the sidebar when the logs view is open.
- Expanded and applied missing translations for all new features, reset confirmation texts, and notifications across all 19 supported languages.
What's Fixed:
- Fixed a critical bug where deleting a background workspace or closing its tabs from the sidebar would crash and close the entire browser window.
- Fixed a critical issue where selecting Replace current tabs during restore, or Reset All & Close Tabs, would sometimes unexpectedly close the browser window due to context shifts.
- Fixed a JSON backup import bug where all restored tabs were mistakenly placed into the single current workspace instead of being distributed correctly.
- Fixed a bug where tabs would randomly move toSource code released under MIT License
Version 1.4
Released Mar 5, 2026 - 517.8 KBWorks with firefox 142.0 and laterprevent workspace switching to empty workspace when tabs are removed
When all tabs in the current workspace are removed, the extension would incorrectly switch to an empty workspace, leaving the user with no visible tabs. This change ensures a fallback workspace with tabs is selected, or a new tab is created in the current workspace to maintain a usable interface.Source code released under MIT License
Version 1.3
Released Mar 4, 2026 - 517.54 KBWorks with firefox 142.0 and latericon fixSource code released under MIT License
Version 1.2
Released Mar 4, 2026 - 517.55 KBWorks with firefox 142.0 and laterAdd browser action to open options page when toolbar icon is clicked.Source code released under MIT License
Version 1.1
Released Mar 4, 2026 - 517.45 KBWorks with firefox 142.0 and laterThe issue of tabs not being remembered in spaces after closing the browser or extension has been resolved.Source code released under MIT License
Version 1.0
Released Feb 14, 2026 - 516.84 KBWorks with firefox 142.0 and laterSource code released under MIT License