Tabmanager.io Changelog
# Scheduled Release
- Update: search for all tabs in Saved Sessions
- Feature: decode urls suspended with The Great Suspender
- Update: keep set window names on chrome restore
# Release v2.0.1 (Bugfix)
- Add: db transaction source during upgrade
- Add: polyfill support for older browser versions
- Fix: uncaught promise error when fetching meta for closed window
- Fix: invalid window created in state during update after close (thanks Justin)
- Fix: MV3 service worker sometimes unresponsive workaround attempt (Chromium bug)
# Release v2.0.0
- Change: default active window titles uses shortform, e.g. "window 1"
- Feature: add toolbar button to collapse all windows
- Update: UI updates
- Fix: first group created in current window when first tab in restored window is in a tab group
- Change: move "close selected tabs" button placement
- Fix: content workspace drop target should always be 100 % of layout regardless of windows height
- Update: reduce manager initial load time
- Change: export active session windows export filename
- Remove: deprecated session model
- Fix: root session duplicate in export
- Fix: aggregated events can occur out of order (event-queue debounce optimization)
- Feature: show grouped tabs in history session windows components
- Feature: show grouped tabs in saved session windows components
- Feature: show pinned tabs in history session windows tabs components
- Feature: show pinned tabs in saved session windows tabs components
- Fix: order records by createdAt date when timestamp are equal
- Update: normalize session models across the app
- Change: Saved Sessions state structure
- Change: use aggregate-root for saved sessions and windows
- Update: update DB version to migrate sessionIds with null value to string to index
# Release v1.9.6 (Bugfix)
- Fix: missing group tests
- Fix: typo breaking group active tabs
# Release v1.9.5
- Update: continue refactoring to support saved tab properties (groups, pinned)
- Fix: failure to restore groups after sync.
- Fix: SessionWindows not casted to Windows.
# Release v1.9.4 (Bugfix)
- Fix: window sync failure when groups are invalid type
- Fix: temporary no access to tabGroups directly after browser startup
- Fix: tabs.group called with invalid groupId
- Change: remove/filter noisy logs
# Release v1.9.3
- Update: add info breadcrumbs with error logs
- Change: remove timeout to only dismiss restore notification on success/failure
- Fix: restore-history-session notification closed before completed
- Fix: restore-session notification never dismissed
- Feature: restore tabGroups with session/window
- Feature: save tabGroups with session/window
# Release v1.9.2
- Change: always send ready event during app init
- Update: optimize initial application load/render
- Fix: catch error during app init
- Fix: missing record sync error notification on client
- Fix: unselect all tabs with header button if a tab is selected before select all
- Update: cloud-sync module
- Fix: move multiple tabs to last index result in wrong index position
# Release v1.9.1
- Fix: mismatch between tabIds in window and tab entities state
- Update: sync check when worker becomes active
# Release v1.9.0
- Feature: Add drag & drop support for tabGroups in and between windows
- Feature: Chrome tabGroups support in active session windows
- Feature: Tab popover menu option to move tabs to New window
- Feature: Win header option to select all tabs
- Update: optimize Tabs component re-renders
- Change: remove "move tabs to new window" from toolbar - now in the Tab more menu
- Change: remove "remove tabs" button from toolbar
- Change: reduce column min width to support multi-columns on smaller screens
- Fix: reselector factory instance using createSelectors outside of scope
- Fix: selected tab displayed as unselected on active
- Fix: older chrome version fail to save session because of setIcon deprecated API
- Fix: worker handlers sometimes not registered before client request
- Fix: moving tabs to a target-index between the tabs within the same window moves to wrong index
- Fix: css modules hash causes lazy components render issue
- Fix: debounced tab events timing issue
- Fix: manager tab should not be discarded or suspended on suspend
- Fix: popupover menu hidden beneath topbar
# Release v1.8.11
- Update: clean up stale records in cloud storage
- Fix: Manifest V3 Chromium issues
# Release v1.8.10
- Fix: fallback when getting current window and tab
- Fix: throwing error in command-handler does not log stack-trace
# Release v1.8.9
- Change: order of history and saved icons in sidebar
- Feature: close matching filtered tabs on search
- Feature: remove tabs by url
# Release v1.8.8
- Update: packages
- Fix: fail to bring focus back client after auth if sign-in in separate window
- Fix: importing session-records without windows fail
# Release v1.8.7
- Fix: disable onStartup and onInstalled events as a workaround for: https://bugs.chromium.org/p/chromium/issues/detail?id=1271154
# Release v1.8.6
- Change: active tab indicator styling in window list for visibility
- Feature: configure shortcuts settings option
- Fix: await execute to ensure we catch any potential errors
- Feature: show/scroll-to a specific tab in active session
- Fix: error: message channel closed before a response was received
- Change: focus existing client window and tab if set to open in new window
- Update: app layout styles
# Release v1.8.5
- Fix: shouldn't throw when session hashes are equal
# Release v1.8.4
- Fix: issue resulting from certain browsers have windows without tabs during startup
- Update: form controller input field validation
- Fix: window restore fails when trying to update window with invalid title
# Release v1.8.3
- Feature: sort dropdown-menu to saved session sidelist panel
- Fix: saved sessions sidelist-item date title overflow
- Fix: more-button becomes hidden while dropdown-menu is open
- Move saved sessions sidelist-item buttons into more menu
- Feature: success/error notification on session file import
- Fix: revokeObjectURL not accessible in service worker
# Release v1.8.2
- Change: abort and log error when auto-saving session without windows
- Fix: expired user token refresh issue
# Release v1.8.1
- Feature: suspend tabs button to window header
- Change: order to clean up old sessions before auto-save
- Change: page name from Windows to Active Session
- Fix: exporter download-link creation fails in service-worker
# Release v1.8.0
- Fix: not setting focus to active client tab after sign-in
- Change: sign-in to call external domain for redirect auth
- Update: webextension-polyfill module
- Update: extension Manifest to V3
- Change: default root sessionId
- Change: throw error if no WindowRecord is found during restore
- Fix: tab-replaced called on local window that doesn't exist
- Feature: import sessions
- Feature: export sessions
- Fix: always generate id when creating a new SessionRecord
- Change: notifications autoHideDuration to be visible longer
- Fix: csv to windows converter setting wrong window title
- Change: initialize db earlier during load
- Change: refactor window/session service layer to reduce duplicate code
- Update: convert between active windows and saved session windows
# Release v1.6.9
- Change: prevent closing any open client when browser is starting
- Fix: windows entities missing tabs property
- Feature: loading text indicator to suspended tabs
- Update: cloud sync
# Release v1.6.8
- Feature: edit-WindowRecord-title header button
- Fix: existing sessionId not set on WindowRecord update
- Feature: windows and tabs count to topbar
- Update: packages
# Release v1.6.6
- Change: account topbar icon size
- Feature: select session snapshot before restoring in extension menu
- Feature: restore sessions and windows from extension menu
- Feature: total tabs count badge to extension action icon
- Feature: display sync status topbar icon
# Release v1.6.5
- Change: autoHideDuration for restore session notifications
- Feature: preserve height & width properties when saving and restoring session windows
# Release v1.6.4
- Feature: search focus command to input placeholder
- Feature: show tab count in session history page sidelist menu
- Feature: show tab count in restore/open session extension menu
- Fix: error on TAB_REPLACED event when window doesnt exist
# Release v1.6.3
- Update: extension browser polyfill module
- Fix: trying to set state for removed window
- Fix: some windows are not saving correctly
# Release v1.6.2
- Change: hide overflow for window and header
- Change: dropdown menues max-width to support longer names
- Fix: edit window-title-dialog shows current window title
- Fix: ignore cancelled-popup-request errors
# Release v1.6.1
- Move autosave session toggle to left corner
- Fix: tabs with undefined urls shouldn't break search
- Fix: current active tab should set to false if created or updated tab is active
- Fix: error tracking issues - downgrade to last working version
- Fix: ignore popup closed error
- Fix: sidebar border is covered by selected element in dark mode on MacOS
- Fix: error on ARROW_UP key when first tab is focused and search-filter is active
- Update: packages
# Release v1.6.0
- Feature: style indicator for when tab is active in window
- Fix: escape regex for all input strings
- Remove shadow styles from win header and tabs
- Feature: debounce search input
- Change: sidebar & topbar border theme colors
- Feature: expend/collapse sidebar
# Release v1.5.9
- Feature: expand/collapse windows header button
- Update: export window-records
- Change app styles
- Feature: show uninstall form link on install
# Release v1.5.8
- Update: packages
- Change: extension description
- Update: build script
# Release v1.5.7
- Fix: get selected tabs selector should only return tab elements
- Feature: sort window tabs
- Fix: windows grid column-width for large screens
# Release v1.5.5
- Feature: current active window header icon in list shows active color
- Change: dark theme window colors
- Change: max session limit
# Release v1.5.4
- Rename Save Session to Save all Windows
- Feature: show tab count in window header
# Release v1.5.3
- Change: multi-select tabs is always on
- Update: settings dialog styles
- Update: extension manifest
- Change: remove session from history by offset instead of date
# Release v1.5.2
- Feature: menu option to move WindowRecord to another session
- Feature: WindowRecord header more-menu button
- Feature: remove WindowRecord header button
# Release v1.5.1
- Fix: not passing sessionId with payload when requesting history session restore
- Fix: dialog calling undefined function
# Release v1.5.0
- Feature: save tabs to WindowRecord using tab more-menu
- Fix: prevent updating hidden records if visible ids array is empty
- Fix: backward slash in search query breaks search
- Fix: SessionRecord cloud sync issue
- Feature: close active window on save when setting is enabled
- Feature: clear search input field on command focus
- Fix: no first tab when manager is the only tab in window
- Update: packages
# Release v1.4.2
- Feature: focus win header on shift+tab when tab is focused
- Fix: db .where and .orderBy can not be combined
# Release v1.4.1
- Fix: spammy logger recieves all messages for client and background
- Fix: confirmation dialog doesn't close on accept
# Release v1.4.0
- Change: win grid column max-width
- Feature: close selected tab/tabs on delete/backspace
- Feature: outline tab on focus and focus within
- Feature: merge all windows toolbar button
- Fix: default title not set
- Change: prevent unmounting loaded pages
- Feature: filter archive sidelist by windows or sessions
- Change: sidebar panel buttons tooltip labels
- Change: display confirmation dialog before removing session-record
- Change: tabs windows count layout
- Feature: scroll position container optimization
- Fix: transaction broken in saveNew method
- Feature: remove session-record
- Feature: get session-records filtered by search
- Feature: save all windows as session
# Release v1.3.3
- Fix: cloud sync issues
# Release v1.3.2
- Change: specify UUID instead of depending on db auto-generated UUID
- Fix: dependOn breaks build
- Change: entry dependencies to minize bundle sizes
# Release v1.3.1
- Fix: quickly adding and removing window timing issue
- Update: sessions page styles
# Release v1.3.0
- Fix: reset input field after file upload
- Change: disable notifications when sessions are removed
- Fix: stale session-recorder alarms
- Fix: catch all errors during db init
- Feature: notifications for import/export success/failure
- Fix: missing winId result in undefined string
- Feature: selected tab actions to window header
- Fix: detaching tab doesn't clear selection
- Feature: import windows
- Feature: export all windows as csv option
- Feature: export windows
- Fix: current windowId is returned in array when windowIds is empty
- Change: optimize loading client-state during load
- Fix: client-state-store moduleNameMapper path
- Fix: lodash.merge wont merge class instance with object
- Update: fallback strategies to get current window (browser specific)
- Feature: listActiveWindowFirst settings option
- Feature: unsuspend tabs extension-menu option
- Change: restore session windows sequentially instead of async
- Fix: session-recorder error not caught during app init
- Feature: session restore success/failure notification
# Release v1.2.1
- Change: always try and clean-up stale sessions in recorder
- Change: stop session-recorder on error
- Feature: notifications on sessions actions
- Update: auth service & config
# Release v1.2.0
- Change: do not log error when trying to close open client tabs
- Fix: some clients have no active windows - add fallback strategies
- Change: info text on suspended tabs
- Feature: suspend tabs notifications
- Feature: suspend tabs from window more menu
- Fix: can't discard already discarded tabs
- Fix: missing re-throw causing error to be swallowed
- Feature: display success/error browser menu icon on save
- Feature: save-window extension menu option
- Change: use window title as default if not set
- Fix: tabs.discard in chrome doesn't take an array of tabIds
- Feature: show discard tabs option in extension menu
- Change: export individual service functions to utilize tree-shaking
- Change: default autoHide duration for notifications
- Feature: show error notification when restoring window session fails
- Fix: some service errors are not passed to client
- Fix: reduce events emitted during startup/load
- Update: session-recorder service
- Update: client windows service to handle new background service response
- Fix: grid page content not adjusting to content height
- Update: packages
# Release v1.1.12
- Change: show confirmation-dialog before removing record window tabs
- Fix: restore specific session window fails
- Change: unselect any selected tabs on search input focus
- Fix: prevent toggling selected tab on more-button-menu click
- Fix: rem style font-sizing for text and icons
# Release v1.1.11
- Update: suspend tab logic
- Update: suspend tab template
# Release v1.1.10
- Change: session-list items design
- Feature: unselect any selected tabs on topbar click
- Feature: select tab on more-button-click
- Fix: source-maps reference webpack:// protocol instead of chrome-extension://
- Change: extension reloader
- Fix: material-ui deprecated warnings
- Update: packages
# Release v1.1.9
- Change: remove stale recored sessions on every save
- Change: show today in group-header if today's date
- Feature: show session-list sticky group date headers
- Fix: getAll should have default limit argument
- Feature: show restore session option in extension menu
- Fix: logging breadcrumb severity should be error when error level is set
# Release v1.1.8
- Feature: cloud sync
- Feature: auth sign-in
- Feature: app level notifications
- Fix: popup-menu should not overflow bottom viewport
- Feature: restore suspended tab on click
- Change: session-recorder max limit
- Update: packages
# Release v1.1.7
- Change: win header colors in light/dark mode
- Change: window colors in light/dark mode
- Change: app layout colors in light/dark mode
- Feature: new light/dark theme colors
# Release v1.1.6
- Fix: WindowRecord not removed when last tab is removed
- Fix: sessions not loaded on reload
- Fix: window-records not loaded on reload
- Fix: window references invalid id when tab is removed from list
- Feature: remove WindowRecord tab button
# Release v1.1.5
- Feature: error tracking
- Change: lazy load Tooltip component optimization
- Fix: empty popup menu loaded when no windows
# Release v1.1.4
- Change: container width to optimize layout
- Change: scrollbar always visible to reduce reflow on startup
- Fix: remove tab cause all tab components to re-render
- Fix: hiding scrollbar result in render reflow
- Fix: prevent saving client-tab
- Feature: show snackbar error on save windows failed
# Release v1.1.3
- Fix: prevent form submit in save-window dialog
- Change: refactor code to utilize tree-shaking to reduce bundle size
- Change: close more-menu on menu click
- Feature: merge windows menu option
- Feature: remove-duplicate-tabs menu option
- Feature: group-tabs-by-domain menu option
- Fix: click listener receiving double click events
- Fix: can't close popup from anchor when open
- Feature: show more-button in win-header
- Fix: scroll optimization for content
# Release v1.1.1
- Feature: windows drag & drop
- Fix: suspended tabs not restoring on active
- Feature: restore windows with suspended tabs
- Feature: window accessibility keyboard navigation
- Feature: accessibility improvements
# Release v1.1.0
- Update: session date validation before save
- Feature: save window dialog
- Feature: light/dark color themes
- Fix: multiple clients open
# Release v1.0.2
- Change: filter out duplicate tabs during merge-save
- Fix: duplicate tabs created in window on archive restore
- Fix: archive sidelist item title text overflow
- Change: session-recorder timer default time
- Feature: setting for creating client as window or pinned
- Feature: settings page
- Change: layout grid defaults
# Release v1.0.0
- Initial release